blob: 306e920cb69573b32f35dfb7b0b68149d80bdf68 [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">
3305 </td>
3306
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08003307 <td class="entry_tags">
3308 </td>
3309
3310 </tr>
3311 <tr class="entries_header">
3312 <th class="th_details" colspan="5">Details</th>
3313 </tr>
3314 <tr class="entry_cont">
3315 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08003316 <p>Must be 0 if no
3317CAMERA2_<wbr/>TRIGGER_<wbr/>PRECAPTURE_<wbr/>METERING trigger received yet
3318by HAL.<wbr/> Always updated even if AE algorithm ignores the
3319trigger</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003320 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08003321 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08003322
3323
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08003324 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
3325 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003326
3327
Eino-Ville Talvala9fa0d902014-01-08 16:16:53 -08003328 <tr class="entry" id="dynamic_android.control.aeMode">
3329 <td class="entry_name" rowspan="3">
3330 android.<wbr/>control.<wbr/>ae<wbr/>Mode
3331 </td>
3332 <td class="entry_type">
3333 <span class="entry_type_name entry_type_name_enum">byte</span>
3334
3335 <span class="entry_type_visibility"> [public]</span>
3336
3337 <ul class="entry_type_enum">
3338 <li>
3339 <span class="entry_type_enum_name">OFF</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08003340 <span class="entry_type_enum_notes"><p>The camera device's autoexposure routine is disabled;
3341the application-selected <a href="#controls_android.sensor.exposureTime">android.<wbr/>sensor.<wbr/>exposure<wbr/>Time</a>,<wbr/>
3342<a href="#controls_android.sensor.sensitivity">android.<wbr/>sensor.<wbr/>sensitivity</a> and
3343<a href="#controls_android.sensor.frameDuration">android.<wbr/>sensor.<wbr/>frame<wbr/>Duration</a> are used by the camera
3344device,<wbr/> along with android.<wbr/>flash.<wbr/>* fields,<wbr/> if there's
3345a flash unit for this camera device.<wbr/></p></span>
Eino-Ville Talvala9fa0d902014-01-08 16:16:53 -08003346 </li>
3347 <li>
3348 <span class="entry_type_enum_name">ON</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08003349 <span class="entry_type_enum_notes"><p>The camera device's autoexposure routine is active,<wbr/>
3350with no flash control.<wbr/> The application's values for
3351<a href="#controls_android.sensor.exposureTime">android.<wbr/>sensor.<wbr/>exposure<wbr/>Time</a>,<wbr/>
3352<a href="#controls_android.sensor.sensitivity">android.<wbr/>sensor.<wbr/>sensitivity</a>,<wbr/> and
3353<a href="#controls_android.sensor.frameDuration">android.<wbr/>sensor.<wbr/>frame<wbr/>Duration</a> are ignored.<wbr/> The
3354application has control over the various
3355android.<wbr/>flash.<wbr/>* fields.<wbr/></p></span>
Eino-Ville Talvala9fa0d902014-01-08 16:16:53 -08003356 </li>
3357 <li>
3358 <span class="entry_type_enum_name">ON_AUTO_FLASH</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08003359 <span class="entry_type_enum_notes"><p>Like ON,<wbr/> except that the camera device also controls
3360the camera's flash unit,<wbr/> firing it in low-light
3361conditions.<wbr/> The flash may be fired during a
3362precapture sequence (triggered by
3363<a href="#controls_android.control.aePrecaptureTrigger">android.<wbr/>control.<wbr/>ae<wbr/>Precapture<wbr/>Trigger</a>) and may be fired
3364for captures for which the
3365<a href="#controls_android.control.captureIntent">android.<wbr/>control.<wbr/>capture<wbr/>Intent</a> field is set to
3366STILL_<wbr/>CAPTURE</p></span>
Eino-Ville Talvala9fa0d902014-01-08 16:16:53 -08003367 </li>
3368 <li>
3369 <span class="entry_type_enum_name">ON_ALWAYS_FLASH</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08003370 <span class="entry_type_enum_notes"><p>Like ON,<wbr/> except that the camera device also controls
3371the camera's flash unit,<wbr/> always firing it for still
3372captures.<wbr/> The flash may be fired during a precapture
3373sequence (triggered by
3374<a href="#controls_android.control.aePrecaptureTrigger">android.<wbr/>control.<wbr/>ae<wbr/>Precapture<wbr/>Trigger</a>) and will always
3375be fired for captures for which the
3376<a href="#controls_android.control.captureIntent">android.<wbr/>control.<wbr/>capture<wbr/>Intent</a> field is set to
3377STILL_<wbr/>CAPTURE</p></span>
Eino-Ville Talvala9fa0d902014-01-08 16:16:53 -08003378 </li>
3379 <li>
3380 <span class="entry_type_enum_name">ON_AUTO_FLASH_REDEYE</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08003381 <span class="entry_type_enum_notes"><p>Like ON_<wbr/>AUTO_<wbr/>FLASH,<wbr/> but with automatic red eye
3382reduction.<wbr/> If deemed necessary by the camera device,<wbr/>
3383a red eye reduction flash will fire during the
3384precapture sequence.<wbr/></p></span>
Eino-Ville Talvala9fa0d902014-01-08 16:16:53 -08003385 </li>
3386 </ul>
3387
3388 </td> <!-- entry_type -->
3389
3390 <td class="entry_description">
3391 <p>The desired mode for the camera device's
3392auto-exposure routine.<wbr/></p>
3393 </td>
3394
3395 <td class="entry_units">
3396 </td>
3397
3398 <td class="entry_range">
3399 <p><a href="#static_android.control.aeAvailableModes">android.<wbr/>control.<wbr/>ae<wbr/>Available<wbr/>Modes</a></p>
3400 </td>
3401
3402 <td class="entry_tags">
3403 <ul class="entry_tags">
3404 <li><a href="#tag_BC">BC</a></li>
3405 </ul>
3406 </td>
3407
3408 </tr>
3409 <tr class="entries_header">
3410 <th class="th_details" colspan="5">Details</th>
3411 </tr>
3412 <tr class="entry_cont">
3413 <td class="entry_details" colspan="5">
3414 <p>This control is only effective if <a href="#controls_android.control.mode">android.<wbr/>control.<wbr/>mode</a> is
3415AUTO.<wbr/></p>
3416<p>When set to any of the ON modes,<wbr/> the camera device's
3417auto-exposure routine is enabled,<wbr/> overriding the
3418application's selected exposure time,<wbr/> sensor sensitivity,<wbr/>
3419and frame duration (<a href="#controls_android.sensor.exposureTime">android.<wbr/>sensor.<wbr/>exposure<wbr/>Time</a>,<wbr/>
3420<a href="#controls_android.sensor.sensitivity">android.<wbr/>sensor.<wbr/>sensitivity</a>,<wbr/> and
3421<a href="#controls_android.sensor.frameDuration">android.<wbr/>sensor.<wbr/>frame<wbr/>Duration</a>).<wbr/> If one of the FLASH modes
3422is selected,<wbr/> the camera device's flash unit controls are
3423also overridden.<wbr/></p>
3424<p>The FLASH modes are only available if the camera device
3425has a flash unit (<a href="#static_android.flash.info.available">android.<wbr/>flash.<wbr/>info.<wbr/>available</a> is <code>true</code>).<wbr/></p>
3426<p>If flash TORCH mode is desired,<wbr/> this field must be set to
3427ON or OFF,<wbr/> and <a href="#controls_android.flash.mode">android.<wbr/>flash.<wbr/>mode</a> set to TORCH.<wbr/></p>
3428<p>When set to any of the ON modes,<wbr/> the values chosen by the
3429camera device auto-exposure routine for the overridden
3430fields for a given capture will be available in its
3431CaptureResult.<wbr/></p>
3432 </td>
3433 </tr>
3434
3435
3436 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
3437 <!-- end of entry -->
3438
3439
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003440 <tr class="entry" id="dynamic_android.control.aeRegions">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08003441 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08003442 android.<wbr/>control.<wbr/>ae<wbr/>Regions
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08003443 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003444 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08003445 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003446 <span class="entry_type_container">x</span>
3447
3448 <span class="entry_type_array">
3449 5 x area_count
3450 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07003451 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003452
3453
3454 </td> <!-- entry_type -->
3455
3456 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08003457 <p>List of areas to use for
Ruben Brunk76e4c7d2014-01-31 11:05:30 -08003458metering.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003459 </td>
3460
3461 <td class="entry_units">
3462 </td>
3463
3464 <td class="entry_range">
Ruben Brunk76e4c7d2014-01-31 11:05:30 -08003465 <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 -08003466 </td>
3467
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08003468 <td class="entry_tags">
3469 <ul class="entry_tags">
3470 <li><a href="#tag_BC">BC</a></li>
3471 </ul>
3472 </td>
3473
3474 </tr>
3475 <tr class="entries_header">
3476 <th class="th_details" colspan="5">Details</th>
3477 </tr>
3478 <tr class="entry_cont">
3479 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08003480 <p>Each area is a rectangle plus weight: xmin,<wbr/> ymin,<wbr/>
Ruben Brunk76e4c7d2014-01-31 11:05:30 -08003481xmax,<wbr/> ymax,<wbr/> weight.<wbr/> The rectangle is defined to be inclusive of the
Igor Murashkin0b080452013-12-27 15:30:25 -08003482specified coordinates.<wbr/></p>
3483<p>The coordinate system is based on the active pixel array,<wbr/>
3484with (0,<wbr/>0) being the top-left pixel in the active pixel array,<wbr/> and
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08003485(<a href="#static_android.sensor.info.activeArraySize">android.<wbr/>sensor.<wbr/>info.<wbr/>active<wbr/>Array<wbr/>Size</a>.<wbr/>width - 1,<wbr/>
3486<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 -08003487bottom-right pixel in the active pixel array.<wbr/> The weight
3488should be nonnegative.<wbr/></p>
3489<p>If all regions have 0 weight,<wbr/> then no specific metering area
3490needs to be used by the HAL.<wbr/> If the metering region is
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08003491outside 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 -08003492should ignore the sections outside the region and output the
Ruben Brunk76e4c7d2014-01-31 11:05:30 -08003493used sections in the frame metadata.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003494 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08003495 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08003496
3497
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08003498 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
3499 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003500
3501
3502 <tr class="entry" id="dynamic_android.control.aeState">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08003503 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08003504 android.<wbr/>control.<wbr/>ae<wbr/>State
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08003505 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003506 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08003507 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003508
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07003509 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003510
3511 <ul class="entry_type_enum">
3512 <li>
3513 <span class="entry_type_enum_name">INACTIVE</span>
Zhijun He92e698d2014-01-13 16:24:31 -08003514 <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 -08003515this state.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003516 </li>
3517 <li>
3518 <span class="entry_type_enum_name">SEARCHING</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08003519 <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 -08003520for the current scene.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003521 </li>
3522 <li>
3523 <span class="entry_type_enum_name">CONVERGED</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08003524 <span class="entry_type_enum_notes"><p>AE has a good set of control values for the
Zhijun He92e698d2014-01-13 16:24:31 -08003525current scene.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003526 </li>
3527 <li>
3528 <span class="entry_type_enum_name">LOCKED</span>
Zhijun He92e698d2014-01-13 16:24:31 -08003529 <span class="entry_type_enum_notes"><p>AE has been locked.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003530 </li>
3531 <li>
3532 <span class="entry_type_enum_name">FLASH_REQUIRED</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08003533 <span class="entry_type_enum_notes"><p>AE has a good set of control values,<wbr/> but flash
3534needs to be fired for good quality still
Zhijun He92e698d2014-01-13 16:24:31 -08003535capture.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003536 </li>
3537 <li>
3538 <span class="entry_type_enum_name">PRECAPTURE</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08003539 <span class="entry_type_enum_notes"><p>AE has been asked to do a precapture sequence
Zhijun He92e698d2014-01-13 16:24:31 -08003540(through the <a href="#controls_android.control.aePrecaptureTrigger">android.<wbr/>control.<wbr/>ae<wbr/>Precapture<wbr/>Trigger</a> START),<wbr/>
3541and is currently executing it.<wbr/> Once PRECAPTURE
Igor Murashkina10351a2014-01-15 17:05:22 -08003542completes,<wbr/> AE will transition to CONVERGED or
Zhijun He92e698d2014-01-13 16:24:31 -08003543FLASH_<wbr/>REQUIRED as appropriate.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003544 </li>
3545 </ul>
3546
3547 </td> <!-- entry_type -->
3548
3549 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08003550 <p>Current state of AE algorithm</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003551 </td>
3552
3553 <td class="entry_units">
3554 </td>
3555
3556 <td class="entry_range">
3557 </td>
3558
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08003559 <td class="entry_tags">
3560 </td>
3561
3562 </tr>
3563 <tr class="entries_header">
3564 <th class="th_details" colspan="5">Details</th>
3565 </tr>
3566 <tr class="entry_cont">
3567 <td class="entry_details" colspan="5">
Zhijun He92e698d2014-01-13 16:24:31 -08003568 <p>Switching between or enabling AE modes (<a href="#controls_android.control.aeMode">android.<wbr/>control.<wbr/>ae<wbr/>Mode</a>) always
3569resets the AE state to INACTIVE.<wbr/> Similarly,<wbr/> switching between <a href="#controls_android.control.mode">android.<wbr/>control.<wbr/>mode</a>,<wbr/>
3570or <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
3571the algorithm states to INACTIVE.<wbr/></p>
3572<p>The camera device can do several state transitions between two results,<wbr/> if it is
3573allowed by the state transition table.<wbr/> For example: INACTIVE may never actually be
3574seen in a result.<wbr/></p>
3575<p>The state in the result is the state for this image (in sync with this image): if
3576AE state becomes CONVERGED,<wbr/> then the image data associated with this result should
3577be good to use.<wbr/></p>
3578<p>Below are state transition tables for different AE modes.<wbr/></p>
3579<table>
3580<thead>
3581<tr>
3582<th align="center">State</th>
3583<th align="center">Transition Cause</th>
3584<th align="center">New State</th>
3585<th align="center">Notes</th>
3586</tr>
3587</thead>
3588<tbody>
3589<tr>
3590<td align="center">INACTIVE</td>
3591<td align="center"></td>
3592<td align="center">INACTIVE</td>
3593<td align="center">Camera device auto exposure algorithm is disabled</td>
3594</tr>
3595</tbody>
3596</table>
3597<p>When <a href="#controls_android.control.aeMode">android.<wbr/>control.<wbr/>ae<wbr/>Mode</a> is AE_<wbr/>MODE_<wbr/>ON_<wbr/>*:</p>
3598<table>
3599<thead>
3600<tr>
3601<th align="center">State</th>
3602<th align="center">Transition Cause</th>
3603<th align="center">New State</th>
3604<th align="center">Notes</th>
3605</tr>
3606</thead>
3607<tbody>
3608<tr>
3609<td align="center">INACTIVE</td>
3610<td align="center">Camera device initiates AE scan</td>
3611<td align="center">SEARCHING</td>
3612<td align="center">Values changing</td>
3613</tr>
3614<tr>
3615<td align="center">INACTIVE</td>
3616<td align="center"><a href="#controls_android.control.aeLock">android.<wbr/>control.<wbr/>ae<wbr/>Lock</a> is ON</td>
3617<td align="center">LOCKED</td>
3618<td align="center">Values locked</td>
3619</tr>
3620<tr>
3621<td align="center">SEARCHING</td>
3622<td align="center">Camera device finishes AE scan</td>
3623<td align="center">CONVERGED</td>
3624<td align="center">Good values,<wbr/> not changing</td>
3625</tr>
3626<tr>
3627<td align="center">SEARCHING</td>
3628<td align="center">Camera device finishes AE scan</td>
3629<td align="center">FLASH_<wbr/>REQUIRED</td>
3630<td align="center">Converged but too dark w/<wbr/>o flash</td>
3631</tr>
3632<tr>
3633<td align="center">SEARCHING</td>
3634<td align="center"><a href="#controls_android.control.aeLock">android.<wbr/>control.<wbr/>ae<wbr/>Lock</a> is ON</td>
3635<td align="center">LOCKED</td>
3636<td align="center">Values locked</td>
3637</tr>
3638<tr>
3639<td align="center">CONVERGED</td>
3640<td align="center">Camera device initiates AE scan</td>
3641<td align="center">SEARCHING</td>
3642<td align="center">Values changing</td>
3643</tr>
3644<tr>
3645<td align="center">CONVERGED</td>
3646<td align="center"><a href="#controls_android.control.aeLock">android.<wbr/>control.<wbr/>ae<wbr/>Lock</a> is ON</td>
3647<td align="center">LOCKED</td>
3648<td align="center">Values locked</td>
3649</tr>
3650<tr>
3651<td align="center">FLASH_<wbr/>REQUIRED</td>
3652<td align="center">Camera device initiates AE scan</td>
3653<td align="center">SEARCHING</td>
3654<td align="center">Values changing</td>
3655</tr>
3656<tr>
3657<td align="center">FLASH_<wbr/>REQUIRED</td>
3658<td align="center"><a href="#controls_android.control.aeLock">android.<wbr/>control.<wbr/>ae<wbr/>Lock</a> is ON</td>
3659<td align="center">LOCKED</td>
3660<td align="center">Values locked</td>
3661</tr>
3662<tr>
3663<td align="center">LOCKED</td>
3664<td align="center"><a href="#controls_android.control.aeLock">android.<wbr/>control.<wbr/>ae<wbr/>Lock</a> is OFF</td>
3665<td align="center">SEARCHING</td>
3666<td align="center">Values not good after unlock</td>
3667</tr>
3668<tr>
3669<td align="center">LOCKED</td>
3670<td align="center"><a href="#controls_android.control.aeLock">android.<wbr/>control.<wbr/>ae<wbr/>Lock</a> is OFF</td>
3671<td align="center">CONVERGED</td>
3672<td align="center">Values good after unlock</td>
3673</tr>
3674<tr>
3675<td align="center">LOCKED</td>
3676<td align="center"><a href="#controls_android.control.aeLock">android.<wbr/>control.<wbr/>ae<wbr/>Lock</a> is OFF</td>
3677<td align="center">FLASH_<wbr/>REQUIRED</td>
3678<td align="center">Exposure good,<wbr/> but too dark</td>
3679</tr>
3680<tr>
3681<td align="center">PRECAPTURE</td>
3682<td align="center">Sequence done.<wbr/> <a href="#controls_android.control.aeLock">android.<wbr/>control.<wbr/>ae<wbr/>Lock</a> is OFF</td>
3683<td align="center">CONVERGED</td>
3684<td align="center">Ready for high-quality capture</td>
3685</tr>
3686<tr>
3687<td align="center">PRECAPTURE</td>
3688<td align="center">Sequence done.<wbr/> <a href="#controls_android.control.aeLock">android.<wbr/>control.<wbr/>ae<wbr/>Lock</a> is ON</td>
3689<td align="center">LOCKED</td>
3690<td align="center">Ready for high-quality capture</td>
3691</tr>
3692<tr>
3693<td align="center">Any state</td>
3694<td align="center"><a href="#controls_android.control.aePrecaptureTrigger">android.<wbr/>control.<wbr/>ae<wbr/>Precapture<wbr/>Trigger</a> is START</td>
3695<td align="center">PRECAPTURE</td>
3696<td align="center">Start AE precapture metering sequence</td>
3697</tr>
3698</tbody>
3699</table>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003700 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08003701 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08003702
3703
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08003704 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
3705 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003706
3707
3708 <tr class="entry" id="dynamic_android.control.afMode">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08003709 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08003710 android.<wbr/>control.<wbr/>af<wbr/>Mode
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08003711 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003712 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08003713 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003714
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07003715 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003716
3717 <ul class="entry_type_enum">
3718 <li>
3719 <span class="entry_type_enum_name">OFF</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08003720 <span class="entry_type_enum_notes"><p>The auto-focus routine does not control the lens;
3721<a href="#controls_android.lens.focusDistance">android.<wbr/>lens.<wbr/>focus<wbr/>Distance</a> is controlled by the
3722application</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003723 </li>
3724 <li>
3725 <span class="entry_type_enum_name">AUTO</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08003726 <span class="entry_type_enum_notes"><p>If lens is not fixed focus.<wbr/></p>
3727<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
3728is fixed-focus.<wbr/> In this mode,<wbr/> the lens does not move unless
3729the autofocus trigger action is called.<wbr/> When that trigger
3730is activated,<wbr/> AF must transition to ACTIVE_<wbr/>SCAN,<wbr/> then to
3731the outcome of the scan (FOCUSED or NOT_<wbr/>FOCUSED).<wbr/></p>
3732<p>Triggering AF_<wbr/>CANCEL resets the lens position to default,<wbr/>
3733and sets the AF state to INACTIVE.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003734 </li>
3735 <li>
3736 <span class="entry_type_enum_name">MACRO</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08003737 <span class="entry_type_enum_notes"><p>In this mode,<wbr/> the lens does not move unless the
3738autofocus trigger action is called.<wbr/></p>
3739<p>When that trigger is activated,<wbr/> AF must transition to
3740ACTIVE_<wbr/>SCAN,<wbr/> then to the outcome of the scan (FOCUSED or
3741NOT_<wbr/>FOCUSED).<wbr/> Triggering cancel AF resets the lens
3742position to default,<wbr/> and sets the AF state to
3743INACTIVE.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003744 </li>
3745 <li>
3746 <span class="entry_type_enum_name">CONTINUOUS_VIDEO</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08003747 <span class="entry_type_enum_notes"><p>In this mode,<wbr/> the AF algorithm modifies the lens
3748position continually to attempt to provide a
3749constantly-in-focus image stream.<wbr/></p>
3750<p>The focusing behavior should be suitable for good quality
3751video recording; typically this means slower focus
3752movement and no overshoots.<wbr/> When the AF trigger is not
3753involved,<wbr/> the AF algorithm should start in INACTIVE state,<wbr/>
3754and then transition into PASSIVE_<wbr/>SCAN and PASSIVE_<wbr/>FOCUSED
3755states as appropriate.<wbr/> When the AF trigger is activated,<wbr/>
3756the algorithm should immediately transition into
3757AF_<wbr/>FOCUSED or AF_<wbr/>NOT_<wbr/>FOCUSED as appropriate,<wbr/> and lock the
3758lens position until a cancel AF trigger is received.<wbr/></p>
3759<p>Once cancel is received,<wbr/> the algorithm should transition
3760back to INACTIVE and resume passive scan.<wbr/> Note that this
3761behavior is not identical to CONTINUOUS_<wbr/>PICTURE,<wbr/> since an
3762ongoing PASSIVE_<wbr/>SCAN must immediately be
3763canceled.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003764 </li>
3765 <li>
3766 <span class="entry_type_enum_name">CONTINUOUS_PICTURE</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08003767 <span class="entry_type_enum_notes"><p>In this mode,<wbr/> the AF algorithm modifies the lens
3768position continually to attempt to provide a
3769constantly-in-focus image stream.<wbr/></p>
3770<p>The focusing behavior should be suitable for still image
3771capture; typically this means focusing as fast as
3772possible.<wbr/> When the AF trigger is not involved,<wbr/> the AF
3773algorithm should start in INACTIVE state,<wbr/> and then
3774transition into PASSIVE_<wbr/>SCAN and PASSIVE_<wbr/>FOCUSED states as
3775appropriate as it attempts to maintain focus.<wbr/> When the AF
3776trigger is activated,<wbr/> the algorithm should finish its
3777PASSIVE_<wbr/>SCAN if active,<wbr/> and then transition into
3778AF_<wbr/>FOCUSED or AF_<wbr/>NOT_<wbr/>FOCUSED as appropriate,<wbr/> and lock the
3779lens position until a cancel AF trigger is received.<wbr/></p>
3780<p>When the AF cancel trigger is activated,<wbr/> the algorithm
3781should transition back to INACTIVE and then act as if it
3782has just been started.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003783 </li>
3784 <li>
3785 <span class="entry_type_enum_name">EDOF</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08003786 <span class="entry_type_enum_notes"><p>Extended depth of field (digital focus).<wbr/> AF
3787trigger is ignored,<wbr/> AF state should always be
3788INACTIVE.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003789 </li>
3790 </ul>
3791
3792 </td> <!-- entry_type -->
3793
3794 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08003795 <p>Whether AF is currently enabled,<wbr/> and what
3796mode it is set to</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003797 </td>
3798
3799 <td class="entry_units">
3800 </td>
3801
3802 <td class="entry_range">
Zhijun He7787f7f2014-01-14 16:30:31 -08003803 <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 -08003804 </td>
3805
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003806 <td class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08003807 <ul class="entry_tags">
3808 <li><a href="#tag_BC">BC</a></li>
3809 </ul>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003810 </td>
3811
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08003812 </tr>
3813 <tr class="entries_header">
3814 <th class="th_details" colspan="5">Details</th>
3815 </tr>
3816 <tr class="entry_cont">
3817 <td class="entry_details" colspan="5">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08003818 <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 -08003819<p>If the lens is controlled by the camera device auto-focus algorithm,<wbr/>
3820the camera device will report the current AF status in android.<wbr/>control.<wbr/>af<wbr/>State
3821in result metadata.<wbr/></p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08003822 </td>
3823 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08003824
3825
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08003826 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
3827 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003828
3829
3830 <tr class="entry" id="dynamic_android.control.afRegions">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08003831 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08003832 android.<wbr/>control.<wbr/>af<wbr/>Regions
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08003833 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003834 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08003835 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003836 <span class="entry_type_container">x</span>
3837
3838 <span class="entry_type_array">
3839 5 x area_count
3840 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07003841 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003842
3843
3844 </td> <!-- entry_type -->
3845
3846 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08003847 <p>List of areas to use for focus
Ruben Brunk76e4c7d2014-01-31 11:05:30 -08003848estimation.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003849 </td>
3850
3851 <td class="entry_units">
3852 </td>
3853
3854 <td class="entry_range">
Ruben Brunk76e4c7d2014-01-31 11:05:30 -08003855 <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 -08003856 </td>
3857
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08003858 <td class="entry_tags">
3859 <ul class="entry_tags">
3860 <li><a href="#tag_BC">BC</a></li>
3861 </ul>
3862 </td>
3863
3864 </tr>
3865 <tr class="entries_header">
3866 <th class="th_details" colspan="5">Details</th>
3867 </tr>
3868 <tr class="entry_cont">
3869 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08003870 <p>Each area is a rectangle plus weight: xmin,<wbr/> ymin,<wbr/>
Ruben Brunk76e4c7d2014-01-31 11:05:30 -08003871xmax,<wbr/> ymax,<wbr/> weight.<wbr/> The rectangle is defined to be inclusive of the
Igor Murashkin0b080452013-12-27 15:30:25 -08003872specified coordinates.<wbr/></p>
3873<p>The coordinate system is based on the active pixel array,<wbr/>
3874with (0,<wbr/>0) being the top-left pixel in the active pixel array,<wbr/> and
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08003875(<a href="#static_android.sensor.info.activeArraySize">android.<wbr/>sensor.<wbr/>info.<wbr/>active<wbr/>Array<wbr/>Size</a>.<wbr/>width - 1,<wbr/>
3876<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 -08003877bottom-right pixel in the active pixel array.<wbr/> The weight
3878should be nonnegative.<wbr/></p>
3879<p>If all regions have 0 weight,<wbr/> then no specific focus area
3880needs to be used by the HAL.<wbr/> If the focusing region is
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08003881outside 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 -08003882should ignore the sections outside the region and output the
Ruben Brunk76e4c7d2014-01-31 11:05:30 -08003883used sections in the frame metadata.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003884 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08003885 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08003886
3887
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08003888 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
3889 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003890
3891
3892 <tr class="entry" id="dynamic_android.control.afState">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08003893 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08003894 android.<wbr/>control.<wbr/>af<wbr/>State
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08003895 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003896 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08003897 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003898
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07003899 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003900
3901 <ul class="entry_type_enum">
3902 <li>
3903 <span class="entry_type_enum_name">INACTIVE</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08003904 <span class="entry_type_enum_notes"><p>AF off or has not yet tried to scan/<wbr/>been asked
3905to scan.<wbr/> When a camera device is opened,<wbr/> it starts in
3906this state.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003907 </li>
3908 <li>
3909 <span class="entry_type_enum_name">PASSIVE_SCAN</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08003910 <span class="entry_type_enum_notes"><p>if CONTINUOUS_<wbr/>* modes are supported.<wbr/> AF is
3911currently doing an AF scan initiated by a continuous
3912autofocus mode</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003913 </li>
3914 <li>
3915 <span class="entry_type_enum_name">PASSIVE_FOCUSED</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08003916 <span class="entry_type_enum_notes"><p>if CONTINUOUS_<wbr/>* modes are supported.<wbr/> AF currently
3917believes it is in focus,<wbr/> but may restart scanning at
3918any time.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003919 </li>
3920 <li>
3921 <span class="entry_type_enum_name">ACTIVE_SCAN</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08003922 <span class="entry_type_enum_notes"><p>if AUTO or MACRO modes are supported.<wbr/> AF is doing
3923an AF scan because it was triggered by AF
3924trigger</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003925 </li>
3926 <li>
3927 <span class="entry_type_enum_name">FOCUSED_LOCKED</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08003928 <span class="entry_type_enum_notes"><p>if any AF mode besides OFF is supported.<wbr/> AF
3929believes it is focused correctly and is
3930locked</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003931 </li>
3932 <li>
3933 <span class="entry_type_enum_name">NOT_FOCUSED_LOCKED</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08003934 <span class="entry_type_enum_notes"><p>if any AF mode besides OFF is supported.<wbr/> AF has
3935failed to focus successfully and is
3936locked</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003937 </li>
Eino-Ville Talvala492ba7c2013-09-20 17:24:00 -07003938 <li>
3939 <span class="entry_type_enum_name">PASSIVE_UNFOCUSED</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08003940 <span class="entry_type_enum_notes"><p>if CONTINUOUS_<wbr/>* modes are supported.<wbr/> AF finished a
3941passive scan without finding focus,<wbr/> and may restart
3942scanning at any time.<wbr/></p></span>
Eino-Ville Talvala492ba7c2013-09-20 17:24:00 -07003943 </li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003944 </ul>
3945
3946 </td> <!-- entry_type -->
3947
3948 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08003949 <p>Current state of AF algorithm</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003950 </td>
3951
3952 <td class="entry_units">
3953 </td>
3954
3955 <td class="entry_range">
3956 </td>
3957
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08003958 <td class="entry_tags">
3959 </td>
3960
3961 </tr>
3962 <tr class="entries_header">
3963 <th class="th_details" colspan="5">Details</th>
3964 </tr>
3965 <tr class="entry_cont">
3966 <td class="entry_details" colspan="5">
Zhijun He92e698d2014-01-13 16:24:31 -08003967 <p>Switching between or enabling AF modes (<a href="#controls_android.control.afMode">android.<wbr/>control.<wbr/>af<wbr/>Mode</a>) always
3968resets the AF state to INACTIVE.<wbr/> Similarly,<wbr/> switching between <a href="#controls_android.control.mode">android.<wbr/>control.<wbr/>mode</a>,<wbr/>
3969or <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
3970the algorithm states to INACTIVE.<wbr/></p>
3971<p>The camera device can do several state transitions between two results,<wbr/> if it is
3972allowed by the state transition table.<wbr/> For example: INACTIVE may never actually be
3973seen in a result.<wbr/></p>
3974<p>The state in the result is the state for this image (in sync with this image): if
3975AF state becomes FOCUSED,<wbr/> then the image data associated with this result should
3976be sharp.<wbr/></p>
3977<p>Below are state transition tables for different AF modes.<wbr/></p>
3978<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>
3979<table>
3980<thead>
3981<tr>
3982<th align="center">State</th>
3983<th align="center">Transition Cause</th>
3984<th align="center">New State</th>
3985<th align="center">Notes</th>
3986</tr>
3987</thead>
3988<tbody>
3989<tr>
3990<td align="center">INACTIVE</td>
3991<td align="center"></td>
3992<td align="center">INACTIVE</td>
3993<td align="center">Never changes</td>
3994</tr>
3995</tbody>
3996</table>
3997<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>
3998<table>
3999<thead>
4000<tr>
4001<th align="center">State</th>
4002<th align="center">Transition Cause</th>
4003<th align="center">New State</th>
4004<th align="center">Notes</th>
4005</tr>
4006</thead>
4007<tbody>
4008<tr>
4009<td align="center">INACTIVE</td>
4010<td align="center">AF_<wbr/>TRIGGER</td>
4011<td align="center">ACTIVE_<wbr/>SCAN</td>
4012<td align="center">Start AF sweep,<wbr/> Lens now moving</td>
4013</tr>
4014<tr>
4015<td align="center">ACTIVE_<wbr/>SCAN</td>
4016<td align="center">AF sweep done</td>
4017<td align="center">FOCUSED_<wbr/>LOCKED</td>
4018<td align="center">Focused,<wbr/> Lens now locked</td>
4019</tr>
4020<tr>
4021<td align="center">ACTIVE_<wbr/>SCAN</td>
4022<td align="center">AF sweep done</td>
4023<td align="center">NOT_<wbr/>FOCUSED_<wbr/>LOCKED</td>
4024<td align="center">Not focused,<wbr/> Lens now locked</td>
4025</tr>
4026<tr>
4027<td align="center">ACTIVE_<wbr/>SCAN</td>
4028<td align="center">AF_<wbr/>CANCEL</td>
4029<td align="center">INACTIVE</td>
4030<td align="center">Cancel/<wbr/>reset AF,<wbr/> Lens now locked</td>
4031</tr>
4032<tr>
4033<td align="center">FOCUSED_<wbr/>LOCKED</td>
4034<td align="center">AF_<wbr/>CANCEL</td>
4035<td align="center">INACTIVE</td>
4036<td align="center">Cancel/<wbr/>reset AF</td>
4037</tr>
4038<tr>
4039<td align="center">FOCUSED_<wbr/>LOCKED</td>
4040<td align="center">AF_<wbr/>TRIGGER</td>
4041<td align="center">ACTIVE_<wbr/>SCAN</td>
4042<td align="center">Start new sweep,<wbr/> Lens now moving</td>
4043</tr>
4044<tr>
4045<td align="center">NOT_<wbr/>FOCUSED_<wbr/>LOCKED</td>
4046<td align="center">AF_<wbr/>CANCEL</td>
4047<td align="center">INACTIVE</td>
4048<td align="center">Cancel/<wbr/>reset AF</td>
4049</tr>
4050<tr>
4051<td align="center">NOT_<wbr/>FOCUSED_<wbr/>LOCKED</td>
4052<td align="center">AF_<wbr/>TRIGGER</td>
4053<td align="center">ACTIVE_<wbr/>SCAN</td>
4054<td align="center">Start new sweep,<wbr/> Lens now moving</td>
4055</tr>
4056<tr>
4057<td align="center">Any state</td>
4058<td align="center">Mode change</td>
4059<td align="center">INACTIVE</td>
4060<td align="center"></td>
4061</tr>
4062</tbody>
4063</table>
4064<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>
4065<table>
4066<thead>
4067<tr>
4068<th align="center">State</th>
4069<th align="center">Transition Cause</th>
4070<th align="center">New State</th>
4071<th align="center">Notes</th>
4072</tr>
4073</thead>
4074<tbody>
4075<tr>
4076<td align="center">INACTIVE</td>
4077<td align="center">Camera device initiates new scan</td>
4078<td align="center">PASSIVE_<wbr/>SCAN</td>
4079<td align="center">Start AF scan,<wbr/> Lens now moving</td>
4080</tr>
4081<tr>
4082<td align="center">INACTIVE</td>
4083<td align="center">AF_<wbr/>TRIGGER</td>
4084<td align="center">NOT_<wbr/>FOCUSED_<wbr/>LOCKED</td>
4085<td align="center">AF state query,<wbr/> Lens now locked</td>
4086</tr>
4087<tr>
4088<td align="center">PASSIVE_<wbr/>SCAN</td>
4089<td align="center">Camera device completes current scan</td>
4090<td align="center">PASSIVE_<wbr/>FOCUSED</td>
4091<td align="center">End AF scan,<wbr/> Lens now locked</td>
4092</tr>
4093<tr>
4094<td align="center">PASSIVE_<wbr/>SCAN</td>
4095<td align="center">Camera device fails current scan</td>
4096<td align="center">PASSIVE_<wbr/>UNFOCUSED</td>
4097<td align="center">End AF scan,<wbr/> Lens now locked</td>
4098</tr>
4099<tr>
4100<td align="center">PASSIVE_<wbr/>SCAN</td>
4101<td align="center">AF_<wbr/>TRIGGER</td>
4102<td align="center">FOCUSED_<wbr/>LOCKED</td>
4103<td align="center">Immediate trans.<wbr/> If focus is good,<wbr/> Lens now locked</td>
4104</tr>
4105<tr>
4106<td align="center">PASSIVE_<wbr/>SCAN</td>
4107<td align="center">AF_<wbr/>TRIGGER</td>
4108<td align="center">NOT_<wbr/>FOCUSED_<wbr/>LOCKED</td>
4109<td align="center">Immediate trans.<wbr/> if focus is bad,<wbr/> Lens now locked</td>
4110</tr>
4111<tr>
4112<td align="center">PASSIVE_<wbr/>SCAN</td>
4113<td align="center">AF_<wbr/>CANCEL</td>
4114<td align="center">INACTIVE</td>
4115<td align="center">Reset lens position,<wbr/> Lens now locked</td>
4116</tr>
4117<tr>
4118<td align="center">PASSIVE_<wbr/>FOCUSED</td>
4119<td align="center">Camera device initiates new scan</td>
4120<td align="center">PASSIVE_<wbr/>SCAN</td>
4121<td align="center">Start AF scan,<wbr/> Lens now moving</td>
4122</tr>
4123<tr>
4124<td align="center">PASSIVE_<wbr/>UNFOCUSED</td>
4125<td align="center">Camera device initiates new scan</td>
4126<td align="center">PASSIVE_<wbr/>SCAN</td>
4127<td align="center">Start AF scan,<wbr/> Lens now moving</td>
4128</tr>
4129<tr>
4130<td align="center">PASSIVE_<wbr/>FOCUSED</td>
4131<td align="center">AF_<wbr/>TRIGGER</td>
4132<td align="center">FOCUSED_<wbr/>LOCKED</td>
4133<td align="center">Immediate trans.<wbr/> Lens now locked</td>
4134</tr>
4135<tr>
4136<td align="center">PASSIVE_<wbr/>UNFOCUSED</td>
4137<td align="center">AF_<wbr/>TRIGGER</td>
4138<td align="center">NOT_<wbr/>FOCUSED_<wbr/>LOCKED</td>
4139<td align="center">Immediate trans.<wbr/> Lens now locked</td>
4140</tr>
4141<tr>
4142<td align="center">FOCUSED_<wbr/>LOCKED</td>
4143<td align="center">AF_<wbr/>TRIGGER</td>
4144<td align="center">FOCUSED_<wbr/>LOCKED</td>
4145<td align="center">No effect</td>
4146</tr>
4147<tr>
4148<td align="center">FOCUSED_<wbr/>LOCKED</td>
4149<td align="center">AF_<wbr/>CANCEL</td>
4150<td align="center">INACTIVE</td>
4151<td align="center">Restart AF scan</td>
4152</tr>
4153<tr>
4154<td align="center">NOT_<wbr/>FOCUSED_<wbr/>LOCKED</td>
4155<td align="center">AF_<wbr/>TRIGGER</td>
4156<td align="center">NOT_<wbr/>FOCUSED_<wbr/>LOCKED</td>
4157<td align="center">No effect</td>
4158</tr>
4159<tr>
4160<td align="center">NOT_<wbr/>FOCUSED_<wbr/>LOCKED</td>
4161<td align="center">AF_<wbr/>CANCEL</td>
4162<td align="center">INACTIVE</td>
4163<td align="center">Restart AF scan</td>
4164</tr>
4165</tbody>
4166</table>
4167<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>
4168<table>
4169<thead>
4170<tr>
4171<th align="center">State</th>
4172<th align="center">Transition Cause</th>
4173<th align="center">New State</th>
4174<th align="center">Notes</th>
4175</tr>
4176</thead>
4177<tbody>
4178<tr>
4179<td align="center">INACTIVE</td>
4180<td align="center">Camera device initiates new scan</td>
4181<td align="center">PASSIVE_<wbr/>SCAN</td>
4182<td align="center">Start AF scan,<wbr/> Lens now moving</td>
4183</tr>
4184<tr>
4185<td align="center">INACTIVE</td>
4186<td align="center">AF_<wbr/>TRIGGER</td>
4187<td align="center">NOT_<wbr/>FOCUSED_<wbr/>LOCKED</td>
4188<td align="center">AF state query,<wbr/> Lens now locked</td>
4189</tr>
4190<tr>
4191<td align="center">PASSIVE_<wbr/>SCAN</td>
4192<td align="center">Camera device completes current scan</td>
4193<td align="center">PASSIVE_<wbr/>FOCUSED</td>
4194<td align="center">End AF scan,<wbr/> Lens now locked</td>
4195</tr>
4196<tr>
4197<td align="center">PASSIVE_<wbr/>SCAN</td>
4198<td align="center">Camera device fails current scan</td>
4199<td align="center">PASSIVE_<wbr/>UNFOCUSED</td>
4200<td align="center">End AF scan,<wbr/> Lens now locked</td>
4201</tr>
4202<tr>
4203<td align="center">PASSIVE_<wbr/>SCAN</td>
4204<td align="center">AF_<wbr/>TRIGGER</td>
4205<td align="center">FOCUSED_<wbr/>LOCKED</td>
4206<td align="center">Eventual trans.<wbr/> once focus good,<wbr/> Lens now locked</td>
4207</tr>
4208<tr>
4209<td align="center">PASSIVE_<wbr/>SCAN</td>
4210<td align="center">AF_<wbr/>TRIGGER</td>
4211<td align="center">NOT_<wbr/>FOCUSED_<wbr/>LOCKED</td>
4212<td align="center">Eventual trans.<wbr/> if cannot focus,<wbr/> Lens now locked</td>
4213</tr>
4214<tr>
4215<td align="center">PASSIVE_<wbr/>SCAN</td>
4216<td align="center">AF_<wbr/>CANCEL</td>
4217<td align="center">INACTIVE</td>
4218<td align="center">Reset lens position,<wbr/> Lens now locked</td>
4219</tr>
4220<tr>
4221<td align="center">PASSIVE_<wbr/>FOCUSED</td>
4222<td align="center">Camera device initiates new scan</td>
4223<td align="center">PASSIVE_<wbr/>SCAN</td>
4224<td align="center">Start AF scan,<wbr/> Lens now moving</td>
4225</tr>
4226<tr>
4227<td align="center">PASSIVE_<wbr/>UNFOCUSED</td>
4228<td align="center">Camera device initiates new scan</td>
4229<td align="center">PASSIVE_<wbr/>SCAN</td>
4230<td align="center">Start AF scan,<wbr/> Lens now moving</td>
4231</tr>
4232<tr>
4233<td align="center">PASSIVE_<wbr/>FOCUSED</td>
4234<td align="center">AF_<wbr/>TRIGGER</td>
4235<td align="center">FOCUSED_<wbr/>LOCKED</td>
4236<td align="center">Immediate trans.<wbr/> Lens now locked</td>
4237</tr>
4238<tr>
4239<td align="center">PASSIVE_<wbr/>UNFOCUSED</td>
4240<td align="center">AF_<wbr/>TRIGGER</td>
4241<td align="center">NOT_<wbr/>FOCUSED_<wbr/>LOCKED</td>
4242<td align="center">Immediate trans.<wbr/> Lens now locked</td>
4243</tr>
4244<tr>
4245<td align="center">FOCUSED_<wbr/>LOCKED</td>
4246<td align="center">AF_<wbr/>TRIGGER</td>
4247<td align="center">FOCUSED_<wbr/>LOCKED</td>
4248<td align="center">No effect</td>
4249</tr>
4250<tr>
4251<td align="center">FOCUSED_<wbr/>LOCKED</td>
4252<td align="center">AF_<wbr/>CANCEL</td>
4253<td align="center">INACTIVE</td>
4254<td align="center">Restart AF scan</td>
4255</tr>
4256<tr>
4257<td align="center">NOT_<wbr/>FOCUSED_<wbr/>LOCKED</td>
4258<td align="center">AF_<wbr/>TRIGGER</td>
4259<td align="center">NOT_<wbr/>FOCUSED_<wbr/>LOCKED</td>
4260<td align="center">No effect</td>
4261</tr>
4262<tr>
4263<td align="center">NOT_<wbr/>FOCUSED_<wbr/>LOCKED</td>
4264<td align="center">AF_<wbr/>CANCEL</td>
4265<td align="center">INACTIVE</td>
4266<td align="center">Restart AF scan</td>
4267</tr>
4268</tbody>
4269</table>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004270 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08004271 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08004272
4273
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08004274 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
4275 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004276
4277
4278 <tr class="entry" id="dynamic_android.control.afTriggerId">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08004279 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08004280 android.<wbr/>control.<wbr/>af<wbr/>Trigger<wbr/>Id
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08004281 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004282 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08004283 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004284
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07004285 <span class="entry_type_visibility"> [hidden]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004286
4287
4288 </td> <!-- entry_type -->
4289
4290 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08004291 <p>The ID sent with the latest
4292CAMERA2_<wbr/>TRIGGER_<wbr/>AUTOFOCUS call</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004293 </td>
4294
4295 <td class="entry_units">
4296 </td>
4297
4298 <td class="entry_range">
4299 </td>
4300
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08004301 <td class="entry_tags">
4302 </td>
4303
4304 </tr>
4305 <tr class="entries_header">
4306 <th class="th_details" colspan="5">Details</th>
4307 </tr>
4308 <tr class="entry_cont">
4309 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08004310 <p>Must be 0 if no CAMERA2_<wbr/>TRIGGER_<wbr/>AUTOFOCUS trigger
4311received yet by HAL.<wbr/> Always updated even if AF algorithm
4312ignores the trigger</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004313 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08004314 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08004315
4316
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08004317 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
4318 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004319
4320
4321 <tr class="entry" id="dynamic_android.control.awbMode">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08004322 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08004323 android.<wbr/>control.<wbr/>awb<wbr/>Mode
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08004324 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004325 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08004326 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004327
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07004328 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004329
4330 <ul class="entry_type_enum">
4331 <li>
4332 <span class="entry_type_enum_name">OFF</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08004333 <span class="entry_type_enum_notes"><p>The camera device's auto white balance routine is disabled;
4334the application-selected color transform matrix
4335(<a href="#controls_android.colorCorrection.transform">android.<wbr/>color<wbr/>Correction.<wbr/>transform</a>) and gains
4336(<a href="#controls_android.colorCorrection.gains">android.<wbr/>color<wbr/>Correction.<wbr/>gains</a>) are used by the camera
4337device for manual white balance control.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004338 </li>
4339 <li>
4340 <span class="entry_type_enum_name">AUTO</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08004341 <span class="entry_type_enum_notes"><p>The camera device's auto white balance routine is active;
4342the application's values for android.<wbr/>color<wbr/>Correction.<wbr/>transform
4343and <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 -08004344 </li>
4345 <li>
4346 <span class="entry_type_enum_name">INCANDESCENT</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08004347 <span class="entry_type_enum_notes"><p>The camera device's auto white balance routine is disabled;
4348the camera device uses incandescent light as the assumed scene
4349illumination for white balance.<wbr/> While the exact white balance
4350transforms are up to the camera device,<wbr/> they will approximately
4351match the CIE standard illuminant A.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004352 </li>
4353 <li>
4354 <span class="entry_type_enum_name">FLUORESCENT</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08004355 <span class="entry_type_enum_notes"><p>The camera device's auto white balance routine is disabled;
4356the camera device uses fluorescent light as the assumed scene
4357illumination for white balance.<wbr/> While the exact white balance
4358transforms are up to the camera device,<wbr/> they will approximately
4359match the CIE standard illuminant F2.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004360 </li>
4361 <li>
4362 <span class="entry_type_enum_name">WARM_FLUORESCENT</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08004363 <span class="entry_type_enum_notes"><p>The camera device's auto white balance routine is disabled;
4364the camera device uses warm fluorescent light as the assumed scene
4365illumination for white balance.<wbr/> While the exact white balance
4366transforms are up to the camera device,<wbr/> they will approximately
4367match the CIE standard illuminant F4.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004368 </li>
4369 <li>
4370 <span class="entry_type_enum_name">DAYLIGHT</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08004371 <span class="entry_type_enum_notes"><p>The camera device's auto white balance routine is disabled;
4372the camera device uses daylight light as the assumed scene
4373illumination for white balance.<wbr/> While the exact white balance
4374transforms are up to the camera device,<wbr/> they will approximately
4375match the CIE standard illuminant D65.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004376 </li>
4377 <li>
4378 <span class="entry_type_enum_name">CLOUDY_DAYLIGHT</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08004379 <span class="entry_type_enum_notes"><p>The camera device's auto white balance routine is disabled;
4380the camera device uses cloudy daylight light as the assumed scene
4381illumination for white balance.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004382 </li>
4383 <li>
4384 <span class="entry_type_enum_name">TWILIGHT</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08004385 <span class="entry_type_enum_notes"><p>The camera device's auto white balance routine is disabled;
4386the camera device uses twilight light as the assumed scene
4387illumination for white balance.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004388 </li>
4389 <li>
4390 <span class="entry_type_enum_name">SHADE</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08004391 <span class="entry_type_enum_notes"><p>The camera device's auto white balance routine is disabled;
4392the camera device uses shade light as the assumed scene
4393illumination for white balance.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004394 </li>
4395 </ul>
4396
4397 </td> <!-- entry_type -->
4398
4399 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08004400 <p>Whether AWB is currently setting the color
4401transform fields,<wbr/> and what its illumination target
4402is</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004403 </td>
4404
4405 <td class="entry_units">
4406 </td>
4407
4408 <td class="entry_range">
Zhijun He7787f7f2014-01-14 16:30:31 -08004409 <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 -08004410 </td>
4411
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004412 <td class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08004413 <ul class="entry_tags">
4414 <li><a href="#tag_BC">BC</a></li>
4415 <li><a href="#tag_AWB">AWB</a></li>
4416 </ul>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004417 </td>
4418
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08004419 </tr>
4420 <tr class="entries_header">
4421 <th class="th_details" colspan="5">Details</th>
4422 </tr>
4423 <tr class="entry_cont">
4424 <td class="entry_details" colspan="5">
Zhijun He7787f7f2014-01-14 16:30:31 -08004425 <p>This control is only effective if <a href="#controls_android.control.mode">android.<wbr/>control.<wbr/>mode</a> is AUTO.<wbr/></p>
4426<p>When set to the ON mode,<wbr/> the camera device's auto white balance
4427routine is enabled,<wbr/> overriding the application's selected
4428<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
4429<a href="#controls_android.colorCorrection.mode">android.<wbr/>color<wbr/>Correction.<wbr/>mode</a>.<wbr/></p>
4430<p>When set to the OFF mode,<wbr/> the camera device's auto white balance
4431routine is disabled.<wbr/> The applicantion manually controls the white
4432balance by <a href="#controls_android.colorCorrection.transform">android.<wbr/>color<wbr/>Correction.<wbr/>transform</a>,<wbr/> android.<wbr/>color<wbr/>Correction.<wbr/>gains
4433and <a href="#controls_android.colorCorrection.mode">android.<wbr/>color<wbr/>Correction.<wbr/>mode</a>.<wbr/></p>
4434<p>When set to any other modes,<wbr/> the camera device's auto white balance
4435routine is disabled.<wbr/> The camera device uses each particular illumination
4436target for white balance adjustment.<wbr/></p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08004437 </td>
4438 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08004439
4440
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08004441 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
4442 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004443
4444
4445 <tr class="entry" id="dynamic_android.control.awbRegions">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08004446 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08004447 android.<wbr/>control.<wbr/>awb<wbr/>Regions
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08004448 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004449 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08004450 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004451 <span class="entry_type_container">x</span>
4452
4453 <span class="entry_type_array">
4454 5 x area_count
4455 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07004456 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004457
4458
4459 </td> <!-- entry_type -->
4460
4461 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08004462 <p>List of areas to use for illuminant
Ruben Brunk76e4c7d2014-01-31 11:05:30 -08004463estimation.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004464 </td>
4465
4466 <td class="entry_units">
4467 </td>
4468
4469 <td class="entry_range">
Ruben Brunk76e4c7d2014-01-31 11:05:30 -08004470 <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 -08004471 </td>
4472
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08004473 <td class="entry_tags">
4474 <ul class="entry_tags">
4475 <li><a href="#tag_BC">BC</a></li>
4476 </ul>
4477 </td>
4478
4479 </tr>
4480 <tr class="entries_header">
4481 <th class="th_details" colspan="5">Details</th>
4482 </tr>
4483 <tr class="entry_cont">
4484 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08004485 <p>Only used in AUTO mode.<wbr/></p>
4486<p>Each area is a rectangle plus weight: xmin,<wbr/> ymin,<wbr/>
Ruben Brunk76e4c7d2014-01-31 11:05:30 -08004487xmax,<wbr/> ymax,<wbr/> weight.<wbr/> The rectangle is defined to be inclusive of the
Igor Murashkin0b080452013-12-27 15:30:25 -08004488specified coordinates.<wbr/></p>
4489<p>The coordinate system is based on the active pixel array,<wbr/>
4490with (0,<wbr/>0) being the top-left pixel in the active pixel array,<wbr/> and
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08004491(<a href="#static_android.sensor.info.activeArraySize">android.<wbr/>sensor.<wbr/>info.<wbr/>active<wbr/>Array<wbr/>Size</a>.<wbr/>width - 1,<wbr/>
4492<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 -08004493bottom-right pixel in the active pixel array.<wbr/> The weight
4494should be nonnegative.<wbr/></p>
4495<p>If all regions have 0 weight,<wbr/> then no specific metering area
4496needs to be used by the HAL.<wbr/> If the metering region is
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08004497outside 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 -08004498should ignore the sections outside the region and output the
Ruben Brunk76e4c7d2014-01-31 11:05:30 -08004499used sections in the frame metadata.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004500 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08004501 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08004502
4503
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08004504 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
4505 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004506
4507
4508 <tr class="entry" id="dynamic_android.control.awbState">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08004509 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08004510 android.<wbr/>control.<wbr/>awb<wbr/>State
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08004511 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004512 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08004513 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004514
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07004515 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004516
4517 <ul class="entry_type_enum">
4518 <li>
4519 <span class="entry_type_enum_name">INACTIVE</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08004520 <span class="entry_type_enum_notes"><p>AWB is not in auto mode.<wbr/> When a camera device is opened,<wbr/> it
4521starts in this state.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004522 </li>
4523 <li>
4524 <span class="entry_type_enum_name">SEARCHING</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08004525 <span class="entry_type_enum_notes"><p>AWB doesn't yet have a good set of control
Zhijun He92e698d2014-01-13 16:24:31 -08004526values for the current scene.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004527 </li>
4528 <li>
4529 <span class="entry_type_enum_name">CONVERGED</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08004530 <span class="entry_type_enum_notes"><p>AWB has a good set of control values for the
Zhijun He92e698d2014-01-13 16:24:31 -08004531current scene.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004532 </li>
4533 <li>
4534 <span class="entry_type_enum_name">LOCKED</span>
Zhijun He92e698d2014-01-13 16:24:31 -08004535 <span class="entry_type_enum_notes"><p>AWB has been locked.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004536 </li>
4537 </ul>
4538
4539 </td> <!-- entry_type -->
4540
4541 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08004542 <p>Current state of AWB algorithm</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004543 </td>
4544
4545 <td class="entry_units">
4546 </td>
4547
4548 <td class="entry_range">
4549 </td>
4550
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08004551 <td class="entry_tags">
4552 </td>
4553
4554 </tr>
4555 <tr class="entries_header">
4556 <th class="th_details" colspan="5">Details</th>
4557 </tr>
4558 <tr class="entry_cont">
4559 <td class="entry_details" colspan="5">
Zhijun He92e698d2014-01-13 16:24:31 -08004560 <p>Switching between or enabling AWB modes (<a href="#controls_android.control.awbMode">android.<wbr/>control.<wbr/>awb<wbr/>Mode</a>) always
4561resets the AWB state to INACTIVE.<wbr/> Similarly,<wbr/> switching between <a href="#controls_android.control.mode">android.<wbr/>control.<wbr/>mode</a>,<wbr/>
4562or <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
4563the algorithm states to INACTIVE.<wbr/></p>
4564<p>The camera device can do several state transitions between two results,<wbr/> if it is
4565allowed by the state transition table.<wbr/> So INACTIVE may never actually be seen in
4566a result.<wbr/></p>
4567<p>The state in the result is the state for this image (in sync with this image): if
4568AWB state becomes CONVERGED,<wbr/> then the image data associated with this result should
4569be good to use.<wbr/></p>
4570<p>Below are state transition tables for different AWB modes.<wbr/></p>
4571<p>When <code><a href="#controls_android.control.awbMode">android.<wbr/>control.<wbr/>awb<wbr/>Mode</a> != AWB_<wbr/>MODE_<wbr/>AUTO</code>:</p>
4572<table>
4573<thead>
4574<tr>
4575<th align="center">State</th>
4576<th align="center">Transition Cause</th>
4577<th align="center">New State</th>
4578<th align="center">Notes</th>
4579</tr>
4580</thead>
4581<tbody>
4582<tr>
4583<td align="center">INACTIVE</td>
4584<td align="center"></td>
4585<td align="center">INACTIVE</td>
4586<td align="center">Camera device auto white balance algorithm is disabled</td>
4587</tr>
4588</tbody>
4589</table>
4590<p>When <a href="#controls_android.control.awbMode">android.<wbr/>control.<wbr/>awb<wbr/>Mode</a> is AWB_<wbr/>MODE_<wbr/>AUTO:</p>
4591<table>
4592<thead>
4593<tr>
4594<th align="center">State</th>
4595<th align="center">Transition Cause</th>
4596<th align="center">New State</th>
4597<th align="center">Notes</th>
4598</tr>
4599</thead>
4600<tbody>
4601<tr>
4602<td align="center">INACTIVE</td>
4603<td align="center">Camera device initiates AWB scan</td>
4604<td align="center">SEARCHING</td>
4605<td align="center">Values changing</td>
4606</tr>
4607<tr>
4608<td align="center">INACTIVE</td>
4609<td align="center"><a href="#controls_android.control.awbLock">android.<wbr/>control.<wbr/>awb<wbr/>Lock</a> is ON</td>
4610<td align="center">LOCKED</td>
4611<td align="center">Values locked</td>
4612</tr>
4613<tr>
4614<td align="center">SEARCHING</td>
4615<td align="center">Camera device finishes AWB scan</td>
4616<td align="center">CONVERGED</td>
4617<td align="center">Good values,<wbr/> not changing</td>
4618</tr>
4619<tr>
4620<td align="center">SEARCHING</td>
4621<td align="center"><a href="#controls_android.control.awbLock">android.<wbr/>control.<wbr/>awb<wbr/>Lock</a> is ON</td>
4622<td align="center">LOCKED</td>
4623<td align="center">Values locked</td>
4624</tr>
4625<tr>
4626<td align="center">CONVERGED</td>
4627<td align="center">Camera device initiates AWB scan</td>
4628<td align="center">SEARCHING</td>
4629<td align="center">Values changing</td>
4630</tr>
4631<tr>
4632<td align="center">CONVERGED</td>
4633<td align="center"><a href="#controls_android.control.awbLock">android.<wbr/>control.<wbr/>awb<wbr/>Lock</a> is ON</td>
4634<td align="center">LOCKED</td>
4635<td align="center">Values locked</td>
4636</tr>
4637<tr>
4638<td align="center">LOCKED</td>
4639<td align="center"><a href="#controls_android.control.awbLock">android.<wbr/>control.<wbr/>awb<wbr/>Lock</a> is OFF</td>
4640<td align="center">SEARCHING</td>
4641<td align="center">Values not good after unlock</td>
4642</tr>
4643<tr>
4644<td align="center">LOCKED</td>
4645<td align="center"><a href="#controls_android.control.awbLock">android.<wbr/>control.<wbr/>awb<wbr/>Lock</a> is OFF</td>
4646<td align="center">CONVERGED</td>
4647<td align="center">Values good after unlock</td>
4648</tr>
4649</tbody>
4650</table>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004651 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08004652 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08004653
4654
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08004655 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
4656 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004657
4658
4659 <tr class="entry" id="dynamic_android.control.mode">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08004660 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08004661 android.<wbr/>control.<wbr/>mode
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08004662 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004663 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08004664 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004665
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07004666 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004667
4668 <ul class="entry_type_enum">
4669 <li>
4670 <span class="entry_type_enum_name">OFF</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08004671 <span class="entry_type_enum_notes"><p>Full application control of pipeline.<wbr/> All 3A
4672routines are disabled,<wbr/> no other settings in
4673android.<wbr/>control.<wbr/>* have any effect</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004674 </li>
4675 <li>
4676 <span class="entry_type_enum_name">AUTO</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08004677 <span class="entry_type_enum_notes"><p>Use settings for each individual 3A routine.<wbr/>
4678Manual control of capture parameters is disabled.<wbr/> All
4679controls in android.<wbr/>control.<wbr/>* besides sceneMode take
4680effect</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004681 </li>
4682 <li>
4683 <span class="entry_type_enum_name">USE_SCENE_MODE</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08004684 <span class="entry_type_enum_notes"><p>Use specific scene mode.<wbr/> Enabling this disables
4685control.<wbr/>aeMode,<wbr/> control.<wbr/>awbMode and control.<wbr/>afMode
4686controls; the HAL must ignore those settings while
4687USE_<wbr/>SCENE_<wbr/>MODE is active (except for FACE_<wbr/>PRIORITY
4688scene mode).<wbr/> Other control entries are still active.<wbr/>
4689This setting can only be used if availableSceneModes !=
4690UNSUPPORTED</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004691 </li>
4692 </ul>
4693
4694 </td> <!-- entry_type -->
4695
4696 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08004697 <p>Overall mode of 3A control
4698routines</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004699 </td>
4700
4701 <td class="entry_units">
4702 </td>
4703
4704 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08004705 <p>all must be supported</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004706 </td>
4707
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08004708 <td class="entry_tags">
4709 <ul class="entry_tags">
4710 <li><a href="#tag_BC">BC</a></li>
4711 </ul>
4712 </td>
4713
4714 </tr>
4715 <tr class="entries_header">
4716 <th class="th_details" colspan="5">Details</th>
4717 </tr>
4718 <tr class="entry_cont">
4719 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08004720 <p>High-level 3A control.<wbr/> When set to OFF,<wbr/> all 3A control
Zhijun Hef90eeaf2014-01-16 12:13:35 -08004721by the camera device is disabled.<wbr/> The application must set the fields for
Igor Murashkin0b080452013-12-27 15:30:25 -08004722capture parameters itself.<wbr/></p>
4723<p>When set to AUTO,<wbr/> the individual algorithm controls in
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08004724android.<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 -08004725<p>When set to USE_<wbr/>SCENE_<wbr/>MODE,<wbr/> the individual controls in
Zhijun Hef90eeaf2014-01-16 12:13:35 -08004726android.<wbr/>control.<wbr/>* are mostly disabled,<wbr/> and the camera device implements
Igor Murashkin0b080452013-12-27 15:30:25 -08004727one of the scene mode settings (such as ACTION,<wbr/> SUNSET,<wbr/> or PARTY)
Zhijun Hef90eeaf2014-01-16 12:13:35 -08004728as it wishes.<wbr/> The camera device scene mode 3A settings are provided by
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08004729<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 -08004730 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08004731 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08004732
4733
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08004734 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
4735 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004736
4737
4738
4739 <!-- end of kind -->
4740 </tbody>
4741
4742 <!-- end of section -->
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08004743 <tr><td colspan="6" id="section_demosaic" class="section">demosaic</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004744
4745
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08004746 <tr><td colspan="6" class="kind">controls</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004747
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07004748 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004749 <tr>
4750 <th class="th_name">Property Name</th>
4751 <th class="th_type">Type</th>
4752 <th class="th_description">Description</th>
4753 <th class="th_units">Units</th>
4754 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004755 <th class="th_tags">Tags</th>
4756 </tr>
4757 </thead>
4758
4759 <tbody>
4760
4761
4762
4763
4764
4765
4766
4767
4768
4769
4770 <tr class="entry" id="controls_android.demosaic.mode">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08004771 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -08004772 android.<wbr/>demosaic.<wbr/>mode
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08004773 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004774 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08004775 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004776
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07004777 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004778
4779 <ul class="entry_type_enum">
4780 <li>
4781 <span class="entry_type_enum_name">FAST</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08004782 <span class="entry_type_enum_notes"><p>Minimal or no slowdown of frame rate compared to
4783Bayer RAW output</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004784 </li>
4785 <li>
4786 <span class="entry_type_enum_name">HIGH_QUALITY</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08004787 <span class="entry_type_enum_notes"><p>High-quality may reduce output frame
4788rate</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004789 </li>
4790 </ul>
4791
4792 </td> <!-- entry_type -->
4793
4794 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08004795 <p>Controls the quality of the demosaicing
4796processing</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004797 </td>
4798
4799 <td class="entry_units">
4800 </td>
4801
4802 <td class="entry_range">
4803 </td>
4804
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004805 <td class="entry_tags">
4806 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08004807 <li><a href="#tag_V1">V1</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004808 </ul>
4809 </td>
4810
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08004811 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08004812
4813
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08004814 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
4815 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004816
4817
4818
4819 <!-- end of kind -->
4820 </tbody>
4821
4822 <!-- end of section -->
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08004823 <tr><td colspan="6" id="section_edge" class="section">edge</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004824
4825
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08004826 <tr><td colspan="6" class="kind">controls</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004827
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07004828 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004829 <tr>
4830 <th class="th_name">Property Name</th>
4831 <th class="th_type">Type</th>
4832 <th class="th_description">Description</th>
4833 <th class="th_units">Units</th>
4834 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004835 <th class="th_tags">Tags</th>
4836 </tr>
4837 </thead>
4838
4839 <tbody>
4840
4841
4842
4843
4844
4845
4846
4847
4848
4849
4850 <tr class="entry" id="controls_android.edge.mode">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08004851 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08004852 android.<wbr/>edge.<wbr/>mode
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08004853 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004854 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08004855 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004856
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07004857 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004858
4859 <ul class="entry_type_enum">
4860 <li>
4861 <span class="entry_type_enum_name">OFF</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08004862 <span class="entry_type_enum_notes"><p>No edge enhancement is applied</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004863 </li>
4864 <li>
4865 <span class="entry_type_enum_name">FAST</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08004866 <span class="entry_type_enum_notes"><p>Must not slow down frame rate relative to sensor
4867output</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004868 </li>
4869 <li>
4870 <span class="entry_type_enum_name">HIGH_QUALITY</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08004871 <span class="entry_type_enum_notes"><p>Frame rate may be reduced by high
4872quality</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004873 </li>
4874 </ul>
4875
4876 </td> <!-- entry_type -->
4877
4878 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08004879 <p>Operation mode for edge
4880enhancement</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004881 </td>
4882
4883 <td class="entry_units">
4884 </td>
4885
4886 <td class="entry_range">
4887 </td>
4888
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08004889 <td class="entry_tags">
4890 </td>
4891
4892 </tr>
4893 <tr class="entries_header">
4894 <th class="th_details" colspan="5">Details</th>
4895 </tr>
4896 <tr class="entry_cont">
4897 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08004898 <p>Edge/<wbr/>sharpness/<wbr/>detail enhancement.<wbr/> OFF means no
4899enhancement will be applied by the HAL.<wbr/></p>
Zhijun Hef90eeaf2014-01-16 12:13:35 -08004900<p>FAST/<wbr/>HIGH_<wbr/>QUALITY both mean camera device determined enhancement
Igor Murashkin0b080452013-12-27 15:30:25 -08004901will be applied.<wbr/> HIGH_<wbr/>QUALITY mode indicates that the
Zhijun Hef90eeaf2014-01-16 12:13:35 -08004902camera device will use the highest-quality enhancement algorithms,<wbr/>
4903even if it slows down capture rate.<wbr/> FAST means the camera device will
Igor Murashkin0b080452013-12-27 15:30:25 -08004904not slow down capture rate when applying edge enhancement.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004905 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08004906 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08004907
4908
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08004909 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
4910 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004911
4912
4913 <tr class="entry" id="controls_android.edge.strength">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08004914 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -08004915 android.<wbr/>edge.<wbr/>strength
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08004916 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004917 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08004918 <span class="entry_type_name">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004919
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07004920 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004921
4922
4923 </td> <!-- entry_type -->
4924
4925 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08004926 <p>Control the amount of edge enhancement
4927applied to the images</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004928 </td>
4929
4930 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -08004931 1-10; 10 is maximum sharpening
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004932 </td>
4933
4934 <td class="entry_range">
4935 </td>
4936
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004937 <td class="entry_tags">
4938 </td>
4939
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08004940 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08004941
4942
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08004943 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
4944 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004945
4946
4947
4948 <!-- end of kind -->
4949 </tbody>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08004950 <tr><td colspan="6" class="kind">dynamic</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004951
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07004952 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004953 <tr>
4954 <th class="th_name">Property Name</th>
4955 <th class="th_type">Type</th>
4956 <th class="th_description">Description</th>
4957 <th class="th_units">Units</th>
4958 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004959 <th class="th_tags">Tags</th>
4960 </tr>
4961 </thead>
4962
4963 <tbody>
4964
4965
4966
4967
4968
4969
4970
4971
4972
4973
4974 <tr class="entry" id="dynamic_android.edge.mode">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08004975 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08004976 android.<wbr/>edge.<wbr/>mode
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08004977 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004978 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08004979 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004980
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07004981 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004982
4983 <ul class="entry_type_enum">
4984 <li>
4985 <span class="entry_type_enum_name">OFF</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08004986 <span class="entry_type_enum_notes"><p>No edge enhancement is applied</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004987 </li>
4988 <li>
4989 <span class="entry_type_enum_name">FAST</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08004990 <span class="entry_type_enum_notes"><p>Must not slow down frame rate relative to sensor
4991output</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004992 </li>
4993 <li>
4994 <span class="entry_type_enum_name">HIGH_QUALITY</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08004995 <span class="entry_type_enum_notes"><p>Frame rate may be reduced by high
4996quality</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004997 </li>
4998 </ul>
4999
5000 </td> <!-- entry_type -->
5001
5002 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08005003 <p>Operation mode for edge
5004enhancement</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005005 </td>
5006
5007 <td class="entry_units">
5008 </td>
5009
5010 <td class="entry_range">
5011 </td>
5012
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005013 <td class="entry_tags">
5014 </td>
5015
5016 </tr>
5017 <tr class="entries_header">
5018 <th class="th_details" colspan="5">Details</th>
5019 </tr>
5020 <tr class="entry_cont">
5021 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08005022 <p>Edge/<wbr/>sharpness/<wbr/>detail enhancement.<wbr/> OFF means no
5023enhancement will be applied by the HAL.<wbr/></p>
Zhijun Hef90eeaf2014-01-16 12:13:35 -08005024<p>FAST/<wbr/>HIGH_<wbr/>QUALITY both mean camera device determined enhancement
Igor Murashkin0b080452013-12-27 15:30:25 -08005025will be applied.<wbr/> HIGH_<wbr/>QUALITY mode indicates that the
Zhijun Hef90eeaf2014-01-16 12:13:35 -08005026camera device will use the highest-quality enhancement algorithms,<wbr/>
5027even if it slows down capture rate.<wbr/> FAST means the camera device will
Igor Murashkin0b080452013-12-27 15:30:25 -08005028not slow down capture rate when applying edge enhancement.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005029 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005030 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005031
5032
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005033 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
5034 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005035
5036
5037
5038 <!-- end of kind -->
5039 </tbody>
5040
5041 <!-- end of section -->
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005042 <tr><td colspan="6" id="section_flash" class="section">flash</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005043
5044
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005045 <tr><td colspan="6" class="kind">controls</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005046
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07005047 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005048 <tr>
5049 <th class="th_name">Property Name</th>
5050 <th class="th_type">Type</th>
5051 <th class="th_description">Description</th>
5052 <th class="th_units">Units</th>
5053 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005054 <th class="th_tags">Tags</th>
5055 </tr>
5056 </thead>
5057
5058 <tbody>
5059
5060
5061
5062
5063
5064
5065
5066
5067
5068
5069 <tr class="entry" id="controls_android.flash.firingPower">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005070 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08005071 android.<wbr/>flash.<wbr/>firing<wbr/>Power
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005072 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005073 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08005074 <span class="entry_type_name">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005075
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07005076 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005077
5078
5079 </td> <!-- entry_type -->
5080
5081 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08005082 <p>Power for flash firing/<wbr/>torch</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005083 </td>
5084
5085 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -08005086 10 is max power; 0 is no flash.<wbr/> Linear
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005087 </td>
5088
5089 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08005090 <p>0 - 10</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005091 </td>
5092
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005093 <td class="entry_tags">
5094 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08005095 <li><a href="#tag_V1">V1</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005096 </ul>
5097 </td>
5098
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005099 </tr>
5100 <tr class="entries_header">
5101 <th class="th_details" colspan="5">Details</th>
5102 </tr>
5103 <tr class="entry_cont">
5104 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08005105 <p>Power for snapshot may use a different scale than
5106for torch mode.<wbr/> Only one entry for torch mode will be
5107used</p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005108 </td>
5109 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005110
5111
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005112 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
5113 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005114
5115
5116 <tr class="entry" id="controls_android.flash.firingTime">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005117 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08005118 android.<wbr/>flash.<wbr/>firing<wbr/>Time
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005119 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005120 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08005121 <span class="entry_type_name">int64</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005122
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07005123 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005124
5125
5126 </td> <!-- entry_type -->
5127
5128 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08005129 <p>Firing time of flash relative to start of
5130exposure</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005131 </td>
5132
5133 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -08005134 nanoseconds
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005135 </td>
5136
5137 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08005138 <p>0-(exposure time-flash duration)</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005139 </td>
5140
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005141 <td class="entry_tags">
5142 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08005143 <li><a href="#tag_V1">V1</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005144 </ul>
5145 </td>
5146
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005147 </tr>
5148 <tr class="entries_header">
5149 <th class="th_details" colspan="5">Details</th>
5150 </tr>
5151 <tr class="entry_cont">
5152 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08005153 <p>Clamped to (0,<wbr/> exposure time - flash
5154duration).<wbr/></p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005155 </td>
5156 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005157
5158
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005159 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
5160 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005161
5162
5163 <tr class="entry" id="controls_android.flash.mode">
Zhijun Heea27bc32014-01-15 13:47:59 -08005164 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08005165 android.<wbr/>flash.<wbr/>mode
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005166 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005167 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08005168 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005169
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07005170 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005171
5172 <ul class="entry_type_enum">
5173 <li>
5174 <span class="entry_type_enum_name">OFF</span>
Zhijun Heea27bc32014-01-15 13:47:59 -08005175 <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 -08005176 </li>
5177 <li>
5178 <span class="entry_type_enum_name">SINGLE</span>
Zhijun Heea27bc32014-01-15 13:47:59 -08005179 <span class="entry_type_enum_notes"><p>If the flash is available and charged,<wbr/> fire flash
5180for this capture based on <a href="#controls_android.flash.firingPower">android.<wbr/>flash.<wbr/>firing<wbr/>Power</a> and
5181<a href="#controls_android.flash.firingTime">android.<wbr/>flash.<wbr/>firing<wbr/>Time</a>.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005182 </li>
5183 <li>
5184 <span class="entry_type_enum_name">TORCH</span>
Zhijun Heea27bc32014-01-15 13:47:59 -08005185 <span class="entry_type_enum_notes"><p>Transition flash to continuously on.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005186 </li>
5187 </ul>
5188
5189 </td> <!-- entry_type -->
5190
5191 <td class="entry_description">
Zhijun Heea27bc32014-01-15 13:47:59 -08005192 <p>The desired mode for for the camera device's flash control.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005193 </td>
5194
5195 <td class="entry_units">
5196 </td>
5197
5198 <td class="entry_range">
5199 </td>
5200
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005201 <td class="entry_tags">
5202 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08005203 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005204 </ul>
5205 </td>
5206
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005207 </tr>
Zhijun Heea27bc32014-01-15 13:47:59 -08005208 <tr class="entries_header">
5209 <th class="th_details" colspan="5">Details</th>
5210 </tr>
5211 <tr class="entry_cont">
5212 <td class="entry_details" colspan="5">
5213 <p>This control is only effective when flash unit is available
Zhijun Hebdc94c42014-01-21 18:28:30 -08005214(<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 -08005215<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/>
5216Otherwise,<wbr/> the camera device auto-exposure related flash control (ON_<wbr/>AUTO_<wbr/>FLASH,<wbr/>
5217ON_<wbr/>ALWAYS_<wbr/>FLASH,<wbr/> or ON_<wbr/>AUTO_<wbr/>FLASH_<wbr/>REDEYE) will override this control.<wbr/></p>
5218<p>When set to OFF,<wbr/> the camera device will not fire flash for this capture.<wbr/></p>
5219<p>When set to SINGLE,<wbr/> the camera device will fire flash regardless of the camera
5220device's auto-exposure routine's result.<wbr/> When used in still capture case,<wbr/> this
5221control should be used along with AE precapture metering sequence
5222(<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>
5223<p>When set to TORCH,<wbr/> the flash will be on continuously.<wbr/> This mode can be used
5224for 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 -08005225<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 -08005226 </td>
5227 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005228
5229
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005230 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
5231 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005232
5233
5234
5235 <!-- end of kind -->
5236 </tbody>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005237 <tr><td colspan="6" class="kind">static</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005238
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07005239 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005240 <tr>
5241 <th class="th_name">Property Name</th>
5242 <th class="th_type">Type</th>
5243 <th class="th_description">Description</th>
5244 <th class="th_units">Units</th>
5245 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005246 <th class="th_tags">Tags</th>
5247 </tr>
5248 </thead>
5249
5250 <tbody>
5251
5252
5253
5254
5255
5256
5257
5258
5259
5260
5261
5262
5263 <tr class="entry" id="static_android.flash.info.available">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005264 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08005265 android.<wbr/>flash.<wbr/>info.<wbr/>available
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005266 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005267 <td class="entry_type">
Zhijun He5169ce12014-01-24 16:48:25 -08005268 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005269
Zhijun He5169ce12014-01-24 16:48:25 -08005270 <span class="entry_type_visibility"> [public as boolean]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005271
Zhijun He5169ce12014-01-24 16:48:25 -08005272 <ul class="entry_type_enum">
5273 <li>
5274 <span class="entry_type_enum_name">FALSE</span>
5275 </li>
5276 <li>
5277 <span class="entry_type_enum_name">TRUE</span>
5278 </li>
5279 </ul>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005280
5281 </td> <!-- entry_type -->
5282
5283 <td class="entry_description">
Zhijun He5169ce12014-01-24 16:48:25 -08005284 <p>Whether this camera device has a
5285flash.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005286 </td>
5287
5288 <td class="entry_units">
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005289 </td>
5290
5291 <td class="entry_range">
5292 </td>
5293
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005294 <td class="entry_tags">
5295 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08005296 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005297 </ul>
5298 </td>
5299
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005300 </tr>
5301 <tr class="entries_header">
5302 <th class="th_details" colspan="5">Details</th>
5303 </tr>
5304 <tr class="entry_cont">
5305 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08005306 <p>If no flash,<wbr/> none of the flash controls do
Zhijun He5169ce12014-01-24 16:48:25 -08005307anything.<wbr/> All other metadata should return 0.<wbr/></p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005308 </td>
5309 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005310
5311
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005312 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
5313 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005314
5315
5316 <tr class="entry" id="static_android.flash.info.chargeDuration">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005317 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08005318 android.<wbr/>flash.<wbr/>info.<wbr/>charge<wbr/>Duration
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005319 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005320 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08005321 <span class="entry_type_name">int64</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005322
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07005323 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005324
5325
5326 </td> <!-- entry_type -->
5327
5328 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08005329 <p>Time taken before flash can fire
5330again</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005331 </td>
5332
5333 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -08005334 nanoseconds
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005335 </td>
5336
5337 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08005338 <p>0-1e9</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005339 </td>
5340
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005341 <td class="entry_tags">
5342 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08005343 <li><a href="#tag_V1">V1</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005344 </ul>
5345 </td>
5346
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005347 </tr>
5348 <tr class="entries_header">
5349 <th class="th_details" colspan="5">Details</th>
5350 </tr>
5351 <tr class="entry_cont">
5352 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08005353 <p>1 second too long/<wbr/>too short for recharge? Should
5354this be power-dependent?</p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005355 </td>
5356 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005357
5358
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005359 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
5360 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005361
5362
5363
5364
5365
5366 <tr class="entry" id="static_android.flash.colorTemperature">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005367 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -08005368 android.<wbr/>flash.<wbr/>color<wbr/>Temperature
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005369 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005370 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08005371 <span class="entry_type_name">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005372
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07005373 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005374
5375
5376 </td> <!-- entry_type -->
5377
5378 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08005379 <p>The x,<wbr/>y whitepoint of the
5380flash</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005381 </td>
5382
5383 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -08005384 pair of floats
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005385 </td>
5386
5387 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08005388 <p>0-1 for both</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005389 </td>
5390
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005391 <td class="entry_tags">
5392 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08005393 <li><a href="#tag_ADV">ADV</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005394 </ul>
5395 </td>
5396
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005397 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005398
5399
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005400 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
5401 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005402
5403
5404 <tr class="entry" id="static_android.flash.maxEnergy">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005405 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -08005406 android.<wbr/>flash.<wbr/>max<wbr/>Energy
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005407 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005408 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08005409 <span class="entry_type_name">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005410
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07005411 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005412
5413
5414 </td> <!-- entry_type -->
5415
5416 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08005417 <p>Max energy output of the flash for a full
5418power single flash</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005419 </td>
5420
5421 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -08005422 lumen-seconds
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005423 </td>
5424
5425 <td class="entry_range">
Igor Murashkin6cb7c2c2014-01-10 15:12:40 -08005426 <p>&gt;= 0</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005427 </td>
5428
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005429 <td class="entry_tags">
5430 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08005431 <li><a href="#tag_ADV">ADV</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005432 </ul>
5433 </td>
5434
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005435 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005436
5437
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005438 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
5439 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005440
5441
5442
5443 <!-- end of kind -->
5444 </tbody>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005445 <tr><td colspan="6" class="kind">dynamic</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005446
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07005447 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005448 <tr>
5449 <th class="th_name">Property Name</th>
5450 <th class="th_type">Type</th>
5451 <th class="th_description">Description</th>
5452 <th class="th_units">Units</th>
5453 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005454 <th class="th_tags">Tags</th>
5455 </tr>
5456 </thead>
5457
5458 <tbody>
5459
5460
5461
5462
5463
5464
5465
5466
5467
5468
5469 <tr class="entry" id="dynamic_android.flash.firingPower">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005470 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08005471 android.<wbr/>flash.<wbr/>firing<wbr/>Power
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005472 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005473 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08005474 <span class="entry_type_name">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005475
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07005476 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005477
5478
5479 </td> <!-- entry_type -->
5480
5481 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08005482 <p>Power for flash firing/<wbr/>torch</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005483 </td>
5484
5485 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -08005486 10 is max power; 0 is no flash.<wbr/> Linear
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005487 </td>
5488
5489 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08005490 <p>0 - 10</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005491 </td>
5492
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005493 <td class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08005494 <ul class="entry_tags">
5495 <li><a href="#tag_V1">V1</a></li>
5496 </ul>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005497 </td>
5498
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005499 </tr>
5500 <tr class="entries_header">
5501 <th class="th_details" colspan="5">Details</th>
5502 </tr>
5503 <tr class="entry_cont">
5504 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08005505 <p>Power for snapshot may use a different scale than
5506for torch mode.<wbr/> Only one entry for torch mode will be
5507used</p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005508 </td>
5509 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005510
5511
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005512 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
5513 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005514
5515
5516 <tr class="entry" id="dynamic_android.flash.firingTime">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005517 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08005518 android.<wbr/>flash.<wbr/>firing<wbr/>Time
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005519 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005520 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08005521 <span class="entry_type_name">int64</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005522
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07005523 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005524
5525
5526 </td> <!-- entry_type -->
5527
5528 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08005529 <p>Firing time of flash relative to start of
5530exposure</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005531 </td>
5532
5533 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -08005534 nanoseconds
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005535 </td>
5536
5537 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08005538 <p>0-(exposure time-flash duration)</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005539 </td>
5540
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005541 <td class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08005542 <ul class="entry_tags">
5543 <li><a href="#tag_V1">V1</a></li>
5544 </ul>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005545 </td>
5546
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005547 </tr>
5548 <tr class="entries_header">
5549 <th class="th_details" colspan="5">Details</th>
5550 </tr>
5551 <tr class="entry_cont">
5552 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08005553 <p>Clamped to (0,<wbr/> exposure time - flash
5554duration).<wbr/></p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005555 </td>
5556 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005557
5558
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005559 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
5560 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005561
5562
5563 <tr class="entry" id="dynamic_android.flash.mode">
Zhijun Heea27bc32014-01-15 13:47:59 -08005564 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08005565 android.<wbr/>flash.<wbr/>mode
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005566 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005567 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08005568 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005569
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07005570 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005571
5572 <ul class="entry_type_enum">
5573 <li>
5574 <span class="entry_type_enum_name">OFF</span>
Zhijun Heea27bc32014-01-15 13:47:59 -08005575 <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 -08005576 </li>
5577 <li>
5578 <span class="entry_type_enum_name">SINGLE</span>
Zhijun Heea27bc32014-01-15 13:47:59 -08005579 <span class="entry_type_enum_notes"><p>If the flash is available and charged,<wbr/> fire flash
5580for this capture based on <a href="#controls_android.flash.firingPower">android.<wbr/>flash.<wbr/>firing<wbr/>Power</a> and
5581<a href="#controls_android.flash.firingTime">android.<wbr/>flash.<wbr/>firing<wbr/>Time</a>.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005582 </li>
5583 <li>
5584 <span class="entry_type_enum_name">TORCH</span>
Zhijun Heea27bc32014-01-15 13:47:59 -08005585 <span class="entry_type_enum_notes"><p>Transition flash to continuously on.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005586 </li>
5587 </ul>
5588
5589 </td> <!-- entry_type -->
5590
5591 <td class="entry_description">
Zhijun Heea27bc32014-01-15 13:47:59 -08005592 <p>The desired mode for for the camera device's flash control.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005593 </td>
5594
5595 <td class="entry_units">
5596 </td>
5597
5598 <td class="entry_range">
5599 </td>
5600
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005601 <td class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08005602 <ul class="entry_tags">
5603 <li><a href="#tag_BC">BC</a></li>
5604 </ul>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005605 </td>
5606
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005607 </tr>
Zhijun Heea27bc32014-01-15 13:47:59 -08005608 <tr class="entries_header">
5609 <th class="th_details" colspan="5">Details</th>
5610 </tr>
5611 <tr class="entry_cont">
5612 <td class="entry_details" colspan="5">
5613 <p>This control is only effective when flash unit is available
Zhijun Hebdc94c42014-01-21 18:28:30 -08005614(<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 -08005615<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/>
5616Otherwise,<wbr/> the camera device auto-exposure related flash control (ON_<wbr/>AUTO_<wbr/>FLASH,<wbr/>
5617ON_<wbr/>ALWAYS_<wbr/>FLASH,<wbr/> or ON_<wbr/>AUTO_<wbr/>FLASH_<wbr/>REDEYE) will override this control.<wbr/></p>
5618<p>When set to OFF,<wbr/> the camera device will not fire flash for this capture.<wbr/></p>
5619<p>When set to SINGLE,<wbr/> the camera device will fire flash regardless of the camera
5620device's auto-exposure routine's result.<wbr/> When used in still capture case,<wbr/> this
5621control should be used along with AE precapture metering sequence
5622(<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>
5623<p>When set to TORCH,<wbr/> the flash will be on continuously.<wbr/> This mode can be used
5624for 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 -08005625<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 -08005626 </td>
5627 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005628
5629
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005630 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
5631 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005632
5633
5634 <tr class="entry" id="dynamic_android.flash.state">
Zhijun He5169ce12014-01-24 16:48:25 -08005635 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08005636 android.<wbr/>flash.<wbr/>state
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005637 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005638 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08005639 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005640
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07005641 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005642
5643 <ul class="entry_type_enum">
5644 <li>
5645 <span class="entry_type_enum_name">UNAVAILABLE</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08005646 <span class="entry_type_enum_notes"><p>No flash on camera</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005647 </li>
5648 <li>
5649 <span class="entry_type_enum_name">CHARGING</span>
Zhijun He5169ce12014-01-24 16:48:25 -08005650 <span class="entry_type_enum_notes"><p>if <a href="#static_android.flash.info.available">android.<wbr/>flash.<wbr/>info.<wbr/>available</a> is true Flash is
Igor Murashkina10351a2014-01-15 17:05:22 -08005651charging and cannot be fired</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005652 </li>
5653 <li>
5654 <span class="entry_type_enum_name">READY</span>
Zhijun He5169ce12014-01-24 16:48:25 -08005655 <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 -08005656ready to fire</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005657 </li>
5658 <li>
5659 <span class="entry_type_enum_name">FIRED</span>
Zhijun He5169ce12014-01-24 16:48:25 -08005660 <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 -08005661for this capture</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005662 </li>
5663 </ul>
5664
5665 </td> <!-- entry_type -->
5666
5667 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08005668 <p>Current state of the flash
Zhijun He5169ce12014-01-24 16:48:25 -08005669unit.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005670 </td>
5671
5672 <td class="entry_units">
5673 </td>
5674
5675 <td class="entry_range">
5676 </td>
5677
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005678 <td class="entry_tags">
5679 </td>
5680
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005681 </tr>
Zhijun He5169ce12014-01-24 16:48:25 -08005682 <tr class="entries_header">
5683 <th class="th_details" colspan="5">Details</th>
5684 </tr>
5685 <tr class="entry_cont">
5686 <td class="entry_details" colspan="5">
5687 <p>When the camera device doesn't have flash unit
5688(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/>
5689Other states indicate the current flash status.<wbr/></p>
5690 </td>
5691 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005692
5693
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005694 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
5695 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005696
5697
5698
5699 <!-- end of kind -->
5700 </tbody>
5701
5702 <!-- end of section -->
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005703 <tr><td colspan="6" id="section_geometric" class="section">geometric</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005704
5705
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005706 <tr><td colspan="6" class="kind">controls</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005707
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07005708 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005709 <tr>
5710 <th class="th_name">Property Name</th>
5711 <th class="th_type">Type</th>
5712 <th class="th_description">Description</th>
5713 <th class="th_units">Units</th>
5714 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005715 <th class="th_tags">Tags</th>
5716 </tr>
5717 </thead>
5718
5719 <tbody>
5720
5721
5722
5723
5724
5725
5726
5727
5728
5729
5730 <tr class="entry" id="controls_android.geometric.mode">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005731 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -08005732 android.<wbr/>geometric.<wbr/>mode
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005733 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005734 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08005735 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005736
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07005737 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005738
5739 <ul class="entry_type_enum">
5740 <li>
5741 <span class="entry_type_enum_name">OFF</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08005742 <span class="entry_type_enum_notes"><p>No geometric correction is
5743applied</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005744 </li>
5745 <li>
5746 <span class="entry_type_enum_name">FAST</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08005747 <span class="entry_type_enum_notes"><p>Must not slow down frame rate relative to raw
5748bayer output</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005749 </li>
5750 <li>
5751 <span class="entry_type_enum_name">HIGH_QUALITY</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08005752 <span class="entry_type_enum_notes"><p>Frame rate may be reduced by high
5753quality</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005754 </li>
5755 </ul>
5756
5757 </td> <!-- entry_type -->
5758
5759 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08005760 <p>Operating mode of geometric
5761correction</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005762 </td>
5763
5764 <td class="entry_units">
5765 </td>
5766
5767 <td class="entry_range">
5768 </td>
5769
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005770 <td class="entry_tags">
5771 </td>
5772
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005773 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005774
5775
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005776 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
5777 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005778
5779
5780 <tr class="entry" id="controls_android.geometric.strength">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005781 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -08005782 android.<wbr/>geometric.<wbr/>strength
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005783 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005784 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08005785 <span class="entry_type_name">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005786
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07005787 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005788
5789
5790 </td> <!-- entry_type -->
5791
5792 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08005793 <p>Control the amount of shading correction
5794applied to the images</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005795 </td>
5796
5797 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -08005798 unitless: 1-10; 10 is full shading
5799 compensation
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005800 </td>
5801
5802 <td class="entry_range">
5803 </td>
5804
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005805 <td class="entry_tags">
5806 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08005807 <li><a href="#tag_ADV">ADV</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005808 </ul>
5809 </td>
5810
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005811 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005812
5813
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005814 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
5815 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005816
5817
5818
5819 <!-- end of kind -->
5820 </tbody>
5821
5822 <!-- end of section -->
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005823 <tr><td colspan="6" id="section_hotPixel" class="section">hotPixel</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005824
5825
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005826 <tr><td colspan="6" class="kind">controls</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005827
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07005828 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005829 <tr>
5830 <th class="th_name">Property Name</th>
5831 <th class="th_type">Type</th>
5832 <th class="th_description">Description</th>
5833 <th class="th_units">Units</th>
5834 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005835 <th class="th_tags">Tags</th>
5836 </tr>
5837 </thead>
5838
5839 <tbody>
5840
5841
5842
5843
5844
5845
5846
5847
5848
5849
5850 <tr class="entry" id="controls_android.hotPixel.mode">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005851 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -08005852 android.<wbr/>hot<wbr/>Pixel.<wbr/>mode
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005853 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005854 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08005855 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005856
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07005857 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005858
5859 <ul class="entry_type_enum">
5860 <li>
5861 <span class="entry_type_enum_name">OFF</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08005862 <span class="entry_type_enum_notes"><p>No hot pixel correction can be
5863applied</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005864 </li>
5865 <li>
5866 <span class="entry_type_enum_name">FAST</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08005867 <span class="entry_type_enum_notes"><p>Frame rate must not be reduced compared to raw
5868Bayer output</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005869 </li>
5870 <li>
5871 <span class="entry_type_enum_name">HIGH_QUALITY</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08005872 <span class="entry_type_enum_notes"><p>Frame rate may be reduced by high
5873quality</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005874 </li>
5875 </ul>
5876
5877 </td> <!-- entry_type -->
5878
5879 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08005880 <p>Set operational mode for hot pixel
5881correction</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005882 </td>
5883
5884 <td class="entry_units">
5885 </td>
5886
5887 <td class="entry_range">
5888 </td>
5889
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005890 <td class="entry_tags">
5891 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08005892 <li><a href="#tag_V1">V1</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005893 </ul>
5894 </td>
5895
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005896 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005897
5898
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005899 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
5900 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005901
5902
5903
5904 <!-- end of kind -->
5905 </tbody>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005906 <tr><td colspan="6" class="kind">static</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005907
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07005908 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005909 <tr>
5910 <th class="th_name">Property Name</th>
5911 <th class="th_type">Type</th>
5912 <th class="th_description">Description</th>
5913 <th class="th_units">Units</th>
5914 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005915 <th class="th_tags">Tags</th>
5916 </tr>
5917 </thead>
5918
5919 <tbody>
5920
5921
5922
5923
5924
5925
5926
5927
5928
5929
5930
5931
5932 <tr class="entry" id="static_android.hotPixel.info.map">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005933 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -08005934 android.<wbr/>hot<wbr/>Pixel.<wbr/>info.<wbr/>map
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005935 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005936 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08005937 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005938 <span class="entry_type_container">x</span>
5939
5940 <span class="entry_type_array">
5941 2 x n
5942 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07005943 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -08005944 <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 -08005945
5946
5947 </td> <!-- entry_type -->
5948
5949 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08005950 <p>Location of hot/<wbr/>defective pixels on
5951sensor</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005952 </td>
5953
5954 <td class="entry_units">
5955 </td>
5956
5957 <td class="entry_range">
5958 </td>
5959
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005960 <td class="entry_tags">
5961 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08005962 <li><a href="#tag_ADV">ADV</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005963 </ul>
5964 </td>
5965
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005966 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005967
5968
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005969 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
5970 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005971
5972
5973
5974
5975
5976
5977 <!-- end of kind -->
5978 </tbody>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005979 <tr><td colspan="6" class="kind">dynamic</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005980
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07005981 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005982 <tr>
5983 <th class="th_name">Property Name</th>
5984 <th class="th_type">Type</th>
5985 <th class="th_description">Description</th>
5986 <th class="th_units">Units</th>
5987 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005988 <th class="th_tags">Tags</th>
5989 </tr>
5990 </thead>
5991
5992 <tbody>
5993
5994
5995
5996
5997
5998
5999
6000
6001
6002
6003 <tr class="entry" id="dynamic_android.hotPixel.mode">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006004 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -08006005 android.<wbr/>hot<wbr/>Pixel.<wbr/>mode
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006006 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006007 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08006008 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006009
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07006010 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006011
6012 <ul class="entry_type_enum">
6013 <li>
6014 <span class="entry_type_enum_name">OFF</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08006015 <span class="entry_type_enum_notes"><p>No hot pixel correction can be
6016applied</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006017 </li>
6018 <li>
6019 <span class="entry_type_enum_name">FAST</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08006020 <span class="entry_type_enum_notes"><p>Frame rate must not be reduced compared to raw
6021Bayer output</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006022 </li>
6023 <li>
6024 <span class="entry_type_enum_name">HIGH_QUALITY</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08006025 <span class="entry_type_enum_notes"><p>Frame rate may be reduced by high
6026quality</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006027 </li>
6028 </ul>
6029
6030 </td> <!-- entry_type -->
6031
6032 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08006033 <p>Set operational mode for hot pixel
6034correction</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006035 </td>
6036
6037 <td class="entry_units">
6038 </td>
6039
6040 <td class="entry_range">
6041 </td>
6042
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006043 <td class="entry_tags">
6044 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08006045 <li><a href="#tag_V1">V1</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006046 </ul>
6047 </td>
6048
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006049 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006050
6051
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006052 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
6053 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006054
6055
6056
6057 <!-- end of kind -->
6058 </tbody>
6059
6060 <!-- end of section -->
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006061 <tr><td colspan="6" id="section_jpeg" class="section">jpeg</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006062
6063
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006064 <tr><td colspan="6" class="kind">controls</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006065
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07006066 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006067 <tr>
6068 <th class="th_name">Property Name</th>
6069 <th class="th_type">Type</th>
6070 <th class="th_description">Description</th>
6071 <th class="th_units">Units</th>
6072 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006073 <th class="th_tags">Tags</th>
6074 </tr>
6075 </thead>
6076
6077 <tbody>
6078
6079
6080
6081
6082
6083
6084
6085
6086
6087
6088 <tr class="entry" id="controls_android.jpeg.gpsCoordinates">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006089 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -08006090 android.<wbr/>jpeg.<wbr/>gps<wbr/>Coordinates
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006091 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006092 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08006093 <span class="entry_type_name">double</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006094 <span class="entry_type_container">x</span>
6095
6096 <span class="entry_type_array">
6097 3
6098 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07006099 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -08006100 <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 -08006101
6102
6103 </td> <!-- entry_type -->
6104
6105 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08006106 <p>GPS coordinates to include in output JPEG
6107EXIF</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006108 </td>
6109
6110 <td class="entry_units">
6111 </td>
6112
6113 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08006114 <p>(-180 - 180],<wbr/> [-90,<wbr/>90],<wbr/> [-inf,<wbr/> inf]</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006115 </td>
6116
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006117 <td class="entry_tags">
6118 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08006119 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006120 </ul>
6121 </td>
6122
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006123 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006124
6125
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006126 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
6127 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006128
6129
6130 <tr class="entry" id="controls_android.jpeg.gpsProcessingMethod">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006131 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -08006132 android.<wbr/>jpeg.<wbr/>gps<wbr/>Processing<wbr/>Method
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006133 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006134 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08006135 <span class="entry_type_name">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006136
Igor Murashkinb8dc8812013-07-17 16:29:34 -07006137 <span class="entry_type_visibility"> [public as string]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006138
6139
6140 </td> <!-- entry_type -->
6141
6142 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08006143 <p>32 characters describing GPS algorithm to
6144include in EXIF</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006145 </td>
6146
6147 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -08006148 UTF-8 null-terminated string
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006149 </td>
6150
6151 <td class="entry_range">
6152 </td>
6153
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006154 <td class="entry_tags">
6155 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08006156 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006157 </ul>
6158 </td>
6159
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006160 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006161
6162
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006163 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
6164 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006165
6166
6167 <tr class="entry" id="controls_android.jpeg.gpsTimestamp">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006168 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -08006169 android.<wbr/>jpeg.<wbr/>gps<wbr/>Timestamp
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006170 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006171 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08006172 <span class="entry_type_name">int64</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006173
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07006174 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006175
6176
6177 </td> <!-- entry_type -->
6178
6179 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08006180 <p>Time GPS fix was made to include in
6181EXIF</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006182 </td>
6183
6184 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -08006185 UTC in seconds since January 1,<wbr/> 1970
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006186 </td>
6187
6188 <td class="entry_range">
6189 </td>
6190
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006191 <td class="entry_tags">
6192 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08006193 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006194 </ul>
6195 </td>
6196
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006197 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006198
6199
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006200 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
6201 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006202
6203
6204 <tr class="entry" id="controls_android.jpeg.orientation">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006205 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -08006206 android.<wbr/>jpeg.<wbr/>orientation
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006207 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006208 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08006209 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006210
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07006211 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006212
6213
6214 </td> <!-- entry_type -->
6215
6216 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08006217 <p>Orientation of JPEG image to
6218write</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006219 </td>
6220
6221 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -08006222 Degrees in multiples of 90
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006223 </td>
6224
6225 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08006226 <p>0,<wbr/> 90,<wbr/> 180,<wbr/> 270</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006227 </td>
6228
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006229 <td class="entry_tags">
6230 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08006231 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006232 </ul>
6233 </td>
6234
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006235 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006236
6237
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006238 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
6239 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006240
6241
6242 <tr class="entry" id="controls_android.jpeg.quality">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006243 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08006244 android.<wbr/>jpeg.<wbr/>quality
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006245 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006246 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08006247 <span class="entry_type_name">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006248
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07006249 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006250
6251
6252 </td> <!-- entry_type -->
6253
6254 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08006255 <p>Compression quality of the final JPEG
6256image</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006257 </td>
6258
6259 <td class="entry_units">
6260 </td>
6261
6262 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08006263 <p>1-100; larger is higher quality</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006264 </td>
6265
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006266 <td class="entry_tags">
6267 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08006268 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006269 </ul>
6270 </td>
6271
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006272 </tr>
6273 <tr class="entries_header">
6274 <th class="th_details" colspan="5">Details</th>
6275 </tr>
6276 <tr class="entry_cont">
6277 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08006278 <p>85-95 is typical usage range</p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006279 </td>
6280 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006281
6282
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006283 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
6284 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006285
6286
6287 <tr class="entry" id="controls_android.jpeg.thumbnailQuality">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006288 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -08006289 android.<wbr/>jpeg.<wbr/>thumbnail<wbr/>Quality
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006290 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006291 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08006292 <span class="entry_type_name">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006293
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07006294 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006295
6296
6297 </td> <!-- entry_type -->
6298
6299 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08006300 <p>Compression quality of JPEG
6301thumbnail</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006302 </td>
6303
6304 <td class="entry_units">
6305 </td>
6306
6307 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08006308 <p>1-100; larger is higher quality</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006309 </td>
6310
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006311 <td class="entry_tags">
6312 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08006313 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006314 </ul>
6315 </td>
6316
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006317 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006318
6319
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006320 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
6321 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006322
6323
6324 <tr class="entry" id="controls_android.jpeg.thumbnailSize">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006325 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08006326 android.<wbr/>jpeg.<wbr/>thumbnail<wbr/>Size
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006327 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006328 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08006329 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006330 <span class="entry_type_container">x</span>
6331
6332 <span class="entry_type_array">
6333 2
6334 </span>
Igor Murashkinb8dc8812013-07-17 16:29:34 -07006335 <span class="entry_type_visibility"> [public as size]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006336
6337
6338 </td> <!-- entry_type -->
6339
6340 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08006341 <p>Resolution of embedded JPEG thumbnail</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006342 </td>
6343
6344 <td class="entry_units">
6345 </td>
6346
6347 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08006348 <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 -08006349 </td>
6350
6351 <td class="entry_tags">
6352 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08006353 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006354 </ul>
6355 </td>
6356
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006357 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006358 <tr class="entries_header">
6359 <th class="th_details" colspan="5">Details</th>
6360 </tr>
6361 <tr class="entry_cont">
6362 <td class="entry_details" colspan="5">
Zhijun Hef90eeaf2014-01-16 12:13:35 -08006363 <p>When set to (0,<wbr/> 0) value,<wbr/> the JPEG EXIF will not contain thumbnail,<wbr/>
6364but the captured JPEG will still be a valid image.<wbr/></p>
Igor Murashkin0b080452013-12-27 15:30:25 -08006365<p>When a jpeg image capture is issued,<wbr/> the thumbnail size selected should have
6366the same aspect ratio as the jpeg image.<wbr/></p>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006367 </td>
6368 </tr>
6369
6370
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006371 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
6372 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006373
6374
6375
6376 <!-- end of kind -->
6377 </tbody>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006378 <tr><td colspan="6" class="kind">static</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006379
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07006380 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006381 <tr>
6382 <th class="th_name">Property Name</th>
6383 <th class="th_type">Type</th>
6384 <th class="th_description">Description</th>
6385 <th class="th_units">Units</th>
6386 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006387 <th class="th_tags">Tags</th>
6388 </tr>
6389 </thead>
6390
6391 <tbody>
6392
6393
6394
6395
6396
6397
6398
6399
6400
6401
6402 <tr class="entry" id="static_android.jpeg.availableThumbnailSizes">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006403 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08006404 android.<wbr/>jpeg.<wbr/>available<wbr/>Thumbnail<wbr/>Sizes
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006405 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006406 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08006407 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006408 <span class="entry_type_container">x</span>
6409
6410 <span class="entry_type_array">
6411 2 x n
6412 </span>
Igor Murashkinb8dc8812013-07-17 16:29:34 -07006413 <span class="entry_type_visibility"> [public as size]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006414
6415
6416 </td> <!-- entry_type -->
6417
6418 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08006419 <p>Supported resolutions for the JPEG thumbnail</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006420 </td>
6421
6422 <td class="entry_units">
6423 </td>
6424
6425 <td class="entry_range">
Zhijun Hef90eeaf2014-01-16 12:13:35 -08006426 <p>Will include at least one valid resolution,<wbr/> plus
6427(0,<wbr/>0) for no thumbnail generation,<wbr/> and each size will be distinct.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006428 </td>
6429
6430 <td class="entry_tags">
6431 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08006432 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006433 </ul>
6434 </td>
6435
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006436 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006437 <tr class="entries_header">
6438 <th class="th_details" colspan="5">Details</th>
6439 </tr>
6440 <tr class="entry_cont">
6441 <td class="entry_details" colspan="5">
Zhijun Hef90eeaf2014-01-16 12:13:35 -08006442 <p>Below condiditions will be satisfied for this size list:</p>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006443<ul>
Zhijun Hef90eeaf2014-01-16 12:13:35 -08006444<li>The sizes will be sorted by increasing pixel area (width x height).<wbr/>
6445If several resolutions have the same area,<wbr/> they will be sorted by increasing width.<wbr/></li>
6446<li>The aspect ratio of the largest thumbnail size will be same as the
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08006447aspect 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 -08006448The largest size is defined as the size that has the largest pixel area
Igor Murashkin0b080452013-12-27 15:30:25 -08006449in a given size list.<wbr/></li>
Zhijun Hef90eeaf2014-01-16 12:13:35 -08006450<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 -08006451one corresponding size that has the same aspect ratio in availableThumbnailSizes,<wbr/>
6452and vice versa.<wbr/></li>
Zhijun Hef90eeaf2014-01-16 12:13:35 -08006453<li>All non (0,<wbr/> 0) sizes will have non-zero widths and heights.<wbr/></li>
Igor Murashkin0b080452013-12-27 15:30:25 -08006454</ul>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006455 </td>
6456 </tr>
6457
6458
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006459 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
6460 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006461
6462
6463 <tr class="entry" id="static_android.jpeg.maxSize">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006464 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08006465 android.<wbr/>jpeg.<wbr/>max<wbr/>Size
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006466 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006467 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08006468 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006469
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07006470 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006471
6472
6473 </td> <!-- entry_type -->
6474
6475 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08006476 <p>Maximum size in bytes for the compressed
6477JPEG buffer</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006478 </td>
6479
6480 <td class="entry_units">
6481 </td>
6482
6483 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08006484 <p>Must be large enough to fit any JPEG produced by
6485the camera</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006486 </td>
6487
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006488 <td class="entry_tags">
6489 </td>
6490
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006491 </tr>
6492 <tr class="entries_header">
6493 <th class="th_details" colspan="5">Details</th>
6494 </tr>
6495 <tr class="entry_cont">
6496 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08006497 <p>This is used for sizing the gralloc buffers for
6498JPEG</p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006499 </td>
6500 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006501
6502
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006503 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
6504 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006505
6506
6507
6508 <!-- end of kind -->
6509 </tbody>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006510 <tr><td colspan="6" class="kind">dynamic</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006511
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07006512 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006513 <tr>
6514 <th class="th_name">Property Name</th>
6515 <th class="th_type">Type</th>
6516 <th class="th_description">Description</th>
6517 <th class="th_units">Units</th>
6518 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006519 <th class="th_tags">Tags</th>
6520 </tr>
6521 </thead>
6522
6523 <tbody>
6524
6525
6526
6527
6528
6529
6530
6531
6532
6533
6534 <tr class="entry" id="dynamic_android.jpeg.gpsCoordinates">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006535 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -08006536 android.<wbr/>jpeg.<wbr/>gps<wbr/>Coordinates
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006537 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006538 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08006539 <span class="entry_type_name">double</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006540 <span class="entry_type_container">x</span>
6541
6542 <span class="entry_type_array">
6543 3
6544 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07006545 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -08006546 <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 -08006547
6548
6549 </td> <!-- entry_type -->
6550
6551 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08006552 <p>GPS coordinates to include in output JPEG
6553EXIF</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006554 </td>
6555
6556 <td class="entry_units">
6557 </td>
6558
6559 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08006560 <p>(-180 - 180],<wbr/> [-90,<wbr/>90],<wbr/> [-inf,<wbr/> inf]</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006561 </td>
6562
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006563 <td class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08006564 <ul class="entry_tags">
6565 <li><a href="#tag_BC">BC</a></li>
6566 </ul>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006567 </td>
6568
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006569 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006570
6571
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006572 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
6573 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006574
6575
6576 <tr class="entry" id="dynamic_android.jpeg.gpsProcessingMethod">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006577 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -08006578 android.<wbr/>jpeg.<wbr/>gps<wbr/>Processing<wbr/>Method
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006579 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006580 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08006581 <span class="entry_type_name">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006582
Igor Murashkinb8dc8812013-07-17 16:29:34 -07006583 <span class="entry_type_visibility"> [public as string]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006584
6585
6586 </td> <!-- entry_type -->
6587
6588 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08006589 <p>32 characters describing GPS algorithm to
6590include in EXIF</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006591 </td>
6592
6593 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -08006594 UTF-8 null-terminated string
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006595 </td>
6596
6597 <td class="entry_range">
6598 </td>
6599
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006600 <td class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08006601 <ul class="entry_tags">
6602 <li><a href="#tag_BC">BC</a></li>
6603 </ul>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006604 </td>
6605
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006606 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006607
6608
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006609 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
6610 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006611
6612
6613 <tr class="entry" id="dynamic_android.jpeg.gpsTimestamp">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006614 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -08006615 android.<wbr/>jpeg.<wbr/>gps<wbr/>Timestamp
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006616 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006617 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08006618 <span class="entry_type_name">int64</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006619
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07006620 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006621
6622
6623 </td> <!-- entry_type -->
6624
6625 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08006626 <p>Time GPS fix was made to include in
6627EXIF</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006628 </td>
6629
6630 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -08006631 UTC in seconds since January 1,<wbr/> 1970
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006632 </td>
6633
6634 <td class="entry_range">
6635 </td>
6636
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006637 <td class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08006638 <ul class="entry_tags">
6639 <li><a href="#tag_BC">BC</a></li>
6640 </ul>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006641 </td>
6642
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006643 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006644
6645
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006646 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
6647 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006648
6649
6650 <tr class="entry" id="dynamic_android.jpeg.orientation">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006651 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -08006652 android.<wbr/>jpeg.<wbr/>orientation
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006653 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006654 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08006655 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006656
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07006657 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006658
6659
6660 </td> <!-- entry_type -->
6661
6662 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08006663 <p>Orientation of JPEG image to
6664write</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006665 </td>
6666
6667 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -08006668 Degrees in multiples of 90
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006669 </td>
6670
6671 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08006672 <p>0,<wbr/> 90,<wbr/> 180,<wbr/> 270</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006673 </td>
6674
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006675 <td class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08006676 <ul class="entry_tags">
6677 <li><a href="#tag_BC">BC</a></li>
6678 </ul>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006679 </td>
6680
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006681 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006682
6683
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006684 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
6685 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006686
6687
6688 <tr class="entry" id="dynamic_android.jpeg.quality">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006689 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08006690 android.<wbr/>jpeg.<wbr/>quality
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006691 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006692 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08006693 <span class="entry_type_name">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006694
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07006695 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006696
6697
6698 </td> <!-- entry_type -->
6699
6700 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08006701 <p>Compression quality of the final JPEG
6702image</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006703 </td>
6704
6705 <td class="entry_units">
6706 </td>
6707
6708 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08006709 <p>1-100; larger is higher quality</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006710 </td>
6711
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006712 <td class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08006713 <ul class="entry_tags">
6714 <li><a href="#tag_BC">BC</a></li>
6715 </ul>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006716 </td>
6717
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006718 </tr>
6719 <tr class="entries_header">
6720 <th class="th_details" colspan="5">Details</th>
6721 </tr>
6722 <tr class="entry_cont">
6723 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08006724 <p>85-95 is typical usage range</p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006725 </td>
6726 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006727
6728
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006729 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
6730 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006731
6732
6733 <tr class="entry" id="dynamic_android.jpeg.size">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006734 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08006735 android.<wbr/>jpeg.<wbr/>size
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006736 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006737 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08006738 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006739
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07006740 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006741
6742
6743 </td> <!-- entry_type -->
6744
6745 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08006746 <p>The size of the compressed JPEG image,<wbr/> in
6747bytes</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006748 </td>
6749
6750 <td class="entry_units">
6751 </td>
6752
6753 <td class="entry_range">
Igor Murashkin6cb7c2c2014-01-10 15:12:40 -08006754 <p>&gt;= 0</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006755 </td>
6756
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006757 <td class="entry_tags">
6758 </td>
6759
6760 </tr>
6761 <tr class="entries_header">
6762 <th class="th_details" colspan="5">Details</th>
6763 </tr>
6764 <tr class="entry_cont">
6765 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08006766 <p>If no JPEG output is produced for the request,<wbr/>
6767this must be 0.<wbr/></p>
6768<p>Otherwise,<wbr/> this describes the real size of the compressed
6769JPEG image placed in the output stream.<wbr/> More specifically,<wbr/>
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08006770if <a href="#static_android.jpeg.maxSize">android.<wbr/>jpeg.<wbr/>max<wbr/>Size</a> = 1000000,<wbr/> and a specific capture
6771has <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 -08006772the JPEG stream will be 1000000 bytes,<wbr/> of which the first
6773500000 make up the real data.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006774 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006775 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006776
6777
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006778 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
6779 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006780
6781
6782 <tr class="entry" id="dynamic_android.jpeg.thumbnailQuality">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006783 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -08006784 android.<wbr/>jpeg.<wbr/>thumbnail<wbr/>Quality
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006785 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006786 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08006787 <span class="entry_type_name">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006788
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07006789 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006790
6791
6792 </td> <!-- entry_type -->
6793
6794 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08006795 <p>Compression quality of JPEG
6796thumbnail</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006797 </td>
6798
6799 <td class="entry_units">
6800 </td>
6801
6802 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08006803 <p>1-100; larger is higher quality</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006804 </td>
6805
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006806 <td class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08006807 <ul class="entry_tags">
6808 <li><a href="#tag_BC">BC</a></li>
6809 </ul>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006810 </td>
6811
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006812 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006813
6814
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006815 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
6816 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006817
6818
6819 <tr class="entry" id="dynamic_android.jpeg.thumbnailSize">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006820 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08006821 android.<wbr/>jpeg.<wbr/>thumbnail<wbr/>Size
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006822 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006823 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08006824 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006825 <span class="entry_type_container">x</span>
6826
6827 <span class="entry_type_array">
6828 2
6829 </span>
Igor Murashkinb8dc8812013-07-17 16:29:34 -07006830 <span class="entry_type_visibility"> [public as size]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006831
6832
6833 </td> <!-- entry_type -->
6834
6835 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08006836 <p>Resolution of embedded JPEG thumbnail</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006837 </td>
6838
6839 <td class="entry_units">
6840 </td>
6841
6842 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08006843 <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 -08006844 </td>
6845
6846 <td class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08006847 <ul class="entry_tags">
6848 <li><a href="#tag_BC">BC</a></li>
6849 </ul>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006850 </td>
6851
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006852 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006853 <tr class="entries_header">
6854 <th class="th_details" colspan="5">Details</th>
6855 </tr>
6856 <tr class="entry_cont">
6857 <td class="entry_details" colspan="5">
Zhijun Hef90eeaf2014-01-16 12:13:35 -08006858 <p>When set to (0,<wbr/> 0) value,<wbr/> the JPEG EXIF will not contain thumbnail,<wbr/>
6859but the captured JPEG will still be a valid image.<wbr/></p>
Igor Murashkin0b080452013-12-27 15:30:25 -08006860<p>When a jpeg image capture is issued,<wbr/> the thumbnail size selected should have
6861the same aspect ratio as the jpeg image.<wbr/></p>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006862 </td>
6863 </tr>
6864
6865
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006866 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
6867 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006868
6869
6870
6871 <!-- end of kind -->
6872 </tbody>
6873
6874 <!-- end of section -->
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006875 <tr><td colspan="6" id="section_lens" class="section">lens</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006876
6877
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006878 <tr><td colspan="6" class="kind">controls</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006879
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07006880 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006881 <tr>
6882 <th class="th_name">Property Name</th>
6883 <th class="th_type">Type</th>
6884 <th class="th_description">Description</th>
6885 <th class="th_units">Units</th>
6886 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006887 <th class="th_tags">Tags</th>
6888 </tr>
6889 </thead>
6890
6891 <tbody>
6892
6893
6894
6895
6896
6897
6898
6899
6900
6901
6902 <tr class="entry" id="controls_android.lens.aperture">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006903 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08006904 android.<wbr/>lens.<wbr/>aperture
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006905 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006906 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08006907 <span class="entry_type_name">float</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006908
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07006909 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006910
6911
6912 </td> <!-- entry_type -->
6913
6914 <td class="entry_description">
Zhijun He1b58d382014-01-10 10:22:53 -08006915 <p>The ratio of lens focal length to the effective
6916aperture diameter.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006917 </td>
6918
6919 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -08006920 f-number (f/<wbr/>NNN)
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006921 </td>
6922
6923 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08006924 <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 -08006925 </td>
6926
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006927 <td class="entry_tags">
6928 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08006929 <li><a href="#tag_V1">V1</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006930 </ul>
6931 </td>
6932
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006933 </tr>
6934 <tr class="entries_header">
6935 <th class="th_details" colspan="5">Details</th>
6936 </tr>
6937 <tr class="entry_cont">
6938 <td class="entry_details" colspan="5">
Zhijun He1b58d382014-01-10 10:22:53 -08006939 <p>This will only be supported on the camera devices that
6940have variable aperture lens.<wbr/> The aperture value can only be
6941one of the values listed in <a href="#static_android.lens.info.availableApertures">android.<wbr/>lens.<wbr/>info.<wbr/>available<wbr/>Apertures</a>.<wbr/></p>
6942<p>When this is supported and <a href="#controls_android.control.aeMode">android.<wbr/>control.<wbr/>ae<wbr/>Mode</a> is OFF,<wbr/>
6943this can be set along with <a href="#controls_android.sensor.exposureTime">android.<wbr/>sensor.<wbr/>exposure<wbr/>Time</a>,<wbr/>
6944<a href="#controls_android.sensor.sensitivity">android.<wbr/>sensor.<wbr/>sensitivity</a>,<wbr/> and android.<wbr/>sensor.<wbr/>frame<wbr/>Duration
6945to achieve manual exposure control.<wbr/></p>
6946<p>The requested aperture value may take several frames to reach the
6947requested value; the camera device will report the current (intermediate)
Zhijun He5169ce12014-01-24 16:48:25 -08006948aperture size in capture result metadata while the aperture is changing.<wbr/>
6949While 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 -08006950<p>When this is supported and <a href="#controls_android.control.aeMode">android.<wbr/>control.<wbr/>ae<wbr/>Mode</a> is one of
6951the ON modes,<wbr/> this will be overridden by the camera device
6952auto-exposure algorithm,<wbr/> the overridden values are then provided
6953back to the user in the corresponding result.<wbr/></p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006954 </td>
6955 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006956
6957
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006958 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
6959 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006960
6961
6962 <tr class="entry" id="controls_android.lens.filterDensity">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006963 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08006964 android.<wbr/>lens.<wbr/>filter<wbr/>Density
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006965 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006966 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08006967 <span class="entry_type_name">float</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006968
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07006969 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006970
6971
6972 </td> <!-- entry_type -->
6973
6974 <td class="entry_description">
Ruben Brunk83eb3032014-01-15 16:12:07 -08006975 <p>State of lens neutral density filter(s).<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006976 </td>
6977
6978 <td class="entry_units">
Ruben Brunk83eb3032014-01-15 16:12:07 -08006979 Steps of Exposure Value (EV).<wbr/>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006980 </td>
6981
6982 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08006983 <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 -08006984 </td>
6985
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006986 <td class="entry_tags">
6987 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08006988 <li><a href="#tag_V1">V1</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006989 </ul>
6990 </td>
6991
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006992 </tr>
6993 <tr class="entries_header">
6994 <th class="th_details" colspan="5">Details</th>
6995 </tr>
6996 <tr class="entry_cont">
6997 <td class="entry_details" colspan="5">
Ruben Brunk83eb3032014-01-15 16:12:07 -08006998 <p>This will not be supported on most camera devices.<wbr/> On devices
6999where this is supported,<wbr/> this may only be set to one of the
7000values included in <a href="#static_android.lens.info.availableFilterDensities">android.<wbr/>lens.<wbr/>info.<wbr/>available<wbr/>Filter<wbr/>Densities</a>.<wbr/></p>
7001<p>Lens filters are typically used to lower the amount of light the
7002sensor is exposed to (measured in steps of EV).<wbr/> As used here,<wbr/> an EV
7003step is the standard logarithmic representation,<wbr/> which are
7004non-negative,<wbr/> and inversely proportional to the amount of light
7005hitting the sensor.<wbr/> For example,<wbr/> setting this to 0 would result
7006in no reduction of the incoming light,<wbr/> and setting this to 2 would
7007mean that the filter is set to reduce incoming light by two stops
7008(allowing 1/<wbr/>4 of the prior amount of light to the sensor).<wbr/></p>
Zhijun He5169ce12014-01-24 16:48:25 -08007009<p>It may take several frames before the lens filter density changes
7010to the requested value.<wbr/> While the filter density is still changing,<wbr/>
7011<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 -08007012 </td>
7013 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007014
7015
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007016 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
7017 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007018
7019
7020 <tr class="entry" id="controls_android.lens.focalLength">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007021 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08007022 android.<wbr/>lens.<wbr/>focal<wbr/>Length
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007023 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007024 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08007025 <span class="entry_type_name">float</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007026
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07007027 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007028
7029
7030 </td> <!-- entry_type -->
7031
7032 <td class="entry_description">
Ruben Brunkac9bbb92014-01-15 18:39:35 -08007033 <p>The current lens focal length; used for optical zoom.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007034 </td>
7035
7036 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -08007037 focal length in mm
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007038 </td>
7039
7040 <td class="entry_range">
Ruben Brunkac9bbb92014-01-15 18:39:35 -08007041 <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 -08007042 </td>
7043
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007044 <td class="entry_tags">
7045 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08007046 <li><a href="#tag_V1">V1</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007047 </ul>
7048 </td>
7049
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007050 </tr>
7051 <tr class="entries_header">
7052 <th class="th_details" colspan="5">Details</th>
7053 </tr>
7054 <tr class="entry_cont">
7055 <td class="entry_details" colspan="5">
Ruben Brunkac9bbb92014-01-15 18:39:35 -08007056 <p>This setting controls the physical focal length of the camera
7057device's lens.<wbr/> Changing the focal length changes the field of
7058view of the camera device,<wbr/> and is usually used for optical zoom.<wbr/></p>
7059<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
7060setting won't be applied instantaneously,<wbr/> and it may take several
Zhijun He5169ce12014-01-24 16:48:25 -08007061frames before the lens can change to the requested focal length.<wbr/>
Ruben Brunkac9bbb92014-01-15 18:39:35 -08007062While the focal length is still changing,<wbr/> <a href="#dynamic_android.lens.state">android.<wbr/>lens.<wbr/>state</a> will
7063be set to MOVING.<wbr/></p>
7064<p>This is expected not to be supported on most devices.<wbr/></p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007065 </td>
7066 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007067
7068
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007069 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
7070 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007071
7072
7073 <tr class="entry" id="controls_android.lens.focusDistance">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007074 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08007075 android.<wbr/>lens.<wbr/>focus<wbr/>Distance
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007076 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007077 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08007078 <span class="entry_type_name">float</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007079
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07007080 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007081
7082
7083 </td> <!-- entry_type -->
7084
7085 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08007086 <p>Distance to plane of sharpest focus,<wbr/>
7087measured from frontmost surface of the lens</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007088 </td>
7089
7090 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -08007091 diopters (1/<wbr/>m)
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007092 </td>
7093
7094 <td class="entry_range">
Igor Murashkin6cb7c2c2014-01-10 15:12:40 -08007095 <p>&gt;= 0</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007096 </td>
7097
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007098 <td class="entry_tags">
7099 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08007100 <li><a href="#tag_BC">BC</a></li>
7101 <li><a href="#tag_V1">V1</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007102 </ul>
7103 </td>
7104
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007105 </tr>
7106 <tr class="entries_header">
7107 <th class="th_details" colspan="5">Details</th>
7108 </tr>
7109 <tr class="entry_cont">
7110 <td class="entry_details" colspan="5">
Zhijun He5169ce12014-01-24 16:48:25 -08007111 <p>0 means infinity focus.<wbr/> Used value will be clamped
7112to [0,<wbr/> <a href="#static_android.lens.info.minimumFocusDistance">android.<wbr/>lens.<wbr/>info.<wbr/>minimum<wbr/>Focus<wbr/>Distance</a>].<wbr/></p>
7113<p>Like <a href="#controls_android.lens.focalLength">android.<wbr/>lens.<wbr/>focal<wbr/>Length</a>,<wbr/> this setting won't be applied
7114instantaneously,<wbr/> and it may take several frames before the lens
7115can move to the requested focus distance.<wbr/> While the lens is still moving,<wbr/>
7116<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 -08007117 </td>
7118 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007119
7120
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007121 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
7122 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007123
7124
7125 <tr class="entry" id="controls_android.lens.opticalStabilizationMode">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007126 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08007127 android.<wbr/>lens.<wbr/>optical<wbr/>Stabilization<wbr/>Mode
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007128 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007129 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08007130 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007131
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07007132 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007133
7134 <ul class="entry_type_enum">
7135 <li>
7136 <span class="entry_type_enum_name">OFF</span>
Ruben Brunk218639c2014-01-15 18:09:41 -08007137 <span class="entry_type_enum_notes"><p>Optical stabilization is unavailable.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007138 </li>
7139 <li>
7140 <span class="entry_type_enum_name">ON</span>
7141 <span class="entry_type_enum_optional">optional</span>
Ruben Brunk218639c2014-01-15 18:09:41 -08007142 <span class="entry_type_enum_notes"><p>Optical stabilization is enabled.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007143 </li>
7144 </ul>
7145
7146 </td> <!-- entry_type -->
7147
7148 <td class="entry_description">
Ruben Brunk218639c2014-01-15 18:09:41 -08007149 <p>Sets whether the camera device uses optical image stabilization (OIS)
7150when capturing images.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007151 </td>
7152
7153 <td class="entry_units">
7154 </td>
7155
7156 <td class="entry_range">
Ruben Brunk218639c2014-01-15 18:09:41 -08007157 <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 -08007158 </td>
7159
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007160 <td class="entry_tags">
7161 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08007162 <li><a href="#tag_V1">V1</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007163 </ul>
7164 </td>
7165
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007166 </tr>
7167 <tr class="entries_header">
7168 <th class="th_details" colspan="5">Details</th>
7169 </tr>
7170 <tr class="entry_cont">
7171 <td class="entry_details" colspan="5">
Ruben Brunk218639c2014-01-15 18:09:41 -08007172 <p>OIS is used to compensate for motion blur due to small movements of
7173the camera during capture.<wbr/> Unlike digital image stabilization,<wbr/> OIS makes
7174use of mechanical elements to stabilize the camera sensor,<wbr/> and thus
7175allows for longer exposure times before camera shake becomes
7176apparent.<wbr/></p>
7177<p>This is not expected to be supported on most devices.<wbr/></p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007178 </td>
7179 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007180
7181
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007182 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
7183 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007184
7185
7186
7187 <!-- end of kind -->
7188 </tbody>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007189 <tr><td colspan="6" class="kind">static</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007190
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07007191 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007192 <tr>
7193 <th class="th_name">Property Name</th>
7194 <th class="th_type">Type</th>
7195 <th class="th_description">Description</th>
7196 <th class="th_units">Units</th>
7197 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007198 <th class="th_tags">Tags</th>
7199 </tr>
7200 </thead>
7201
7202 <tbody>
7203
7204
7205
7206
7207
7208
7209
7210
7211
7212
7213
7214
7215 <tr class="entry" id="static_android.lens.info.availableApertures">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007216 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08007217 android.<wbr/>lens.<wbr/>info.<wbr/>available<wbr/>Apertures
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007218 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007219 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08007220 <span class="entry_type_name">float</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007221 <span class="entry_type_container">x</span>
7222
7223 <span class="entry_type_array">
7224 n
7225 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07007226 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007227
7228
7229 </td> <!-- entry_type -->
7230
7231 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08007232 <p>List of supported aperture
Zhijun He1b58d382014-01-10 10:22:53 -08007233values.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007234 </td>
7235
7236 <td class="entry_units">
7237 </td>
7238
7239 <td class="entry_range">
Zhijun He5169ce12014-01-24 16:48:25 -08007240 <p>one entry required,<wbr/> &gt; 0</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007241 </td>
7242
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007243 <td class="entry_tags">
7244 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08007245 <li><a href="#tag_V1">V1</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007246 </ul>
7247 </td>
7248
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007249 </tr>
7250 <tr class="entries_header">
7251 <th class="th_details" colspan="5">Details</th>
7252 </tr>
7253 <tr class="entry_cont">
7254 <td class="entry_details" colspan="5">
Zhijun He1b58d382014-01-10 10:22:53 -08007255 <p>If the camera device doesn't support variable apertures,<wbr/>
7256listed value will be the fixed aperture.<wbr/></p>
7257<p>If the camera device supports variable apertures,<wbr/> the aperture value
7258in this list will be sorted in ascending order.<wbr/></p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007259 </td>
7260 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007261
7262
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007263 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
7264 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007265
7266
7267 <tr class="entry" id="static_android.lens.info.availableFilterDensities">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007268 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08007269 android.<wbr/>lens.<wbr/>info.<wbr/>available<wbr/>Filter<wbr/>Densities
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007270 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007271 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08007272 <span class="entry_type_name">float</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007273 <span class="entry_type_container">x</span>
7274
7275 <span class="entry_type_array">
7276 n
7277 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07007278 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007279
7280
7281 </td> <!-- entry_type -->
7282
7283 <td class="entry_description">
Ruben Brunk83eb3032014-01-15 16:12:07 -08007284 <p>List of supported neutral density filter values for
7285<a href="#controls_android.lens.filterDensity">android.<wbr/>lens.<wbr/>filter<wbr/>Density</a>.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007286 </td>
7287
7288 <td class="entry_units">
7289 </td>
7290
7291 <td class="entry_range">
Ruben Brunk83eb3032014-01-15 16:12:07 -08007292 <p>At least one value is required.<wbr/> Values must be &gt;= 0.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007293 </td>
7294
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007295 <td class="entry_tags">
7296 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08007297 <li><a href="#tag_V1">V1</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007298 </ul>
7299 </td>
7300
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007301 </tr>
7302 <tr class="entries_header">
7303 <th class="th_details" colspan="5">Details</th>
7304 </tr>
7305 <tr class="entry_cont">
7306 <td class="entry_details" colspan="5">
Ruben Brunk83eb3032014-01-15 16:12:07 -08007307 <p>If changing <a href="#controls_android.lens.filterDensity">android.<wbr/>lens.<wbr/>filter<wbr/>Density</a> is not supported,<wbr/>
7308availableFilterDensities must contain only 0.<wbr/> Otherwise,<wbr/> this
7309list contains only the exact filter density values available on
7310this camera device.<wbr/></p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007311 </td>
7312 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007313
7314
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007315 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
7316 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007317
7318
7319 <tr class="entry" id="static_android.lens.info.availableFocalLengths">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007320 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08007321 android.<wbr/>lens.<wbr/>info.<wbr/>available<wbr/>Focal<wbr/>Lengths
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007322 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007323 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08007324 <span class="entry_type_name">float</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007325 <span class="entry_type_container">x</span>
7326
7327 <span class="entry_type_array">
7328 n
7329 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07007330 <span class="entry_type_visibility"> [public]</span>
Ruben Brunkac9bbb92014-01-15 18:39:35 -08007331 <div class="entry_type_notes">The list of available focal lengths</div>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007332
7333
7334 </td> <!-- entry_type -->
7335
7336 <td class="entry_description">
Ruben Brunkac9bbb92014-01-15 18:39:35 -08007337 <p>The available focal lengths for this device for use with
7338<a href="#controls_android.lens.focalLength">android.<wbr/>lens.<wbr/>focal<wbr/>Length</a>.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007339 </td>
7340
7341 <td class="entry_units">
7342 </td>
7343
7344 <td class="entry_range">
Ruben Brunkac9bbb92014-01-15 18:39:35 -08007345 <p>Each value in this list must be &gt; 0.<wbr/> This list must
7346contain at least one value.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007347 </td>
7348
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007349 <td class="entry_tags">
7350 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08007351 <li><a href="#tag_BC">BC</a></li>
7352 <li><a href="#tag_V1">V1</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007353 </ul>
7354 </td>
7355
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007356 </tr>
7357 <tr class="entries_header">
7358 <th class="th_details" colspan="5">Details</th>
7359 </tr>
7360 <tr class="entry_cont">
7361 <td class="entry_details" colspan="5">
Ruben Brunkac9bbb92014-01-15 18:39:35 -08007362 <p>If optical zoom is not supported,<wbr/> this will only report
7363a single value corresponding to the static focal length of the
7364device.<wbr/> Otherwise,<wbr/> this will report every focal length supported
7365by the device.<wbr/></p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007366 </td>
7367 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007368
7369
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007370 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
7371 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007372
7373
7374 <tr class="entry" id="static_android.lens.info.availableOpticalStabilization">
Ruben Brunk218639c2014-01-15 18:09:41 -08007375 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08007376 android.<wbr/>lens.<wbr/>info.<wbr/>available<wbr/>Optical<wbr/>Stabilization
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007377 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007378 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08007379 <span class="entry_type_name">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007380 <span class="entry_type_container">x</span>
7381
7382 <span class="entry_type_array">
7383 n
7384 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07007385 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -08007386 <div class="entry_type_notes">list of enums</div>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007387
7388
7389 </td> <!-- entry_type -->
7390
7391 <td class="entry_description">
Ruben Brunk218639c2014-01-15 18:09:41 -08007392 <p>List containing a subset of the optical image
7393stabilization (OIS) modes specified in
7394<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 -08007395 </td>
7396
7397 <td class="entry_units">
7398 </td>
7399
7400 <td class="entry_range">
7401 </td>
7402
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007403 <td class="entry_tags">
7404 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08007405 <li><a href="#tag_V1">V1</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007406 </ul>
7407 </td>
7408
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007409 </tr>
Ruben Brunk218639c2014-01-15 18:09:41 -08007410 <tr class="entries_header">
7411 <th class="th_details" colspan="5">Details</th>
7412 </tr>
7413 <tr class="entry_cont">
7414 <td class="entry_details" colspan="5">
7415 <p>If OIS is not implemented for a given camera device,<wbr/> this should
7416contain only OFF.<wbr/></p>
7417 </td>
7418 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007419
7420
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007421 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
7422 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007423
7424
7425 <tr class="entry" id="static_android.lens.info.geometricCorrectionMap">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007426 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08007427 android.<wbr/>lens.<wbr/>info.<wbr/>geometric<wbr/>Correction<wbr/>Map
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007428 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007429 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08007430 <span class="entry_type_name">float</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007431 <span class="entry_type_container">x</span>
7432
7433 <span class="entry_type_array">
7434 2 x 3 x n x m
7435 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07007436 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -08007437 <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 -08007438
7439
7440 </td> <!-- entry_type -->
7441
7442 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08007443 <p>A low-resolution map for correction of
7444geometric distortions and chromatic aberrations,<wbr/> per
7445color channel</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007446 </td>
7447
7448 <td class="entry_units">
7449 </td>
7450
7451 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08007452 <p>N,<wbr/> M &gt;= 2</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007453 </td>
7454
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007455 <td class="entry_tags">
7456 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08007457 <li><a href="#tag_DNG">DNG</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007458 </ul>
7459 </td>
7460
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007461 </tr>
7462 <tr class="entries_header">
7463 <th class="th_details" colspan="5">Details</th>
7464 </tr>
7465 <tr class="entry_cont">
7466 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08007467 <p>[DNG wants a function instead].<wbr/> What's easiest
7468for implementers? With an array size (M,<wbr/> N),<wbr/> entry (i,<wbr/>
7469j) provides the destination for pixel (i/<wbr/>(M-1) * width,<wbr/>
7470j/<wbr/>(N-1) * height).<wbr/> Data is row-major,<wbr/> with each array
7471entry 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 -08007472 </td>
7473 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007474
7475
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007476 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
7477 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007478
7479
7480 <tr class="entry" id="static_android.lens.info.geometricCorrectionMapSize">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007481 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -08007482 android.<wbr/>lens.<wbr/>info.<wbr/>geometric<wbr/>Correction<wbr/>Map<wbr/>Size
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007483 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007484 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08007485 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007486 <span class="entry_type_container">x</span>
7487
7488 <span class="entry_type_array">
7489 2
7490 </span>
Igor Murashkinb8dc8812013-07-17 16:29:34 -07007491 <span class="entry_type_visibility"> [system as size]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -08007492 <div class="entry_type_notes">width and height of geometric correction map</div>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007493
7494
7495 </td> <!-- entry_type -->
7496
7497 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08007498 <p>Dimensions of geometric correction
7499map</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007500 </td>
7501
7502 <td class="entry_units">
7503 </td>
7504
7505 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08007506 <p>Both values &gt;= 2</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007507 </td>
7508
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007509 <td class="entry_tags">
7510 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08007511 <li><a href="#tag_V1">V1</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007512 </ul>
7513 </td>
7514
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007515 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007516
7517
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007518 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
7519 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007520
7521
7522 <tr class="entry" id="static_android.lens.info.hyperfocalDistance">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007523 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08007524 android.<wbr/>lens.<wbr/>info.<wbr/>hyperfocal<wbr/>Distance
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007525 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007526 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08007527 <span class="entry_type_name">float</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007528
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07007529 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007530
7531
7532 </td> <!-- entry_type -->
7533
7534 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08007535 <p>Hyperfocal distance for this lens; set to
75360 if fixed focus</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007537 </td>
7538
7539 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -08007540 diopters
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007541 </td>
7542
7543 <td class="entry_range">
Igor Murashkin6cb7c2c2014-01-10 15:12:40 -08007544 <p>&gt;= 0</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007545 </td>
7546
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007547 <td class="entry_tags">
7548 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08007549 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007550 </ul>
7551 </td>
7552
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007553 </tr>
7554 <tr class="entries_header">
7555 <th class="th_details" colspan="5">Details</th>
7556 </tr>
7557 <tr class="entry_cont">
7558 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08007559 <p>The hyperfocal distance is used for the old
7560API's 'fixed' setting</p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007561 </td>
7562 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007563
7564
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007565 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
7566 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007567
7568
7569 <tr class="entry" id="static_android.lens.info.minimumFocusDistance">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007570 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08007571 android.<wbr/>lens.<wbr/>info.<wbr/>minimum<wbr/>Focus<wbr/>Distance
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007572 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007573 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08007574 <span class="entry_type_name">float</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007575
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07007576 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007577
7578
7579 </td> <!-- entry_type -->
7580
7581 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08007582 <p>Shortest distance from frontmost surface
7583of the lens that can be focused correctly</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007584 </td>
7585
7586 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -08007587 diopters
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007588 </td>
7589
7590 <td class="entry_range">
Igor Murashkin6cb7c2c2014-01-10 15:12:40 -08007591 <p>&gt;= 0</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007592 </td>
7593
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007594 <td class="entry_tags">
7595 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08007596 <li><a href="#tag_V1">V1</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007597 </ul>
7598 </td>
7599
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007600 </tr>
7601 <tr class="entries_header">
7602 <th class="th_details" colspan="5">Details</th>
7603 </tr>
7604 <tr class="entry_cont">
7605 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08007606 <p>If the lens is fixed-focus,<wbr/> this should be
76070</p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007608 </td>
7609 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007610
7611
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007612 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
7613 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007614
7615
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007616 <tr class="entry" id="static_android.lens.info.shadingMapSize">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007617 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08007618 android.<wbr/>lens.<wbr/>info.<wbr/>shading<wbr/>Map<wbr/>Size
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007619 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007620 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08007621 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007622 <span class="entry_type_container">x</span>
7623
7624 <span class="entry_type_array">
7625 2
7626 </span>
Igor Murashkinb8dc8812013-07-17 16:29:34 -07007627 <span class="entry_type_visibility"> [public as size]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -08007628 <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 -08007629
7630
7631 </td> <!-- entry_type -->
7632
7633 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08007634 <p>Dimensions of lens shading map.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007635 </td>
7636
7637 <td class="entry_units">
7638 </td>
7639
7640 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08007641 <p>Both values &gt;= 1</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007642 </td>
7643
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007644 <td class="entry_tags">
7645 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08007646 <li><a href="#tag_V1">V1</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007647 </ul>
7648 </td>
7649
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007650 </tr>
7651 <tr class="entries_header">
7652 <th class="th_details" colspan="5">Details</th>
7653 </tr>
7654 <tr class="entry_cont">
7655 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08007656 <p>The map should be on the order of 30-40 rows and columns,<wbr/> and
7657must be smaller than 64x64.<wbr/></p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007658 </td>
7659 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007660
7661
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007662 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
7663 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007664
7665
7666
7667
7668
7669 <tr class="entry" id="static_android.lens.facing">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007670 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -08007671 android.<wbr/>lens.<wbr/>facing
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007672 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007673 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08007674 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007675
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07007676 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007677
7678 <ul class="entry_type_enum">
7679 <li>
7680 <span class="entry_type_enum_name">FRONT</span>
7681 </li>
7682 <li>
7683 <span class="entry_type_enum_name">BACK</span>
7684 </li>
7685 </ul>
7686
7687 </td> <!-- entry_type -->
7688
7689 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08007690 <p>Direction the camera faces relative to
7691device screen</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007692 </td>
7693
7694 <td class="entry_units">
7695 </td>
7696
7697 <td class="entry_range">
7698 </td>
7699
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007700 <td class="entry_tags">
7701 </td>
7702
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007703 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007704
7705
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007706 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
7707 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007708
7709
7710 <tr class="entry" id="static_android.lens.opticalAxisAngle">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007711 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08007712 android.<wbr/>lens.<wbr/>optical<wbr/>Axis<wbr/>Angle
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007713 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007714 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08007715 <span class="entry_type_name">float</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007716 <span class="entry_type_container">x</span>
7717
7718 <span class="entry_type_array">
7719 2
7720 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07007721 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -08007722 <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 -08007723
7724
7725 </td> <!-- entry_type -->
7726
7727 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08007728 <p>Relative angle of camera optical axis to the
7729perpendicular axis from the display</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007730 </td>
7731
7732 <td class="entry_units">
7733 </td>
7734
7735 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08007736 <p>[0-90) for first angle,<wbr/> [0-360) for second</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007737 </td>
7738
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007739 <td class="entry_tags">
7740 <ul class="entry_tags">
7741 <li><a href="#tag_ADV">ADV</a></li>
7742 </ul>
7743 </td>
7744
7745 </tr>
7746 <tr class="entries_header">
7747 <th class="th_details" colspan="5">Details</th>
7748 </tr>
7749 <tr class="entry_cont">
7750 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08007751 <p>Examples:</p>
7752<p>(0,<wbr/>0) means that the camera optical axis
Igor Murashkin8aa2a112013-12-09 12:06:17 -08007753is perpendicular to the display surface;</p>
Igor Murashkin0b080452013-12-27 15:30:25 -08007754<p>(45,<wbr/>0) means that the camera points 45 degrees up when
Igor Murashkin8aa2a112013-12-09 12:06:17 -08007755device is held upright;</p>
Igor Murashkin0b080452013-12-27 15:30:25 -08007756<p>(45,<wbr/>90) means the camera points 45 degrees to the right when
7757the device is held upright.<wbr/></p>
Igor Murashkin8aa2a112013-12-09 12:06:17 -08007758<p>Use FACING field to determine perpendicular outgoing
Igor Murashkin0b080452013-12-27 15:30:25 -08007759direction</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007760 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007761 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007762
7763
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007764 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
7765 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007766
7767
7768 <tr class="entry" id="static_android.lens.position">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007769 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -08007770 android.<wbr/>lens.<wbr/>position
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007771 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007772 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08007773 <span class="entry_type_name">float</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007774 <span class="entry_type_container">x</span>
7775
7776 <span class="entry_type_array">
7777 3, location in mm, in the sensor coordinate
7778 system
7779 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07007780 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007781
7782
7783 </td> <!-- entry_type -->
7784
7785 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08007786 <p>Coordinates of camera optical axis on
7787device</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007788 </td>
7789
7790 <td class="entry_units">
7791 </td>
7792
7793 <td class="entry_range">
7794 </td>
7795
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007796 <td class="entry_tags">
7797 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08007798 <li><a href="#tag_V1">V1</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007799 </ul>
7800 </td>
7801
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007802 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007803
7804
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007805 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
7806 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007807
7808
7809
7810 <!-- end of kind -->
7811 </tbody>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007812 <tr><td colspan="6" class="kind">dynamic</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007813
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07007814 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007815 <tr>
7816 <th class="th_name">Property Name</th>
7817 <th class="th_type">Type</th>
7818 <th class="th_description">Description</th>
7819 <th class="th_units">Units</th>
7820 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007821 <th class="th_tags">Tags</th>
7822 </tr>
7823 </thead>
7824
7825 <tbody>
7826
7827
7828
7829
7830
7831
7832
7833
7834
7835
7836 <tr class="entry" id="dynamic_android.lens.aperture">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007837 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08007838 android.<wbr/>lens.<wbr/>aperture
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007839 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007840 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08007841 <span class="entry_type_name">float</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007842
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07007843 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007844
7845
7846 </td> <!-- entry_type -->
7847
7848 <td class="entry_description">
Zhijun He1b58d382014-01-10 10:22:53 -08007849 <p>The ratio of lens focal length to the effective
7850aperture diameter.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007851 </td>
7852
7853 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -08007854 f-number (f/<wbr/>NNN)
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007855 </td>
7856
7857 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08007858 <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 -08007859 </td>
7860
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007861 <td class="entry_tags">
7862 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08007863 <li><a href="#tag_V1">V1</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007864 </ul>
7865 </td>
7866
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007867 </tr>
7868 <tr class="entries_header">
7869 <th class="th_details" colspan="5">Details</th>
7870 </tr>
7871 <tr class="entry_cont">
7872 <td class="entry_details" colspan="5">
Zhijun He1b58d382014-01-10 10:22:53 -08007873 <p>This will only be supported on the camera devices that
7874have variable aperture lens.<wbr/> The aperture value can only be
7875one of the values listed in <a href="#static_android.lens.info.availableApertures">android.<wbr/>lens.<wbr/>info.<wbr/>available<wbr/>Apertures</a>.<wbr/></p>
7876<p>When this is supported and <a href="#controls_android.control.aeMode">android.<wbr/>control.<wbr/>ae<wbr/>Mode</a> is OFF,<wbr/>
7877this can be set along with <a href="#controls_android.sensor.exposureTime">android.<wbr/>sensor.<wbr/>exposure<wbr/>Time</a>,<wbr/>
7878<a href="#controls_android.sensor.sensitivity">android.<wbr/>sensor.<wbr/>sensitivity</a>,<wbr/> and android.<wbr/>sensor.<wbr/>frame<wbr/>Duration
7879to achieve manual exposure control.<wbr/></p>
7880<p>The requested aperture value may take several frames to reach the
7881requested value; the camera device will report the current (intermediate)
Zhijun He5169ce12014-01-24 16:48:25 -08007882aperture size in capture result metadata while the aperture is changing.<wbr/>
7883While 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 -08007884<p>When this is supported and <a href="#controls_android.control.aeMode">android.<wbr/>control.<wbr/>ae<wbr/>Mode</a> is one of
7885the ON modes,<wbr/> this will be overridden by the camera device
7886auto-exposure algorithm,<wbr/> the overridden values are then provided
7887back to the user in the corresponding result.<wbr/></p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007888 </td>
7889 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007890
7891
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007892 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
7893 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007894
7895
7896 <tr class="entry" id="dynamic_android.lens.filterDensity">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007897 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08007898 android.<wbr/>lens.<wbr/>filter<wbr/>Density
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007899 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007900 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08007901 <span class="entry_type_name">float</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007902
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07007903 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007904
7905
7906 </td> <!-- entry_type -->
7907
7908 <td class="entry_description">
Ruben Brunk83eb3032014-01-15 16:12:07 -08007909 <p>State of lens neutral density filter(s).<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007910 </td>
7911
7912 <td class="entry_units">
Ruben Brunk83eb3032014-01-15 16:12:07 -08007913 Steps of Exposure Value (EV).<wbr/>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007914 </td>
7915
7916 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08007917 <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 -08007918 </td>
7919
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007920 <td class="entry_tags">
7921 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08007922 <li><a href="#tag_V1">V1</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007923 </ul>
7924 </td>
7925
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007926 </tr>
7927 <tr class="entries_header">
7928 <th class="th_details" colspan="5">Details</th>
7929 </tr>
7930 <tr class="entry_cont">
7931 <td class="entry_details" colspan="5">
Ruben Brunk83eb3032014-01-15 16:12:07 -08007932 <p>This will not be supported on most camera devices.<wbr/> On devices
7933where this is supported,<wbr/> this may only be set to one of the
7934values included in <a href="#static_android.lens.info.availableFilterDensities">android.<wbr/>lens.<wbr/>info.<wbr/>available<wbr/>Filter<wbr/>Densities</a>.<wbr/></p>
7935<p>Lens filters are typically used to lower the amount of light the
7936sensor is exposed to (measured in steps of EV).<wbr/> As used here,<wbr/> an EV
7937step is the standard logarithmic representation,<wbr/> which are
7938non-negative,<wbr/> and inversely proportional to the amount of light
7939hitting the sensor.<wbr/> For example,<wbr/> setting this to 0 would result
7940in no reduction of the incoming light,<wbr/> and setting this to 2 would
7941mean that the filter is set to reduce incoming light by two stops
7942(allowing 1/<wbr/>4 of the prior amount of light to the sensor).<wbr/></p>
Zhijun He5169ce12014-01-24 16:48:25 -08007943<p>It may take several frames before the lens filter density changes
7944to the requested value.<wbr/> While the filter density is still changing,<wbr/>
7945<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 -08007946 </td>
7947 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007948
7949
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007950 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
7951 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007952
7953
7954 <tr class="entry" id="dynamic_android.lens.focalLength">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007955 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08007956 android.<wbr/>lens.<wbr/>focal<wbr/>Length
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007957 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007958 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08007959 <span class="entry_type_name">float</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007960
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07007961 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007962
7963
7964 </td> <!-- entry_type -->
7965
7966 <td class="entry_description">
Ruben Brunkac9bbb92014-01-15 18:39:35 -08007967 <p>The current lens focal length; used for optical zoom.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007968 </td>
7969
7970 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -08007971 focal length in mm
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007972 </td>
7973
7974 <td class="entry_range">
Ruben Brunkac9bbb92014-01-15 18:39:35 -08007975 <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 -08007976 </td>
7977
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007978 <td class="entry_tags">
7979 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08007980 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007981 </ul>
7982 </td>
7983
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007984 </tr>
7985 <tr class="entries_header">
7986 <th class="th_details" colspan="5">Details</th>
7987 </tr>
7988 <tr class="entry_cont">
7989 <td class="entry_details" colspan="5">
Ruben Brunkac9bbb92014-01-15 18:39:35 -08007990 <p>This setting controls the physical focal length of the camera
7991device's lens.<wbr/> Changing the focal length changes the field of
7992view of the camera device,<wbr/> and is usually used for optical zoom.<wbr/></p>
7993<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
7994setting won't be applied instantaneously,<wbr/> and it may take several
Zhijun He5169ce12014-01-24 16:48:25 -08007995frames before the lens can change to the requested focal length.<wbr/>
Ruben Brunkac9bbb92014-01-15 18:39:35 -08007996While the focal length is still changing,<wbr/> <a href="#dynamic_android.lens.state">android.<wbr/>lens.<wbr/>state</a> will
7997be set to MOVING.<wbr/></p>
7998<p>This is expected not to be supported on most devices.<wbr/></p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007999 </td>
8000 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008001
8002
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008003 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
8004 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008005
8006
8007 <tr class="entry" id="dynamic_android.lens.focusDistance">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008008 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08008009 android.<wbr/>lens.<wbr/>focus<wbr/>Distance
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008010 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008011 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08008012 <span class="entry_type_name">float</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008013
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07008014 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008015
8016
8017 </td> <!-- entry_type -->
8018
8019 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08008020 <p>Distance to plane of sharpest focus,<wbr/>
8021measured from frontmost surface of the lens</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008022 </td>
8023
8024 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -08008025 diopters (1/<wbr/>m)
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008026 </td>
8027
8028 <td class="entry_range">
Igor Murashkin6cb7c2c2014-01-10 15:12:40 -08008029 <p>&gt;= 0</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008030 </td>
8031
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008032 <td class="entry_tags">
8033 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08008034 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008035 </ul>
8036 </td>
8037
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008038 </tr>
8039 <tr class="entries_header">
8040 <th class="th_details" colspan="5">Details</th>
8041 </tr>
8042 <tr class="entry_cont">
8043 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08008044 <p>Should be zero for fixed-focus cameras</p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008045 </td>
8046 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008047
8048
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008049 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
8050 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008051
8052
8053 <tr class="entry" id="dynamic_android.lens.focusRange">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008054 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08008055 android.<wbr/>lens.<wbr/>focus<wbr/>Range
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008056 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008057 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08008058 <span class="entry_type_name">float</span>
Zhijun He50451ad2013-09-26 10:27:47 -07008059 <span class="entry_type_container">x</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008060
Zhijun He50451ad2013-09-26 10:27:47 -07008061 <span class="entry_type_array">
8062 2
8063 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07008064 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -08008065 <div class="entry_type_notes">Range of scene distances that are in focus</div>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008066
8067
8068 </td> <!-- entry_type -->
8069
8070 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08008071 <p>The range of scene distances that are in
8072sharp focus (depth of field)</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008073 </td>
8074
8075 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -08008076 pair of focus distances in diopters: (near,<wbr/>
8077 far)
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008078 </td>
8079
8080 <td class="entry_range">
Igor Murashkin6cb7c2c2014-01-10 15:12:40 -08008081 <p>&gt;=0</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008082 </td>
8083
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008084 <td class="entry_tags">
8085 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08008086 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008087 </ul>
8088 </td>
8089
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008090 </tr>
8091 <tr class="entries_header">
8092 <th class="th_details" colspan="5">Details</th>
8093 </tr>
8094 <tr class="entry_cont">
8095 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08008096 <p>If variable focus not supported,<wbr/> can still report
8097fixed depth of field range</p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008098 </td>
8099 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008100
8101
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008102 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
8103 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008104
8105
8106 <tr class="entry" id="dynamic_android.lens.opticalStabilizationMode">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008107 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08008108 android.<wbr/>lens.<wbr/>optical<wbr/>Stabilization<wbr/>Mode
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008109 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008110 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08008111 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008112
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07008113 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008114
8115 <ul class="entry_type_enum">
8116 <li>
8117 <span class="entry_type_enum_name">OFF</span>
Ruben Brunk218639c2014-01-15 18:09:41 -08008118 <span class="entry_type_enum_notes"><p>Optical stabilization is unavailable.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008119 </li>
8120 <li>
8121 <span class="entry_type_enum_name">ON</span>
8122 <span class="entry_type_enum_optional">optional</span>
Ruben Brunk218639c2014-01-15 18:09:41 -08008123 <span class="entry_type_enum_notes"><p>Optical stabilization is enabled.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008124 </li>
8125 </ul>
8126
8127 </td> <!-- entry_type -->
8128
8129 <td class="entry_description">
Ruben Brunk218639c2014-01-15 18:09:41 -08008130 <p>Sets whether the camera device uses optical image stabilization (OIS)
8131when capturing images.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008132 </td>
8133
8134 <td class="entry_units">
8135 </td>
8136
8137 <td class="entry_range">
Ruben Brunk218639c2014-01-15 18:09:41 -08008138 <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 -08008139 </td>
8140
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008141 <td class="entry_tags">
8142 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08008143 <li><a href="#tag_V1">V1</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008144 </ul>
8145 </td>
8146
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008147 </tr>
8148 <tr class="entries_header">
8149 <th class="th_details" colspan="5">Details</th>
8150 </tr>
8151 <tr class="entry_cont">
8152 <td class="entry_details" colspan="5">
Ruben Brunk218639c2014-01-15 18:09:41 -08008153 <p>OIS is used to compensate for motion blur due to small movements of
8154the camera during capture.<wbr/> Unlike digital image stabilization,<wbr/> OIS makes
8155use of mechanical elements to stabilize the camera sensor,<wbr/> and thus
8156allows for longer exposure times before camera shake becomes
8157apparent.<wbr/></p>
8158<p>This is not expected to be supported on most devices.<wbr/></p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008159 </td>
8160 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008161
8162
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008163 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
8164 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008165
8166
8167 <tr class="entry" id="dynamic_android.lens.state">
Zhijun He5169ce12014-01-24 16:48:25 -08008168 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08008169 android.<wbr/>lens.<wbr/>state
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008170 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008171 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08008172 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008173
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07008174 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008175
8176 <ul class="entry_type_enum">
8177 <li>
8178 <span class="entry_type_enum_name">STATIONARY</span>
Zhijun He5169ce12014-01-24 16:48:25 -08008179 <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
8180android.<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 -08008181 </li>
Igor Murashkin0e323a12013-09-06 11:50:48 -07008182 <li>
8183 <span class="entry_type_enum_name">MOVING</span>
Zhijun He5169ce12014-01-24 16:48:25 -08008184 <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
8185android.<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 -07008186 </li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008187 </ul>
8188
8189 </td> <!-- entry_type -->
8190
8191 <td class="entry_description">
Zhijun He5169ce12014-01-24 16:48:25 -08008192 <p>Current lens status.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008193 </td>
8194
8195 <td class="entry_units">
8196 </td>
8197
8198 <td class="entry_range">
8199 </td>
8200
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008201 <td class="entry_tags">
8202 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08008203 <li><a href="#tag_V1">V1</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008204 </ul>
8205 </td>
8206
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008207 </tr>
Zhijun He5169ce12014-01-24 16:48:25 -08008208 <tr class="entries_header">
8209 <th class="th_details" colspan="5">Details</th>
8210 </tr>
8211 <tr class="entry_cont">
8212 <td class="entry_details" colspan="5">
8213 <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/>
8214<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/>
8215they may take several frames to reach the requested values.<wbr/> This state indicates
8216the current status of the lens parameters.<wbr/></p>
8217<p>When the state is STATIONARY,<wbr/> the lens parameters are not changing.<wbr/> This could be
8218either because the parameters are all fixed,<wbr/> or because the lens has had enough
8219time to reach the most recently-requested values.<wbr/>
8220If all these lens parameters are not changable for a camera device,<wbr/> as listed below:</p>
8221<ul>
8222<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
8223<a href="#controls_android.lens.focusDistance">android.<wbr/>lens.<wbr/>focus<wbr/>Distance</a> parameter will always be 0.<wbr/></li>
8224<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/>
8225which means the optical zoom is not supported.<wbr/></li>
8226<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>
8227<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>
8228</ul>
8229<p>Then this state will always be STATIONARY.<wbr/></p>
8230<p>When the state is MOVING,<wbr/> it indicates that at least one of the lens parameters
8231is changing.<wbr/></p>
8232 </td>
8233 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008234
8235
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008236 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
8237 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008238
8239
8240
8241 <!-- end of kind -->
8242 </tbody>
8243
8244 <!-- end of section -->
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008245 <tr><td colspan="6" id="section_noiseReduction" class="section">noiseReduction</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008246
8247
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008248 <tr><td colspan="6" class="kind">controls</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008249
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07008250 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008251 <tr>
8252 <th class="th_name">Property Name</th>
8253 <th class="th_type">Type</th>
8254 <th class="th_description">Description</th>
8255 <th class="th_units">Units</th>
8256 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008257 <th class="th_tags">Tags</th>
8258 </tr>
8259 </thead>
8260
8261 <tbody>
8262
8263
8264
8265
8266
8267
8268
8269
8270
8271
8272 <tr class="entry" id="controls_android.noiseReduction.mode">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008273 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08008274 android.<wbr/>noise<wbr/>Reduction.<wbr/>mode
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008275 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008276 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08008277 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008278
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07008279 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008280
8281 <ul class="entry_type_enum">
8282 <li>
8283 <span class="entry_type_enum_name">OFF</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08008284 <span class="entry_type_enum_notes"><p>No noise reduction is applied</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008285 </li>
8286 <li>
8287 <span class="entry_type_enum_name">FAST</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08008288 <span class="entry_type_enum_notes"><p>Must not slow down frame rate relative to sensor
8289output</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008290 </li>
8291 <li>
8292 <span class="entry_type_enum_name">HIGH_QUALITY</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08008293 <span class="entry_type_enum_notes"><p>May slow down frame rate to provide highest
8294quality</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008295 </li>
8296 </ul>
8297
8298 </td> <!-- entry_type -->
8299
8300 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08008301 <p>Mode of operation for the noise reduction
8302algorithm</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008303 </td>
8304
8305 <td class="entry_units">
8306 </td>
8307
8308 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08008309 <p>android.<wbr/>noise<wbr/>Reduction.<wbr/>available<wbr/>Modes</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008310 </td>
8311
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008312 <td class="entry_tags">
8313 <ul class="entry_tags">
8314 <li><a href="#tag_V1">V1</a></li>
8315 </ul>
8316 </td>
8317
8318 </tr>
8319 <tr class="entries_header">
8320 <th class="th_details" colspan="5">Details</th>
8321 </tr>
8322 <tr class="entry_cont">
8323 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08008324 <p>Noise filtering control.<wbr/> OFF means no noise reduction
8325will be applied by the HAL.<wbr/></p>
Zhijun Hef90eeaf2014-01-16 12:13:35 -08008326<p>FAST/<wbr/>HIGH_<wbr/>QUALITY both mean camera device determined noise filtering
8327will be applied.<wbr/> HIGH_<wbr/>QUALITY mode indicates that the camera device
8328will use the highest-quality noise filtering algorithms,<wbr/>
8329even if it slows down capture rate.<wbr/> FAST means the camera device should not
Igor Murashkin0b080452013-12-27 15:30:25 -08008330slow down capture rate when applying noise filtering.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008331 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008332 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008333
8334
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008335 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
8336 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008337
8338
8339 <tr class="entry" id="controls_android.noiseReduction.strength">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008340 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -08008341 android.<wbr/>noise<wbr/>Reduction.<wbr/>strength
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008342 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008343 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08008344 <span class="entry_type_name">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008345
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07008346 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008347
8348
8349 </td> <!-- entry_type -->
8350
8351 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08008352 <p>Control the amount of noise reduction
8353applied to the images</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008354 </td>
8355
8356 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -08008357 1-10; 10 is max noise reduction
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008358 </td>
8359
8360 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08008361 <p>1 - 10</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008362 </td>
8363
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008364 <td class="entry_tags">
8365 </td>
8366
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008367 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008368
8369
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008370 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
8371 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008372
8373
8374
8375 <!-- end of kind -->
8376 </tbody>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008377 <tr><td colspan="6" class="kind">dynamic</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008378
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07008379 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008380 <tr>
8381 <th class="th_name">Property Name</th>
8382 <th class="th_type">Type</th>
8383 <th class="th_description">Description</th>
8384 <th class="th_units">Units</th>
8385 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008386 <th class="th_tags">Tags</th>
8387 </tr>
8388 </thead>
8389
8390 <tbody>
8391
8392
8393
8394
8395
8396
8397
8398
8399
8400
8401 <tr class="entry" id="dynamic_android.noiseReduction.mode">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008402 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08008403 android.<wbr/>noise<wbr/>Reduction.<wbr/>mode
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008404 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008405 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08008406 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008407
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07008408 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008409
8410 <ul class="entry_type_enum">
8411 <li>
8412 <span class="entry_type_enum_name">OFF</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08008413 <span class="entry_type_enum_notes"><p>No noise reduction is applied</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008414 </li>
8415 <li>
8416 <span class="entry_type_enum_name">FAST</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08008417 <span class="entry_type_enum_notes"><p>Must not slow down frame rate relative to sensor
8418output</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008419 </li>
8420 <li>
8421 <span class="entry_type_enum_name">HIGH_QUALITY</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08008422 <span class="entry_type_enum_notes"><p>May slow down frame rate to provide highest
8423quality</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008424 </li>
8425 </ul>
8426
8427 </td> <!-- entry_type -->
8428
8429 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08008430 <p>Mode of operation for the noise reduction
8431algorithm</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008432 </td>
8433
8434 <td class="entry_units">
8435 </td>
8436
8437 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08008438 <p>android.<wbr/>noise<wbr/>Reduction.<wbr/>available<wbr/>Modes</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008439 </td>
8440
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008441 <td class="entry_tags">
8442 <ul class="entry_tags">
8443 <li><a href="#tag_V1">V1</a></li>
8444 </ul>
8445 </td>
8446
8447 </tr>
8448 <tr class="entries_header">
8449 <th class="th_details" colspan="5">Details</th>
8450 </tr>
8451 <tr class="entry_cont">
8452 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08008453 <p>Noise filtering control.<wbr/> OFF means no noise reduction
8454will be applied by the HAL.<wbr/></p>
Zhijun Hef90eeaf2014-01-16 12:13:35 -08008455<p>FAST/<wbr/>HIGH_<wbr/>QUALITY both mean camera device determined noise filtering
8456will be applied.<wbr/> HIGH_<wbr/>QUALITY mode indicates that the camera device
8457will use the highest-quality noise filtering algorithms,<wbr/>
8458even if it slows down capture rate.<wbr/> FAST means the camera device should not
Igor Murashkin0b080452013-12-27 15:30:25 -08008459slow down capture rate when applying noise filtering.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008460 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008461 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008462
8463
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008464 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
8465 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008466
8467
8468
8469 <!-- end of kind -->
8470 </tbody>
8471
8472 <!-- end of section -->
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008473 <tr><td colspan="6" id="section_quirks" class="section">quirks</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008474
8475
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008476 <tr><td colspan="6" class="kind">static</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008477
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07008478 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008479 <tr>
8480 <th class="th_name">Property Name</th>
8481 <th class="th_type">Type</th>
8482 <th class="th_description">Description</th>
8483 <th class="th_units">Units</th>
8484 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008485 <th class="th_tags">Tags</th>
8486 </tr>
8487 </thead>
8488
8489 <tbody>
8490
8491
8492
8493
8494
8495
8496
8497
8498
8499
8500 <tr class="entry" id="static_android.quirks.meteringCropRegion">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008501 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08008502 android.<wbr/>quirks.<wbr/>metering<wbr/>Crop<wbr/>Region
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008503 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008504 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08008505 <span class="entry_type_name">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008506
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07008507 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008508
8509
8510 </td> <!-- entry_type -->
8511
8512 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08008513 <p>If set to 1,<wbr/> the camera service does not
Igor Murashkin8aa2a112013-12-09 12:06:17 -08008514scale 'normalized' coordinates with respect to the crop
Igor Murashkin0b080452013-12-27 15:30:25 -08008515region.<wbr/> This applies to metering input (a{e,<wbr/>f,<wbr/>wb}Region
8516and output (face rectangles).<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008517 </td>
8518
8519 <td class="entry_units">
8520 </td>
8521
8522 <td class="entry_range">
Zhijun Hefb4701f2014-02-04 11:32:24 -08008523 <p><strong>Deprecated</strong>.<wbr/> Do not use.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008524 </td>
8525
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008526 <td class="entry_tags">
8527 </td>
8528
8529 </tr>
8530 <tr class="entries_header">
8531 <th class="th_details" colspan="5">Details</th>
8532 </tr>
8533 <tr class="entry_cont">
8534 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08008535 <p>Normalized coordinates refer to those in the
8536(-1000,<wbr/>1000) range mentioned in the
8537android.<wbr/>hardware.<wbr/>Camera API.<wbr/></p>
Igor Murashkin8aa2a112013-12-09 12:06:17 -08008538<p>HAL implementations should instead always use and emit
Igor Murashkin0b080452013-12-27 15:30:25 -08008539sensor array-relative coordinates for all region data.<wbr/> Does
8540not need to be listed in static metadata.<wbr/> Support will be
8541removed in future versions of camera service.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008542 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008543 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008544
8545
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008546 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
8547 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008548
8549
8550 <tr class="entry" id="static_android.quirks.triggerAfWithAuto">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008551 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08008552 android.<wbr/>quirks.<wbr/>trigger<wbr/>Af<wbr/>With<wbr/>Auto
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008553 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008554 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08008555 <span class="entry_type_name">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008556
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07008557 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008558
8559
8560 </td> <!-- entry_type -->
8561
8562 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08008563 <p>If set to 1,<wbr/> then the camera service always
8564switches to FOCUS_<wbr/>MODE_<wbr/>AUTO before issuing a AF
8565trigger.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008566 </td>
8567
8568 <td class="entry_units">
8569 </td>
8570
8571 <td class="entry_range">
Zhijun Hefb4701f2014-02-04 11:32:24 -08008572 <p><strong>Deprecated</strong>.<wbr/> Do not use.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008573 </td>
8574
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008575 <td class="entry_tags">
8576 </td>
8577
8578 </tr>
8579 <tr class="entries_header">
8580 <th class="th_details" colspan="5">Details</th>
8581 </tr>
8582 <tr class="entry_cont">
8583 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08008584 <p>HAL implementations should implement AF trigger
8585modes for AUTO,<wbr/> MACRO,<wbr/> CONTINUOUS_<wbr/>FOCUS,<wbr/> and
8586CONTINUOUS_<wbr/>PICTURE modes instead of using this flag.<wbr/> Does
8587not need to be listed in static metadata.<wbr/> Support will be
8588removed in future versions of camera service</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008589 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008590 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008591
8592
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008593 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
8594 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008595
8596
8597 <tr class="entry" id="static_android.quirks.useZslFormat">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008598 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08008599 android.<wbr/>quirks.<wbr/>use<wbr/>Zsl<wbr/>Format
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008600 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008601 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08008602 <span class="entry_type_name">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008603
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07008604 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008605
8606
8607 </td> <!-- entry_type -->
8608
8609 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08008610 <p>If set to 1,<wbr/> the camera service uses
8611CAMERA2_<wbr/>PIXEL_<wbr/>FORMAT_<wbr/>ZSL instead of
8612HAL_<wbr/>PIXEL_<wbr/>FORMAT_<wbr/>IMPLEMENTATION_<wbr/>DEFINED for the zero
8613shutter lag stream</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008614 </td>
8615
8616 <td class="entry_units">
8617 </td>
8618
8619 <td class="entry_range">
Zhijun Hefb4701f2014-02-04 11:32:24 -08008620 <p><strong>Deprecated</strong>.<wbr/> Do not use.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008621 </td>
8622
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008623 <td class="entry_tags">
8624 </td>
8625
8626 </tr>
8627 <tr class="entries_header">
8628 <th class="th_details" colspan="5">Details</th>
8629 </tr>
8630 <tr class="entry_cont">
8631 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08008632 <p>HAL implementations should use gralloc usage flags
Igor Murashkin8aa2a112013-12-09 12:06:17 -08008633to determine that a stream will be used for
Igor Murashkin0b080452013-12-27 15:30:25 -08008634zero-shutter-lag,<wbr/> instead of relying on an explicit
8635format setting.<wbr/> Does not need to be listed in static
8636metadata.<wbr/> Support will be removed in future versions of
8637camera service.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008638 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008639 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008640
8641
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008642 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
8643 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008644
Eino-Ville Talvala82ce3312013-10-09 18:21:30 -07008645
8646 <tr class="entry" id="static_android.quirks.usePartialResult">
Igor Murashkin7761a222014-01-27 16:06:38 -08008647 <td class="entry_name" rowspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08008648 android.<wbr/>quirks.<wbr/>use<wbr/>Partial<wbr/>Result
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008649 </td>
Eino-Ville Talvala82ce3312013-10-09 18:21:30 -07008650 <td class="entry_type">
8651 <span class="entry_type_name">byte</span>
8652
Eino-Ville Talvala52a64a52013-11-07 14:43:43 -08008653 <span class="entry_type_visibility"> [hidden]</span>
Eino-Ville Talvala82ce3312013-10-09 18:21:30 -07008654
8655
8656 </td> <!-- entry_type -->
8657
8658 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08008659 <p>If set to 1,<wbr/> the HAL will always split result
8660metadata for a single capture into multiple buffers,<wbr/>
8661returned using multiple process_<wbr/>capture_<wbr/>result calls.<wbr/></p>
Eino-Ville Talvala82ce3312013-10-09 18:21:30 -07008662 </td>
8663
8664 <td class="entry_units">
8665 </td>
8666
8667 <td class="entry_range">
Igor Murashkin7761a222014-01-27 16:06:38 -08008668 <p><strong>Deprecated</strong>.<wbr/> Do not use.<wbr/></p>
Eino-Ville Talvala82ce3312013-10-09 18:21:30 -07008669 </td>
8670
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008671 <td class="entry_tags">
8672 </td>
8673
8674 </tr>
8675 <tr class="entries_header">
8676 <th class="th_details" colspan="5">Details</th>
8677 </tr>
8678 <tr class="entry_cont">
8679 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08008680 <p>Does not need to be listed in static
8681metadata.<wbr/> Support for partial results will be reworked in
8682future versions of camera service.<wbr/> This quirk will stop
Igor Murashkin8aa2a112013-12-09 12:06:17 -08008683working at that point; DO NOT USE without careful
Igor Murashkin0b080452013-12-27 15:30:25 -08008684consideration of future support.<wbr/></p>
Eino-Ville Talvala82ce3312013-10-09 18:21:30 -07008685 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008686 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008687
Igor Murashkin7761a222014-01-27 16:06:38 -08008688 <tr class="entries_header">
8689 <th class="th_details" colspan="5">HAL Implementation Details</th>
8690 </tr>
8691 <tr class="entry_cont">
8692 <td class="entry_details" colspan="5">
8693 <p>Refer to <code>camera3_<wbr/>capture_<wbr/>result::partial_<wbr/>result</code>
8694for information on how to implement partial results.<wbr/></p>
8695 </td>
8696 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008697
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008698 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
8699 <!-- end of entry -->
Eino-Ville Talvala82ce3312013-10-09 18:21:30 -07008700
8701
8702
8703 <!-- end of kind -->
8704 </tbody>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008705 <tr><td colspan="6" class="kind">dynamic</td></tr>
Eino-Ville Talvala82ce3312013-10-09 18:21:30 -07008706
8707 <thead class="entries_header">
8708 <tr>
8709 <th class="th_name">Property Name</th>
8710 <th class="th_type">Type</th>
8711 <th class="th_description">Description</th>
8712 <th class="th_units">Units</th>
8713 <th class="th_range">Range</th>
Eino-Ville Talvala82ce3312013-10-09 18:21:30 -07008714 <th class="th_tags">Tags</th>
8715 </tr>
8716 </thead>
8717
8718 <tbody>
8719
8720
8721
8722
8723
8724
8725
8726
8727
8728
8729 <tr class="entry" id="dynamic_android.quirks.partialResult">
Igor Murashkin7761a222014-01-27 16:06:38 -08008730 <td class="entry_name" rowspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08008731 android.<wbr/>quirks.<wbr/>partial<wbr/>Result
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008732 </td>
Eino-Ville Talvala82ce3312013-10-09 18:21:30 -07008733 <td class="entry_type">
8734 <span class="entry_type_name entry_type_name_enum">byte</span>
8735
Eino-Ville Talvala52a64a52013-11-07 14:43:43 -08008736 <span class="entry_type_visibility"> [hidden as boolean]</span>
Eino-Ville Talvala82ce3312013-10-09 18:21:30 -07008737
8738 <ul class="entry_type_enum">
8739 <li>
8740 <span class="entry_type_enum_name">FINAL</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08008741 <span class="entry_type_enum_notes"><p>The last or only metadata result buffer
8742for this capture.<wbr/></p></span>
Eino-Ville Talvala82ce3312013-10-09 18:21:30 -07008743 </li>
8744 <li>
8745 <span class="entry_type_enum_name">PARTIAL</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08008746 <span class="entry_type_enum_notes"><p>A partial buffer of result metadata for this
8747capture.<wbr/> More result buffers for this capture will be sent
8748by the HAL,<wbr/> the last of which will be marked
8749FINAL.<wbr/></p></span>
Eino-Ville Talvala82ce3312013-10-09 18:21:30 -07008750 </li>
8751 </ul>
8752
8753 </td> <!-- entry_type -->
8754
8755 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08008756 <p>Whether a result given to the framework is the
8757final one for the capture,<wbr/> or only a partial that contains a
Igor Murashkin8aa2a112013-12-09 12:06:17 -08008758subset of the full set of dynamic metadata
Igor Murashkin0b080452013-12-27 15:30:25 -08008759values.<wbr/></p>
Eino-Ville Talvala82ce3312013-10-09 18:21:30 -07008760 </td>
8761
8762 <td class="entry_units">
8763 </td>
8764
8765 <td class="entry_range">
Igor Murashkin7761a222014-01-27 16:06:38 -08008766 <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 -07008767 </td>
8768
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008769 <td class="entry_tags">
8770 </td>
8771
8772 </tr>
8773 <tr class="entries_header">
8774 <th class="th_details" colspan="5">Details</th>
8775 </tr>
8776 <tr class="entry_cont">
8777 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08008778 <p>The entries in the result metadata buffers for a
8779single capture may not overlap,<wbr/> except for this entry.<wbr/> The
Igor Murashkin8aa2a112013-12-09 12:06:17 -08008780FINAL buffers must retain FIFO ordering relative to the
Igor Murashkin0b080452013-12-27 15:30:25 -08008781requests that generate them,<wbr/> so the FINAL buffer for frame 3 must
8782always be sent to the framework after the FINAL buffer for frame 2,<wbr/> and
8783before the FINAL buffer for frame 4.<wbr/> PARTIAL buffers may be returned
8784in any order relative to other frames,<wbr/> but all PARTIAL buffers for a given
8785capture must arrive before the FINAL buffer for that capture.<wbr/> This entry may
8786only be used by the HAL if quirks.<wbr/>usePartialResult is set to 1.<wbr/></p>
Eino-Ville Talvala82ce3312013-10-09 18:21:30 -07008787 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008788 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008789
Igor Murashkin7761a222014-01-27 16:06:38 -08008790 <tr class="entries_header">
8791 <th class="th_details" colspan="5">HAL Implementation Details</th>
8792 </tr>
8793 <tr class="entry_cont">
8794 <td class="entry_details" colspan="5">
8795 <p>Refer to <code>camera3_<wbr/>capture_<wbr/>result::partial_<wbr/>result</code>
8796for information on how to implement partial results.<wbr/></p>
8797 </td>
8798 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008799
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008800 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
8801 <!-- end of entry -->
Eino-Ville Talvala82ce3312013-10-09 18:21:30 -07008802
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008803
8804
8805 <!-- end of kind -->
8806 </tbody>
8807
8808 <!-- end of section -->
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008809 <tr><td colspan="6" id="section_request" class="section">request</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008810
8811
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008812 <tr><td colspan="6" class="kind">controls</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008813
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07008814 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008815 <tr>
8816 <th class="th_name">Property Name</th>
8817 <th class="th_type">Type</th>
8818 <th class="th_description">Description</th>
8819 <th class="th_units">Units</th>
8820 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008821 <th class="th_tags">Tags</th>
8822 </tr>
8823 </thead>
8824
8825 <tbody>
8826
8827
8828
8829
8830
8831
8832
8833
8834
8835
8836 <tr class="entry" id="controls_android.request.frameCount">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008837 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -08008838 android.<wbr/>request.<wbr/>frame<wbr/>Count
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008839 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008840 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08008841 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008842
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07008843 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008844
8845
8846 </td> <!-- entry_type -->
8847
8848 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08008849 <p>A frame counter set by the framework.<wbr/> Must
8850be maintained unchanged in output frame.<wbr/> This value monotonically
8851increases with every new result (that is,<wbr/> each new result has a unique
8852frameCount value).<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008853 </td>
8854
8855 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -08008856 incrementing integer
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008857 </td>
8858
8859 <td class="entry_range">
Zhijun Hefb4701f2014-02-04 11:32:24 -08008860 <p><strong>Deprecated</strong>.<wbr/> Do not use.<wbr/> Any int.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008861 </td>
8862
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008863 <td class="entry_tags">
8864 </td>
8865
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008866 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008867
8868
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008869 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
8870 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008871
8872
8873 <tr class="entry" id="controls_android.request.id">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008874 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -08008875 android.<wbr/>request.<wbr/>id
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008876 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008877 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08008878 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008879
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07008880 <span class="entry_type_visibility"> [hidden]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008881
8882
8883 </td> <!-- entry_type -->
8884
8885 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08008886 <p>An application-specified ID for the current
8887request.<wbr/> Must be maintained unchanged in output
8888frame</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008889 </td>
8890
8891 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -08008892 arbitrary integer assigned by application
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008893 </td>
8894
8895 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08008896 <p>Any int</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008897 </td>
8898
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008899 <td class="entry_tags">
8900 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08008901 <li><a href="#tag_V1">V1</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008902 </ul>
8903 </td>
8904
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008905 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008906
8907
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008908 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
8909 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008910
8911
8912 <tr class="entry" id="controls_android.request.inputStreams">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008913 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08008914 android.<wbr/>request.<wbr/>input<wbr/>Streams
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008915 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008916 <td class="entry_type">
Zhijun Hee36cdbe2013-09-06 14:28:37 -07008917 <span class="entry_type_name">int32</span>
Eino-Ville Talvalaf384f0a2013-07-12 17:02:27 -07008918 <span class="entry_type_container">x</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008919
Eino-Ville Talvalaf384f0a2013-07-12 17:02:27 -07008920 <span class="entry_type_array">
8921 n
8922 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07008923 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008924
8925
8926 </td> <!-- entry_type -->
8927
8928 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08008929 <p>List which camera reprocess stream is used
8930for the source of reprocessing data.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008931 </td>
8932
8933 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -08008934 List of camera reprocess stream IDs
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008935 </td>
8936
8937 <td class="entry_range">
Zhijun Hefb4701f2014-02-04 11:32:24 -08008938 <p><strong>Deprecated</strong>.<wbr/> Do not use.<wbr/></p>
8939<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 -08008940<p>If android.<wbr/>jpeg.<wbr/>needs<wbr/>Thumbnail is set,<wbr/> then multiple
8941reprocess streams may be included in a single request; they
8942must be different scaled versions of the same image.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008943 </td>
8944
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008945 <td class="entry_tags">
Eino-Ville Talvalaf384f0a2013-07-12 17:02:27 -07008946 <ul class="entry_tags">
8947 <li><a href="#tag_HAL2">HAL2</a></li>
8948 </ul>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008949 </td>
8950
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008951 </tr>
8952 <tr class="entries_header">
8953 <th class="th_details" colspan="5">Details</th>
8954 </tr>
8955 <tr class="entry_cont">
8956 <td class="entry_details" colspan="5">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08008957 <p>Only meaningful when <a href="#controls_android.request.type">android.<wbr/>request.<wbr/>type</a> ==
Igor Murashkin0b080452013-12-27 15:30:25 -08008958REPROCESS.<wbr/> Ignored otherwise</p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008959 </td>
8960 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008961
8962
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008963 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
8964 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008965
8966
8967 <tr class="entry" id="controls_android.request.metadataMode">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008968 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -08008969 android.<wbr/>request.<wbr/>metadata<wbr/>Mode
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008970 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008971 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08008972 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008973
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07008974 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008975
8976 <ul class="entry_type_enum">
8977 <li>
8978 <span class="entry_type_enum_name">NONE</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08008979 <span class="entry_type_enum_notes"><p>No metadata should be produced on output,<wbr/> except
8980for application-bound buffer data.<wbr/> If no
8981application-bound streams exist,<wbr/> no frame should be
8982placed in the output frame queue.<wbr/> If such streams
8983exist,<wbr/> a frame should be placed on the output queue
8984with null metadata but with the necessary output buffer
8985information.<wbr/> Timestamp information should still be
8986included with any output stream buffers</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008987 </li>
8988 <li>
8989 <span class="entry_type_enum_name">FULL</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08008990 <span class="entry_type_enum_notes"><p>All metadata should be produced.<wbr/> Statistics will
8991only be produced if they are separately
8992enabled</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008993 </li>
8994 </ul>
8995
8996 </td> <!-- entry_type -->
8997
8998 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08008999 <p>How much metadata to produce on
9000output</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009001 </td>
9002
9003 <td class="entry_units">
9004 </td>
9005
9006 <td class="entry_range">
9007 </td>
9008
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009009 <td class="entry_tags">
9010 </td>
9011
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08009012 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08009013
9014
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08009015 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
9016 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009017
9018
9019 <tr class="entry" id="controls_android.request.outputStreams">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08009020 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08009021 android.<wbr/>request.<wbr/>output<wbr/>Streams
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08009022 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009023 <td class="entry_type">
Zhijun Hee36cdbe2013-09-06 14:28:37 -07009024 <span class="entry_type_name">int32</span>
Eino-Ville Talvalaf384f0a2013-07-12 17:02:27 -07009025 <span class="entry_type_container">x</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009026
Eino-Ville Talvalaf384f0a2013-07-12 17:02:27 -07009027 <span class="entry_type_array">
9028 n
9029 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07009030 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009031
9032
9033 </td> <!-- entry_type -->
9034
9035 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08009036 <p>Lists which camera output streams image data
9037from this capture must be sent to</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009038 </td>
9039
9040 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -08009041 List of camera stream IDs
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009042 </td>
9043
9044 <td class="entry_range">
Zhijun Hefb4701f2014-02-04 11:32:24 -08009045 <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 -08009046created</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009047 </td>
9048
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009049 <td class="entry_tags">
Eino-Ville Talvalaf384f0a2013-07-12 17:02:27 -07009050 <ul class="entry_tags">
9051 <li><a href="#tag_HAL2">HAL2</a></li>
9052 </ul>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009053 </td>
9054
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08009055 </tr>
9056 <tr class="entries_header">
9057 <th class="th_details" colspan="5">Details</th>
9058 </tr>
9059 <tr class="entry_cont">
9060 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08009061 <p>If no output streams are listed,<wbr/> then the image
9062data should simply be discarded.<wbr/> The image data must
9063still be captured for metadata and statistics production,<wbr/>
9064and the lens and flash must operate as requested.<wbr/></p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08009065 </td>
9066 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08009067
9068
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08009069 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
9070 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009071
9072
9073 <tr class="entry" id="controls_android.request.type">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08009074 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -08009075 android.<wbr/>request.<wbr/>type
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08009076 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009077 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08009078 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009079
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07009080 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009081
9082 <ul class="entry_type_enum">
9083 <li>
9084 <span class="entry_type_enum_name">CAPTURE</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08009085 <span class="entry_type_enum_notes"><p>Capture a new image from the imaging hardware,<wbr/>
9086and process it according to the
9087settings</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009088 </li>
9089 <li>
9090 <span class="entry_type_enum_name">REPROCESS</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08009091 <span class="entry_type_enum_notes"><p>Process previously captured data; the
9092android.<wbr/>request.<wbr/>input<wbr/>Stream parameter determines the
9093source reprocessing stream.<wbr/> TODO: Mark dynamic metadata
9094needed for reprocessing with [RP]</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009095 </li>
9096 </ul>
9097
9098 </td> <!-- entry_type -->
9099
9100 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08009101 <p>The type of the request; either CAPTURE or
9102REPROCESS.<wbr/> For HAL3,<wbr/> this tag is redundant.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009103 </td>
9104
9105 <td class="entry_units">
9106 </td>
9107
9108 <td class="entry_range">
9109 </td>
9110
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009111 <td class="entry_tags">
Eino-Ville Talvalaf384f0a2013-07-12 17:02:27 -07009112 <ul class="entry_tags">
9113 <li><a href="#tag_HAL2">HAL2</a></li>
9114 </ul>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009115 </td>
9116
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08009117 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08009118
9119
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08009120 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
9121 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009122
9123
9124
9125 <!-- end of kind -->
9126 </tbody>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08009127 <tr><td colspan="6" class="kind">static</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009128
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07009129 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009130 <tr>
9131 <th class="th_name">Property Name</th>
9132 <th class="th_type">Type</th>
9133 <th class="th_description">Description</th>
9134 <th class="th_units">Units</th>
9135 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009136 <th class="th_tags">Tags</th>
9137 </tr>
9138 </thead>
9139
9140 <tbody>
9141
9142
9143
9144
9145
9146
9147
9148
9149
9150
9151 <tr class="entry" id="static_android.request.maxNumOutputStreams">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08009152 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08009153 android.<wbr/>request.<wbr/>max<wbr/>Num<wbr/>Output<wbr/>Streams
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08009154 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009155 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08009156 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009157 <span class="entry_type_container">x</span>
9158
9159 <span class="entry_type_array">
9160 3
9161 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07009162 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009163
9164
9165 </td> <!-- entry_type -->
9166
9167 <td class="entry_description">
Zhijun He12744b22014-01-22 15:58:57 -08009168 <p>The maximum numbers of different types of output streams
9169that can be configured and used simultaneously by a camera device.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009170 </td>
9171
9172 <td class="entry_units">
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009173 </td>
9174
9175 <td class="entry_range">
Zhijun He12744b22014-01-22 15:58:57 -08009176 <p>&gt;= 1 for JPEG-compressed format streams.<wbr/></p>
9177<p>&gt;= 0 for Raw format streams.<wbr/></p>
9178<p>&gt;= 3 for processed,<wbr/> uncompressed format streams.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009179 </td>
9180
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009181 <td class="entry_tags">
9182 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08009183 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009184 </ul>
9185 </td>
9186
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08009187 </tr>
9188 <tr class="entries_header">
9189 <th class="th_details" colspan="5">Details</th>
9190 </tr>
9191 <tr class="entry_cont">
9192 <td class="entry_details" colspan="5">
Zhijun He12744b22014-01-22 15:58:57 -08009193 <p>This is a 3 element tuple that contains the max number of output simultaneous
9194streams for raw sensor,<wbr/> processed (and uncompressed),<wbr/> and JPEG formats respectively.<wbr/>
9195For example,<wbr/> if max raw sensor format output stream number is 1,<wbr/> max YUV streams
9196number 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>
9197<p>This lists the upper bound of the number of output streams supported by
9198the camera device.<wbr/> Using more streams simultaneously may require more hardware and
9199CPU resources that will consume more power.<wbr/> The image format for a output stream can
9200be any supported format provided by <a href="#static_android.scaler.availableFormats">android.<wbr/>scaler.<wbr/>available<wbr/>Formats</a>.<wbr/> The formats
9201defined in <a href="#static_android.scaler.availableFormats">android.<wbr/>scaler.<wbr/>available<wbr/>Formats</a> can be catergorized into the 3 stream types
9202as below:</p>
9203<ul>
9204<li>JPEG-compressed format: BLOB.<wbr/></li>
9205<li>Raw formats: RAW_<wbr/>SENSOR and RAW_<wbr/>OPAQUE.<wbr/></li>
9206<li>processed,<wbr/> uncompressed formats: YCb<wbr/>Cr_<wbr/>420_<wbr/>888,<wbr/> YCr<wbr/>Cb_<wbr/>420_<wbr/>SP,<wbr/> YV12.<wbr/></li>
9207</ul>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08009208 </td>
9209 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08009210
9211
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08009212 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
9213 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009214
9215
9216 <tr class="entry" id="static_android.request.maxNumReprocessStreams">
Zhijun He12744b22014-01-22 15:58:57 -08009217 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08009218 android.<wbr/>request.<wbr/>max<wbr/>Num<wbr/>Reprocess<wbr/>Streams
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08009219 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009220 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08009221 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009222 <span class="entry_type_container">x</span>
9223
9224 <span class="entry_type_array">
9225 1
9226 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07009227 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009228
9229
9230 </td> <!-- entry_type -->
9231
9232 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08009233 <p>How many reprocessing streams of any type
Zhijun He12744b22014-01-22 15:58:57 -08009234can be allocated at the same time.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009235 </td>
9236
9237 <td class="entry_units">
9238 </td>
9239
9240 <td class="entry_range">
Zhijun He12744b22014-01-22 15:58:57 -08009241 <p>&gt;= 0</p>
9242 </td>
9243
9244 <td class="entry_tags">
9245 <ul class="entry_tags">
9246 <li><a href="#tag_HAL2">HAL2</a></li>
9247 </ul>
9248 </td>
9249
9250 </tr>
9251 <tr class="entries_header">
9252 <th class="th_details" colspan="5">Details</th>
9253 </tr>
9254 <tr class="entry_cont">
9255 <td class="entry_details" colspan="5">
9256 <p><strong>Deprecated</strong>.<wbr/> Only used by HAL2.<wbr/>x.<wbr/></p>
9257<p>When set to 0,<wbr/> it means no reprocess stream is supported.<wbr/></p>
9258 </td>
9259 </tr>
9260
9261
9262 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
9263 <!-- end of entry -->
9264
9265
9266 <tr class="entry" id="static_android.request.maxNumInputStreams">
9267 <td class="entry_name" rowspan="3">
9268 android.<wbr/>request.<wbr/>max<wbr/>Num<wbr/>Input<wbr/>Streams
9269 </td>
9270 <td class="entry_type">
9271 <span class="entry_type_name">int32</span>
9272
9273 <span class="entry_type_visibility"> [public]</span>
9274
9275
9276 </td> <!-- entry_type -->
9277
9278 <td class="entry_description">
9279 <p>The maximum numbers of any type of input streams
9280that can be configured and used simultaneously by a camera device.<wbr/></p>
9281 </td>
9282
9283 <td class="entry_units">
9284 </td>
9285
9286 <td class="entry_range">
9287 <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/>
9288&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 -08009289 </td>
9290
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009291 <td class="entry_tags">
9292 </td>
9293
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08009294 </tr>
Zhijun He12744b22014-01-22 15:58:57 -08009295 <tr class="entries_header">
9296 <th class="th_details" colspan="5">Details</th>
9297 </tr>
9298 <tr class="entry_cont">
9299 <td class="entry_details" colspan="5">
9300 <p>When set to 0,<wbr/> it means no input stream is supported.<wbr/></p>
9301<p>The image format for a input stream can be any supported format provided
9302by android.<wbr/>scaler.<wbr/>available<wbr/>Input<wbr/>Formats.<wbr/> When using an input stream,<wbr/> there must be
9303at least one output stream configured to to receive the reprocessed images.<wbr/></p>
9304<p>For example,<wbr/> for Zero Shutter Lag (ZSL) still capture use case,<wbr/> the input
9305stream image format will be RAW_<wbr/>OPAQUE,<wbr/> the associated output stream image format
9306should be JPEG.<wbr/></p>
9307 </td>
9308 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08009309
9310
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08009311 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
9312 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009313
Igor Murashkina46e02f2014-01-09 17:43:38 -08009314
9315 <tr class="entry" id="static_android.request.pipelineMaxDepth">
9316 <td class="entry_name" rowspan="5">
9317 android.<wbr/>request.<wbr/>pipeline<wbr/>Max<wbr/>Depth
9318 </td>
9319 <td class="entry_type">
9320 <span class="entry_type_name">byte</span>
9321
9322 <span class="entry_type_visibility"> [public]</span>
9323
9324
9325 </td> <!-- entry_type -->
9326
9327 <td class="entry_description">
9328 <p>Specifies the number of maximum pipeline stages a frame
9329has to go through from when it's exposed to when it's available
9330to the framework.<wbr/></p>
9331 </td>
9332
9333 <td class="entry_units">
9334 </td>
9335
9336 <td class="entry_range">
9337 </td>
9338
9339 <td class="entry_tags">
9340 </td>
9341
9342 </tr>
9343 <tr class="entries_header">
9344 <th class="th_details" colspan="5">Details</th>
9345 </tr>
9346 <tr class="entry_cont">
9347 <td class="entry_details" colspan="5">
9348 <p>A typical minimum value for this is 2 (one stage to expose,<wbr/>
9349one stage to readout) from the sensor.<wbr/> The ISP then usually adds
9350its own stages to do custom HW processing.<wbr/> Further stages may be
9351added by SW processing.<wbr/></p>
9352<p>Depending on what settings are used (e.<wbr/>g.<wbr/> YUV,<wbr/> JPEG) and what
9353processing is enabled (e.<wbr/>g.<wbr/> face detection),<wbr/> the actual pipeline
9354depth (specified by <a href="#dynamic_android.request.pipelineDepth">android.<wbr/>request.<wbr/>pipeline<wbr/>Depth</a>) may be less than
9355the max pipeline depth.<wbr/></p>
9356<p>A pipeline depth of X stages is equivalent to a pipeline latency of
9357X frame intervals.<wbr/></p>
9358<p>This value will be 8 or less.<wbr/></p>
9359 </td>
9360 </tr>
9361
9362 <tr class="entries_header">
9363 <th class="th_details" colspan="5">HAL Implementation Details</th>
9364 </tr>
9365 <tr class="entry_cont">
9366 <td class="entry_details" colspan="5">
9367 <p>This value should be 4 or less.<wbr/></p>
9368 </td>
9369 </tr>
9370
9371 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
9372 <!-- end of entry -->
9373
Igor Murashkin2e291102014-01-10 14:18:30 -08009374
9375 <tr class="entry" id="static_android.request.partialResultCount">
9376 <td class="entry_name" rowspan="3">
9377 android.<wbr/>request.<wbr/>partial<wbr/>Result<wbr/>Count
9378 </td>
9379 <td class="entry_type">
9380 <span class="entry_type_name">int32</span>
9381
9382 <span class="entry_type_visibility"> [public]</span>
9383
9384
9385 </td> <!-- entry_type -->
9386
9387 <td class="entry_description">
9388 <p>Optional.<wbr/> Defaults to 1.<wbr/> Defines how many sub-components
9389a result will be composed of.<wbr/></p>
9390 </td>
9391
9392 <td class="entry_units">
9393 </td>
9394
9395 <td class="entry_range">
9396 <p>&gt;= 1</p>
9397 </td>
9398
9399 <td class="entry_tags">
9400 </td>
9401
9402 </tr>
9403 <tr class="entries_header">
9404 <th class="th_details" colspan="5">Details</th>
9405 </tr>
9406 <tr class="entry_cont">
9407 <td class="entry_details" colspan="5">
9408 <p>In order to combat the pipeline latency,<wbr/> partial results
9409may be delivered to the application layer from the camera device as
9410soon as they are available.<wbr/></p>
9411<p>A value of 1 means that partial results are not supported.<wbr/></p>
9412<p>A typical use case for this might be: after requesting an AF lock the
9413new AF state might be available 50% of the way through the pipeline.<wbr/>
9414The camera device could then immediately dispatch this state via a
9415partial result to the framework/<wbr/>application layer,<wbr/> and the rest of
9416the metadata via later partial results.<wbr/></p>
9417 </td>
9418 </tr>
9419
9420
9421 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
9422 <!-- end of entry -->
9423
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009424
9425
9426 <!-- end of kind -->
9427 </tbody>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08009428 <tr><td colspan="6" class="kind">dynamic</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009429
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07009430 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009431 <tr>
9432 <th class="th_name">Property Name</th>
9433 <th class="th_type">Type</th>
9434 <th class="th_description">Description</th>
9435 <th class="th_units">Units</th>
9436 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009437 <th class="th_tags">Tags</th>
9438 </tr>
9439 </thead>
9440
9441 <tbody>
9442
9443
9444
9445
9446
9447
9448
9449
9450
9451
9452 <tr class="entry" id="dynamic_android.request.frameCount">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08009453 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08009454 android.<wbr/>request.<wbr/>frame<wbr/>Count
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08009455 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009456 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08009457 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009458
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07009459 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009460
9461
9462 </td> <!-- entry_type -->
9463
9464 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08009465 <p>A frame counter set by the framework.<wbr/> This value monotonically
9466increases with every new result (that is,<wbr/> each new result has a unique
9467frameCount value).<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009468 </td>
9469
9470 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -08009471 count of frames
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009472 </td>
9473
9474 <td class="entry_range">
Igor Murashkin6cb7c2c2014-01-10 15:12:40 -08009475 <p>&gt; 0</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009476 </td>
9477
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009478 <td class="entry_tags">
9479 </td>
9480
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08009481 </tr>
9482 <tr class="entries_header">
9483 <th class="th_details" colspan="5">Details</th>
9484 </tr>
9485 <tr class="entry_cont">
9486 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08009487 <p>Reset on release()</p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08009488 </td>
9489 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08009490
9491
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08009492 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
9493 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009494
9495
9496 <tr class="entry" id="dynamic_android.request.id">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08009497 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -08009498 android.<wbr/>request.<wbr/>id
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08009499 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009500 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08009501 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009502
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07009503 <span class="entry_type_visibility"> [hidden]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009504
9505
9506 </td> <!-- entry_type -->
9507
9508 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08009509 <p>An application-specified ID for the current
9510request.<wbr/> Must be maintained unchanged in output
9511frame</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009512 </td>
9513
9514 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -08009515 arbitrary integer assigned by application
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009516 </td>
9517
9518 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08009519 <p>Any int</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009520 </td>
9521
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009522 <td class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08009523 <ul class="entry_tags">
9524 <li><a href="#tag_V1">V1</a></li>
9525 </ul>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009526 </td>
9527
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08009528 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08009529
9530
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08009531 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
9532 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009533
9534
9535 <tr class="entry" id="dynamic_android.request.metadataMode">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08009536 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -08009537 android.<wbr/>request.<wbr/>metadata<wbr/>Mode
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08009538 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009539 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08009540 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009541
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07009542 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009543
9544 <ul class="entry_type_enum">
9545 <li>
9546 <span class="entry_type_enum_name">NONE</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08009547 <span class="entry_type_enum_notes"><p>No metadata should be produced on output,<wbr/> except
9548for application-bound buffer data.<wbr/> If no
9549application-bound streams exist,<wbr/> no frame should be
9550placed in the output frame queue.<wbr/> If such streams
9551exist,<wbr/> a frame should be placed on the output queue
9552with null metadata but with the necessary output buffer
9553information.<wbr/> Timestamp information should still be
9554included with any output stream buffers</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009555 </li>
9556 <li>
9557 <span class="entry_type_enum_name">FULL</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08009558 <span class="entry_type_enum_notes"><p>All metadata should be produced.<wbr/> Statistics will
9559only be produced if they are separately
9560enabled</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009561 </li>
9562 </ul>
9563
9564 </td> <!-- entry_type -->
9565
9566 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08009567 <p>How much metadata to produce on
9568output</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009569 </td>
9570
9571 <td class="entry_units">
9572 </td>
9573
9574 <td class="entry_range">
9575 </td>
9576
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009577 <td class="entry_tags">
9578 </td>
9579
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08009580 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08009581
9582
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08009583 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
9584 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009585
9586
9587 <tr class="entry" id="dynamic_android.request.outputStreams">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08009588 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08009589 android.<wbr/>request.<wbr/>output<wbr/>Streams
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08009590 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009591 <td class="entry_type">
Zhijun Hee36cdbe2013-09-06 14:28:37 -07009592 <span class="entry_type_name">int32</span>
Eino-Ville Talvalaf384f0a2013-07-12 17:02:27 -07009593 <span class="entry_type_container">x</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009594
Eino-Ville Talvalaf384f0a2013-07-12 17:02:27 -07009595 <span class="entry_type_array">
9596 n
9597 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07009598 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009599
9600
9601 </td> <!-- entry_type -->
9602
9603 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08009604 <p>Lists which camera output streams image data
9605from this capture must be sent to</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009606 </td>
9607
9608 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -08009609 List of camera stream IDs
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009610 </td>
9611
9612 <td class="entry_range">
Zhijun Hefb4701f2014-02-04 11:32:24 -08009613 <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 -08009614created</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009615 </td>
9616
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009617 <td class="entry_tags">
Eino-Ville Talvalaf384f0a2013-07-12 17:02:27 -07009618 <ul class="entry_tags">
9619 <li><a href="#tag_HAL2">HAL2</a></li>
9620 </ul>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009621 </td>
9622
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08009623 </tr>
9624 <tr class="entries_header">
9625 <th class="th_details" colspan="5">Details</th>
9626 </tr>
9627 <tr class="entry_cont">
9628 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08009629 <p>If no output streams are listed,<wbr/> then the image
9630data should simply be discarded.<wbr/> The image data must
9631still be captured for metadata and statistics production,<wbr/>
9632and the lens and flash must operate as requested.<wbr/></p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08009633 </td>
9634 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08009635
9636
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08009637 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
9638 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009639
Igor Murashkina46e02f2014-01-09 17:43:38 -08009640
9641 <tr class="entry" id="dynamic_android.request.pipelineDepth">
9642 <td class="entry_name" rowspan="5">
9643 android.<wbr/>request.<wbr/>pipeline<wbr/>Depth
9644 </td>
9645 <td class="entry_type">
9646 <span class="entry_type_name">byte</span>
9647
9648 <span class="entry_type_visibility"> [public]</span>
9649
9650
9651 </td> <!-- entry_type -->
9652
9653 <td class="entry_description">
9654 <p>Specifies the number of pipeline stages the frame went
9655through from when it was exposed to when the final completed result
9656was available to the framework.<wbr/></p>
9657 </td>
9658
9659 <td class="entry_units">
9660 </td>
9661
9662 <td class="entry_range">
9663 <p>&lt;= <a href="#static_android.request.pipelineMaxDepth">android.<wbr/>request.<wbr/>pipeline<wbr/>Max<wbr/>Depth</a></p>
9664 </td>
9665
9666 <td class="entry_tags">
9667 </td>
9668
9669 </tr>
9670 <tr class="entries_header">
9671 <th class="th_details" colspan="5">Details</th>
9672 </tr>
9673 <tr class="entry_cont">
9674 <td class="entry_details" colspan="5">
9675 <p>Depending on what settings are used in the request,<wbr/> and
9676what streams are configured,<wbr/> the data may undergo less processing,<wbr/>
9677and some pipeline stages skipped.<wbr/></p>
9678<p>See <a href="#static_android.request.pipelineMaxDepth">android.<wbr/>request.<wbr/>pipeline<wbr/>Max<wbr/>Depth</a> for more details.<wbr/></p>
9679 </td>
9680 </tr>
9681
9682 <tr class="entries_header">
9683 <th class="th_details" colspan="5">HAL Implementation Details</th>
9684 </tr>
9685 <tr class="entry_cont">
9686 <td class="entry_details" colspan="5">
9687 <p>This value must always represent the accurate count of how many
9688pipeline stages were actually used.<wbr/></p>
9689 </td>
9690 </tr>
9691
9692 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
9693 <!-- end of entry -->
9694
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009695
9696
9697 <!-- end of kind -->
9698 </tbody>
9699
9700 <!-- end of section -->
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08009701 <tr><td colspan="6" id="section_scaler" class="section">scaler</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009702
9703
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08009704 <tr><td colspan="6" class="kind">controls</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009705
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07009706 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009707 <tr>
9708 <th class="th_name">Property Name</th>
9709 <th class="th_type">Type</th>
9710 <th class="th_description">Description</th>
9711 <th class="th_units">Units</th>
9712 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009713 <th class="th_tags">Tags</th>
9714 </tr>
9715 </thead>
9716
9717 <tbody>
9718
9719
9720
9721
9722
9723
9724
9725
9726
9727
9728 <tr class="entry" id="controls_android.scaler.cropRegion">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08009729 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08009730 android.<wbr/>scaler.<wbr/>crop<wbr/>Region
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08009731 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009732 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08009733 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009734 <span class="entry_type_container">x</span>
9735
9736 <span class="entry_type_array">
Eino-Ville Talvalae04ec6e2013-04-16 15:35:18 -07009737 4
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009738 </span>
Igor Murashkinb8dc8812013-07-17 16:29:34 -07009739 <span class="entry_type_visibility"> [public as rectangle]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009740
9741
9742 </td> <!-- entry_type -->
9743
9744 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08009745 <p>(x,<wbr/> y,<wbr/> width,<wbr/> height).<wbr/></p>
9746<p>A rectangle with the top-level corner of (x,<wbr/>y) and size
9747(width,<wbr/> height).<wbr/> The region of the sensor that is used for
9748output.<wbr/> Each stream must use this rectangle to produce its
9749output,<wbr/> cropping to a smaller region if necessary to
9750maintain the stream's aspect ratio.<wbr/></p>
9751<p>HAL2.<wbr/>x uses only (x,<wbr/> y,<wbr/> width)</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009752 </td>
9753
9754 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -08009755 (x,<wbr/>y) of top-left corner,<wbr/> width and height of region
9756 in pixels; (0,<wbr/>0) is top-left corner of
9757 android.<wbr/>sensor.<wbr/>active<wbr/>Array<wbr/>Size
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009758 </td>
9759
9760 <td class="entry_range">
9761 </td>
9762
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08009763 <td class="entry_tags">
9764 <ul class="entry_tags">
9765 <li><a href="#tag_BC">BC</a></li>
9766 </ul>
9767 </td>
9768
9769 </tr>
9770 <tr class="entries_header">
9771 <th class="th_details" colspan="5">Details</th>
9772 </tr>
9773 <tr class="entry_cont">
9774 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08009775 <p>Any additional per-stream cropping must be done to
9776maximize the final pixel area of the stream.<wbr/></p>
9777<p>For example,<wbr/> if the crop region is set to a 4:3 aspect
9778ratio,<wbr/> then 4:3 streams should use the exact crop
9779region.<wbr/> 16:9 streams should further crop vertically
9780(letterbox).<wbr/></p>
9781<p>Conversely,<wbr/> if the crop region is set to a 16:9,<wbr/> then 4:3
9782outputs should crop horizontally (pillarbox),<wbr/> and 16:9
9783streams should match exactly.<wbr/> These additional crops must
9784be centered within the crop region.<wbr/></p>
Igor Murashkin8aa2a112013-12-09 12:06:17 -08009785<p>The output streams must maintain square pixels at all
Igor Murashkin0b080452013-12-27 15:30:25 -08009786times,<wbr/> no matter what the relative aspect ratios of the
9787crop region and the stream are.<wbr/> Negative values for
Igor Murashkin8aa2a112013-12-09 12:06:17 -08009788corner are allowed for raw output if full pixel array is
Igor Murashkin0b080452013-12-27 15:30:25 -08009789larger than active pixel array.<wbr/> Width and height may be
9790rounded to nearest larger supportable width,<wbr/> especially
9791for raw output,<wbr/> where only a few fixed scales may be
9792possible.<wbr/> The width and height of the crop region cannot
9793be set to be smaller than floor( activeArraySize.<wbr/>width /<wbr/>
9794android.<wbr/>scaler.<wbr/>max<wbr/>Digital<wbr/>Zoom ) and floor(
9795activeArraySize.<wbr/>height /<wbr/> android.<wbr/>scaler.<wbr/>max<wbr/>Digital<wbr/>Zoom),<wbr/>
9796respectively.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009797 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08009798 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08009799
9800
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08009801 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
9802 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009803
9804
9805
9806 <!-- end of kind -->
9807 </tbody>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08009808 <tr><td colspan="6" class="kind">static</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009809
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07009810 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009811 <tr>
9812 <th class="th_name">Property Name</th>
9813 <th class="th_type">Type</th>
9814 <th class="th_description">Description</th>
9815 <th class="th_units">Units</th>
9816 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009817 <th class="th_tags">Tags</th>
9818 </tr>
9819 </thead>
9820
9821 <tbody>
9822
9823
9824
9825
9826
9827
9828
9829
9830
9831
9832 <tr class="entry" id="static_android.scaler.availableFormats">
Zhijun Heb8317e22014-01-16 09:47:07 -08009833 <td class="entry_name" rowspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08009834 android.<wbr/>scaler.<wbr/>available<wbr/>Formats
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08009835 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009836 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08009837 <span class="entry_type_name entry_type_name_enum">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009838 <span class="entry_type_container">x</span>
9839
9840 <span class="entry_type_array">
9841 n
9842 </span>
Eino-Ville Talvalad4e240a2013-08-08 12:56:37 -07009843 <span class="entry_type_visibility"> [public as imageFormat]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009844
9845 <ul class="entry_type_enum">
9846 <li>
9847 <span class="entry_type_enum_name">RAW_SENSOR</span>
Zhijun Heb8317e22014-01-16 09:47:07 -08009848 <span class="entry_type_enum_optional">optional</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009849 <span class="entry_type_enum_value">0x20</span>
9850 </li>
9851 <li>
9852 <span class="entry_type_enum_name">YV12</span>
Zhijun Heb8317e22014-01-16 09:47:07 -08009853 <span class="entry_type_enum_optional">optional</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009854 <span class="entry_type_enum_value">0x32315659</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08009855 <span class="entry_type_enum_notes"><p>YCrCb 4:2:0 Planar</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009856 </li>
9857 <li>
Zhijun Hec2eebff2013-05-16 17:49:35 -07009858 <span class="entry_type_enum_name">YCrCb_420_SP</span>
Zhijun Heb8317e22014-01-16 09:47:07 -08009859 <span class="entry_type_enum_optional">optional</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009860 <span class="entry_type_enum_value">0x11</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08009861 <span class="entry_type_enum_notes"><p>NV21</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009862 </li>
9863 <li>
Zhijun Hec2eebff2013-05-16 17:49:35 -07009864 <span class="entry_type_enum_name">IMPLEMENTATION_DEFINED</span>
9865 <span class="entry_type_enum_value">0x22</span>
Zhijun Heb8317e22014-01-16 09:47:07 -08009866 <span class="entry_type_enum_notes"><p>System internal format,<wbr/> not application-accessible</p></span>
Zhijun Hec2eebff2013-05-16 17:49:35 -07009867 </li>
9868 <li>
9869 <span class="entry_type_enum_name">YCbCr_420_888</span>
9870 <span class="entry_type_enum_value">0x23</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08009871 <span class="entry_type_enum_notes"><p>Flexible YUV420 Format</p></span>
Zhijun Hec2eebff2013-05-16 17:49:35 -07009872 </li>
9873 <li>
9874 <span class="entry_type_enum_name">BLOB</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009875 <span class="entry_type_enum_value">0x21</span>
Zhijun Heb8317e22014-01-16 09:47:07 -08009876 <span class="entry_type_enum_notes"><p>JPEG format</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009877 </li>
9878 </ul>
9879
9880 </td> <!-- entry_type -->
9881
9882 <td class="entry_description">
Zhijun Heb8317e22014-01-16 09:47:07 -08009883 <p>The list of image formats that are supported by this
9884camera device.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009885 </td>
9886
9887 <td class="entry_units">
9888 </td>
9889
9890 <td class="entry_range">
9891 </td>
9892
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009893 <td class="entry_tags">
9894 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08009895 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009896 </ul>
9897 </td>
9898
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08009899 </tr>
Zhijun Heb8317e22014-01-16 09:47:07 -08009900 <tr class="entries_header">
9901 <th class="th_details" colspan="5">Details</th>
9902 </tr>
9903 <tr class="entry_cont">
9904 <td class="entry_details" colspan="5">
9905 <p>All camera devices will support JPEG and YUV_<wbr/>420_<wbr/>888 formats.<wbr/></p>
9906<p>When set to YUV_<wbr/>420_<wbr/>888,<wbr/> application can access the YUV420 data directly.<wbr/></p>
9907 </td>
9908 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08009909
Zhijun Heb8317e22014-01-16 09:47:07 -08009910 <tr class="entries_header">
9911 <th class="th_details" colspan="5">HAL Implementation Details</th>
9912 </tr>
9913 <tr class="entry_cont">
9914 <td class="entry_details" colspan="5">
9915 <p>These format values are from HAL_<wbr/>PIXEL_<wbr/>FORMAT_<wbr/>* in
9916system/<wbr/>core/<wbr/>include/<wbr/>system/<wbr/>graphics.<wbr/>h.<wbr/></p>
9917<p>When IMPLEMENTATION_<wbr/>DEFINED is used,<wbr/> the platform
9918gralloc module will select a format based on the usage flags provided
9919by the camera HAL device and the other endpoint of the stream.<wbr/> It is
9920usually used by preview and recording streams,<wbr/> where the application doesn't
9921need access the image data.<wbr/></p>
9922<p>YCb<wbr/>Cr_<wbr/>420_<wbr/>888 format must be supported by the HAL.<wbr/> When an image stream
9923needs CPU/<wbr/>application direct access,<wbr/> this format will be used.<wbr/></p>
9924<p>The BLOB format must be supported by the HAL.<wbr/> This is used for the JPEG stream.<wbr/></p>
9925 </td>
9926 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08009927
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08009928 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
9929 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009930
9931
9932 <tr class="entry" id="static_android.scaler.availableJpegMinDurations">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08009933 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08009934 android.<wbr/>scaler.<wbr/>available<wbr/>Jpeg<wbr/>Min<wbr/>Durations
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08009935 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009936 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08009937 <span class="entry_type_name">int64</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009938 <span class="entry_type_container">x</span>
9939
9940 <span class="entry_type_array">
9941 n
9942 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07009943 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009944
9945
9946 </td> <!-- entry_type -->
9947
9948 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08009949 <p>The minimum frame duration that is supported
Igor Murashkin10f4e0f2014-01-13 17:22:58 -08009950for 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 -08009951 </td>
9952
9953 <td class="entry_units">
Igor Murashkin10f4e0f2014-01-13 17:22:58 -08009954 ns
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009955 </td>
9956
9957 <td class="entry_range">
9958 </td>
9959
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009960 <td class="entry_tags">
9961 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08009962 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009963 </ul>
9964 </td>
9965
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08009966 </tr>
9967 <tr class="entries_header">
9968 <th class="th_details" colspan="5">Details</th>
9969 </tr>
9970 <tr class="entry_cont">
9971 <td class="entry_details" colspan="5">
Igor Murashkin10f4e0f2014-01-13 17:22:58 -08009972 <p>This corresponds to the minimum steady-state frame duration when only
9973that JPEG stream is active and captured in a burst,<wbr/> with all
9974processing (typically in android.<wbr/>*.<wbr/>mode) set to FAST.<wbr/></p>
9975<p>When multiple streams are configured,<wbr/> the minimum
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08009976frame duration will be &gt;= max(individual stream min
Igor Murashkin0b080452013-12-27 15:30:25 -08009977durations)</p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08009978 </td>
9979 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08009980
9981
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08009982 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
9983 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009984
9985
9986 <tr class="entry" id="static_android.scaler.availableJpegSizes">
Zhijun Heb8317e22014-01-16 09:47:07 -08009987 <td class="entry_name" rowspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08009988 android.<wbr/>scaler.<wbr/>available<wbr/>Jpeg<wbr/>Sizes
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08009989 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009990 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08009991 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009992 <span class="entry_type_container">x</span>
9993
9994 <span class="entry_type_array">
9995 n x 2
9996 </span>
Igor Murashkinb8dc8812013-07-17 16:29:34 -07009997 <span class="entry_type_visibility"> [public as size]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009998
9999
10000 </td> <!-- entry_type -->
10001
10002 <td class="entry_description">
Zhijun Heb8317e22014-01-16 09:47:07 -080010003 <p>The JPEG resolutions that are supported by this camera device.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010004 </td>
10005
10006 <td class="entry_units">
10007 </td>
10008
10009 <td class="entry_range">
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010010 </td>
10011
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010012 <td class="entry_tags">
10013 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080010014 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010015 </ul>
10016 </td>
10017
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080010018 </tr>
Zhijun Heb8317e22014-01-16 09:47:07 -080010019 <tr class="entries_header">
10020 <th class="th_details" colspan="5">Details</th>
10021 </tr>
10022 <tr class="entry_cont">
10023 <td class="entry_details" colspan="5">
10024 <p>The resolutions are listed as <code>(width,<wbr/> height)</code> pairs.<wbr/> All camera devices will support
10025sensor 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>
10026 </td>
10027 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080010028
Zhijun Heb8317e22014-01-16 09:47:07 -080010029 <tr class="entries_header">
10030 <th class="th_details" colspan="5">HAL Implementation Details</th>
10031 </tr>
10032 <tr class="entry_cont">
10033 <td class="entry_details" colspan="5">
10034 <p>The HAL must include sensor maximum resolution
10035(defined by <a href="#static_android.sensor.info.activeArraySize">android.<wbr/>sensor.<wbr/>info.<wbr/>active<wbr/>Array<wbr/>Size</a>),<wbr/>
10036and should include half/<wbr/>quarter of sensor maximum resolution.<wbr/></p>
10037 </td>
10038 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080010039
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080010040 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
10041 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010042
10043
10044 <tr class="entry" id="static_android.scaler.availableMaxDigitalZoom">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080010045 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -080010046 android.<wbr/>scaler.<wbr/>available<wbr/>Max<wbr/>Digital<wbr/>Zoom
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080010047 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010048 <td class="entry_type">
Igor Murashkinf11a4df2013-05-07 10:00:46 -070010049 <span class="entry_type_name">float</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010050
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070010051 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010052
10053
10054 </td> <!-- entry_type -->
10055
10056 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080010057 <p>The maximum ratio between active area width
10058and crop region width,<wbr/> or between active area height and
10059crop region height,<wbr/> if the crop region height is larger
10060than width</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010061 </td>
10062
10063 <td class="entry_units">
10064 </td>
10065
10066 <td class="entry_range">
Igor Murashkin6cb7c2c2014-01-10 15:12:40 -080010067 <p>&gt;=1</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010068 </td>
10069
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010070 <td class="entry_tags">
Igor Murashkinf11a4df2013-05-07 10:00:46 -070010071 <ul class="entry_tags">
10072 <li><a href="#tag_BC">BC</a></li>
10073 </ul>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010074 </td>
10075
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080010076 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080010077
10078
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080010079 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
10080 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010081
10082
10083 <tr class="entry" id="static_android.scaler.availableProcessedMinDurations">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080010084 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080010085 android.<wbr/>scaler.<wbr/>available<wbr/>Processed<wbr/>Min<wbr/>Durations
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080010086 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010087 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080010088 <span class="entry_type_name">int64</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010089 <span class="entry_type_container">x</span>
10090
10091 <span class="entry_type_array">
10092 n
10093 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070010094 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010095
10096
10097 </td> <!-- entry_type -->
10098
10099 <td class="entry_description">
Igor Murashkin10f4e0f2014-01-13 17:22:58 -080010100 <p>For each available processed output size (defined in
10101<a href="#static_android.scaler.availableProcessedSizes">android.<wbr/>scaler.<wbr/>available<wbr/>Processed<wbr/>Sizes</a>),<wbr/> this property lists the
10102minimum supportable frame duration for that size.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010103 </td>
10104
10105 <td class="entry_units">
Igor Murashkin10f4e0f2014-01-13 17:22:58 -080010106 ns
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010107 </td>
10108
10109 <td class="entry_range">
10110 </td>
10111
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010112 <td class="entry_tags">
10113 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080010114 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010115 </ul>
10116 </td>
10117
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080010118 </tr>
10119 <tr class="entries_header">
10120 <th class="th_details" colspan="5">Details</th>
10121 </tr>
10122 <tr class="entry_cont">
10123 <td class="entry_details" colspan="5">
Igor Murashkin10f4e0f2014-01-13 17:22:58 -080010124 <p>This should correspond to the frame duration when only that processed
10125stream is active,<wbr/> with all processing (typically in android.<wbr/>*.<wbr/>mode)
10126set to FAST.<wbr/></p>
10127<p>When multiple streams are configured,<wbr/> the minimum frame duration will
10128be &gt;= max(individual stream min durations).<wbr/></p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080010129 </td>
10130 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080010131
10132
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080010133 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
10134 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010135
10136
10137 <tr class="entry" id="static_android.scaler.availableProcessedSizes">
Zhijun Heb8317e22014-01-16 09:47:07 -080010138 <td class="entry_name" rowspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -080010139 android.<wbr/>scaler.<wbr/>available<wbr/>Processed<wbr/>Sizes
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080010140 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010141 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080010142 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010143 <span class="entry_type_container">x</span>
10144
10145 <span class="entry_type_array">
10146 n x 2
10147 </span>
Igor Murashkinb8dc8812013-07-17 16:29:34 -070010148 <span class="entry_type_visibility"> [public as size]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010149
10150
10151 </td> <!-- entry_type -->
10152
10153 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080010154 <p>The resolutions available for use with
10155processed output streams,<wbr/> such as YV12,<wbr/> NV12,<wbr/> and
10156platform opaque YUV/<wbr/>RGB streams to the GPU or video
Zhijun Heb8317e22014-01-16 09:47:07 -080010157encoders.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010158 </td>
10159
10160 <td class="entry_units">
10161 </td>
10162
10163 <td class="entry_range">
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010164 </td>
10165
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080010166 <td class="entry_tags">
10167 <ul class="entry_tags">
10168 <li><a href="#tag_BC">BC</a></li>
10169 </ul>
10170 </td>
10171
10172 </tr>
10173 <tr class="entries_header">
10174 <th class="th_details" colspan="5">Details</th>
10175 </tr>
10176 <tr class="entry_cont">
10177 <td class="entry_details" colspan="5">
Zhijun Heb8317e22014-01-16 09:47:07 -080010178 <p>The resolutions are listed as <code>(width,<wbr/> height)</code> pairs.<wbr/></p>
10179<p>For a given use case,<wbr/> the actual maximum supported resolution
10180may be lower than what is listed here,<wbr/> depending on the destination
10181Surface for the image data.<wbr/> For example,<wbr/> for recording video,<wbr/>
10182the video encoder chosen may have a maximum size limit (e.<wbr/>g.<wbr/> 1080p)
10183smaller than what the camera (e.<wbr/>g.<wbr/> maximum resolution is 3264x2448)
10184can provide.<wbr/></p>
10185<p>Please reference the documentation for the image data destination to
10186check if it limits the maximum size for image data.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010187 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080010188 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080010189
Zhijun Heb8317e22014-01-16 09:47:07 -080010190 <tr class="entries_header">
10191 <th class="th_details" colspan="5">HAL Implementation Details</th>
10192 </tr>
10193 <tr class="entry_cont">
10194 <td class="entry_details" colspan="5">
10195 <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/>
10196the HAL must include all JPEG sizes listed in android.<wbr/>scaler.<wbr/>available<wbr/>Jpeg<wbr/>Sizes
10197and each below resolution if it is smaller than or equal to the sensor
10198maximum resolution (if they are not listed in JPEG sizes already):</p>
10199<ul>
10200<li>240p (320 x 240)</li>
10201<li>480p (640 x 480)</li>
10202<li>720p (1280 x 720)</li>
10203<li>1080p (1920 x 1080)</li>
10204</ul>
10205<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/>
10206the HAL only has to list up to the maximum video size supported by the devices.<wbr/></p>
10207 </td>
10208 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080010209
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080010210 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
10211 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010212
10213
10214 <tr class="entry" id="static_android.scaler.availableRawMinDurations">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080010215 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080010216 android.<wbr/>scaler.<wbr/>available<wbr/>Raw<wbr/>Min<wbr/>Durations
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080010217 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010218 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080010219 <span class="entry_type_name">int64</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010220 <span class="entry_type_container">x</span>
10221
10222 <span class="entry_type_array">
10223 n
10224 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070010225 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010226
10227
10228 </td> <!-- entry_type -->
10229
10230 <td class="entry_description">
Zhijun Hebdc94c42014-01-21 18:28:30 -080010231 <p>For each available raw output size (defined in
Igor Murashkin10f4e0f2014-01-13 17:22:58 -080010232<a href="#static_android.scaler.availableRawSizes">android.<wbr/>scaler.<wbr/>available<wbr/>Raw<wbr/>Sizes</a>),<wbr/> this property lists the minimum
10233supportable frame duration for that size.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010234 </td>
10235
10236 <td class="entry_units">
Igor Murashkin10f4e0f2014-01-13 17:22:58 -080010237 ns
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010238 </td>
10239
10240 <td class="entry_range">
10241 </td>
10242
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010243 <td class="entry_tags">
10244 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080010245 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010246 </ul>
10247 </td>
10248
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080010249 </tr>
10250 <tr class="entries_header">
10251 <th class="th_details" colspan="5">Details</th>
10252 </tr>
10253 <tr class="entry_cont">
10254 <td class="entry_details" colspan="5">
Igor Murashkin10f4e0f2014-01-13 17:22:58 -080010255 <p>Should correspond to the frame duration when only the raw stream is
10256active.<wbr/></p>
10257<p>When multiple streams are configured,<wbr/> the minimum
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080010258frame duration will be &gt;= max(individual stream min
Igor Murashkin0b080452013-12-27 15:30:25 -080010259durations)</p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080010260 </td>
10261 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080010262
10263
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080010264 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
10265 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010266
10267
10268 <tr class="entry" id="static_android.scaler.availableRawSizes">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080010269 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -080010270 android.<wbr/>scaler.<wbr/>available<wbr/>Raw<wbr/>Sizes
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080010271 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010272 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080010273 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010274 <span class="entry_type_container">x</span>
10275
10276 <span class="entry_type_array">
10277 n x 2
10278 </span>
Igor Murashkinb8dc8812013-07-17 16:29:34 -070010279 <span class="entry_type_visibility"> [system as size]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010280
10281
10282 </td> <!-- entry_type -->
10283
10284 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080010285 <p>The resolutions available for use with raw
10286sensor output streams,<wbr/> listed as width,<wbr/>
10287height</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010288 </td>
10289
10290 <td class="entry_units">
10291 </td>
10292
10293 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -080010294 <p>Must include: - sensor maximum resolution</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010295 </td>
10296
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010297 <td class="entry_tags">
10298 </td>
10299
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080010300 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080010301
10302
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080010303 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
10304 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010305
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010306
10307
10308 <!-- end of kind -->
10309 </tbody>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080010310 <tr><td colspan="6" class="kind">dynamic</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010311
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070010312 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010313 <tr>
10314 <th class="th_name">Property Name</th>
10315 <th class="th_type">Type</th>
10316 <th class="th_description">Description</th>
10317 <th class="th_units">Units</th>
10318 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010319 <th class="th_tags">Tags</th>
10320 </tr>
10321 </thead>
10322
10323 <tbody>
10324
10325
10326
10327
10328
10329
10330
10331
10332
10333
10334 <tr class="entry" id="dynamic_android.scaler.cropRegion">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080010335 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080010336 android.<wbr/>scaler.<wbr/>crop<wbr/>Region
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080010337 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010338 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080010339 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010340 <span class="entry_type_container">x</span>
10341
10342 <span class="entry_type_array">
Eino-Ville Talvalae04ec6e2013-04-16 15:35:18 -070010343 4
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010344 </span>
Igor Murashkinb8dc8812013-07-17 16:29:34 -070010345 <span class="entry_type_visibility"> [public as rectangle]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010346
10347
10348 </td> <!-- entry_type -->
10349
10350 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080010351 <p>(x,<wbr/> y,<wbr/> width,<wbr/> height).<wbr/></p>
10352<p>A rectangle with the top-level corner of (x,<wbr/>y) and size
10353(width,<wbr/> height).<wbr/> The region of the sensor that is used for
10354output.<wbr/> Each stream must use this rectangle to produce its
10355output,<wbr/> cropping to a smaller region if necessary to
10356maintain the stream's aspect ratio.<wbr/></p>
10357<p>HAL2.<wbr/>x uses only (x,<wbr/> y,<wbr/> width)</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010358 </td>
10359
10360 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -080010361 (x,<wbr/>y) of top-left corner,<wbr/> width and height of region
10362 in pixels; (0,<wbr/>0) is top-left corner of
10363 android.<wbr/>sensor.<wbr/>active<wbr/>Array<wbr/>Size
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010364 </td>
10365
10366 <td class="entry_range">
10367 </td>
10368
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080010369 <td class="entry_tags">
10370 <ul class="entry_tags">
10371 <li><a href="#tag_BC">BC</a></li>
10372 </ul>
10373 </td>
10374
10375 </tr>
10376 <tr class="entries_header">
10377 <th class="th_details" colspan="5">Details</th>
10378 </tr>
10379 <tr class="entry_cont">
10380 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -080010381 <p>Any additional per-stream cropping must be done to
10382maximize the final pixel area of the stream.<wbr/></p>
10383<p>For example,<wbr/> if the crop region is set to a 4:3 aspect
10384ratio,<wbr/> then 4:3 streams should use the exact crop
10385region.<wbr/> 16:9 streams should further crop vertically
10386(letterbox).<wbr/></p>
10387<p>Conversely,<wbr/> if the crop region is set to a 16:9,<wbr/> then 4:3
10388outputs should crop horizontally (pillarbox),<wbr/> and 16:9
10389streams should match exactly.<wbr/> These additional crops must
10390be centered within the crop region.<wbr/></p>
Igor Murashkin8aa2a112013-12-09 12:06:17 -080010391<p>The output streams must maintain square pixels at all
Igor Murashkin0b080452013-12-27 15:30:25 -080010392times,<wbr/> no matter what the relative aspect ratios of the
10393crop region and the stream are.<wbr/> Negative values for
Igor Murashkin8aa2a112013-12-09 12:06:17 -080010394corner are allowed for raw output if full pixel array is
Igor Murashkin0b080452013-12-27 15:30:25 -080010395larger than active pixel array.<wbr/> Width and height may be
10396rounded to nearest larger supportable width,<wbr/> especially
10397for raw output,<wbr/> where only a few fixed scales may be
10398possible.<wbr/> The width and height of the crop region cannot
10399be set to be smaller than floor( activeArraySize.<wbr/>width /<wbr/>
10400android.<wbr/>scaler.<wbr/>max<wbr/>Digital<wbr/>Zoom ) and floor(
10401activeArraySize.<wbr/>height /<wbr/> android.<wbr/>scaler.<wbr/>max<wbr/>Digital<wbr/>Zoom),<wbr/>
10402respectively.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010403 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080010404 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080010405
10406
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080010407 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
10408 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010409
10410
10411
10412 <!-- end of kind -->
10413 </tbody>
10414
10415 <!-- end of section -->
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080010416 <tr><td colspan="6" id="section_sensor" class="section">sensor</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010417
10418
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080010419 <tr><td colspan="6" class="kind">controls</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010420
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070010421 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010422 <tr>
10423 <th class="th_name">Property Name</th>
10424 <th class="th_type">Type</th>
10425 <th class="th_description">Description</th>
10426 <th class="th_units">Units</th>
10427 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010428 <th class="th_tags">Tags</th>
10429 </tr>
10430 </thead>
10431
10432 <tbody>
10433
10434
10435
10436
10437
10438
10439
10440
10441
10442
10443 <tr class="entry" id="controls_android.sensor.exposureTime">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080010444 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080010445 android.<wbr/>sensor.<wbr/>exposure<wbr/>Time
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080010446 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010447 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080010448 <span class="entry_type_name">int64</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010449
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070010450 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010451
10452
10453 </td> <!-- entry_type -->
10454
10455 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080010456 <p>Duration each pixel is exposed to
10457light.<wbr/></p>
10458<p>If the sensor can't expose this exact duration,<wbr/> it should shorten the
10459duration exposed to the nearest possible value (rather than expose longer).<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010460 </td>
10461
10462 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -080010463 nanoseconds
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010464 </td>
10465
10466 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -080010467 <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 -080010468 </td>
10469
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010470 <td class="entry_tags">
10471 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080010472 <li><a href="#tag_V1">V1</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010473 </ul>
10474 </td>
10475
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080010476 </tr>
10477 <tr class="entries_header">
10478 <th class="th_details" colspan="5">Details</th>
10479 </tr>
10480 <tr class="entry_cont">
10481 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -080010482 <p>1/<wbr/>10000 - 30 sec range.<wbr/> No bulb mode</p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080010483 </td>
10484 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080010485
10486
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080010487 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
10488 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010489
10490
10491 <tr class="entry" id="controls_android.sensor.frameDuration">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080010492 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080010493 android.<wbr/>sensor.<wbr/>frame<wbr/>Duration
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080010494 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010495 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080010496 <span class="entry_type_name">int64</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010497
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070010498 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010499
10500
10501 </td> <!-- entry_type -->
10502
10503 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080010504 <p>Duration from start of frame exposure to
Igor Murashkin10f4e0f2014-01-13 17:22:58 -080010505start of next frame exposure.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010506 </td>
10507
10508 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -080010509 nanoseconds
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010510 </td>
10511
10512 <td class="entry_range">
Igor Murashkin10f4e0f2014-01-13 17:22:58 -080010513 <p>See <a href="#static_android.sensor.info.maxFrameDuration">android.<wbr/>sensor.<wbr/>info.<wbr/>max<wbr/>Frame<wbr/>Duration</a>,<wbr/>
10514android.<wbr/>scaler.<wbr/>available*Min<wbr/>Durations.<wbr/> The duration
10515is capped to <code>max(duration,<wbr/> exposureTime + overhead)</code>.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010516 </td>
10517
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010518 <td class="entry_tags">
10519 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080010520 <li><a href="#tag_V1">V1</a></li>
10521 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010522 </ul>
10523 </td>
10524
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080010525 </tr>
10526 <tr class="entries_header">
10527 <th class="th_details" colspan="5">Details</th>
10528 </tr>
10529 <tr class="entry_cont">
10530 <td class="entry_details" colspan="5">
Igor Murashkin10f4e0f2014-01-13 17:22:58 -080010531 <p>The maximum frame rate that can be supported by a camera subsystem is
10532a function of many factors:</p>
10533<ul>
10534<li>Requested resolutions of output image streams</li>
10535<li>Availability of binning /<wbr/> skipping modes on the imager</li>
10536<li>The bandwidth of the imager interface</li>
10537<li>The bandwidth of the various ISP processing blocks</li>
10538</ul>
10539<p>Since these factors can vary greatly between different ISPs and
10540sensors,<wbr/> the camera abstraction tries to represent the bandwidth
10541restrictions with as simple a model as possible.<wbr/></p>
10542<p>The model presented has the following characteristics:</p>
10543<ul>
10544<li>The image sensor is always configured to output the smallest
10545resolution possible given the application's requested output stream
10546sizes.<wbr/> The smallest resolution is defined as being at least as large
10547as the largest requested output stream size; the camera pipeline must
10548never digitally upsample sensor data when the crop region covers the
10549whole sensor.<wbr/> In general,<wbr/> this means that if only small output stream
10550resolutions are configured,<wbr/> the sensor can provide a higher frame
10551rate.<wbr/></li>
10552<li>Since any request may use any or all the currently configured
10553output streams,<wbr/> the sensor and ISP must be configured to support
10554scaling a single capture to all the streams at the same time.<wbr/> This
10555means the camera pipeline must be ready to produce the largest
10556requested output size without any delay.<wbr/> Therefore,<wbr/> the overall
10557frame rate of a given configured stream set is governed only by the
10558largest requested stream resolution.<wbr/></li>
10559<li>Using more than one output stream in a request does not affect the
10560frame duration.<wbr/></li>
10561<li>JPEG streams act like processed YUV streams in requests for which
10562they are not included; in requests in which they are directly
10563referenced,<wbr/> they act as JPEG streams.<wbr/> This is because supporting a
10564JPEG stream requires the underlying YUV data to always be ready for
10565use by a JPEG encoder,<wbr/> but the encoder will only be used (and impact
10566frame duration) on requests that actually reference a JPEG stream.<wbr/></li>
10567<li>The JPEG processor can run concurrently to the rest of the camera
10568pipeline,<wbr/> but cannot process more than 1 capture at a time.<wbr/></li>
10569</ul>
10570<p>The necessary information for the application,<wbr/> given the model above,<wbr/>
10571is provided via the android.<wbr/>scaler.<wbr/>available*Min<wbr/>Durations fields.<wbr/>
10572These are used to determine the maximum frame rate /<wbr/> minimum frame
10573duration that is possible for a given stream configuration.<wbr/></p>
10574<p>Specifically,<wbr/> the application can use the following rules to
10575determine the minimum frame duration it can request from the HAL
10576device:</p>
10577<ol>
10578<li>Given the application's currently configured set of output
10579streams,<wbr/> <code>S</code>,<wbr/> divide them into three sets: streams in a JPEG format
10580<code>SJ</code>,<wbr/> streams in a raw sensor format <code>SR</code>,<wbr/> and the rest ('processed')
10581<code>SP</code>.<wbr/></li>
10582<li>For each subset of streams,<wbr/> find the largest resolution (by pixel
10583count) in the subset.<wbr/> This gives (at most) three resolutions <code>RJ</code>,<wbr/>
10584<code>RR</code>,<wbr/> and <code>RP</code>.<wbr/></li>
10585<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
10586no exact match for <code>RP == RJ</code> (in particular there isn't an available
10587processed resolution at the same size as <code>RJ</code>),<wbr/> then set <code>RP</code> equal
10588to the smallest processed resolution that is larger than <code>RJ</code>.<wbr/> If
10589there are no processed resolutions larger than <code>RJ</code>,<wbr/> then set <code>RJ</code> to
10590the processed resolution closest to <code>RJ</code>.<wbr/></li>
10591<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
10592no exact match for <code>RR == RP</code> (in particular there isn't an available
10593raw resolution at the same size as <code>RP</code>),<wbr/> then set <code>RR</code> equal to
10594or to the smallest raw resolution that is larger than <code>RP</code>.<wbr/> If
10595there are no raw resolutions larger than <code>RP</code>,<wbr/> then set <code>RR</code> to
10596the raw resolution closest to <code>RP</code>.<wbr/></li>
10597<li>Look up the matching minimum frame durations in the property lists
10598<a href="#static_android.scaler.availableJpegMinDurations">android.<wbr/>scaler.<wbr/>available<wbr/>Jpeg<wbr/>Min<wbr/>Durations</a>,<wbr/>
10599<a href="#static_android.scaler.availableRawMinDurations">android.<wbr/>scaler.<wbr/>available<wbr/>Raw<wbr/>Min<wbr/>Durations</a>,<wbr/> and
10600<a href="#static_android.scaler.availableProcessedMinDurations">android.<wbr/>scaler.<wbr/>available<wbr/>Processed<wbr/>Min<wbr/>Durations</a>.<wbr/> This gives three
10601minimum frame durations <code>FJ</code>,<wbr/> <code>FR</code>,<wbr/> and <code>FP</code>.<wbr/></li>
10602<li>If a stream of requests do not use a JPEG stream,<wbr/> then the minimum
10603supported frame duration for each request is <code>max(FR,<wbr/> FP)</code>.<wbr/></li>
10604<li>If a stream of requests all use the JPEG stream,<wbr/> then the minimum
10605supported frame duration for each request is <code>max(FR,<wbr/> FP,<wbr/> FJ)</code>.<wbr/></li>
10606<li>If a mix of JPEG-using and non-JPEG-using requests is submitted by
10607the application,<wbr/> then the HAL will have to delay JPEG-using requests
10608whenever the JPEG encoder is still busy processing an older capture.<wbr/>
10609This will happen whenever a JPEG-using request starts capture less
10610than <code>FJ</code> <em>ns</em> after a previous JPEG-using request.<wbr/> The minimum
10611supported frame duration will vary between the values calculated in
10612#6 and #7.<wbr/></li>
10613</ol>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080010614 </td>
10615 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080010616
10617
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080010618 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
10619 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010620
10621
10622 <tr class="entry" id="controls_android.sensor.sensitivity">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080010623 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080010624 android.<wbr/>sensor.<wbr/>sensitivity
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080010625 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010626 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080010627 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010628
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070010629 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010630
10631
10632 </td> <!-- entry_type -->
10633
10634 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080010635 <p>Gain applied to image data.<wbr/> Must be
Igor Murashkin8aa2a112013-12-09 12:06:17 -080010636implemented through analog gain only if set to values
Igor Murashkin0b080452013-12-27 15:30:25 -080010637below 'maximum analog sensitivity'.<wbr/></p>
10638<p>If the sensor can't apply this exact gain,<wbr/> it should lessen the
10639gain to the nearest possible value (rather than gain more).<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010640 </td>
10641
10642 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -080010643 ISO arithmetic units
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010644 </td>
10645
10646 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -080010647 <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 -080010648 </td>
10649
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010650 <td class="entry_tags">
10651 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080010652 <li><a href="#tag_V1">V1</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010653 </ul>
10654 </td>
10655
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080010656 </tr>
10657 <tr class="entries_header">
10658 <th class="th_details" colspan="5">Details</th>
10659 </tr>
10660 <tr class="entry_cont">
10661 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -080010662 <p>ISO 12232:2006 REI method</p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080010663 </td>
10664 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080010665
10666
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080010667 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
10668 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010669
Igor Murashkina46e02f2014-01-09 17:43:38 -080010670
10671 <tr class="entry" id="controls_android.sensor.testPatternData">
10672 <td class="entry_name" rowspan="5">
10673 android.<wbr/>sensor.<wbr/>test<wbr/>Pattern<wbr/>Data
10674 </td>
10675 <td class="entry_type">
10676 <span class="entry_type_name">int32</span>
10677 <span class="entry_type_container">x</span>
10678
10679 <span class="entry_type_array">
10680 4
10681 </span>
10682 <span class="entry_type_visibility"> [public]</span>
10683
10684
10685 </td> <!-- entry_type -->
10686
10687 <td class="entry_description">
10688 <p>A pixel <code>[R,<wbr/> G_<wbr/>even,<wbr/> G_<wbr/>odd,<wbr/> B]</code> that supplies the test pattern
10689when <a href="#controls_android.sensor.testPatternMode">android.<wbr/>sensor.<wbr/>test<wbr/>Pattern<wbr/>Mode</a> is SOLID_<wbr/>COLOR.<wbr/></p>
10690 </td>
10691
10692 <td class="entry_units">
10693 </td>
10694
10695 <td class="entry_range">
10696 <p>Optional.<wbr/>
10697Must be supported if <a href="#static_android.sensor.availableTestPatternModes">android.<wbr/>sensor.<wbr/>available<wbr/>Test<wbr/>Pattern<wbr/>Modes</a> contains
10698SOLID_<wbr/>COLOR.<wbr/></p>
10699 </td>
10700
10701 <td class="entry_tags">
10702 </td>
10703
10704 </tr>
10705 <tr class="entries_header">
10706 <th class="th_details" colspan="5">Details</th>
10707 </tr>
10708 <tr class="entry_cont">
10709 <td class="entry_details" colspan="5">
10710 <p>Each color channel is treated as an unsigned 32-bit integer.<wbr/>
10711The camera device then uses the most significant X bits
10712that correspond to how many bits are in its Bayer raw sensor
10713output.<wbr/></p>
10714<p>For example,<wbr/> a sensor with RAW10 Bayer output would use the
1071510 most significant bits from each color channel.<wbr/></p>
10716 </td>
10717 </tr>
10718
10719 <tr class="entries_header">
10720 <th class="th_details" colspan="5">HAL Implementation Details</th>
10721 </tr>
10722 <tr class="entry_cont">
10723 <td class="entry_details" colspan="5">
10724
10725 </td>
10726 </tr>
10727
10728 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
10729 <!-- end of entry -->
10730
10731
10732 <tr class="entry" id="controls_android.sensor.testPatternMode">
10733 <td class="entry_name" rowspan="5">
10734 android.<wbr/>sensor.<wbr/>test<wbr/>Pattern<wbr/>Mode
10735 </td>
10736 <td class="entry_type">
10737 <span class="entry_type_name entry_type_name_enum">int32</span>
10738
10739 <span class="entry_type_visibility"> [public]</span>
10740
10741 <ul class="entry_type_enum">
10742 <li>
10743 <span class="entry_type_enum_name">OFF</span>
10744 <span class="entry_type_enum_notes"><p>Default.<wbr/> No test pattern mode is used,<wbr/> and the camera
10745device returns captures from the image sensor.<wbr/></p></span>
10746 </li>
10747 <li>
10748 <span class="entry_type_enum_name">SOLID_COLOR</span>
10749 <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
10750respective color channel provided in
10751<a href="#controls_android.sensor.testPatternData">android.<wbr/>sensor.<wbr/>test<wbr/>Pattern<wbr/>Data</a>.<wbr/></p>
10752<p>For example:</p>
10753<pre><code>android.<wbr/>testPatternData = [0,<wbr/> 0xFFFFFFFF,<wbr/> 0xFFFFFFFF,<wbr/> 0]
10754</code></pre>
10755<p>All green pixels are 100% green.<wbr/> All red/<wbr/>blue pixels are black.<wbr/></p>
10756<pre><code>android.<wbr/>testPatternData = [0xFFFFFFFF,<wbr/> 0,<wbr/> 0xFFFFFFFF,<wbr/> 0]
10757</code></pre>
10758<p>All red pixels are 100% red.<wbr/> Only the odd green pixels
10759are 100% green.<wbr/> All blue pixels are 100% black.<wbr/></p></span>
10760 </li>
10761 <li>
10762 <span class="entry_type_enum_name">COLOR_BARS</span>
10763 <span class="entry_type_enum_notes"><p>All pixel data is replaced with an 8-bar color pattern.<wbr/></p>
10764<p>The vertical bars (left-to-right) are as follows:</p>
10765<ul>
10766<li>100% white</li>
10767<li>yellow</li>
10768<li>cyan</li>
10769<li>green</li>
10770<li>magenta</li>
10771<li>red</li>
10772<li>blue</li>
10773<li>black</li>
10774</ul>
10775<p>In general the image would look like the following:</p>
10776<pre><code>W Y C G M R B K
10777W Y C G M R B K
10778W Y C G M R B K
10779W Y C G M R B K
10780W Y C G M R B K
10781.<wbr/> .<wbr/> .<wbr/> .<wbr/> .<wbr/> .<wbr/> .<wbr/> .<wbr/>
10782.<wbr/> .<wbr/> .<wbr/> .<wbr/> .<wbr/> .<wbr/> .<wbr/> .<wbr/>
10783.<wbr/> .<wbr/> .<wbr/> .<wbr/> .<wbr/> .<wbr/> .<wbr/> .<wbr/>
10784
10785(B = Blue,<wbr/> K = Black)
10786</code></pre>
10787<p>Each bar should take up 1/<wbr/>8 of the sensor pixel array width.<wbr/>
10788When this is not possible,<wbr/> the bar size should be rounded
10789down to the nearest integer and the pattern can repeat
10790on the right side.<wbr/></p>
10791<p>Each bar's height must always take up the full sensor
10792pixel array height.<wbr/></p>
10793<p>Each pixel in this test pattern must be set to either
107940% intensity or 100% intensity.<wbr/></p></span>
10795 </li>
10796 <li>
10797 <span class="entry_type_enum_name">COLOR_BARS_FADE_TO_GRAY</span>
10798 <span class="entry_type_enum_notes"><p>The test pattern is similar to COLOR_<wbr/>BARS,<wbr/> except that
10799each bar should start at its specified color at the top,<wbr/>
10800and fade to gray at the bottom.<wbr/></p>
10801<p>Furthermore each bar is further subdivided into a left and
10802right half.<wbr/> The left half should have a smooth gradient,<wbr/>
10803and the right half should have a quantized gradient.<wbr/></p>
10804<p>In particular,<wbr/> the right half's should consist of blocks of the
10805same color for 1/<wbr/>16th active sensor pixel array width.<wbr/></p>
10806<p>The least significant bits in the quantized gradient should
10807be copied from the most significant bits of the smooth gradient.<wbr/></p>
10808<p>The height of each bar should always be a multiple of 128.<wbr/>
10809When this is not the case,<wbr/> the pattern should repeat at the bottom
10810of the image.<wbr/></p></span>
10811 </li>
10812 <li>
10813 <span class="entry_type_enum_name">PN9</span>
10814 <span class="entry_type_enum_notes"><p>All pixel data is replaced by a pseudo-random sequence
10815generated from a PN9 512-bit sequence (typically implemented
10816in hardware with a linear feedback shift register).<wbr/></p>
10817<p>The generator should be reset at the beginning of each frame,<wbr/>
10818and thus each subsequent raw frame with this test pattern should
10819be exactly the same as the last.<wbr/></p></span>
10820 </li>
10821 <li>
10822 <span class="entry_type_enum_name">CUSTOM1</span>
10823 <span class="entry_type_enum_value">256</span>
10824 <span class="entry_type_enum_notes"><p>The first custom test pattern.<wbr/> All custom patterns that are
10825available only on this camera device are at least this numeric
10826value.<wbr/></p>
10827<p>All of the custom test patterns will be static
10828(that is the raw image must not vary from frame to frame).<wbr/></p></span>
10829 </li>
10830 </ul>
10831
10832 </td> <!-- entry_type -->
10833
10834 <td class="entry_description">
10835 <p>When enabled,<wbr/> the sensor sends a test pattern instead of
10836doing a real exposure from the camera.<wbr/></p>
10837 </td>
10838
10839 <td class="entry_units">
10840 </td>
10841
10842 <td class="entry_range">
10843 <p>Optional.<wbr/> Defaults to OFF.<wbr/> Value must be one of
10844<a href="#static_android.sensor.availableTestPatternModes">android.<wbr/>sensor.<wbr/>available<wbr/>Test<wbr/>Pattern<wbr/>Modes</a></p>
10845 </td>
10846
10847 <td class="entry_tags">
10848 </td>
10849
10850 </tr>
10851 <tr class="entries_header">
10852 <th class="th_details" colspan="5">Details</th>
10853 </tr>
10854 <tr class="entry_cont">
10855 <td class="entry_details" colspan="5">
10856 <p>When a test pattern is enabled,<wbr/> all manual sensor controls specified
10857by android.<wbr/>sensor.<wbr/>* should be ignored.<wbr/> All other controls should
10858work as normal.<wbr/></p>
10859<p>For example,<wbr/> if manual flash is enabled,<wbr/> flash firing should still
10860occur (and that the test pattern remain unmodified,<wbr/> since the flash
10861would not actually affect it).<wbr/></p>
10862 </td>
10863 </tr>
10864
10865 <tr class="entries_header">
10866 <th class="th_details" colspan="5">HAL Implementation Details</th>
10867 </tr>
10868 <tr class="entry_cont">
10869 <td class="entry_details" colspan="5">
10870 <p>All test patterns are specified in the Bayer domain.<wbr/></p>
10871<p>The HAL may choose to substitute test patterns from the sensor
10872with test patterns from on-device memory.<wbr/> In that case,<wbr/> it should be
10873indistinguishable to the ISP whether the data came from the
10874sensor interconnect bus (such as CSI2) or memory.<wbr/></p>
10875 </td>
10876 </tr>
10877
10878 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
10879 <!-- end of entry -->
10880
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010881
10882
10883 <!-- end of kind -->
10884 </tbody>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080010885 <tr><td colspan="6" class="kind">static</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010886
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070010887 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010888 <tr>
10889 <th class="th_name">Property Name</th>
10890 <th class="th_type">Type</th>
10891 <th class="th_description">Description</th>
10892 <th class="th_units">Units</th>
10893 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010894 <th class="th_tags">Tags</th>
10895 </tr>
10896 </thead>
10897
10898 <tbody>
10899
10900
10901
10902
10903
10904
10905
10906
10907
10908
10909
10910
10911 <tr class="entry" id="static_android.sensor.info.activeArraySize">
Zhijun Hebdc94c42014-01-21 18:28:30 -080010912 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080010913 android.<wbr/>sensor.<wbr/>info.<wbr/>active<wbr/>Array<wbr/>Size
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080010914 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010915 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080010916 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010917 <span class="entry_type_container">x</span>
10918
10919 <span class="entry_type_array">
10920 4
10921 </span>
Igor Murashkinb8dc8812013-07-17 16:29:34 -070010922 <span class="entry_type_visibility"> [public as rectangle]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -080010923 <div class="entry_type_notes">Four ints defining the active pixel rectangle</div>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010924
10925
10926 </td> <!-- entry_type -->
10927
10928 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080010929 <p>Area of raw data which corresponds to only
Zhijun Hebdc94c42014-01-21 18:28:30 -080010930active pixels.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010931 </td>
10932
10933 <td class="entry_units">
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010934 </td>
10935
10936 <td class="entry_range">
Zhijun Hebdc94c42014-01-21 18:28:30 -080010937 <p>This array contains <code>(xmin,<wbr/> ymin,<wbr/> width,<wbr/> height)</code>.<wbr/> The <code>(xmin,<wbr/> ymin)</code> must be
10938&gt;= <code>(0,<wbr/>0)</code>.<wbr/> The <code>(width,<wbr/> height)</code> must be &lt;=
10939<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 -080010940 </td>
10941
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010942 <td class="entry_tags">
10943 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080010944 <li><a href="#tag_DNG">DNG</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010945 </ul>
10946 </td>
10947
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080010948 </tr>
Zhijun Hebdc94c42014-01-21 18:28:30 -080010949 <tr class="entries_header">
10950 <th class="th_details" colspan="5">Details</th>
10951 </tr>
10952 <tr class="entry_cont">
10953 <td class="entry_details" colspan="5">
10954 <p>It is smaller or equal to
10955sensor full pixel array,<wbr/> which could include the black calibration pixels.<wbr/></p>
10956 </td>
10957 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080010958
10959
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080010960 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
10961 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010962
10963
Zhijun He69fc0ea2013-07-17 09:42:58 -070010964 <tr class="entry" id="static_android.sensor.info.sensitivityRange">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080010965 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -080010966 android.<wbr/>sensor.<wbr/>info.<wbr/>sensitivity<wbr/>Range
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080010967 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010968 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080010969 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010970 <span class="entry_type_container">x</span>
10971
10972 <span class="entry_type_array">
Zhijun He69fc0ea2013-07-17 09:42:58 -070010973 2
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010974 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070010975 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -080010976 <div class="entry_type_notes">Range of supported sensitivities</div>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010977
10978
10979 </td> <!-- entry_type -->
10980
10981 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080010982 <p>Range of valid sensitivities</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010983 </td>
10984
10985 <td class="entry_units">
10986 </td>
10987
10988 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -080010989 <p>Min &lt;= 100,<wbr/> Max &gt;= 1600</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010990 </td>
10991
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010992 <td class="entry_tags">
10993 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080010994 <li><a href="#tag_BC">BC</a></li>
10995 <li><a href="#tag_V1">V1</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010996 </ul>
10997 </td>
10998
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080010999 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011000
11001
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011002 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
11003 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011004
11005
11006 <tr class="entry" id="static_android.sensor.info.colorFilterArrangement">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011007 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -080011008 android.<wbr/>sensor.<wbr/>info.<wbr/>color<wbr/>Filter<wbr/>Arrangement
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011009 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011010 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080011011 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011012
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070011013 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011014
11015 <ul class="entry_type_enum">
11016 <li>
11017 <span class="entry_type_enum_name">RGGB</span>
11018 </li>
11019 <li>
11020 <span class="entry_type_enum_name">GRBG</span>
11021 </li>
11022 <li>
11023 <span class="entry_type_enum_name">GBRG</span>
11024 </li>
11025 <li>
11026 <span class="entry_type_enum_name">BGGR</span>
11027 </li>
11028 <li>
11029 <span class="entry_type_enum_name">RGB</span>
Igor Murashkina10351a2014-01-15 17:05:22 -080011030 <span class="entry_type_enum_notes"><p>Sensor is not Bayer; output has 3 16-bit
11031values for each pixel,<wbr/> instead of just 1 16-bit value
11032per pixel.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011033 </li>
11034 </ul>
11035
11036 </td> <!-- entry_type -->
11037
11038 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080011039 <p>Arrangement of color filters on sensor;
Igor Murashkin8aa2a112013-12-09 12:06:17 -080011040represents the colors in the top-left 2x2 section of
Igor Murashkin0b080452013-12-27 15:30:25 -080011041the sensor,<wbr/> in reading order</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011042 </td>
11043
11044 <td class="entry_units">
11045 </td>
11046
11047 <td class="entry_range">
11048 </td>
11049
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011050 <td class="entry_tags">
11051 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080011052 <li><a href="#tag_DNG">DNG</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011053 </ul>
11054 </td>
11055
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011056 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011057
11058
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011059 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
11060 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011061
11062
11063 <tr class="entry" id="static_android.sensor.info.exposureTimeRange">
Igor Murashkin061c6002014-01-27 16:00:26 -080011064 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080011065 android.<wbr/>sensor.<wbr/>info.<wbr/>exposure<wbr/>Time<wbr/>Range
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011066 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011067 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080011068 <span class="entry_type_name">int64</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011069 <span class="entry_type_container">x</span>
11070
11071 <span class="entry_type_array">
11072 2
11073 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070011074 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -080011075 <div class="entry_type_notes">nanoseconds</div>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011076
11077
11078 </td> <!-- entry_type -->
11079
11080 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080011081 <p>Range of valid exposure
Igor Murashkin061c6002014-01-27 16:00:26 -080011082times 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 -080011083 </td>
11084
11085 <td class="entry_units">
11086 </td>
11087
11088 <td class="entry_range">
Igor Murashkin061c6002014-01-27 16:00:26 -080011089 <p>Min &lt;= 100e3 (100 us),<wbr/> Max &gt;= 1e9 (1
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -080011090sec)</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011091 </td>
11092
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011093 <td class="entry_tags">
11094 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080011095 <li><a href="#tag_V1">V1</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011096 </ul>
11097 </td>
11098
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011099 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011100
Igor Murashkin061c6002014-01-27 16:00:26 -080011101 <tr class="entries_header">
11102 <th class="th_details" colspan="5">HAL Implementation Details</th>
11103 </tr>
11104 <tr class="entry_cont">
11105 <td class="entry_details" colspan="5">
11106 <p>The maximum of the range must be at least
111071 second.<wbr/> It should be at least 30 seconds.<wbr/></p>
11108 </td>
11109 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011110
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011111 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
11112 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011113
11114
11115 <tr class="entry" id="static_android.sensor.info.maxFrameDuration">
Igor Murashkin061c6002014-01-27 16:00:26 -080011116 <td class="entry_name" rowspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -080011117 android.<wbr/>sensor.<wbr/>info.<wbr/>max<wbr/>Frame<wbr/>Duration
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011118 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011119 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080011120 <span class="entry_type_name">int64</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011121
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070011122 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011123
11124
11125 </td> <!-- entry_type -->
11126
11127 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080011128 <p>Maximum possible frame duration (minimum frame
Igor Murashkin061c6002014-01-27 16:00:26 -080011129rate).<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011130 </td>
11131
11132 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -080011133 nanoseconds
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011134 </td>
11135
11136 <td class="entry_range">
Igor Murashkin6cb7c2c2014-01-10 15:12:40 -080011137 <p>&gt;= 30e9</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011138 </td>
11139
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011140 <td class="entry_tags">
11141 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080011142 <li><a href="#tag_BC">BC</a></li>
11143 <li><a href="#tag_V1">V1</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011144 </ul>
11145 </td>
11146
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011147 </tr>
11148 <tr class="entries_header">
11149 <th class="th_details" colspan="5">Details</th>
11150 </tr>
11151 <tr class="entry_cont">
11152 <td class="entry_details" colspan="5">
Igor Murashkin061c6002014-01-27 16:00:26 -080011153 <p>The largest possible android.<wbr/>sensor.<wbr/>frame<wbr/>Duration
11154that will be accepted by the camera device.<wbr/> Attempting to use
11155frame durations beyond the maximum will result in the frame duration
11156being clipped to the maximum.<wbr/> See that control
11157for a full definition of frame durations.<wbr/></p>
11158<p>Refer to
11159<a href="#static_android.scaler.availableProcessedMinDurations">android.<wbr/>scaler.<wbr/>available<wbr/>Processed<wbr/>Min<wbr/>Durations</a>,<wbr/>
11160<a href="#static_android.scaler.availableJpegMinDurations">android.<wbr/>scaler.<wbr/>available<wbr/>Jpeg<wbr/>Min<wbr/>Durations</a>,<wbr/> and
11161<a href="#static_android.scaler.availableRawMinDurations">android.<wbr/>scaler.<wbr/>available<wbr/>Raw<wbr/>Min<wbr/>Durations</a> for the minimum
11162frame duration values.<wbr/></p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011163 </td>
11164 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011165
Igor Murashkin061c6002014-01-27 16:00:26 -080011166 <tr class="entries_header">
11167 <th class="th_details" colspan="5">HAL Implementation Details</th>
11168 </tr>
11169 <tr class="entry_cont">
11170 <td class="entry_details" colspan="5">
11171 <p>This value must be at least 1 second.<wbr/> It should be at least 30
11172seconds (30e9 ns).<wbr/></p>
11173<p>android.<wbr/>sensor.<wbr/>max<wbr/>Frame<wbr/>Duration must be greater or equal to the
11174android.<wbr/>sensor.<wbr/>exposure<wbr/>Time<wbr/>Range max value (since exposure time
11175overrides frame duration).<wbr/></p>
11176 </td>
11177 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011178
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011179 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
11180 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011181
11182
11183 <tr class="entry" id="static_android.sensor.info.physicalSize">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011184 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080011185 android.<wbr/>sensor.<wbr/>info.<wbr/>physical<wbr/>Size
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011186 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011187 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080011188 <span class="entry_type_name">float</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011189 <span class="entry_type_container">x</span>
11190
11191 <span class="entry_type_array">
11192 2
11193 </span>
Timothy Knightec817d52013-08-16 16:15:29 -070011194 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -080011195 <div class="entry_type_notes">width x height in millimeters</div>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011196
11197
11198 </td> <!-- entry_type -->
11199
11200 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080011201 <p>The physical dimensions of the full pixel
11202array</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011203 </td>
11204
11205 <td class="entry_units">
11206 </td>
11207
11208 <td class="entry_range">
11209 </td>
11210
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011211 <td class="entry_tags">
11212 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080011213 <li><a href="#tag_V1">V1</a></li>
11214 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011215 </ul>
11216 </td>
11217
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011218 </tr>
11219 <tr class="entries_header">
11220 <th class="th_details" colspan="5">Details</th>
11221 </tr>
11222 <tr class="entry_cont">
11223 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -080011224 <p>Needed for FOV calculation for old API</p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011225 </td>
11226 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011227
11228
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011229 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
11230 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011231
11232
11233 <tr class="entry" id="static_android.sensor.info.pixelArraySize">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011234 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080011235 android.<wbr/>sensor.<wbr/>info.<wbr/>pixel<wbr/>Array<wbr/>Size
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011236 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011237 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080011238 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011239 <span class="entry_type_container">x</span>
11240
11241 <span class="entry_type_array">
11242 2
11243 </span>
Igor Murashkinb8dc8812013-07-17 16:29:34 -070011244 <span class="entry_type_visibility"> [system as size]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011245
11246
11247 </td> <!-- entry_type -->
11248
11249 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080011250 <p>Dimensions of full pixel array,<wbr/> possibly
Zhijun Hebdc94c42014-01-21 18:28:30 -080011251including black calibration pixels.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011252 </td>
11253
11254 <td class="entry_units">
11255 </td>
11256
11257 <td class="entry_range">
11258 </td>
11259
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011260 <td class="entry_tags">
11261 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080011262 <li><a href="#tag_DNG">DNG</a></li>
11263 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011264 </ul>
11265 </td>
11266
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011267 </tr>
11268 <tr class="entries_header">
11269 <th class="th_details" colspan="5">Details</th>
11270 </tr>
11271 <tr class="entry_cont">
11272 <td class="entry_details" colspan="5">
Zhijun Hebdc94c42014-01-21 18:28:30 -080011273 <p>The maximum output resolution for raw format in
11274<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 -080011275 </td>
11276 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011277
11278
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011279 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
11280 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011281
11282
11283 <tr class="entry" id="static_android.sensor.info.whiteLevel">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011284 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080011285 android.<wbr/>sensor.<wbr/>info.<wbr/>white<wbr/>Level
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011286 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011287 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080011288 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011289
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070011290 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011291
11292
11293 </td> <!-- entry_type -->
11294
11295 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080011296 <p>Maximum raw value output by
11297sensor</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011298 </td>
11299
11300 <td class="entry_units">
11301 </td>
11302
11303 <td class="entry_range">
Igor Murashkin6cb7c2c2014-01-10 15:12:40 -080011304 <p>&gt; 1024 (10-bit output)</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011305 </td>
11306
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011307 <td class="entry_tags">
11308 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080011309 <li><a href="#tag_DNG">DNG</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011310 </ul>
11311 </td>
11312
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011313 </tr>
11314 <tr class="entries_header">
11315 <th class="th_details" colspan="5">Details</th>
11316 </tr>
11317 <tr class="entry_cont">
11318 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -080011319 <p>Defines sensor bit depth (10-14 bits is
11320expected)</p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011321 </td>
11322 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011323
11324
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011325 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
11326 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011327
11328
11329
11330
11331
11332 <tr class="entry" id="static_android.sensor.baseGainFactor">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011333 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -080011334 android.<wbr/>sensor.<wbr/>base<wbr/>Gain<wbr/>Factor
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011335 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011336 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080011337 <span class="entry_type_name">rational</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011338
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070011339 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011340
11341
11342 </td> <!-- entry_type -->
11343
11344 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080011345 <p>Gain factor from electrons to raw units when
11346ISO=100</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011347 </td>
11348
11349 <td class="entry_units">
11350 </td>
11351
11352 <td class="entry_range">
11353 </td>
11354
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011355 <td class="entry_tags">
11356 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080011357 <li><a href="#tag_V1">V1</a></li>
Alex Rayef40ad62013-10-01 17:52:33 -070011358 <li><a href="#tag_FULL">FULL</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011359 </ul>
11360 </td>
11361
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011362 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011363
11364
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011365 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
11366 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011367
11368
11369 <tr class="entry" id="static_android.sensor.blackLevelPattern">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011370 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080011371 android.<wbr/>sensor.<wbr/>black<wbr/>Level<wbr/>Pattern
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011372 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011373 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080011374 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011375 <span class="entry_type_container">x</span>
11376
11377 <span class="entry_type_array">
11378 4
11379 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070011380 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -080011381 <div class="entry_type_notes">2x2 raw count block</div>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011382
11383
11384 </td> <!-- entry_type -->
11385
11386 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080011387 <p>A fixed black level offset for each of the
11388Bayer mosaic channels</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011389 </td>
11390
11391 <td class="entry_units">
11392 </td>
11393
11394 <td class="entry_range">
Igor Murashkin6cb7c2c2014-01-10 15:12:40 -080011395 <p>&gt;= 0 each</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011396 </td>
11397
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011398 <td class="entry_tags">
11399 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080011400 <li><a href="#tag_DNG">DNG</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011401 </ul>
11402 </td>
11403
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011404 </tr>
11405 <tr class="entries_header">
11406 <th class="th_details" colspan="5">Details</th>
11407 </tr>
11408 <tr class="entry_cont">
11409 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -080011410 <p>As per DNG BlackLevelRepeatDim /<wbr/> BlackLevel
11411tags</p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011412 </td>
11413 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011414
11415
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011416 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
11417 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011418
11419
11420 <tr class="entry" id="static_android.sensor.calibrationTransform1">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011421 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -080011422 android.<wbr/>sensor.<wbr/>calibration<wbr/>Transform1
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011423 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011424 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080011425 <span class="entry_type_name">rational</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011426 <span class="entry_type_container">x</span>
11427
11428 <span class="entry_type_array">
11429 9
11430 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070011431 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -080011432 <div class="entry_type_notes">3x3 matrix in row-major-order</div>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011433
11434
11435 </td> <!-- entry_type -->
11436
11437 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080011438 <p>Per-device calibration on top of color space
11439transform 1</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011440 </td>
11441
11442 <td class="entry_units">
11443 </td>
11444
11445 <td class="entry_range">
11446 </td>
11447
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011448 <td class="entry_tags">
11449 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080011450 <li><a href="#tag_DNG">DNG</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011451 </ul>
11452 </td>
11453
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011454 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011455
11456
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011457 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
11458 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011459
11460
11461 <tr class="entry" id="static_android.sensor.calibrationTransform2">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011462 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -080011463 android.<wbr/>sensor.<wbr/>calibration<wbr/>Transform2
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011464 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011465 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080011466 <span class="entry_type_name">rational</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011467 <span class="entry_type_container">x</span>
11468
11469 <span class="entry_type_array">
11470 9
11471 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070011472 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -080011473 <div class="entry_type_notes">3x3 matrix in row-major-order</div>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011474
11475
11476 </td> <!-- entry_type -->
11477
11478 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080011479 <p>Per-device calibration on top of color space
11480transform 2</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011481 </td>
11482
11483 <td class="entry_units">
11484 </td>
11485
11486 <td class="entry_range">
11487 </td>
11488
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011489 <td class="entry_tags">
11490 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080011491 <li><a href="#tag_DNG">DNG</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011492 </ul>
11493 </td>
11494
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011495 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011496
11497
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011498 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
11499 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011500
11501
11502 <tr class="entry" id="static_android.sensor.colorTransform1">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011503 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080011504 android.<wbr/>sensor.<wbr/>color<wbr/>Transform1
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011505 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011506 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080011507 <span class="entry_type_name">rational</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011508 <span class="entry_type_container">x</span>
11509
11510 <span class="entry_type_array">
11511 9
11512 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070011513 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -080011514 <div class="entry_type_notes">3x3 matrix in row-major-order</div>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011515
11516
11517 </td> <!-- entry_type -->
11518
11519 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080011520 <p>Linear mapping from XYZ (D50) color space to
11521reference linear sensor color,<wbr/> for first reference
11522illuminant</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011523 </td>
11524
11525 <td class="entry_units">
11526 </td>
11527
11528 <td class="entry_range">
11529 </td>
11530
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011531 <td class="entry_tags">
11532 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080011533 <li><a href="#tag_DNG">DNG</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011534 </ul>
11535 </td>
11536
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011537 </tr>
11538 <tr class="entries_header">
11539 <th class="th_details" colspan="5">Details</th>
11540 </tr>
11541 <tr class="entry_cont">
11542 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -080011543 <p>Use as follows XYZ = inv(transform) * clip( (raw -
11544black level(raw) ) /<wbr/> ( white level - max black level) ).<wbr/>
11545At least in the simple case</p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011546 </td>
11547 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011548
11549
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011550 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
11551 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011552
11553
11554 <tr class="entry" id="static_android.sensor.colorTransform2">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011555 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -080011556 android.<wbr/>sensor.<wbr/>color<wbr/>Transform2
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011557 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011558 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080011559 <span class="entry_type_name">rational</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011560 <span class="entry_type_container">x</span>
11561
11562 <span class="entry_type_array">
11563 9
11564 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070011565 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -080011566 <div class="entry_type_notes">3x3 matrix in row-major-order</div>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011567
11568
11569 </td> <!-- entry_type -->
11570
11571 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080011572 <p>Linear mapping from XYZ (D50) color space to
11573reference linear sensor color,<wbr/> for second reference
11574illuminant</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011575 </td>
11576
11577 <td class="entry_units">
11578 </td>
11579
11580 <td class="entry_range">
11581 </td>
11582
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011583 <td class="entry_tags">
11584 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080011585 <li><a href="#tag_DNG">DNG</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011586 </ul>
11587 </td>
11588
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011589 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011590
11591
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011592 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
11593 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011594
11595
11596 <tr class="entry" id="static_android.sensor.forwardMatrix1">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011597 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -080011598 android.<wbr/>sensor.<wbr/>forward<wbr/>Matrix1
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011599 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011600 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080011601 <span class="entry_type_name">rational</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011602 <span class="entry_type_container">x</span>
11603
11604 <span class="entry_type_array">
11605 9
11606 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070011607 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -080011608 <div class="entry_type_notes">3x3 matrix in row-major-order</div>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011609
11610
11611 </td> <!-- entry_type -->
11612
11613 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080011614 <p>Used by DNG for better WB
11615adaptation</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011616 </td>
11617
11618 <td class="entry_units">
11619 </td>
11620
11621 <td class="entry_range">
11622 </td>
11623
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011624 <td class="entry_tags">
11625 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080011626 <li><a href="#tag_DNG">DNG</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011627 </ul>
11628 </td>
11629
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011630 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011631
11632
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011633 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
11634 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011635
11636
11637 <tr class="entry" id="static_android.sensor.forwardMatrix2">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011638 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -080011639 android.<wbr/>sensor.<wbr/>forward<wbr/>Matrix2
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011640 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011641 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080011642 <span class="entry_type_name">rational</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011643 <span class="entry_type_container">x</span>
11644
11645 <span class="entry_type_array">
11646 9
11647 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070011648 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -080011649 <div class="entry_type_notes">3x3 matrix in row-major-order</div>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011650
11651
11652 </td> <!-- entry_type -->
11653
11654 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080011655 <p>Used by DNG for better WB
11656adaptation</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011657 </td>
11658
11659 <td class="entry_units">
11660 </td>
11661
11662 <td class="entry_range">
11663 </td>
11664
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011665 <td class="entry_tags">
11666 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080011667 <li><a href="#tag_DNG">DNG</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011668 </ul>
11669 </td>
11670
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011671 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011672
11673
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011674 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
11675 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011676
11677
11678 <tr class="entry" id="static_android.sensor.maxAnalogSensitivity">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011679 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080011680 android.<wbr/>sensor.<wbr/>max<wbr/>Analog<wbr/>Sensitivity
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011681 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011682 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080011683 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011684
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070011685 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011686
11687
11688 </td> <!-- entry_type -->
11689
11690 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080011691 <p>Maximum sensitivity that is implemented
Zhijun Hebdc94c42014-01-21 18:28:30 -080011692purely through analog gain.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011693 </td>
11694
11695 <td class="entry_units">
11696 </td>
11697
11698 <td class="entry_range">
11699 </td>
11700
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011701 <td class="entry_tags">
11702 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080011703 <li><a href="#tag_V1">V1</a></li>
Alex Rayef40ad62013-10-01 17:52:33 -070011704 <li><a href="#tag_FULL">FULL</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011705 </ul>
11706 </td>
11707
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011708 </tr>
11709 <tr class="entries_header">
11710 <th class="th_details" colspan="5">Details</th>
11711 </tr>
11712 <tr class="entry_cont">
11713 <td class="entry_details" colspan="5">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -080011714 <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 -080011715equal to this,<wbr/> all applied gain must be analog.<wbr/> For
Zhijun Hebdc94c42014-01-21 18:28:30 -080011716values above this,<wbr/> the gain applied can be a mix of analog and
11717digital.<wbr/></p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011718 </td>
11719 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011720
11721
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011722 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
11723 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011724
11725
11726 <tr class="entry" id="static_android.sensor.noiseModelCoefficients">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011727 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080011728 android.<wbr/>sensor.<wbr/>noise<wbr/>Model<wbr/>Coefficients
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011729 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011730 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080011731 <span class="entry_type_name">float</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011732 <span class="entry_type_container">x</span>
11733
11734 <span class="entry_type_array">
11735 2
11736 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070011737 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -080011738 <div class="entry_type_notes">float constants A,<wbr/> B for the noise variance model</div>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011739
11740
11741 </td> <!-- entry_type -->
11742
11743 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080011744 <p>Estimation of sensor noise
11745characteristics</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011746 </td>
11747
11748 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -080011749 var(raw pixel value) = electrons * (baseGainFactor
11750 * iso/<wbr/>100)^2 + A * (baseGainFactor * iso/<wbr/>100)^2 +
11751 B
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011752 </td>
11753
11754 <td class="entry_range">
11755 </td>
11756
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011757 <td class="entry_tags">
11758 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080011759 <li><a href="#tag_V1">V1</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011760 </ul>
11761 </td>
11762
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011763 </tr>
11764 <tr class="entries_header">
11765 <th class="th_details" colspan="5">Details</th>
11766 </tr>
11767 <tr class="entry_cont">
11768 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -080011769 <p>A represents sensor read noise before analog
11770amplification; B represents noise from A/<wbr/>D conversion and
11771other circuits after amplification.<wbr/> Both noise sources
11772are assumed to be gaussian,<wbr/> independent,<wbr/> and not to vary
11773across the sensor</p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011774 </td>
11775 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011776
11777
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011778 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
11779 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011780
11781
11782 <tr class="entry" id="static_android.sensor.orientation">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011783 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -080011784 android.<wbr/>sensor.<wbr/>orientation
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011785 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011786 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080011787 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011788
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070011789 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011790
11791
11792 </td> <!-- entry_type -->
11793
11794 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080011795 <p>Clockwise angle through which the output
Igor Murashkin8aa2a112013-12-09 12:06:17 -080011796image needs to be rotated to be upright on the device
Igor Murashkin0b080452013-12-27 15:30:25 -080011797screen in its native orientation.<wbr/> Also defines the
11798direction of rolling shutter readout,<wbr/> which is from top
11799to bottom in the sensor's coordinate system</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011800 </td>
11801
11802 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -080011803 degrees clockwise rotation,<wbr/> only multiples of
11804 90
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011805 </td>
11806
11807 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -080011808 <p>0,<wbr/>90,<wbr/>180,<wbr/>270</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011809 </td>
11810
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011811 <td class="entry_tags">
11812 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080011813 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011814 </ul>
11815 </td>
11816
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011817 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011818
11819
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011820 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
11821 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011822
11823
11824 <tr class="entry" id="static_android.sensor.referenceIlluminant1">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011825 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080011826 android.<wbr/>sensor.<wbr/>reference<wbr/>Illuminant1
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011827 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011828 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080011829 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011830
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070011831 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011832
11833 <ul class="entry_type_enum">
11834 <li>
11835 <span class="entry_type_enum_name">DAYLIGHT</span>
11836 <span class="entry_type_enum_value">1</span>
11837 </li>
11838 <li>
11839 <span class="entry_type_enum_name">FLUORESCENT</span>
11840 <span class="entry_type_enum_value">2</span>
11841 </li>
11842 <li>
11843 <span class="entry_type_enum_name">TUNGSTEN</span>
11844 <span class="entry_type_enum_value">3</span>
Igor Murashkina10351a2014-01-15 17:05:22 -080011845 <span class="entry_type_enum_notes"><p>Incandescent light</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011846 </li>
11847 <li>
11848 <span class="entry_type_enum_name">FLASH</span>
11849 <span class="entry_type_enum_value">4</span>
11850 </li>
11851 <li>
11852 <span class="entry_type_enum_name">FINE_WEATHER</span>
11853 <span class="entry_type_enum_value">9</span>
11854 </li>
11855 <li>
11856 <span class="entry_type_enum_name">CLOUDY_WEATHER</span>
11857 <span class="entry_type_enum_value">10</span>
11858 </li>
11859 <li>
11860 <span class="entry_type_enum_name">SHADE</span>
11861 <span class="entry_type_enum_value">11</span>
11862 </li>
11863 <li>
11864 <span class="entry_type_enum_name">DAYLIGHT_FLUORESCENT</span>
11865 <span class="entry_type_enum_value">12</span>
Igor Murashkina10351a2014-01-15 17:05:22 -080011866 <span class="entry_type_enum_notes"><p>D 5700 - 7100K</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011867 </li>
11868 <li>
11869 <span class="entry_type_enum_name">DAY_WHITE_FLUORESCENT</span>
11870 <span class="entry_type_enum_value">13</span>
Igor Murashkina10351a2014-01-15 17:05:22 -080011871 <span class="entry_type_enum_notes"><p>N 4600 - 5400K</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011872 </li>
11873 <li>
11874 <span class="entry_type_enum_name">COOL_WHITE_FLUORESCENT</span>
11875 <span class="entry_type_enum_value">14</span>
Igor Murashkina10351a2014-01-15 17:05:22 -080011876 <span class="entry_type_enum_notes"><p>W 3900 - 4500K</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011877 </li>
11878 <li>
11879 <span class="entry_type_enum_name">WHITE_FLUORESCENT</span>
11880 <span class="entry_type_enum_value">15</span>
Igor Murashkina10351a2014-01-15 17:05:22 -080011881 <span class="entry_type_enum_notes"><p>WW 3200 - 3700K</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011882 </li>
11883 <li>
11884 <span class="entry_type_enum_name">STANDARD_A</span>
11885 <span class="entry_type_enum_value">17</span>
11886 </li>
11887 <li>
11888 <span class="entry_type_enum_name">STANDARD_B</span>
11889 <span class="entry_type_enum_value">18</span>
11890 </li>
11891 <li>
11892 <span class="entry_type_enum_name">STANDARD_C</span>
11893 <span class="entry_type_enum_value">19</span>
11894 </li>
11895 <li>
11896 <span class="entry_type_enum_name">D55</span>
11897 <span class="entry_type_enum_value">20</span>
11898 </li>
11899 <li>
11900 <span class="entry_type_enum_name">D65</span>
11901 <span class="entry_type_enum_value">21</span>
11902 </li>
11903 <li>
11904 <span class="entry_type_enum_name">D75</span>
11905 <span class="entry_type_enum_value">22</span>
11906 </li>
11907 <li>
11908 <span class="entry_type_enum_name">D50</span>
11909 <span class="entry_type_enum_value">23</span>
11910 </li>
11911 <li>
11912 <span class="entry_type_enum_name">ISO_STUDIO_TUNGSTEN</span>
11913 <span class="entry_type_enum_value">24</span>
11914 </li>
11915 </ul>
11916
11917 </td> <!-- entry_type -->
11918
11919 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080011920 <p>Light source used to define transform
119211</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011922 </td>
11923
11924 <td class="entry_units">
11925 </td>
11926
11927 <td class="entry_range">
11928 </td>
11929
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011930 <td class="entry_tags">
11931 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080011932 <li><a href="#tag_DNG">DNG</a></li>
11933 <li><a href="#tag_EXIF">EXIF</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011934 </ul>
11935 </td>
11936
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011937 </tr>
11938 <tr class="entries_header">
11939 <th class="th_details" colspan="5">Details</th>
11940 </tr>
11941 <tr class="entry_cont">
11942 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -080011943 <p>[EXIF LightSource tag] Must all these be
11944supported? Need CCT for each!</p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011945 </td>
11946 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011947
11948
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011949 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
11950 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011951
11952
11953 <tr class="entry" id="static_android.sensor.referenceIlluminant2">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011954 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -080011955 android.<wbr/>sensor.<wbr/>reference<wbr/>Illuminant2
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011956 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011957 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080011958 <span class="entry_type_name">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011959
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070011960 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011961
11962
11963 </td> <!-- entry_type -->
11964
11965 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080011966 <p>Light source used to define transform
119672</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011968 </td>
11969
11970 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -080011971 Same as illuminant 1
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011972 </td>
11973
11974 <td class="entry_range">
11975 </td>
11976
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011977 <td class="entry_tags">
11978 </td>
11979
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011980 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011981
11982
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011983 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
11984 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011985
Igor Murashkina46e02f2014-01-09 17:43:38 -080011986
11987 <tr class="entry" id="static_android.sensor.availableTestPatternModes">
11988 <td class="entry_name" rowspan="1">
11989 android.<wbr/>sensor.<wbr/>available<wbr/>Test<wbr/>Pattern<wbr/>Modes
11990 </td>
11991 <td class="entry_type">
11992 <span class="entry_type_name">byte</span>
11993
11994 <span class="entry_type_visibility"> [public]</span>
11995
11996
11997 </td> <!-- entry_type -->
11998
11999 <td class="entry_description">
12000 <p>Optional.<wbr/> Defaults to [OFF].<wbr/> Lists the supported test
12001pattern modes for android.<wbr/>test.<wbr/>pattern<wbr/>Mode.<wbr/></p>
12002 </td>
12003
12004 <td class="entry_units">
12005 </td>
12006
12007 <td class="entry_range">
12008 <p>Must include OFF.<wbr/> All custom modes must be &gt;= CUSTOM1</p>
12009 </td>
12010
12011 <td class="entry_tags">
12012 </td>
12013
12014 </tr>
12015
12016
12017 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
12018 <!-- end of entry -->
12019
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012020
12021
12022 <!-- end of kind -->
12023 </tbody>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012024 <tr><td colspan="6" class="kind">dynamic</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012025
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070012026 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012027 <tr>
12028 <th class="th_name">Property Name</th>
12029 <th class="th_type">Type</th>
12030 <th class="th_description">Description</th>
12031 <th class="th_units">Units</th>
12032 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012033 <th class="th_tags">Tags</th>
12034 </tr>
12035 </thead>
12036
12037 <tbody>
12038
12039
12040
12041
12042
12043
12044
12045
12046
12047
12048 <tr class="entry" id="dynamic_android.sensor.exposureTime">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080012049 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080012050 android.<wbr/>sensor.<wbr/>exposure<wbr/>Time
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080012051 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012052 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080012053 <span class="entry_type_name">int64</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012054
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070012055 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012056
12057
12058 </td> <!-- entry_type -->
12059
12060 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080012061 <p>Duration each pixel is exposed to
12062light.<wbr/></p>
12063<p>If the sensor can't expose this exact duration,<wbr/> it should shorten the
12064duration exposed to the nearest possible value (rather than expose longer).<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012065 </td>
12066
12067 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -080012068 nanoseconds
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012069 </td>
12070
12071 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -080012072 <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 -080012073 </td>
12074
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012075 <td class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080012076 <ul class="entry_tags">
12077 <li><a href="#tag_V1">V1</a></li>
12078 </ul>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012079 </td>
12080
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012081 </tr>
12082 <tr class="entries_header">
12083 <th class="th_details" colspan="5">Details</th>
12084 </tr>
12085 <tr class="entry_cont">
12086 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -080012087 <p>1/<wbr/>10000 - 30 sec range.<wbr/> No bulb mode</p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012088 </td>
12089 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080012090
12091
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012092 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
12093 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012094
12095
12096 <tr class="entry" id="dynamic_android.sensor.frameDuration">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080012097 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080012098 android.<wbr/>sensor.<wbr/>frame<wbr/>Duration
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080012099 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012100 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080012101 <span class="entry_type_name">int64</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012102
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070012103 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012104
12105
12106 </td> <!-- entry_type -->
12107
12108 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080012109 <p>Duration from start of frame exposure to
Igor Murashkin10f4e0f2014-01-13 17:22:58 -080012110start of next frame exposure.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012111 </td>
12112
12113 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -080012114 nanoseconds
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012115 </td>
12116
12117 <td class="entry_range">
Igor Murashkin10f4e0f2014-01-13 17:22:58 -080012118 <p>See <a href="#static_android.sensor.info.maxFrameDuration">android.<wbr/>sensor.<wbr/>info.<wbr/>max<wbr/>Frame<wbr/>Duration</a>,<wbr/>
12119android.<wbr/>scaler.<wbr/>available*Min<wbr/>Durations.<wbr/> The duration
12120is capped to <code>max(duration,<wbr/> exposureTime + overhead)</code>.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012121 </td>
12122
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012123 <td class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080012124 <ul class="entry_tags">
12125 <li><a href="#tag_V1">V1</a></li>
12126 <li><a href="#tag_BC">BC</a></li>
12127 </ul>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012128 </td>
12129
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012130 </tr>
12131 <tr class="entries_header">
12132 <th class="th_details" colspan="5">Details</th>
12133 </tr>
12134 <tr class="entry_cont">
12135 <td class="entry_details" colspan="5">
Igor Murashkin10f4e0f2014-01-13 17:22:58 -080012136 <p>The maximum frame rate that can be supported by a camera subsystem is
12137a function of many factors:</p>
12138<ul>
12139<li>Requested resolutions of output image streams</li>
12140<li>Availability of binning /<wbr/> skipping modes on the imager</li>
12141<li>The bandwidth of the imager interface</li>
12142<li>The bandwidth of the various ISP processing blocks</li>
12143</ul>
12144<p>Since these factors can vary greatly between different ISPs and
12145sensors,<wbr/> the camera abstraction tries to represent the bandwidth
12146restrictions with as simple a model as possible.<wbr/></p>
12147<p>The model presented has the following characteristics:</p>
12148<ul>
12149<li>The image sensor is always configured to output the smallest
12150resolution possible given the application's requested output stream
12151sizes.<wbr/> The smallest resolution is defined as being at least as large
12152as the largest requested output stream size; the camera pipeline must
12153never digitally upsample sensor data when the crop region covers the
12154whole sensor.<wbr/> In general,<wbr/> this means that if only small output stream
12155resolutions are configured,<wbr/> the sensor can provide a higher frame
12156rate.<wbr/></li>
12157<li>Since any request may use any or all the currently configured
12158output streams,<wbr/> the sensor and ISP must be configured to support
12159scaling a single capture to all the streams at the same time.<wbr/> This
12160means the camera pipeline must be ready to produce the largest
12161requested output size without any delay.<wbr/> Therefore,<wbr/> the overall
12162frame rate of a given configured stream set is governed only by the
12163largest requested stream resolution.<wbr/></li>
12164<li>Using more than one output stream in a request does not affect the
12165frame duration.<wbr/></li>
12166<li>JPEG streams act like processed YUV streams in requests for which
12167they are not included; in requests in which they are directly
12168referenced,<wbr/> they act as JPEG streams.<wbr/> This is because supporting a
12169JPEG stream requires the underlying YUV data to always be ready for
12170use by a JPEG encoder,<wbr/> but the encoder will only be used (and impact
12171frame duration) on requests that actually reference a JPEG stream.<wbr/></li>
12172<li>The JPEG processor can run concurrently to the rest of the camera
12173pipeline,<wbr/> but cannot process more than 1 capture at a time.<wbr/></li>
12174</ul>
12175<p>The necessary information for the application,<wbr/> given the model above,<wbr/>
12176is provided via the android.<wbr/>scaler.<wbr/>available*Min<wbr/>Durations fields.<wbr/>
12177These are used to determine the maximum frame rate /<wbr/> minimum frame
12178duration that is possible for a given stream configuration.<wbr/></p>
12179<p>Specifically,<wbr/> the application can use the following rules to
12180determine the minimum frame duration it can request from the HAL
12181device:</p>
12182<ol>
12183<li>Given the application's currently configured set of output
12184streams,<wbr/> <code>S</code>,<wbr/> divide them into three sets: streams in a JPEG format
12185<code>SJ</code>,<wbr/> streams in a raw sensor format <code>SR</code>,<wbr/> and the rest ('processed')
12186<code>SP</code>.<wbr/></li>
12187<li>For each subset of streams,<wbr/> find the largest resolution (by pixel
12188count) in the subset.<wbr/> This gives (at most) three resolutions <code>RJ</code>,<wbr/>
12189<code>RR</code>,<wbr/> and <code>RP</code>.<wbr/></li>
12190<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
12191no exact match for <code>RP == RJ</code> (in particular there isn't an available
12192processed resolution at the same size as <code>RJ</code>),<wbr/> then set <code>RP</code> equal
12193to the smallest processed resolution that is larger than <code>RJ</code>.<wbr/> If
12194there are no processed resolutions larger than <code>RJ</code>,<wbr/> then set <code>RJ</code> to
12195the processed resolution closest to <code>RJ</code>.<wbr/></li>
12196<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
12197no exact match for <code>RR == RP</code> (in particular there isn't an available
12198raw resolution at the same size as <code>RP</code>),<wbr/> then set <code>RR</code> equal to
12199or to the smallest raw resolution that is larger than <code>RP</code>.<wbr/> If
12200there are no raw resolutions larger than <code>RP</code>,<wbr/> then set <code>RR</code> to
12201the raw resolution closest to <code>RP</code>.<wbr/></li>
12202<li>Look up the matching minimum frame durations in the property lists
12203<a href="#static_android.scaler.availableJpegMinDurations">android.<wbr/>scaler.<wbr/>available<wbr/>Jpeg<wbr/>Min<wbr/>Durations</a>,<wbr/>
12204<a href="#static_android.scaler.availableRawMinDurations">android.<wbr/>scaler.<wbr/>available<wbr/>Raw<wbr/>Min<wbr/>Durations</a>,<wbr/> and
12205<a href="#static_android.scaler.availableProcessedMinDurations">android.<wbr/>scaler.<wbr/>available<wbr/>Processed<wbr/>Min<wbr/>Durations</a>.<wbr/> This gives three
12206minimum frame durations <code>FJ</code>,<wbr/> <code>FR</code>,<wbr/> and <code>FP</code>.<wbr/></li>
12207<li>If a stream of requests do not use a JPEG stream,<wbr/> then the minimum
12208supported frame duration for each request is <code>max(FR,<wbr/> FP)</code>.<wbr/></li>
12209<li>If a stream of requests all use the JPEG stream,<wbr/> then the minimum
12210supported frame duration for each request is <code>max(FR,<wbr/> FP,<wbr/> FJ)</code>.<wbr/></li>
12211<li>If a mix of JPEG-using and non-JPEG-using requests is submitted by
12212the application,<wbr/> then the HAL will have to delay JPEG-using requests
12213whenever the JPEG encoder is still busy processing an older capture.<wbr/>
12214This will happen whenever a JPEG-using request starts capture less
12215than <code>FJ</code> <em>ns</em> after a previous JPEG-using request.<wbr/> The minimum
12216supported frame duration will vary between the values calculated in
12217#6 and #7.<wbr/></li>
12218</ol>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012219 </td>
12220 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080012221
12222
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012223 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
12224 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012225
12226
12227 <tr class="entry" id="dynamic_android.sensor.sensitivity">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080012228 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080012229 android.<wbr/>sensor.<wbr/>sensitivity
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080012230 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012231 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080012232 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012233
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070012234 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012235
12236
12237 </td> <!-- entry_type -->
12238
12239 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080012240 <p>Gain applied to image data.<wbr/> Must be
Igor Murashkin8aa2a112013-12-09 12:06:17 -080012241implemented through analog gain only if set to values
Igor Murashkin0b080452013-12-27 15:30:25 -080012242below 'maximum analog sensitivity'.<wbr/></p>
12243<p>If the sensor can't apply this exact gain,<wbr/> it should lessen the
12244gain to the nearest possible value (rather than gain more).<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012245 </td>
12246
12247 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -080012248 ISO arithmetic units
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012249 </td>
12250
12251 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -080012252 <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 -080012253 </td>
12254
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012255 <td class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080012256 <ul class="entry_tags">
12257 <li><a href="#tag_V1">V1</a></li>
12258 </ul>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012259 </td>
12260
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012261 </tr>
12262 <tr class="entries_header">
12263 <th class="th_details" colspan="5">Details</th>
12264 </tr>
12265 <tr class="entry_cont">
12266 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -080012267 <p>ISO 12232:2006 REI method</p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012268 </td>
12269 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080012270
12271
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012272 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
12273 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012274
12275
12276 <tr class="entry" id="dynamic_android.sensor.timestamp">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080012277 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080012278 android.<wbr/>sensor.<wbr/>timestamp
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080012279 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012280 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080012281 <span class="entry_type_name">int64</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012282
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070012283 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012284
12285
12286 </td> <!-- entry_type -->
12287
12288 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080012289 <p>Time at start of exposure of first
12290row</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012291 </td>
12292
12293 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -080012294 nanoseconds
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012295 </td>
12296
12297 <td class="entry_range">
Igor Murashkin6cb7c2c2014-01-10 15:12:40 -080012298 <p>&gt; 0</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012299 </td>
12300
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012301 <td class="entry_tags">
12302 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080012303 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012304 </ul>
12305 </td>
12306
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012307 </tr>
12308 <tr class="entries_header">
12309 <th class="th_details" colspan="5">Details</th>
12310 </tr>
12311 <tr class="entry_cont">
12312 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -080012313 <p>Monotonic,<wbr/> should be synced to other timestamps in
12314system</p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012315 </td>
12316 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080012317
12318
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012319 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
12320 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012321
Igor Murashkin656aa5a2013-08-13 14:23:39 -070012322
12323 <tr class="entry" id="dynamic_android.sensor.temperature">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080012324 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -080012325 android.<wbr/>sensor.<wbr/>temperature
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080012326 </td>
Igor Murashkin656aa5a2013-08-13 14:23:39 -070012327 <td class="entry_type">
12328 <span class="entry_type_name">float</span>
12329
12330 <span class="entry_type_visibility"> [public]</span>
12331
12332
12333 </td> <!-- entry_type -->
12334
12335 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080012336 <p>The temperature of the sensor,<wbr/> sampled at the time
12337exposure began for this frame.<wbr/></p>
12338<p>The thermal diode being queried should be inside the sensor PCB,<wbr/> or
12339somewhere close to it.<wbr/></p>
Igor Murashkin656aa5a2013-08-13 14:23:39 -070012340 </td>
12341
12342 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -080012343 celsius
Igor Murashkin656aa5a2013-08-13 14:23:39 -070012344 </td>
12345
12346 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -080012347 <p>Optional.<wbr/> This value is missing if no temperature is available.<wbr/></p>
Igor Murashkin656aa5a2013-08-13 14:23:39 -070012348 </td>
12349
Igor Murashkin656aa5a2013-08-13 14:23:39 -070012350 <td class="entry_tags">
Alex Rayef40ad62013-10-01 17:52:33 -070012351 <ul class="entry_tags">
12352 <li><a href="#tag_FULL">FULL</a></li>
12353 </ul>
Igor Murashkin656aa5a2013-08-13 14:23:39 -070012354 </td>
12355
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012356 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080012357
12358
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012359 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
12360 <!-- end of entry -->
Igor Murashkin656aa5a2013-08-13 14:23:39 -070012361
Igor Murashkina46e02f2014-01-09 17:43:38 -080012362
12363 <tr class="entry" id="dynamic_android.sensor.testPatternMode">
12364 <td class="entry_name" rowspan="5">
12365 android.<wbr/>sensor.<wbr/>test<wbr/>Pattern<wbr/>Mode
12366 </td>
12367 <td class="entry_type">
12368 <span class="entry_type_name entry_type_name_enum">int32</span>
12369
12370 <span class="entry_type_visibility"> [public]</span>
12371
12372 <ul class="entry_type_enum">
12373 <li>
12374 <span class="entry_type_enum_name">OFF</span>
12375 <span class="entry_type_enum_notes"><p>Default.<wbr/> No test pattern mode is used,<wbr/> and the camera
12376device returns captures from the image sensor.<wbr/></p></span>
12377 </li>
12378 <li>
12379 <span class="entry_type_enum_name">SOLID_COLOR</span>
12380 <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
12381respective color channel provided in
12382<a href="#controls_android.sensor.testPatternData">android.<wbr/>sensor.<wbr/>test<wbr/>Pattern<wbr/>Data</a>.<wbr/></p>
12383<p>For example:</p>
12384<pre><code>android.<wbr/>testPatternData = [0,<wbr/> 0xFFFFFFFF,<wbr/> 0xFFFFFFFF,<wbr/> 0]
12385</code></pre>
12386<p>All green pixels are 100% green.<wbr/> All red/<wbr/>blue pixels are black.<wbr/></p>
12387<pre><code>android.<wbr/>testPatternData = [0xFFFFFFFF,<wbr/> 0,<wbr/> 0xFFFFFFFF,<wbr/> 0]
12388</code></pre>
12389<p>All red pixels are 100% red.<wbr/> Only the odd green pixels
12390are 100% green.<wbr/> All blue pixels are 100% black.<wbr/></p></span>
12391 </li>
12392 <li>
12393 <span class="entry_type_enum_name">COLOR_BARS</span>
12394 <span class="entry_type_enum_notes"><p>All pixel data is replaced with an 8-bar color pattern.<wbr/></p>
12395<p>The vertical bars (left-to-right) are as follows:</p>
12396<ul>
12397<li>100% white</li>
12398<li>yellow</li>
12399<li>cyan</li>
12400<li>green</li>
12401<li>magenta</li>
12402<li>red</li>
12403<li>blue</li>
12404<li>black</li>
12405</ul>
12406<p>In general the image would look like the following:</p>
12407<pre><code>W Y C G M R B K
12408W Y C G M R B K
12409W Y C G M R B K
12410W Y C G M R B K
12411W Y C G M R B K
12412.<wbr/> .<wbr/> .<wbr/> .<wbr/> .<wbr/> .<wbr/> .<wbr/> .<wbr/>
12413.<wbr/> .<wbr/> .<wbr/> .<wbr/> .<wbr/> .<wbr/> .<wbr/> .<wbr/>
12414.<wbr/> .<wbr/> .<wbr/> .<wbr/> .<wbr/> .<wbr/> .<wbr/> .<wbr/>
12415
12416(B = Blue,<wbr/> K = Black)
12417</code></pre>
12418<p>Each bar should take up 1/<wbr/>8 of the sensor pixel array width.<wbr/>
12419When this is not possible,<wbr/> the bar size should be rounded
12420down to the nearest integer and the pattern can repeat
12421on the right side.<wbr/></p>
12422<p>Each bar's height must always take up the full sensor
12423pixel array height.<wbr/></p>
12424<p>Each pixel in this test pattern must be set to either
124250% intensity or 100% intensity.<wbr/></p></span>
12426 </li>
12427 <li>
12428 <span class="entry_type_enum_name">COLOR_BARS_FADE_TO_GRAY</span>
12429 <span class="entry_type_enum_notes"><p>The test pattern is similar to COLOR_<wbr/>BARS,<wbr/> except that
12430each bar should start at its specified color at the top,<wbr/>
12431and fade to gray at the bottom.<wbr/></p>
12432<p>Furthermore each bar is further subdivided into a left and
12433right half.<wbr/> The left half should have a smooth gradient,<wbr/>
12434and the right half should have a quantized gradient.<wbr/></p>
12435<p>In particular,<wbr/> the right half's should consist of blocks of the
12436same color for 1/<wbr/>16th active sensor pixel array width.<wbr/></p>
12437<p>The least significant bits in the quantized gradient should
12438be copied from the most significant bits of the smooth gradient.<wbr/></p>
12439<p>The height of each bar should always be a multiple of 128.<wbr/>
12440When this is not the case,<wbr/> the pattern should repeat at the bottom
12441of the image.<wbr/></p></span>
12442 </li>
12443 <li>
12444 <span class="entry_type_enum_name">PN9</span>
12445 <span class="entry_type_enum_notes"><p>All pixel data is replaced by a pseudo-random sequence
12446generated from a PN9 512-bit sequence (typically implemented
12447in hardware with a linear feedback shift register).<wbr/></p>
12448<p>The generator should be reset at the beginning of each frame,<wbr/>
12449and thus each subsequent raw frame with this test pattern should
12450be exactly the same as the last.<wbr/></p></span>
12451 </li>
12452 <li>
12453 <span class="entry_type_enum_name">CUSTOM1</span>
12454 <span class="entry_type_enum_value">256</span>
12455 <span class="entry_type_enum_notes"><p>The first custom test pattern.<wbr/> All custom patterns that are
12456available only on this camera device are at least this numeric
12457value.<wbr/></p>
12458<p>All of the custom test patterns will be static
12459(that is the raw image must not vary from frame to frame).<wbr/></p></span>
12460 </li>
12461 </ul>
12462
12463 </td> <!-- entry_type -->
12464
12465 <td class="entry_description">
12466 <p>When enabled,<wbr/> the sensor sends a test pattern instead of
12467doing a real exposure from the camera.<wbr/></p>
12468 </td>
12469
12470 <td class="entry_units">
12471 </td>
12472
12473 <td class="entry_range">
12474 <p>Optional.<wbr/> Defaults to OFF.<wbr/> Value must be one of
12475<a href="#static_android.sensor.availableTestPatternModes">android.<wbr/>sensor.<wbr/>available<wbr/>Test<wbr/>Pattern<wbr/>Modes</a></p>
12476 </td>
12477
12478 <td class="entry_tags">
12479 </td>
12480
12481 </tr>
12482 <tr class="entries_header">
12483 <th class="th_details" colspan="5">Details</th>
12484 </tr>
12485 <tr class="entry_cont">
12486 <td class="entry_details" colspan="5">
12487 <p>When a test pattern is enabled,<wbr/> all manual sensor controls specified
12488by android.<wbr/>sensor.<wbr/>* should be ignored.<wbr/> All other controls should
12489work as normal.<wbr/></p>
12490<p>For example,<wbr/> if manual flash is enabled,<wbr/> flash firing should still
12491occur (and that the test pattern remain unmodified,<wbr/> since the flash
12492would not actually affect it).<wbr/></p>
12493 </td>
12494 </tr>
12495
12496 <tr class="entries_header">
12497 <th class="th_details" colspan="5">HAL Implementation Details</th>
12498 </tr>
12499 <tr class="entry_cont">
12500 <td class="entry_details" colspan="5">
12501 <p>All test patterns are specified in the Bayer domain.<wbr/></p>
12502<p>The HAL may choose to substitute test patterns from the sensor
12503with test patterns from on-device memory.<wbr/> In that case,<wbr/> it should be
12504indistinguishable to the ISP whether the data came from the
12505sensor interconnect bus (such as CSI2) or memory.<wbr/></p>
12506 </td>
12507 </tr>
12508
12509 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
12510 <!-- end of entry -->
12511
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012512
12513
12514 <!-- end of kind -->
12515 </tbody>
12516
12517 <!-- end of section -->
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012518 <tr><td colspan="6" id="section_shading" class="section">shading</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012519
12520
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012521 <tr><td colspan="6" class="kind">controls</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012522
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070012523 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012524 <tr>
12525 <th class="th_name">Property Name</th>
12526 <th class="th_type">Type</th>
12527 <th class="th_description">Description</th>
12528 <th class="th_units">Units</th>
12529 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012530 <th class="th_tags">Tags</th>
12531 </tr>
12532 </thead>
12533
12534 <tbody>
12535
12536
12537
12538
12539
12540
12541
12542
12543
12544
12545 <tr class="entry" id="controls_android.shading.mode">
Zhijun He2f86a212014-01-15 10:34:02 -080012546 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080012547 android.<wbr/>shading.<wbr/>mode
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080012548 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012549 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080012550 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012551
Zhijun He2f86a212014-01-15 10:34:02 -080012552 <span class="entry_type_visibility"> [hidden]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012553
12554 <ul class="entry_type_enum">
12555 <li>
12556 <span class="entry_type_enum_name">OFF</span>
Zhijun He2f86a212014-01-15 10:34:02 -080012557 <span class="entry_type_enum_notes"><p>No lens shading correction is applied</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012558 </li>
12559 <li>
12560 <span class="entry_type_enum_name">FAST</span>
Zhijun He2f86a212014-01-15 10:34:02 -080012561 <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 -080012562 </li>
12563 <li>
12564 <span class="entry_type_enum_name">HIGH_QUALITY</span>
Zhijun He2f86a212014-01-15 10:34:02 -080012565 <span class="entry_type_enum_notes"><p>Frame rate may be reduced by high quality</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012566 </li>
12567 </ul>
12568
12569 </td> <!-- entry_type -->
12570
12571 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080012572 <p>Quality of lens shading correction applied
Zhijun He2f86a212014-01-15 10:34:02 -080012573to the image data.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012574 </td>
12575
12576 <td class="entry_units">
12577 </td>
12578
12579 <td class="entry_range">
12580 </td>
12581
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012582 <td class="entry_tags">
12583 </td>
12584
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012585 </tr>
Zhijun He2f86a212014-01-15 10:34:02 -080012586 <tr class="entries_header">
12587 <th class="th_details" colspan="5">Details</th>
12588 </tr>
12589 <tr class="entry_cont">
12590 <td class="entry_details" colspan="5">
12591 <p>When set to OFF mode,<wbr/> no lens shading correction will be applied by the
12592camera device,<wbr/> and an identity lens shading map data will be provided
12593if <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
12594shading 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/>
12595the 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
12596shown below:</p>
12597<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/>
12598 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/>
12599 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 ]
12603</code></pre>
12604<p>When set to other modes,<wbr/> lens shading correction will be applied by the
12605camera device.<wbr/> Applications can request lens shading map data by setting
12606<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
12607lens shading map data in <a href="#dynamic_android.statistics.lensShadingMap">android.<wbr/>statistics.<wbr/>lens<wbr/>Shading<wbr/>Map</a>,<wbr/> with size specified
12608by <a href="#static_android.lens.info.shadingMapSize">android.<wbr/>lens.<wbr/>info.<wbr/>shading<wbr/>Map<wbr/>Size</a>.<wbr/></p>
12609 </td>
12610 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080012611
12612
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012613 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
12614 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012615
12616
12617 <tr class="entry" id="controls_android.shading.strength">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080012618 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -080012619 android.<wbr/>shading.<wbr/>strength
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080012620 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012621 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080012622 <span class="entry_type_name">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012623
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070012624 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012625
12626
12627 </td> <!-- entry_type -->
12628
12629 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080012630 <p>Control the amount of shading correction
12631applied to the images</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012632 </td>
12633
12634 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -080012635 unitless: 1-10; 10 is full shading
12636 compensation
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012637 </td>
12638
12639 <td class="entry_range">
12640 </td>
12641
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012642 <td class="entry_tags">
12643 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080012644 <li><a href="#tag_ADV">ADV</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012645 </ul>
12646 </td>
12647
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012648 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080012649
12650
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012651 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
12652 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012653
12654
12655
12656 <!-- end of kind -->
12657 </tbody>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012658 <tr><td colspan="6" class="kind">dynamic</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012659
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070012660 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012661 <tr>
12662 <th class="th_name">Property Name</th>
12663 <th class="th_type">Type</th>
12664 <th class="th_description">Description</th>
12665 <th class="th_units">Units</th>
12666 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012667 <th class="th_tags">Tags</th>
12668 </tr>
12669 </thead>
12670
12671 <tbody>
12672
12673
12674
12675
12676
12677
12678
12679
12680
12681
12682 <tr class="entry" id="dynamic_android.shading.mode">
Zhijun He2f86a212014-01-15 10:34:02 -080012683 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080012684 android.<wbr/>shading.<wbr/>mode
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080012685 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012686 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080012687 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012688
Zhijun He2f86a212014-01-15 10:34:02 -080012689 <span class="entry_type_visibility"> [hidden]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012690
12691 <ul class="entry_type_enum">
12692 <li>
12693 <span class="entry_type_enum_name">OFF</span>
Zhijun He2f86a212014-01-15 10:34:02 -080012694 <span class="entry_type_enum_notes"><p>No lens shading correction is applied</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012695 </li>
12696 <li>
12697 <span class="entry_type_enum_name">FAST</span>
Zhijun He2f86a212014-01-15 10:34:02 -080012698 <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 -080012699 </li>
12700 <li>
12701 <span class="entry_type_enum_name">HIGH_QUALITY</span>
Zhijun He2f86a212014-01-15 10:34:02 -080012702 <span class="entry_type_enum_notes"><p>Frame rate may be reduced by high quality</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012703 </li>
12704 </ul>
12705
12706 </td> <!-- entry_type -->
12707
12708 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080012709 <p>Quality of lens shading correction applied
Zhijun He2f86a212014-01-15 10:34:02 -080012710to the image data.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012711 </td>
12712
12713 <td class="entry_units">
12714 </td>
12715
12716 <td class="entry_range">
12717 </td>
12718
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012719 <td class="entry_tags">
12720 </td>
12721
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012722 </tr>
Zhijun He2f86a212014-01-15 10:34:02 -080012723 <tr class="entries_header">
12724 <th class="th_details" colspan="5">Details</th>
12725 </tr>
12726 <tr class="entry_cont">
12727 <td class="entry_details" colspan="5">
12728 <p>When set to OFF mode,<wbr/> no lens shading correction will be applied by the
12729camera device,<wbr/> and an identity lens shading map data will be provided
12730if <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
12731shading 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/>
12732the 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
12733shown below:</p>
12734<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/>
12735 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/>
12736 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 ]
12740</code></pre>
12741<p>When set to other modes,<wbr/> lens shading correction will be applied by the
12742camera device.<wbr/> Applications can request lens shading map data by setting
12743<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
12744lens shading map data in <a href="#dynamic_android.statistics.lensShadingMap">android.<wbr/>statistics.<wbr/>lens<wbr/>Shading<wbr/>Map</a>,<wbr/> with size specified
12745by <a href="#static_android.lens.info.shadingMapSize">android.<wbr/>lens.<wbr/>info.<wbr/>shading<wbr/>Map<wbr/>Size</a>.<wbr/></p>
12746 </td>
12747 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080012748
12749
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012750 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
12751 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012752
12753
12754
12755 <!-- end of kind -->
12756 </tbody>
12757
12758 <!-- end of section -->
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012759 <tr><td colspan="6" id="section_statistics" class="section">statistics</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012760
12761
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012762 <tr><td colspan="6" class="kind">controls</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012763
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070012764 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012765 <tr>
12766 <th class="th_name">Property Name</th>
12767 <th class="th_type">Type</th>
12768 <th class="th_description">Description</th>
12769 <th class="th_units">Units</th>
12770 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012771 <th class="th_tags">Tags</th>
12772 </tr>
12773 </thead>
12774
12775 <tbody>
12776
12777
12778
12779
12780
12781
12782
12783
12784
12785
12786 <tr class="entry" id="controls_android.statistics.faceDetectMode">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080012787 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080012788 android.<wbr/>statistics.<wbr/>face<wbr/>Detect<wbr/>Mode
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080012789 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012790 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080012791 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012792
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070012793 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012794
12795 <ul class="entry_type_enum">
12796 <li>
12797 <span class="entry_type_enum_name">OFF</span>
12798 </li>
12799 <li>
12800 <span class="entry_type_enum_name">SIMPLE</span>
Igor Murashkina10351a2014-01-15 17:05:22 -080012801 <span class="entry_type_enum_notes"><p>Optional Return rectangle and confidence
12802only</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012803 </li>
12804 <li>
12805 <span class="entry_type_enum_name">FULL</span>
Igor Murashkina10351a2014-01-15 17:05:22 -080012806 <span class="entry_type_enum_notes"><p>Optional Return all face
12807metadata</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012808 </li>
12809 </ul>
12810
12811 </td> <!-- entry_type -->
12812
12813 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080012814 <p>State of the face detector
12815unit</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012816 </td>
12817
12818 <td class="entry_units">
12819 </td>
12820
12821 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -080012822 <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 -080012823 </td>
12824
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012825 <td class="entry_tags">
12826 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080012827 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012828 </ul>
12829 </td>
12830
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012831 </tr>
12832 <tr class="entries_header">
12833 <th class="th_details" colspan="5">Details</th>
12834 </tr>
12835 <tr class="entry_cont">
12836 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -080012837 <p>Whether face detection is enabled,<wbr/> and whether it
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012838should output just the basic fields or the full set of
Igor Murashkin0b080452013-12-27 15:30:25 -080012839fields.<wbr/> Value must be one of the
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -080012840<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 -080012841 </td>
12842 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080012843
12844
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012845 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
12846 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012847
12848
12849 <tr class="entry" id="controls_android.statistics.histogramMode">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080012850 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -080012851 android.<wbr/>statistics.<wbr/>histogram<wbr/>Mode
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080012852 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012853 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080012854 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012855
Igor Murashkinb8dc8812013-07-17 16:29:34 -070012856 <span class="entry_type_visibility"> [system as boolean]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012857
12858 <ul class="entry_type_enum">
12859 <li>
12860 <span class="entry_type_enum_name">OFF</span>
12861 </li>
12862 <li>
12863 <span class="entry_type_enum_name">ON</span>
12864 </li>
12865 </ul>
12866
12867 </td> <!-- entry_type -->
12868
12869 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080012870 <p>Operating mode for histogram
12871generation</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012872 </td>
12873
12874 <td class="entry_units">
12875 </td>
12876
12877 <td class="entry_range">
12878 </td>
12879
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012880 <td class="entry_tags">
12881 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080012882 <li><a href="#tag_V1">V1</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012883 </ul>
12884 </td>
12885
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012886 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080012887
12888
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012889 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
12890 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012891
12892
12893 <tr class="entry" id="controls_android.statistics.sharpnessMapMode">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080012894 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -080012895 android.<wbr/>statistics.<wbr/>sharpness<wbr/>Map<wbr/>Mode
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080012896 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012897 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080012898 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012899
Igor Murashkinb8dc8812013-07-17 16:29:34 -070012900 <span class="entry_type_visibility"> [system as boolean]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012901
12902 <ul class="entry_type_enum">
12903 <li>
12904 <span class="entry_type_enum_name">OFF</span>
12905 </li>
12906 <li>
12907 <span class="entry_type_enum_name">ON</span>
12908 </li>
12909 </ul>
12910
12911 </td> <!-- entry_type -->
12912
12913 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080012914 <p>Operating mode for sharpness map
12915generation</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012916 </td>
12917
12918 <td class="entry_units">
12919 </td>
12920
12921 <td class="entry_range">
12922 </td>
12923
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012924 <td class="entry_tags">
12925 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080012926 <li><a href="#tag_V1">V1</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012927 </ul>
12928 </td>
12929
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012930 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080012931
12932
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012933 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
12934 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012935
Zhijun He69fc0ea2013-07-17 09:42:58 -070012936
12937 <tr class="entry" id="controls_android.statistics.lensShadingMapMode">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080012938 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080012939 android.<wbr/>statistics.<wbr/>lens<wbr/>Shading<wbr/>Map<wbr/>Mode
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080012940 </td>
Zhijun He69fc0ea2013-07-17 09:42:58 -070012941 <td class="entry_type">
12942 <span class="entry_type_name entry_type_name_enum">byte</span>
12943
12944 <span class="entry_type_visibility"> [public]</span>
12945
12946 <ul class="entry_type_enum">
12947 <li>
12948 <span class="entry_type_enum_name">OFF</span>
12949 </li>
12950 <li>
12951 <span class="entry_type_enum_name">ON</span>
12952 </li>
12953 </ul>
12954
12955 </td> <!-- entry_type -->
12956
12957 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080012958 <p>Whether the HAL needs to output the lens
12959shading map in output result metadata</p>
Zhijun He69fc0ea2013-07-17 09:42:58 -070012960 </td>
12961
12962 <td class="entry_units">
12963 </td>
12964
12965 <td class="entry_range">
12966 </td>
12967
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012968 <td class="entry_tags">
12969 </td>
12970
12971 </tr>
12972 <tr class="entries_header">
12973 <th class="th_details" colspan="5">Details</th>
12974 </tr>
12975 <tr class="entry_cont">
12976 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -080012977 <p>When set to ON,<wbr/>
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -080012978<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 -080012979the output result metadata.<wbr/></p>
Zhijun He69fc0ea2013-07-17 09:42:58 -070012980 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012981 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080012982
12983
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012984 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
12985 <!-- end of entry -->
Zhijun He69fc0ea2013-07-17 09:42:58 -070012986
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012987
12988
12989 <!-- end of kind -->
12990 </tbody>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012991 <tr><td colspan="6" class="kind">static</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012992
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070012993 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012994 <tr>
12995 <th class="th_name">Property Name</th>
12996 <th class="th_type">Type</th>
12997 <th class="th_description">Description</th>
12998 <th class="th_units">Units</th>
12999 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013000 <th class="th_tags">Tags</th>
13001 </tr>
13002 </thead>
13003
13004 <tbody>
13005
13006
13007
13008
13009
13010
13011
13012
13013
13014
13015
13016
13017 <tr class="entry" id="static_android.statistics.info.availableFaceDetectModes">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013018 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080013019 android.<wbr/>statistics.<wbr/>info.<wbr/>available<wbr/>Face<wbr/>Detect<wbr/>Modes
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013020 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013021 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080013022 <span class="entry_type_name">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013023 <span class="entry_type_container">x</span>
13024
13025 <span class="entry_type_array">
13026 n
13027 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070013028 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -080013029 <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 -080013030
13031
13032 </td> <!-- entry_type -->
13033
13034 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080013035 <p>Which face detection modes are available,<wbr/>
13036if any</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013037 </td>
13038
13039 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -080013040 List of enum:
Zhijun He69fc0ea2013-07-17 09:42:58 -070013041 OFF
13042 SIMPLE
Igor Murashkin0b080452013-12-27 15:30:25 -080013043 FULL
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013044 </td>
13045
13046 <td class="entry_range">
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013047 </td>
13048
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013049 <td class="entry_tags">
13050 </td>
13051
13052 </tr>
13053 <tr class="entries_header">
13054 <th class="th_details" colspan="5">Details</th>
13055 </tr>
13056 <tr class="entry_cont">
13057 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -080013058 <p>OFF means face detection is disabled,<wbr/> it must
13059be included in the list.<wbr/></p>
Igor Murashkin8aa2a112013-12-09 12:06:17 -080013060<p>SIMPLE means the device supports the
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -080013061<a href="#dynamic_android.statistics.faceRectangles">android.<wbr/>statistics.<wbr/>face<wbr/>Rectangles</a> and
13062<a href="#dynamic_android.statistics.faceScores">android.<wbr/>statistics.<wbr/>face<wbr/>Scores</a> outputs.<wbr/></p>
Igor Murashkin8aa2a112013-12-09 12:06:17 -080013063<p>FULL means the device additionally supports the
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -080013064<a href="#dynamic_android.statistics.faceIds">android.<wbr/>statistics.<wbr/>face<wbr/>Ids</a> and
13065<a href="#dynamic_android.statistics.faceLandmarks">android.<wbr/>statistics.<wbr/>face<wbr/>Landmarks</a> outputs.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013066 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013067 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013068
13069
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013070 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
13071 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013072
13073
13074 <tr class="entry" id="static_android.statistics.info.histogramBucketCount">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013075 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -080013076 android.<wbr/>statistics.<wbr/>info.<wbr/>histogram<wbr/>Bucket<wbr/>Count
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013077 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013078 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080013079 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013080
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070013081 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013082
13083
13084 </td> <!-- entry_type -->
13085
13086 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080013087 <p>Number of histogram buckets
13088supported</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013089 </td>
13090
13091 <td class="entry_units">
13092 </td>
13093
13094 <td class="entry_range">
Igor Murashkin6cb7c2c2014-01-10 15:12:40 -080013095 <p>&gt;= 64</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013096 </td>
13097
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013098 <td class="entry_tags">
13099 </td>
13100
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013101 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013102
13103
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013104 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
13105 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013106
13107
13108 <tr class="entry" id="static_android.statistics.info.maxFaceCount">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013109 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -080013110 android.<wbr/>statistics.<wbr/>info.<wbr/>max<wbr/>Face<wbr/>Count
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013111 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013112 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080013113 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013114
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070013115 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013116
13117
13118 </td> <!-- entry_type -->
13119
13120 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080013121 <p>Maximum number of simultaneously detectable
13122faces</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013123 </td>
13124
13125 <td class="entry_units">
13126 </td>
13127
13128 <td class="entry_range">
Igor Murashkin6cb7c2c2014-01-10 15:12:40 -080013129 <p>&gt;= 4 if availableFaceDetectionModes lists
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -080013130modes besides OFF,<wbr/> otherwise 0</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013131 </td>
13132
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013133 <td class="entry_tags">
13134 </td>
13135
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013136 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013137
13138
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013139 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
13140 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013141
13142
13143 <tr class="entry" id="static_android.statistics.info.maxHistogramCount">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013144 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -080013145 android.<wbr/>statistics.<wbr/>info.<wbr/>max<wbr/>Histogram<wbr/>Count
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013146 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013147 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080013148 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013149
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070013150 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013151
13152
13153 </td> <!-- entry_type -->
13154
13155 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080013156 <p>Maximum value possible for a histogram
13157bucket</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013158 </td>
13159
13160 <td class="entry_units">
13161 </td>
13162
13163 <td class="entry_range">
13164 </td>
13165
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013166 <td class="entry_tags">
13167 </td>
13168
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013169 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013170
13171
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013172 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
13173 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013174
13175
13176 <tr class="entry" id="static_android.statistics.info.maxSharpnessMapValue">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013177 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -080013178 android.<wbr/>statistics.<wbr/>info.<wbr/>max<wbr/>Sharpness<wbr/>Map<wbr/>Value
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013179 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013180 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080013181 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013182
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070013183 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013184
13185
13186 </td> <!-- entry_type -->
13187
13188 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080013189 <p>Maximum value possible for a sharpness map
13190region.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013191 </td>
13192
13193 <td class="entry_units">
13194 </td>
13195
13196 <td class="entry_range">
13197 </td>
13198
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013199 <td class="entry_tags">
13200 </td>
13201
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013202 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013203
13204
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013205 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
13206 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013207
13208
13209 <tr class="entry" id="static_android.statistics.info.sharpnessMapSize">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013210 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -080013211 android.<wbr/>statistics.<wbr/>info.<wbr/>sharpness<wbr/>Map<wbr/>Size
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013212 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013213 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080013214 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013215 <span class="entry_type_container">x</span>
13216
13217 <span class="entry_type_array">
13218 2
13219 </span>
Igor Murashkinb8dc8812013-07-17 16:29:34 -070013220 <span class="entry_type_visibility"> [system as size]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -080013221 <div class="entry_type_notes">width x height</div>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013222
13223
13224 </td> <!-- entry_type -->
13225
13226 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080013227 <p>Dimensions of the sharpness
13228map</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013229 </td>
13230
13231 <td class="entry_units">
13232 </td>
13233
13234 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -080013235 <p>Must be at least 32 x 32</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013236 </td>
13237
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013238 <td class="entry_tags">
13239 </td>
13240
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013241 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013242
13243
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013244 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
13245 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013246
13247
13248
13249
13250
13251
13252 <!-- end of kind -->
13253 </tbody>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013254 <tr><td colspan="6" class="kind">dynamic</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013255
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070013256 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013257 <tr>
13258 <th class="th_name">Property Name</th>
13259 <th class="th_type">Type</th>
13260 <th class="th_description">Description</th>
13261 <th class="th_units">Units</th>
13262 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013263 <th class="th_tags">Tags</th>
13264 </tr>
13265 </thead>
13266
13267 <tbody>
13268
13269
13270
13271
13272
13273
13274
13275
13276
13277
13278 <tr class="entry" id="dynamic_android.statistics.faceDetectMode">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013279 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080013280 android.<wbr/>statistics.<wbr/>face<wbr/>Detect<wbr/>Mode
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013281 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013282 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080013283 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013284
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070013285 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013286
13287 <ul class="entry_type_enum">
13288 <li>
13289 <span class="entry_type_enum_name">OFF</span>
13290 </li>
13291 <li>
13292 <span class="entry_type_enum_name">SIMPLE</span>
Igor Murashkina10351a2014-01-15 17:05:22 -080013293 <span class="entry_type_enum_notes"><p>Optional Return rectangle and confidence
13294only</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013295 </li>
13296 <li>
13297 <span class="entry_type_enum_name">FULL</span>
Igor Murashkina10351a2014-01-15 17:05:22 -080013298 <span class="entry_type_enum_notes"><p>Optional Return all face
13299metadata</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013300 </li>
13301 </ul>
13302
13303 </td> <!-- entry_type -->
13304
13305 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080013306 <p>State of the face detector
13307unit</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013308 </td>
13309
13310 <td class="entry_units">
13311 </td>
13312
13313 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -080013314 <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 -080013315 </td>
13316
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013317 <td class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080013318 <ul class="entry_tags">
13319 <li><a href="#tag_BC">BC</a></li>
13320 </ul>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013321 </td>
13322
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013323 </tr>
13324 <tr class="entries_header">
13325 <th class="th_details" colspan="5">Details</th>
13326 </tr>
13327 <tr class="entry_cont">
13328 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -080013329 <p>Whether face detection is enabled,<wbr/> and whether it
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013330should output just the basic fields or the full set of
Igor Murashkin0b080452013-12-27 15:30:25 -080013331fields.<wbr/> Value must be one of the
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -080013332<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 -080013333 </td>
13334 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013335
13336
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013337 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
13338 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013339
13340
13341 <tr class="entry" id="dynamic_android.statistics.faceIds">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013342 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080013343 android.<wbr/>statistics.<wbr/>face<wbr/>Ids
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013344 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013345 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080013346 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013347 <span class="entry_type_container">x</span>
13348
13349 <span class="entry_type_array">
13350 n
13351 </span>
Zhijun He3b4c2062013-10-07 11:23:30 -070013352 <span class="entry_type_visibility"> [hidden]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013353
13354
13355 </td> <!-- entry_type -->
13356
13357 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080013358 <p>List of unique IDs for detected
13359faces</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013360 </td>
13361
13362 <td class="entry_units">
13363 </td>
13364
13365 <td class="entry_range">
13366 </td>
13367
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013368 <td class="entry_tags">
13369 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080013370 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013371 </ul>
13372 </td>
13373
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013374 </tr>
13375 <tr class="entries_header">
13376 <th class="th_details" colspan="5">Details</th>
13377 </tr>
13378 <tr class="entry_cont">
13379 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -080013380 <p>Only available if faceDetectMode == FULL</p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013381 </td>
13382 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013383
13384
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013385 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
13386 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013387
13388
13389 <tr class="entry" id="dynamic_android.statistics.faceLandmarks">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013390 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080013391 android.<wbr/>statistics.<wbr/>face<wbr/>Landmarks
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013392 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013393 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080013394 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013395 <span class="entry_type_container">x</span>
13396
13397 <span class="entry_type_array">
13398 n x 6
13399 </span>
Zhijun He3b4c2062013-10-07 11:23:30 -070013400 <span class="entry_type_visibility"> [hidden]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -080013401 <div class="entry_type_notes">(leftEyeX,<wbr/> leftEyeY,<wbr/> rightEyeX,<wbr/> rightEyeY,<wbr/> mouthX,<wbr/> mouthY)</div>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013402
13403
13404 </td> <!-- entry_type -->
13405
13406 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080013407 <p>List of landmarks for detected
13408faces</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013409 </td>
13410
13411 <td class="entry_units">
13412 </td>
13413
13414 <td class="entry_range">
13415 </td>
13416
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013417 <td class="entry_tags">
13418 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080013419 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013420 </ul>
13421 </td>
13422
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013423 </tr>
13424 <tr class="entries_header">
13425 <th class="th_details" colspan="5">Details</th>
13426 </tr>
13427 <tr class="entry_cont">
13428 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -080013429 <p>Only available if faceDetectMode == FULL</p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013430 </td>
13431 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013432
13433
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013434 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
13435 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013436
13437
13438 <tr class="entry" id="dynamic_android.statistics.faceRectangles">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013439 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080013440 android.<wbr/>statistics.<wbr/>face<wbr/>Rectangles
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013441 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013442 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080013443 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013444 <span class="entry_type_container">x</span>
13445
13446 <span class="entry_type_array">
13447 n x 4
13448 </span>
Zhijun He3b4c2062013-10-07 11:23:30 -070013449 <span class="entry_type_visibility"> [hidden as rectangle]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -080013450 <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 -080013451
13452
13453 </td> <!-- entry_type -->
13454
13455 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080013456 <p>List of the bounding rectangles for detected
13457faces</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013458 </td>
13459
13460 <td class="entry_units">
13461 </td>
13462
13463 <td class="entry_range">
13464 </td>
13465
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013466 <td class="entry_tags">
13467 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080013468 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013469 </ul>
13470 </td>
13471
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013472 </tr>
13473 <tr class="entries_header">
13474 <th class="th_details" colspan="5">Details</th>
13475 </tr>
13476 <tr class="entry_cont">
13477 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -080013478 <p>Only available if faceDetectMode != OFF</p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013479 </td>
13480 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013481
13482
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013483 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
13484 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013485
13486
13487 <tr class="entry" id="dynamic_android.statistics.faceScores">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013488 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080013489 android.<wbr/>statistics.<wbr/>face<wbr/>Scores
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013490 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013491 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080013492 <span class="entry_type_name">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013493 <span class="entry_type_container">x</span>
13494
13495 <span class="entry_type_array">
13496 n
13497 </span>
Zhijun He3b4c2062013-10-07 11:23:30 -070013498 <span class="entry_type_visibility"> [hidden]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013499
13500
13501 </td> <!-- entry_type -->
13502
13503 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080013504 <p>List of the face confidence scores for
13505detected faces</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013506 </td>
13507
13508 <td class="entry_units">
13509 </td>
13510
13511 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -080013512 <p>1-100</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013513 </td>
13514
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013515 <td class="entry_tags">
13516 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080013517 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013518 </ul>
13519 </td>
13520
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013521 </tr>
13522 <tr class="entries_header">
13523 <th class="th_details" colspan="5">Details</th>
13524 </tr>
13525 <tr class="entry_cont">
13526 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -080013527 <p>Only available if faceDetectMode != OFF.<wbr/> The value should be
13528meaningful (for example,<wbr/> setting 100 at all times is illegal).<wbr/></p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013529 </td>
13530 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013531
13532
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013533 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
13534 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013535
13536
13537 <tr class="entry" id="dynamic_android.statistics.histogram">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013538 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080013539 android.<wbr/>statistics.<wbr/>histogram
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013540 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013541 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080013542 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013543 <span class="entry_type_container">x</span>
13544
13545 <span class="entry_type_array">
13546 n x 3
13547 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070013548 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -080013549 <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 -080013550
13551
13552 </td> <!-- entry_type -->
13553
13554 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080013555 <p>A 3-channel histogram based on the raw
13556sensor data</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013557 </td>
13558
13559 <td class="entry_units">
13560 </td>
13561
13562 <td class="entry_range">
13563 </td>
13564
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013565 <td class="entry_tags">
13566 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080013567 <li><a href="#tag_V1">V1</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013568 </ul>
13569 </td>
13570
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013571 </tr>
13572 <tr class="entries_header">
13573 <th class="th_details" colspan="5">Details</th>
13574 </tr>
13575 <tr class="entry_cont">
13576 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -080013577 <p>The k'th bucket (0-based) covers the input range
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -080013578(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 -080013579(k + 1) * w /<wbr/> N ).<wbr/> If only a monochrome sharpness map is
13580supported,<wbr/> all channels should have the same data</p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013581 </td>
13582 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013583
13584
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013585 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
13586 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013587
13588
13589 <tr class="entry" id="dynamic_android.statistics.histogramMode">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013590 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -080013591 android.<wbr/>statistics.<wbr/>histogram<wbr/>Mode
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013592 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013593 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080013594 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013595
Igor Murashkinb8dc8812013-07-17 16:29:34 -070013596 <span class="entry_type_visibility"> [system as boolean]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013597
13598 <ul class="entry_type_enum">
13599 <li>
13600 <span class="entry_type_enum_name">OFF</span>
13601 </li>
13602 <li>
13603 <span class="entry_type_enum_name">ON</span>
13604 </li>
13605 </ul>
13606
13607 </td> <!-- entry_type -->
13608
13609 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080013610 <p>Operating mode for histogram
13611generation</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013612 </td>
13613
13614 <td class="entry_units">
13615 </td>
13616
13617 <td class="entry_range">
13618 </td>
13619
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013620 <td class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080013621 <ul class="entry_tags">
13622 <li><a href="#tag_V1">V1</a></li>
13623 </ul>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013624 </td>
13625
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013626 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013627
13628
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013629 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
13630 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013631
13632
13633 <tr class="entry" id="dynamic_android.statistics.sharpnessMap">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013634 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080013635 android.<wbr/>statistics.<wbr/>sharpness<wbr/>Map
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013636 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013637 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080013638 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013639 <span class="entry_type_container">x</span>
13640
13641 <span class="entry_type_array">
13642 n x m x 3
13643 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070013644 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -080013645 <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 -080013646
13647
13648 </td> <!-- entry_type -->
13649
13650 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080013651 <p>A 3-channel sharpness map,<wbr/> based on the raw
13652sensor data</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013653 </td>
13654
13655 <td class="entry_units">
13656 </td>
13657
13658 <td class="entry_range">
13659 </td>
13660
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013661 <td class="entry_tags">
13662 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080013663 <li><a href="#tag_V1">V1</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013664 </ul>
13665 </td>
13666
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013667 </tr>
13668 <tr class="entries_header">
13669 <th class="th_details" colspan="5">Details</th>
13670 </tr>
13671 <tr class="entry_cont">
13672 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -080013673 <p>If only a monochrome sharpness map is supported,<wbr/>
13674all channels should have the same data</p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013675 </td>
13676 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013677
13678
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013679 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
13680 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013681
13682
13683 <tr class="entry" id="dynamic_android.statistics.sharpnessMapMode">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013684 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -080013685 android.<wbr/>statistics.<wbr/>sharpness<wbr/>Map<wbr/>Mode
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013686 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013687 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080013688 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013689
Igor Murashkinb8dc8812013-07-17 16:29:34 -070013690 <span class="entry_type_visibility"> [system as boolean]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013691
13692 <ul class="entry_type_enum">
13693 <li>
13694 <span class="entry_type_enum_name">OFF</span>
13695 </li>
13696 <li>
13697 <span class="entry_type_enum_name">ON</span>
13698 </li>
13699 </ul>
13700
13701 </td> <!-- entry_type -->
13702
13703 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080013704 <p>Operating mode for sharpness map
13705generation</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013706 </td>
13707
13708 <td class="entry_units">
13709 </td>
13710
13711 <td class="entry_range">
13712 </td>
13713
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013714 <td class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080013715 <ul class="entry_tags">
13716 <li><a href="#tag_V1">V1</a></li>
13717 </ul>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013718 </td>
13719
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013720 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013721
13722
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013723 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
13724 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013725
Zhijun He69fc0ea2013-07-17 09:42:58 -070013726
13727 <tr class="entry" id="dynamic_android.statistics.lensShadingMap">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013728 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080013729 android.<wbr/>statistics.<wbr/>lens<wbr/>Shading<wbr/>Map
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013730 </td>
Zhijun He69fc0ea2013-07-17 09:42:58 -070013731 <td class="entry_type">
13732 <span class="entry_type_name">float</span>
13733 <span class="entry_type_container">x</span>
13734
13735 <span class="entry_type_array">
13736 4 x n x m
13737 </span>
13738 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -080013739 <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 -070013740
13741
13742 </td> <!-- entry_type -->
13743
13744 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080013745 <p>The shading map is a low-resolution floating-point map
13746that lists the coefficients used to correct for vignetting,<wbr/> for each
13747Bayer color channel.<wbr/></p>
Zhijun He69fc0ea2013-07-17 09:42:58 -070013748 </td>
13749
13750 <td class="entry_units">
13751 </td>
13752
13753 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -080013754 <p>Each gain factor is &gt;= 1</p>
Zhijun He69fc0ea2013-07-17 09:42:58 -070013755 </td>
13756
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013757 <td class="entry_tags">
13758 </td>
13759
13760 </tr>
13761 <tr class="entries_header">
13762 <th class="th_details" colspan="5">Details</th>
13763 </tr>
13764 <tr class="entry_cont">
13765 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -080013766 <p>The least shaded section of the image should have a gain factor
13767of 1; all other sections should have gains above 1.<wbr/></p>
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -080013768<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 -080013769must take into account the colorCorrection settings.<wbr/></p>
13770<p>The shading map is for the entire active pixel array,<wbr/> and is not
13771affected by the crop region specified in the request.<wbr/> Each shading map
Igor Murashkin1dd4ecb2013-12-11 13:31:00 -080013772entry is the value of the shading compensation map over a specific
Igor Murashkin0b080452013-12-27 15:30:25 -080013773pixel on the sensor.<wbr/> Specifically,<wbr/> with a (N x M) resolution shading
13774map,<wbr/> and an active pixel array size (W x H),<wbr/> shading map entry
13775(x,<wbr/>y) ϵ (0 ...<wbr/> N-1,<wbr/> 0 ...<wbr/> M-1) is the value of the shading map at
13776pixel ( ((W-1)/<wbr/>(N-1)) * x,<wbr/> ((H-1)/<wbr/>(M-1)) * y) for the four color channels.<wbr/>
13777The map is assumed to be bilinearly interpolated between the sample points.<wbr/></p>
13778<p>The channel order is [R,<wbr/> Geven,<wbr/> Godd,<wbr/> B],<wbr/> where Geven is the green
13779channel for the even rows of a Bayer pattern,<wbr/> and Godd is the odd rows.<wbr/>
13780The shading map is stored in a fully interleaved format,<wbr/> and its size
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -080013781is 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 -080013782<p>The shading map should have on the order of 30-40 rows and columns,<wbr/>
13783and must be smaller than 64x64.<wbr/></p>
13784<p>As an example,<wbr/> given a very small map defined as:</p>
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -080013785<pre><code><a href="#static_android.lens.info.shadingMapSize">android.<wbr/>lens.<wbr/>info.<wbr/>shading<wbr/>Map<wbr/>Size</a> = [ 4,<wbr/> 3 ]
13786<a href="#dynamic_android.statistics.lensShadingMap">android.<wbr/>statistics.<wbr/>lens<wbr/>Shading<wbr/>Map</a> =
Igor Murashkin0b080452013-12-27 15:30:25 -080013787[ 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/>
13788 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/>
13789 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/>
13790 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/>
13791 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/>
13792 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 -080013793</code></pre>
13794<p>The low-resolution scaling map images for each channel are
13795(displayed using nearest-neighbor interpolation):</p>
13796<p><img alt="Red lens shading map" src="images/camera2/metadata/android.statistics.lensShadingMap/red_shading.png"/>
13797<img alt="Green (even rows) lens shading map" src="images/camera2/metadata/android.statistics.lensShadingMap/green_e_shading.png"/>
13798<img alt="Green (odd rows) lens shading map" src="images/camera2/metadata/android.statistics.lensShadingMap/green_o_shading.png"/>
13799<img alt="Blue lens shading map" src="images/camera2/metadata/android.statistics.lensShadingMap/blue_shading.png"/></p>
Igor Murashkin0b080452013-12-27 15:30:25 -080013800<p>As a visualization only,<wbr/> inverting the full-color map to recover an
Igor Murashkin1dd4ecb2013-12-11 13:31:00 -080013801image of a gray wall (using bicubic interpolation for visual quality) as captured by the sensor gives:</p>
Igor Murashkin0b080452013-12-27 15:30:25 -080013802<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 -070013803 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013804 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013805
13806
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013807 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
13808 <!-- end of entry -->
Zhijun He69fc0ea2013-07-17 09:42:58 -070013809
13810
13811 <tr class="entry" id="dynamic_android.statistics.predictedColorGains">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013812 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080013813 android.<wbr/>statistics.<wbr/>predicted<wbr/>Color<wbr/>Gains
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013814 </td>
Zhijun He69fc0ea2013-07-17 09:42:58 -070013815 <td class="entry_type">
13816 <span class="entry_type_name">float</span>
13817 <span class="entry_type_container">x</span>
13818
13819 <span class="entry_type_array">
13820 4
13821 </span>
Igor Murashkin0fe2f132014-01-13 16:59:47 -080013822 <span class="entry_type_visibility"> [hidden]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -080013823 <div class="entry_type_notes">A 1D array of floats for 4 color channel gains</div>
Zhijun He69fc0ea2013-07-17 09:42:58 -070013824
13825
13826 </td> <!-- entry_type -->
13827
13828 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080013829 <p>The best-fit color channel gains calculated
13830by the HAL's statistics units for the current output frame</p>
Zhijun He69fc0ea2013-07-17 09:42:58 -070013831 </td>
13832
13833 <td class="entry_units">
13834 </td>
13835
13836 <td class="entry_range">
Igor Murashkin0fe2f132014-01-13 16:59:47 -080013837 <p><strong>Deprecated</strong>.<wbr/> Do not use.<wbr/></p>
Zhijun He69fc0ea2013-07-17 09:42:58 -070013838 </td>
13839
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013840 <td class="entry_tags">
13841 </td>
13842
13843 </tr>
13844 <tr class="entries_header">
13845 <th class="th_details" colspan="5">Details</th>
13846 </tr>
13847 <tr class="entry_cont">
13848 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -080013849 <p>This may be different than the gains used for this frame,<wbr/>
Igor Murashkin8aa2a112013-12-09 12:06:17 -080013850since statistics processing on data from a new frame
13851typically completes after the transform has already been
Igor Murashkin0b080452013-12-27 15:30:25 -080013852applied to that frame.<wbr/></p>
13853<p>The 4 channel gains are defined in Bayer domain,<wbr/>
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -080013854see <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 -080013855<p>This value should always be calculated by the AWB block,<wbr/>
13856regardless of the android.<wbr/>control.<wbr/>* current values.<wbr/></p>
Zhijun He69fc0ea2013-07-17 09:42:58 -070013857 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013858 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013859
13860
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013861 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
13862 <!-- end of entry -->
Zhijun He69fc0ea2013-07-17 09:42:58 -070013863
13864
13865 <tr class="entry" id="dynamic_android.statistics.predictedColorTransform">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013866 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080013867 android.<wbr/>statistics.<wbr/>predicted<wbr/>Color<wbr/>Transform
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013868 </td>
Zhijun He69fc0ea2013-07-17 09:42:58 -070013869 <td class="entry_type">
13870 <span class="entry_type_name">rational</span>
13871 <span class="entry_type_container">x</span>
13872
13873 <span class="entry_type_array">
13874 3 x 3
13875 </span>
Igor Murashkin0fe2f132014-01-13 16:59:47 -080013876 <span class="entry_type_visibility"> [hidden]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -080013877 <div class="entry_type_notes">3x3 rational matrix in row-major order</div>
Zhijun He69fc0ea2013-07-17 09:42:58 -070013878
13879
13880 </td> <!-- entry_type -->
13881
13882 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080013883 <p>The best-fit color transform matrix estimate
Igor Murashkin8aa2a112013-12-09 12:06:17 -080013884calculated by the HAL's statistics units for the current
Igor Murashkin0b080452013-12-27 15:30:25 -080013885output frame</p>
Zhijun He69fc0ea2013-07-17 09:42:58 -070013886 </td>
13887
13888 <td class="entry_units">
13889 </td>
13890
13891 <td class="entry_range">
Igor Murashkin0fe2f132014-01-13 16:59:47 -080013892 <p><strong>Deprecated</strong>.<wbr/> Do not use.<wbr/></p>
Zhijun He69fc0ea2013-07-17 09:42:58 -070013893 </td>
13894
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013895 <td class="entry_tags">
13896 </td>
13897
13898 </tr>
13899 <tr class="entries_header">
13900 <th class="th_details" colspan="5">Details</th>
13901 </tr>
13902 <tr class="entry_cont">
13903 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -080013904 <p>The HAL must provide the estimate from its
Igor Murashkin8aa2a112013-12-09 12:06:17 -080013905statistics unit on the white balance transforms to use
Igor Murashkin0b080452013-12-27 15:30:25 -080013906for the next frame.<wbr/> These are the values the HAL believes
13907are the best fit for the current output frame.<wbr/> This may
13908be different than the transform used for this frame,<wbr/> since
Igor Murashkin8aa2a112013-12-09 12:06:17 -080013909statistics processing on data from a new frame typically
13910completes after the transform has already been applied to
Igor Murashkin0b080452013-12-27 15:30:25 -080013911that frame.<wbr/></p>
13912<p>These estimates must be provided for all frames,<wbr/> even if
13913capture settings and color transforms are set by the application.<wbr/></p>
13914<p>This value should always be calculated by the AWB block,<wbr/>
13915regardless of the android.<wbr/>control.<wbr/>* current values.<wbr/></p>
Zhijun He69fc0ea2013-07-17 09:42:58 -070013916 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013917 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013918
13919
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013920 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
13921 <!-- end of entry -->
Zhijun He69fc0ea2013-07-17 09:42:58 -070013922
13923
13924 <tr class="entry" id="dynamic_android.statistics.sceneFlicker">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013925 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080013926 android.<wbr/>statistics.<wbr/>scene<wbr/>Flicker
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013927 </td>
Zhijun He69fc0ea2013-07-17 09:42:58 -070013928 <td class="entry_type">
13929 <span class="entry_type_name entry_type_name_enum">byte</span>
13930
13931 <span class="entry_type_visibility"> [public]</span>
13932
13933 <ul class="entry_type_enum">
13934 <li>
13935 <span class="entry_type_enum_name">NONE</span>
13936 </li>
13937 <li>
13938 <span class="entry_type_enum_name">50HZ</span>
13939 </li>
13940 <li>
13941 <span class="entry_type_enum_name">60HZ</span>
13942 </li>
13943 </ul>
13944
13945 </td> <!-- entry_type -->
13946
13947 <td class="entry_description">
Zhijun Heb8512c52014-02-03 11:46:58 -080013948 <p>The camera device estimated scene illumination lighting
13949frequency.<wbr/></p>
Zhijun He69fc0ea2013-07-17 09:42:58 -070013950 </td>
13951
13952 <td class="entry_units">
13953 </td>
13954
13955 <td class="entry_range">
13956 </td>
13957
Zhijun He69fc0ea2013-07-17 09:42:58 -070013958 <td class="entry_tags">
13959 </td>
13960
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013961 </tr>
13962 <tr class="entries_header">
13963 <th class="th_details" colspan="5">Details</th>
13964 </tr>
13965 <tr class="entry_cont">
13966 <td class="entry_details" colspan="5">
Zhijun Heb8512c52014-02-03 11:46:58 -080013967 <p>Many light sources,<wbr/> such as most fluorescent lights,<wbr/> flicker at a rate
13968that depends on the local utility power standards.<wbr/> This flicker must be
13969accounted for by auto-exposure routines to avoid artifacts in captured images.<wbr/>
13970The camera device uses this entry to tell the application what the scene
13971illuminant frequency is.<wbr/></p>
13972<p>When manual exposure control is enabled
13973(<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/>
13974the <a href="#controls_android.control.aeAntibandingMode">android.<wbr/>control.<wbr/>ae<wbr/>Antibanding<wbr/>Mode</a> doesn't do the antibanding,<wbr/> and the
13975application can ensure it selects exposure times that do not cause banding
13976issues by looking into this metadata field.<wbr/> See android.<wbr/>control.<wbr/>ae<wbr/>Antibanding<wbr/>Mode
13977for more details.<wbr/></p>
13978<p>Report NONE if there doesn't appear to be flickering illumination.<wbr/></p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013979 </td>
13980 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013981
13982
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013983 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
13984 <!-- end of entry -->
Zhijun He69fc0ea2013-07-17 09:42:58 -070013985
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013986
13987
13988 <!-- end of kind -->
13989 </tbody>
13990
13991 <!-- end of section -->
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013992 <tr><td colspan="6" id="section_tonemap" class="section">tonemap</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013993
13994
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013995 <tr><td colspan="6" class="kind">controls</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013996
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070013997 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013998 <tr>
13999 <th class="th_name">Property Name</th>
14000 <th class="th_type">Type</th>
14001 <th class="th_description">Description</th>
14002 <th class="th_units">Units</th>
14003 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014004 <th class="th_tags">Tags</th>
14005 </tr>
14006 </thead>
14007
14008 <tbody>
14009
14010
14011
14012
14013
14014
14015
14016
14017
14018
14019 <tr class="entry" id="controls_android.tonemap.curveBlue">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080014020 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080014021 android.<wbr/>tonemap.<wbr/>curve<wbr/>Blue
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080014022 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014023 <td class="entry_type">
Eino-Ville Talvala76548fe2013-01-11 13:57:19 -080014024 <span class="entry_type_name">float</span>
Zhijun He704d1282013-08-19 15:26:33 -070014025 <span class="entry_type_container">x</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014026
Zhijun He704d1282013-08-19 15:26:33 -070014027 <span class="entry_type_array">
14028 n x 2
14029 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070014030 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -080014031 <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 -080014032
14033
14034 </td> <!-- entry_type -->
14035
14036 <td class="entry_description">
Igor Murashkin94e06c42014-01-13 16:51:17 -080014037 <p>Tonemapping /<wbr/> contrast /<wbr/> gamma curve for the blue
14038channel,<wbr/> to use when <a href="#controls_android.tonemap.mode">android.<wbr/>tonemap.<wbr/>mode</a> is
14039CONTRAST_<wbr/>CURVE.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014040 </td>
14041
14042 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -080014043 same as android.<wbr/>tonemap.<wbr/>curve<wbr/>Red
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014044 </td>
14045
14046 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -080014047 <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 -080014048 </td>
14049
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014050 <td class="entry_tags">
14051 </td>
14052
14053 </tr>
14054 <tr class="entries_header">
14055 <th class="th_details" colspan="5">Details</th>
14056 </tr>
14057 <tr class="entry_cont">
14058 <td class="entry_details" colspan="5">
Igor Murashkin94e06c42014-01-13 16:51:17 -080014059 <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 -080014060 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014061 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080014062
14063
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014064 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
14065 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014066
14067
14068 <tr class="entry" id="controls_android.tonemap.curveGreen">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080014069 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080014070 android.<wbr/>tonemap.<wbr/>curve<wbr/>Green
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080014071 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014072 <td class="entry_type">
Eino-Ville Talvala76548fe2013-01-11 13:57:19 -080014073 <span class="entry_type_name">float</span>
Zhijun He704d1282013-08-19 15:26:33 -070014074 <span class="entry_type_container">x</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014075
Zhijun He704d1282013-08-19 15:26:33 -070014076 <span class="entry_type_array">
14077 n x 2
14078 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070014079 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -080014080 <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 -080014081
14082
14083 </td> <!-- entry_type -->
14084
14085 <td class="entry_description">
Igor Murashkin94e06c42014-01-13 16:51:17 -080014086 <p>Tonemapping /<wbr/> contrast /<wbr/> gamma curve for the green
14087channel,<wbr/> to use when <a href="#controls_android.tonemap.mode">android.<wbr/>tonemap.<wbr/>mode</a> is
14088CONTRAST_<wbr/>CURVE.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014089 </td>
14090
14091 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -080014092 same as android.<wbr/>tonemap.<wbr/>curve<wbr/>Red
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014093 </td>
14094
14095 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -080014096 <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 -080014097 </td>
14098
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014099 <td class="entry_tags">
14100 </td>
14101
14102 </tr>
14103 <tr class="entries_header">
14104 <th class="th_details" colspan="5">Details</th>
14105 </tr>
14106 <tr class="entry_cont">
14107 <td class="entry_details" colspan="5">
Igor Murashkin94e06c42014-01-13 16:51:17 -080014108 <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 -080014109 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014110 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080014111
14112
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014113 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
14114 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014115
14116
14117 <tr class="entry" id="controls_android.tonemap.curveRed">
Igor Murashkin94e06c42014-01-13 16:51:17 -080014118 <td class="entry_name" rowspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -080014119 android.<wbr/>tonemap.<wbr/>curve<wbr/>Red
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080014120 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014121 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080014122 <span class="entry_type_name">float</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014123 <span class="entry_type_container">x</span>
14124
14125 <span class="entry_type_array">
14126 n x 2
14127 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070014128 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -080014129 <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 -080014130
14131
14132 </td> <!-- entry_type -->
14133
14134 <td class="entry_description">
Igor Murashkin94e06c42014-01-13 16:51:17 -080014135 <p>Tonemapping /<wbr/> contrast /<wbr/> gamma curve for the red
14136channel,<wbr/> to use when <a href="#controls_android.tonemap.mode">android.<wbr/>tonemap.<wbr/>mode</a> is
14137CONTRAST_<wbr/>CURVE.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014138 </td>
14139
14140 <td class="entry_units">
14141 </td>
14142
14143 <td class="entry_range">
Igor Murashkin94e06c42014-01-13 16:51:17 -080014144 <p>0-1 on both input and output coordinates,<wbr/> normalized
14145as a floating-point value such that 0 == black and 1 == white.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014146 </td>
14147
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014148 <td class="entry_tags">
14149 <ul class="entry_tags">
14150 <li><a href="#tag_DNG">DNG</a></li>
14151 </ul>
14152 </td>
14153
14154 </tr>
14155 <tr class="entries_header">
14156 <th class="th_details" colspan="5">Details</th>
14157 </tr>
14158 <tr class="entry_cont">
14159 <td class="entry_details" colspan="5">
Igor Murashkin94e06c42014-01-13 16:51:17 -080014160 <p>Each channel's curve is defined by an array of control points:</p>
14161<pre><code><a href="#controls_android.tonemap.curveRed">android.<wbr/>tonemap.<wbr/>curve<wbr/>Red</a> =
14162 [ P0in,<wbr/> P0out,<wbr/> P1in,<wbr/> P1out,<wbr/> P2in,<wbr/> P2out,<wbr/> P3in,<wbr/> P3out,<wbr/> ...,<wbr/> PNin,<wbr/> PNout ]
141632 &lt;= N &lt;= <a href="#static_android.tonemap.maxCurvePoints">android.<wbr/>tonemap.<wbr/>max<wbr/>Curve<wbr/>Points</a></code></pre>
14164<p>These are sorted in order of increasing <code>Pin</code>; it is always
14165guaranteed that input values 0.<wbr/>0 and 1.<wbr/>0 are included in the list to
14166define a complete mapping.<wbr/> For input values between control points,<wbr/>
14167the camera device must linearly interpolate between the control
14168points.<wbr/></p>
14169<p>Each curve can have an independent number of points,<wbr/> and the number
14170of points can be less than max (that is,<wbr/> the request doesn't have to
14171always provide a curve with number of points equivalent to
14172<a href="#static_android.tonemap.maxCurvePoints">android.<wbr/>tonemap.<wbr/>max<wbr/>Curve<wbr/>Points</a>).<wbr/></p>
14173<p>A few examples,<wbr/> and their corresponding graphical mappings; these
14174only specify the red channel and the precision is limited to 4
14175digits,<wbr/> for conciseness.<wbr/></p>
14176<p>Linear mapping:</p>
14177<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 ]
14178</code></pre>
14179<p><img alt="Linear mapping curve" src="images/camera2/metadata/android.tonemap.curveRed/linear_tonemap.png"/></p>
14180<p>Invert mapping:</p>
14181<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 ]
14182</code></pre>
14183<p><img alt="Inverting mapping curve" src="images/camera2/metadata/android.tonemap.curveRed/inverse_tonemap.png"/></p>
14184<p>Gamma 1/<wbr/>2.<wbr/>2 mapping,<wbr/> with 16 control points:</p>
14185<pre><code><a href="#controls_android.tonemap.curveRed">android.<wbr/>tonemap.<wbr/>curve<wbr/>Red</a> = [
14186 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/>
14187 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/>
14188 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/>
14189 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 ]
14190</code></pre>
14191<p><img alt="Gamma = 1/2.2 tonemapping curve" src="images/camera2/metadata/android.tonemap.curveRed/gamma_tonemap.png"/></p>
14192<p>Standard sRGB gamma mapping,<wbr/> per IEC 61966-2-1:1999,<wbr/> with 16 control points:</p>
14193<pre><code><a href="#controls_android.tonemap.curveRed">android.<wbr/>tonemap.<wbr/>curve<wbr/>Red</a> = [
14194 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/>
14195 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/>
14196 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/>
14197 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 ]
14198</code></pre>
14199<p><img alt="sRGB tonemapping curve" src="images/camera2/metadata/android.tonemap.curveRed/srgb_tonemap.png"/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014200 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014201 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080014202
Igor Murashkin94e06c42014-01-13 16:51:17 -080014203 <tr class="entries_header">
14204 <th class="th_details" colspan="5">HAL Implementation Details</th>
14205 </tr>
14206 <tr class="entry_cont">
14207 <td class="entry_details" colspan="5">
14208 <p>For good quality of mapping,<wbr/> at least 128 control points are
14209preferred.<wbr/></p>
14210<p>A typical use case of this would be a gamma-1/<wbr/>2.<wbr/>2 curve,<wbr/> with as many
14211control points used as are available.<wbr/></p>
14212 </td>
14213 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080014214
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014215 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
14216 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014217
14218
14219 <tr class="entry" id="controls_android.tonemap.mode">
Igor Murashkin94e06c42014-01-13 16:51:17 -080014220 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080014221 android.<wbr/>tonemap.<wbr/>mode
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080014222 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014223 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080014224 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014225
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070014226 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014227
14228 <ul class="entry_type_enum">
14229 <li>
14230 <span class="entry_type_enum_name">CONTRAST_CURVE</span>
Igor Murashkina10351a2014-01-15 17:05:22 -080014231 <span class="entry_type_enum_notes"><p>Use the tone mapping curve specified in
Igor Murashkin94e06c42014-01-13 16:51:17 -080014232android.<wbr/>tonemap.<wbr/>curve.<wbr/></p>
14233<p>All color enhancement and tonemapping must be disabled,<wbr/> except
14234for applying the tonemapping curve specified by
14235<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
14236<a href="#controls_android.tonemap.curveGreen">android.<wbr/>tonemap.<wbr/>curve<wbr/>Green</a>.<wbr/></p>
14237<p>Must not slow down frame rate relative to raw
14238sensor output.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014239 </li>
14240 <li>
14241 <span class="entry_type_enum_name">FAST</span>
Igor Murashkin94e06c42014-01-13 16:51:17 -080014242 <span class="entry_type_enum_notes"><p>Advanced gamma mapping and color enhancement may be applied.<wbr/></p>
14243<p>Should not slow down frame rate relative to raw sensor output.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014244 </li>
14245 <li>
14246 <span class="entry_type_enum_name">HIGH_QUALITY</span>
Igor Murashkin94e06c42014-01-13 16:51:17 -080014247 <span class="entry_type_enum_notes"><p>Advanced gamma mapping and color enhancement may be applied.<wbr/></p>
14248<p>May slow down frame rate relative to raw sensor output.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014249 </li>
14250 </ul>
14251
14252 </td> <!-- entry_type -->
14253
14254 <td class="entry_description">
Igor Murashkin94e06c42014-01-13 16:51:17 -080014255 <p>High-level global contrast/<wbr/>gamma/<wbr/>tonemapping control.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014256 </td>
14257
14258 <td class="entry_units">
14259 </td>
14260
14261 <td class="entry_range">
14262 </td>
14263
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014264 <td class="entry_tags">
14265 </td>
14266
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014267 </tr>
Igor Murashkin94e06c42014-01-13 16:51:17 -080014268 <tr class="entries_header">
14269 <th class="th_details" colspan="5">Details</th>
14270 </tr>
14271 <tr class="entry_cont">
14272 <td class="entry_details" colspan="5">
14273 <p>When switching to an application-defined contrast curve by setting
14274<a href="#controls_android.tonemap.mode">android.<wbr/>tonemap.<wbr/>mode</a> to CONTRAST_<wbr/>CURVE,<wbr/> the curve is defined
14275per-channel with a set of <code>(in,<wbr/> out)</code> points that specify the
14276mapping from input high-bit-depth pixel value to the output
14277low-bit-depth value.<wbr/> Since the actual pixel ranges of both input
14278and output may change depending on the camera pipeline,<wbr/> the values
14279are specified by normalized floating-point numbers.<wbr/></p>
14280<p>More-complex color mapping operations such as 3D color look-up
14281tables,<wbr/> selective chroma enhancement,<wbr/> or other non-linear color
14282transforms will be disabled when <a href="#controls_android.tonemap.mode">android.<wbr/>tonemap.<wbr/>mode</a> is
14283CONTRAST_<wbr/>CURVE.<wbr/></p>
14284<p>When using either FAST or HIGH_<wbr/>QUALITY,<wbr/> the camera device will
14285emit its own tonemap curve in <a href="#controls_android.tonemap.curveRed">android.<wbr/>tonemap.<wbr/>curve<wbr/>Red</a>,<wbr/>
14286<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/>
14287These values are always available,<wbr/> and as close as possible to the
14288actually used nonlinear/<wbr/>nonglobal transforms.<wbr/></p>
14289<p>If a request is sent with TRANSFORM_<wbr/>MATRIX with the camera device's
14290provided curve in FAST or HIGH_<wbr/>QUALITY,<wbr/> the image's tonemap will be
14291roughly the same.<wbr/></p>
14292 </td>
14293 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080014294
14295
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014296 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
14297 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014298
14299
14300
14301 <!-- end of kind -->
14302 </tbody>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014303 <tr><td colspan="6" class="kind">static</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014304
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070014305 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014306 <tr>
14307 <th class="th_name">Property Name</th>
14308 <th class="th_type">Type</th>
14309 <th class="th_description">Description</th>
14310 <th class="th_units">Units</th>
14311 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014312 <th class="th_tags">Tags</th>
14313 </tr>
14314 </thead>
14315
14316 <tbody>
14317
14318
14319
14320
14321
14322
14323
14324
14325
14326
14327 <tr class="entry" id="static_android.tonemap.maxCurvePoints">
Igor Murashkin94e06c42014-01-13 16:51:17 -080014328 <td class="entry_name" rowspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -080014329 android.<wbr/>tonemap.<wbr/>max<wbr/>Curve<wbr/>Points
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080014330 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014331 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080014332 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014333
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070014334 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014335
14336
14337 </td> <!-- entry_type -->
14338
14339 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080014340 <p>Maximum number of supported points in the
Igor Murashkin94e06c42014-01-13 16:51:17 -080014341tonemap curve that can be used for <a href="#controls_android.tonemap.curveRed">android.<wbr/>tonemap.<wbr/>curve<wbr/>Red</a>,<wbr/> or
14342<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 -080014343 </td>
14344
14345 <td class="entry_units">
14346 </td>
14347
14348 <td class="entry_range">
Igor Murashkin94e06c42014-01-13 16:51:17 -080014349 <p>&gt;= 64</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014350 </td>
14351
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014352 <td class="entry_tags">
14353 </td>
14354
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014355 </tr>
Igor Murashkin94e06c42014-01-13 16:51:17 -080014356 <tr class="entries_header">
14357 <th class="th_details" colspan="5">Details</th>
14358 </tr>
14359 <tr class="entry_cont">
14360 <td class="entry_details" colspan="5">
14361 <p>If the actual number of points provided by the application (in
14362android.<wbr/>tonemap.<wbr/>curve*) is less than max,<wbr/> the camera device will
14363resample the curve to its internal representation,<wbr/> using linear
14364interpolation.<wbr/></p>
14365<p>The output curves in the result metadata may have a different number
14366of points than the input curves,<wbr/> and will represent the actual
14367hardware curves used as closely as possible when linearly interpolated.<wbr/></p>
14368 </td>
14369 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080014370
Igor Murashkin94e06c42014-01-13 16:51:17 -080014371 <tr class="entries_header">
14372 <th class="th_details" colspan="5">HAL Implementation Details</th>
14373 </tr>
14374 <tr class="entry_cont">
14375 <td class="entry_details" colspan="5">
14376 <p>This value must be at least 64.<wbr/> This should be at least 128.<wbr/></p>
14377 </td>
14378 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080014379
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014380 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
14381 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014382
14383
14384
14385 <!-- end of kind -->
14386 </tbody>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014387 <tr><td colspan="6" class="kind">dynamic</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014388
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070014389 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014390 <tr>
14391 <th class="th_name">Property Name</th>
14392 <th class="th_type">Type</th>
14393 <th class="th_description">Description</th>
14394 <th class="th_units">Units</th>
14395 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014396 <th class="th_tags">Tags</th>
14397 </tr>
14398 </thead>
14399
14400 <tbody>
14401
14402
14403
14404
14405
14406
14407
14408
14409
14410
14411 <tr class="entry" id="dynamic_android.tonemap.curveBlue">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080014412 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080014413 android.<wbr/>tonemap.<wbr/>curve<wbr/>Blue
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080014414 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014415 <td class="entry_type">
Eino-Ville Talvala76548fe2013-01-11 13:57:19 -080014416 <span class="entry_type_name">float</span>
Zhijun He704d1282013-08-19 15:26:33 -070014417 <span class="entry_type_container">x</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014418
Zhijun He704d1282013-08-19 15:26:33 -070014419 <span class="entry_type_array">
14420 n x 2
14421 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070014422 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -080014423 <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 -080014424
14425
14426 </td> <!-- entry_type -->
14427
14428 <td class="entry_description">
Igor Murashkin94e06c42014-01-13 16:51:17 -080014429 <p>Tonemapping /<wbr/> contrast /<wbr/> gamma curve for the blue
14430channel,<wbr/> to use when <a href="#controls_android.tonemap.mode">android.<wbr/>tonemap.<wbr/>mode</a> is
14431CONTRAST_<wbr/>CURVE.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014432 </td>
14433
14434 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -080014435 same as android.<wbr/>tonemap.<wbr/>curve<wbr/>Red
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014436 </td>
14437
14438 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -080014439 <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 -080014440 </td>
14441
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014442 <td class="entry_tags">
14443 </td>
14444
14445 </tr>
14446 <tr class="entries_header">
14447 <th class="th_details" colspan="5">Details</th>
14448 </tr>
14449 <tr class="entry_cont">
14450 <td class="entry_details" colspan="5">
Igor Murashkin94e06c42014-01-13 16:51:17 -080014451 <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 -080014452 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014453 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080014454
14455
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014456 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
14457 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014458
14459
14460 <tr class="entry" id="dynamic_android.tonemap.curveGreen">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080014461 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080014462 android.<wbr/>tonemap.<wbr/>curve<wbr/>Green
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080014463 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014464 <td class="entry_type">
Eino-Ville Talvala76548fe2013-01-11 13:57:19 -080014465 <span class="entry_type_name">float</span>
Zhijun He704d1282013-08-19 15:26:33 -070014466 <span class="entry_type_container">x</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014467
Zhijun He704d1282013-08-19 15:26:33 -070014468 <span class="entry_type_array">
14469 n x 2
14470 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070014471 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -080014472 <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 -080014473
14474
14475 </td> <!-- entry_type -->
14476
14477 <td class="entry_description">
Igor Murashkin94e06c42014-01-13 16:51:17 -080014478 <p>Tonemapping /<wbr/> contrast /<wbr/> gamma curve for the green
14479channel,<wbr/> to use when <a href="#controls_android.tonemap.mode">android.<wbr/>tonemap.<wbr/>mode</a> is
14480CONTRAST_<wbr/>CURVE.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014481 </td>
14482
14483 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -080014484 same as android.<wbr/>tonemap.<wbr/>curve<wbr/>Red
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014485 </td>
14486
14487 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -080014488 <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 -080014489 </td>
14490
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014491 <td class="entry_tags">
14492 </td>
14493
14494 </tr>
14495 <tr class="entries_header">
14496 <th class="th_details" colspan="5">Details</th>
14497 </tr>
14498 <tr class="entry_cont">
14499 <td class="entry_details" colspan="5">
Igor Murashkin94e06c42014-01-13 16:51:17 -080014500 <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 -080014501 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014502 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080014503
14504
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014505 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
14506 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014507
14508
14509 <tr class="entry" id="dynamic_android.tonemap.curveRed">
Igor Murashkin94e06c42014-01-13 16:51:17 -080014510 <td class="entry_name" rowspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -080014511 android.<wbr/>tonemap.<wbr/>curve<wbr/>Red
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080014512 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014513 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080014514 <span class="entry_type_name">float</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014515 <span class="entry_type_container">x</span>
14516
14517 <span class="entry_type_array">
14518 n x 2
14519 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070014520 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -080014521 <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 -080014522
14523
14524 </td> <!-- entry_type -->
14525
14526 <td class="entry_description">
Igor Murashkin94e06c42014-01-13 16:51:17 -080014527 <p>Tonemapping /<wbr/> contrast /<wbr/> gamma curve for the red
14528channel,<wbr/> to use when <a href="#controls_android.tonemap.mode">android.<wbr/>tonemap.<wbr/>mode</a> is
14529CONTRAST_<wbr/>CURVE.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014530 </td>
14531
14532 <td class="entry_units">
14533 </td>
14534
14535 <td class="entry_range">
Igor Murashkin94e06c42014-01-13 16:51:17 -080014536 <p>0-1 on both input and output coordinates,<wbr/> normalized
14537as a floating-point value such that 0 == black and 1 == white.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014538 </td>
14539
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014540 <td class="entry_tags">
14541 <ul class="entry_tags">
14542 <li><a href="#tag_DNG">DNG</a></li>
14543 </ul>
14544 </td>
14545
14546 </tr>
14547 <tr class="entries_header">
14548 <th class="th_details" colspan="5">Details</th>
14549 </tr>
14550 <tr class="entry_cont">
14551 <td class="entry_details" colspan="5">
Igor Murashkin94e06c42014-01-13 16:51:17 -080014552 <p>Each channel's curve is defined by an array of control points:</p>
14553<pre><code><a href="#controls_android.tonemap.curveRed">android.<wbr/>tonemap.<wbr/>curve<wbr/>Red</a> =
14554 [ P0in,<wbr/> P0out,<wbr/> P1in,<wbr/> P1out,<wbr/> P2in,<wbr/> P2out,<wbr/> P3in,<wbr/> P3out,<wbr/> ...,<wbr/> PNin,<wbr/> PNout ]
145552 &lt;= N &lt;= <a href="#static_android.tonemap.maxCurvePoints">android.<wbr/>tonemap.<wbr/>max<wbr/>Curve<wbr/>Points</a></code></pre>
14556<p>These are sorted in order of increasing <code>Pin</code>; it is always
14557guaranteed that input values 0.<wbr/>0 and 1.<wbr/>0 are included in the list to
14558define a complete mapping.<wbr/> For input values between control points,<wbr/>
14559the camera device must linearly interpolate between the control
14560points.<wbr/></p>
14561<p>Each curve can have an independent number of points,<wbr/> and the number
14562of points can be less than max (that is,<wbr/> the request doesn't have to
14563always provide a curve with number of points equivalent to
14564<a href="#static_android.tonemap.maxCurvePoints">android.<wbr/>tonemap.<wbr/>max<wbr/>Curve<wbr/>Points</a>).<wbr/></p>
14565<p>A few examples,<wbr/> and their corresponding graphical mappings; these
14566only specify the red channel and the precision is limited to 4
14567digits,<wbr/> for conciseness.<wbr/></p>
14568<p>Linear mapping:</p>
14569<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 ]
14570</code></pre>
14571<p><img alt="Linear mapping curve" src="images/camera2/metadata/android.tonemap.curveRed/linear_tonemap.png"/></p>
14572<p>Invert mapping:</p>
14573<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 ]
14574</code></pre>
14575<p><img alt="Inverting mapping curve" src="images/camera2/metadata/android.tonemap.curveRed/inverse_tonemap.png"/></p>
14576<p>Gamma 1/<wbr/>2.<wbr/>2 mapping,<wbr/> with 16 control points:</p>
14577<pre><code><a href="#controls_android.tonemap.curveRed">android.<wbr/>tonemap.<wbr/>curve<wbr/>Red</a> = [
14578 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/>
14579 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/>
14580 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/>
14581 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 ]
14582</code></pre>
14583<p><img alt="Gamma = 1/2.2 tonemapping curve" src="images/camera2/metadata/android.tonemap.curveRed/gamma_tonemap.png"/></p>
14584<p>Standard sRGB gamma mapping,<wbr/> per IEC 61966-2-1:1999,<wbr/> with 16 control points:</p>
14585<pre><code><a href="#controls_android.tonemap.curveRed">android.<wbr/>tonemap.<wbr/>curve<wbr/>Red</a> = [
14586 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/>
14587 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/>
14588 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/>
14589 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 ]
14590</code></pre>
14591<p><img alt="sRGB tonemapping curve" src="images/camera2/metadata/android.tonemap.curveRed/srgb_tonemap.png"/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014592 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014593 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080014594
Igor Murashkin94e06c42014-01-13 16:51:17 -080014595 <tr class="entries_header">
14596 <th class="th_details" colspan="5">HAL Implementation Details</th>
14597 </tr>
14598 <tr class="entry_cont">
14599 <td class="entry_details" colspan="5">
14600 <p>For good quality of mapping,<wbr/> at least 128 control points are
14601preferred.<wbr/></p>
14602<p>A typical use case of this would be a gamma-1/<wbr/>2.<wbr/>2 curve,<wbr/> with as many
14603control points used as are available.<wbr/></p>
14604 </td>
14605 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080014606
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014607 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
14608 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014609
14610
14611 <tr class="entry" id="dynamic_android.tonemap.mode">
Igor Murashkin94e06c42014-01-13 16:51:17 -080014612 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080014613 android.<wbr/>tonemap.<wbr/>mode
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080014614 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014615 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080014616 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014617
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070014618 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014619
14620 <ul class="entry_type_enum">
14621 <li>
14622 <span class="entry_type_enum_name">CONTRAST_CURVE</span>
Igor Murashkina10351a2014-01-15 17:05:22 -080014623 <span class="entry_type_enum_notes"><p>Use the tone mapping curve specified in
Igor Murashkin94e06c42014-01-13 16:51:17 -080014624android.<wbr/>tonemap.<wbr/>curve.<wbr/></p>
14625<p>All color enhancement and tonemapping must be disabled,<wbr/> except
14626for applying the tonemapping curve specified by
14627<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
14628<a href="#controls_android.tonemap.curveGreen">android.<wbr/>tonemap.<wbr/>curve<wbr/>Green</a>.<wbr/></p>
14629<p>Must not slow down frame rate relative to raw
14630sensor output.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014631 </li>
14632 <li>
14633 <span class="entry_type_enum_name">FAST</span>
Igor Murashkin94e06c42014-01-13 16:51:17 -080014634 <span class="entry_type_enum_notes"><p>Advanced gamma mapping and color enhancement may be applied.<wbr/></p>
14635<p>Should not slow down frame rate relative to raw sensor output.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014636 </li>
14637 <li>
14638 <span class="entry_type_enum_name">HIGH_QUALITY</span>
Igor Murashkin94e06c42014-01-13 16:51:17 -080014639 <span class="entry_type_enum_notes"><p>Advanced gamma mapping and color enhancement may be applied.<wbr/></p>
14640<p>May slow down frame rate relative to raw sensor output.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014641 </li>
14642 </ul>
14643
14644 </td> <!-- entry_type -->
14645
14646 <td class="entry_description">
Igor Murashkin94e06c42014-01-13 16:51:17 -080014647 <p>High-level global contrast/<wbr/>gamma/<wbr/>tonemapping control.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014648 </td>
14649
14650 <td class="entry_units">
14651 </td>
14652
14653 <td class="entry_range">
14654 </td>
14655
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014656 <td class="entry_tags">
14657 </td>
14658
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014659 </tr>
Igor Murashkin595f45b2014-01-17 17:27:15 -080014660 <tr class="entries_header">
14661 <th class="th_details" colspan="5">Details</th>
14662 </tr>
14663 <tr class="entry_cont">
14664 <td class="entry_details" colspan="5">
14665 <p>When switching to an application-defined contrast curve by setting
14666<a href="#controls_android.tonemap.mode">android.<wbr/>tonemap.<wbr/>mode</a> to CONTRAST_<wbr/>CURVE,<wbr/> the curve is defined
14667per-channel with a set of <code>(in,<wbr/> out)</code> points that specify the
14668mapping from input high-bit-depth pixel value to the output
14669low-bit-depth value.<wbr/> Since the actual pixel ranges of both input
14670and output may change depending on the camera pipeline,<wbr/> the values
14671are specified by normalized floating-point numbers.<wbr/></p>
14672<p>More-complex color mapping operations such as 3D color look-up
14673tables,<wbr/> selective chroma enhancement,<wbr/> or other non-linear color
14674transforms will be disabled when <a href="#controls_android.tonemap.mode">android.<wbr/>tonemap.<wbr/>mode</a> is
14675CONTRAST_<wbr/>CURVE.<wbr/></p>
14676<p>When using either FAST or HIGH_<wbr/>QUALITY,<wbr/> the camera device will
14677emit its own tonemap curve in <a href="#controls_android.tonemap.curveRed">android.<wbr/>tonemap.<wbr/>curve<wbr/>Red</a>,<wbr/>
14678<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/>
14679These values are always available,<wbr/> and as close as possible to the
14680actually used nonlinear/<wbr/>nonglobal transforms.<wbr/></p>
14681<p>If a request is sent with TRANSFORM_<wbr/>MATRIX with the camera device's
14682provided curve in FAST or HIGH_<wbr/>QUALITY,<wbr/> the image's tonemap will be
14683roughly the same.<wbr/></p>
14684 </td>
14685 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080014686
14687
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014688 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
14689 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014690
14691
14692
14693 <!-- end of kind -->
14694 </tbody>
14695
14696 <!-- end of section -->
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014697 <tr><td colspan="6" id="section_led" class="section">led</td></tr>
Igor Murashkinc469f7d2013-04-23 14:31:02 -070014698
14699
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014700 <tr><td colspan="6" class="kind">controls</td></tr>
Igor Murashkinc469f7d2013-04-23 14:31:02 -070014701
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070014702 <thead class="entries_header">
Igor Murashkinc469f7d2013-04-23 14:31:02 -070014703 <tr>
14704 <th class="th_name">Property Name</th>
14705 <th class="th_type">Type</th>
14706 <th class="th_description">Description</th>
14707 <th class="th_units">Units</th>
14708 <th class="th_range">Range</th>
Igor Murashkinc469f7d2013-04-23 14:31:02 -070014709 <th class="th_tags">Tags</th>
14710 </tr>
14711 </thead>
14712
14713 <tbody>
14714
14715
14716
14717
14718
14719
14720
14721
14722
14723
14724 <tr class="entry" id="controls_android.led.transmit">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080014725 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -080014726 android.<wbr/>led.<wbr/>transmit
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080014727 </td>
Igor Murashkinc469f7d2013-04-23 14:31:02 -070014728 <td class="entry_type">
14729 <span class="entry_type_name entry_type_name_enum">byte</span>
14730
Igor Murashkinb8dc8812013-07-17 16:29:34 -070014731 <span class="entry_type_visibility"> [hidden as boolean]</span>
Igor Murashkinc469f7d2013-04-23 14:31:02 -070014732
14733 <ul class="entry_type_enum">
14734 <li>
14735 <span class="entry_type_enum_name">OFF</span>
14736 </li>
14737 <li>
14738 <span class="entry_type_enum_name">ON</span>
14739 </li>
14740 </ul>
14741
14742 </td> <!-- entry_type -->
14743
14744 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080014745 <p>This LED is nominally used to indicate to the user
Igor Murashkin8aa2a112013-12-09 12:06:17 -080014746that the camera is powered on and may be streaming images back to the
Igor Murashkin0b080452013-12-27 15:30:25 -080014747Application Processor.<wbr/> In certain rare circumstances,<wbr/> the OS may
Igor Murashkin8aa2a112013-12-09 12:06:17 -080014748disable this when video is processed locally and not transmitted to
Igor Murashkin0b080452013-12-27 15:30:25 -080014749any untrusted applications.<wbr/></p>
14750<p>In particular,<wbr/> the LED <em>must</em> always be on when the data could be
14751transmitted off the device.<wbr/> The LED <em>should</em> always be on whenever
14752data is stored locally on the device.<wbr/></p>
Igor Murashkin8aa2a112013-12-09 12:06:17 -080014753<p>The LED <em>may</em> be off if a trusted application is using the data that
Igor Murashkin0b080452013-12-27 15:30:25 -080014754doesn't violate the above rules.<wbr/></p>
Igor Murashkinc469f7d2013-04-23 14:31:02 -070014755 </td>
14756
14757 <td class="entry_units">
14758 </td>
14759
14760 <td class="entry_range">
14761 </td>
14762
Igor Murashkinc469f7d2013-04-23 14:31:02 -070014763 <td class="entry_tags">
14764 </td>
14765
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014766 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080014767
14768
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014769 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
14770 <!-- end of entry -->
Igor Murashkinc469f7d2013-04-23 14:31:02 -070014771
14772
14773
14774 <!-- end of kind -->
14775 </tbody>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014776 <tr><td colspan="6" class="kind">dynamic</td></tr>
Igor Murashkinc469f7d2013-04-23 14:31:02 -070014777
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070014778 <thead class="entries_header">
Igor Murashkinc469f7d2013-04-23 14:31:02 -070014779 <tr>
14780 <th class="th_name">Property Name</th>
14781 <th class="th_type">Type</th>
14782 <th class="th_description">Description</th>
14783 <th class="th_units">Units</th>
14784 <th class="th_range">Range</th>
Igor Murashkinc469f7d2013-04-23 14:31:02 -070014785 <th class="th_tags">Tags</th>
14786 </tr>
14787 </thead>
14788
14789 <tbody>
14790
14791
14792
14793
14794
14795
14796
14797
14798
14799
14800 <tr class="entry" id="dynamic_android.led.transmit">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080014801 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -080014802 android.<wbr/>led.<wbr/>transmit
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080014803 </td>
Igor Murashkinc469f7d2013-04-23 14:31:02 -070014804 <td class="entry_type">
14805 <span class="entry_type_name entry_type_name_enum">byte</span>
14806
Igor Murashkinb8dc8812013-07-17 16:29:34 -070014807 <span class="entry_type_visibility"> [hidden as boolean]</span>
Igor Murashkinc469f7d2013-04-23 14:31:02 -070014808
14809 <ul class="entry_type_enum">
14810 <li>
14811 <span class="entry_type_enum_name">OFF</span>
14812 </li>
14813 <li>
14814 <span class="entry_type_enum_name">ON</span>
14815 </li>
14816 </ul>
14817
14818 </td> <!-- entry_type -->
14819
14820 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080014821 <p>This LED is nominally used to indicate to the user
Igor Murashkin8aa2a112013-12-09 12:06:17 -080014822that the camera is powered on and may be streaming images back to the
Igor Murashkin0b080452013-12-27 15:30:25 -080014823Application Processor.<wbr/> In certain rare circumstances,<wbr/> the OS may
Igor Murashkin8aa2a112013-12-09 12:06:17 -080014824disable this when video is processed locally and not transmitted to
Igor Murashkin0b080452013-12-27 15:30:25 -080014825any untrusted applications.<wbr/></p>
14826<p>In particular,<wbr/> the LED <em>must</em> always be on when the data could be
14827transmitted off the device.<wbr/> The LED <em>should</em> always be on whenever
14828data is stored locally on the device.<wbr/></p>
Igor Murashkin8aa2a112013-12-09 12:06:17 -080014829<p>The LED <em>may</em> be off if a trusted application is using the data that
Igor Murashkin0b080452013-12-27 15:30:25 -080014830doesn't violate the above rules.<wbr/></p>
Igor Murashkinc469f7d2013-04-23 14:31:02 -070014831 </td>
14832
14833 <td class="entry_units">
14834 </td>
14835
14836 <td class="entry_range">
14837 </td>
14838
Igor Murashkinc469f7d2013-04-23 14:31:02 -070014839 <td class="entry_tags">
14840 </td>
14841
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014842 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080014843
14844
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014845 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
14846 <!-- end of entry -->
Igor Murashkinc469f7d2013-04-23 14:31:02 -070014847
14848
14849
14850 <!-- end of kind -->
14851 </tbody>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014852 <tr><td colspan="6" class="kind">static</td></tr>
Igor Murashkinc469f7d2013-04-23 14:31:02 -070014853
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070014854 <thead class="entries_header">
Igor Murashkinc469f7d2013-04-23 14:31:02 -070014855 <tr>
14856 <th class="th_name">Property Name</th>
14857 <th class="th_type">Type</th>
14858 <th class="th_description">Description</th>
14859 <th class="th_units">Units</th>
14860 <th class="th_range">Range</th>
Igor Murashkinc469f7d2013-04-23 14:31:02 -070014861 <th class="th_tags">Tags</th>
14862 </tr>
14863 </thead>
14864
14865 <tbody>
14866
14867
14868
14869
14870
14871
14872
14873
14874
14875
14876 <tr class="entry" id="static_android.led.availableLeds">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080014877 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -080014878 android.<wbr/>led.<wbr/>available<wbr/>Leds
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080014879 </td>
Igor Murashkinc469f7d2013-04-23 14:31:02 -070014880 <td class="entry_type">
14881 <span class="entry_type_name entry_type_name_enum">byte</span>
14882 <span class="entry_type_container">x</span>
14883
14884 <span class="entry_type_array">
14885 n
14886 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070014887 <span class="entry_type_visibility"> [hidden]</span>
Igor Murashkinc469f7d2013-04-23 14:31:02 -070014888
14889 <ul class="entry_type_enum">
14890 <li>
14891 <span class="entry_type_enum_name">TRANSMIT</span>
Igor Murashkina10351a2014-01-15 17:05:22 -080014892 <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 -070014893 </li>
14894 </ul>
14895
14896 </td> <!-- entry_type -->
14897
14898 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080014899 <p>A list of camera LEDs that are available on this system.<wbr/></p>
Igor Murashkinc469f7d2013-04-23 14:31:02 -070014900 </td>
14901
14902 <td class="entry_units">
14903 </td>
14904
14905 <td class="entry_range">
14906 </td>
14907
Igor Murashkinc469f7d2013-04-23 14:31:02 -070014908 <td class="entry_tags">
14909 </td>
14910
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014911 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080014912
14913
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014914 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
14915 <!-- end of entry -->
Igor Murashkinc469f7d2013-04-23 14:31:02 -070014916
14917
14918
14919 <!-- end of kind -->
14920 </tbody>
14921
14922 <!-- end of section -->
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014923 <tr><td colspan="6" id="section_info" class="section">info</td></tr>
Igor Murashkin38b8cae2013-05-23 16:38:59 -070014924
14925
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014926 <tr><td colspan="6" class="kind">static</td></tr>
Igor Murashkin38b8cae2013-05-23 16:38:59 -070014927
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070014928 <thead class="entries_header">
Igor Murashkin38b8cae2013-05-23 16:38:59 -070014929 <tr>
14930 <th class="th_name">Property Name</th>
14931 <th class="th_type">Type</th>
14932 <th class="th_description">Description</th>
14933 <th class="th_units">Units</th>
14934 <th class="th_range">Range</th>
Igor Murashkin38b8cae2013-05-23 16:38:59 -070014935 <th class="th_tags">Tags</th>
14936 </tr>
14937 </thead>
14938
14939 <tbody>
14940
14941
14942
14943
14944
14945
14946
14947
14948
14949
14950 <tr class="entry" id="static_android.info.supportedHardwareLevel">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080014951 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -080014952 android.<wbr/>info.<wbr/>supported<wbr/>Hardware<wbr/>Level
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080014953 </td>
Igor Murashkin38b8cae2013-05-23 16:38:59 -070014954 <td class="entry_type">
14955 <span class="entry_type_name entry_type_name_enum">byte</span>
14956
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070014957 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin38b8cae2013-05-23 16:38:59 -070014958
14959 <ul class="entry_type_enum">
14960 <li>
14961 <span class="entry_type_enum_name">LIMITED</span>
14962 </li>
14963 <li>
14964 <span class="entry_type_enum_name">FULL</span>
14965 </li>
14966 </ul>
14967
14968 </td> <!-- entry_type -->
14969
14970 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080014971 <p>The camera 3 HAL device can implement one of two possible
14972operational modes; limited and full.<wbr/> Full support is
14973expected from new higher-end devices.<wbr/> Limited mode has
Igor Murashkin8aa2a112013-12-09 12:06:17 -080014974hardware requirements roughly in line with those for a
Igor Murashkin0b080452013-12-27 15:30:25 -080014975camera HAL device v1 implementation,<wbr/> and is expected from
14976older or inexpensive devices.<wbr/> Full is a strict superset of
14977limited,<wbr/> and they share the same essential operational flow.<wbr/></p>
14978<p>For full details refer to "S3.<wbr/> Operational Modes" in camera3.<wbr/>h</p>
Igor Murashkin38b8cae2013-05-23 16:38:59 -070014979 </td>
14980
14981 <td class="entry_units">
14982 </td>
14983
14984 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -080014985 <p>Optional.<wbr/> Default value is LIMITED.<wbr/></p>
Igor Murashkin38b8cae2013-05-23 16:38:59 -070014986 </td>
14987
Igor Murashkin38b8cae2013-05-23 16:38:59 -070014988 <td class="entry_tags">
14989 </td>
14990
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014991 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080014992
14993
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014994 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
14995 <!-- end of entry -->
Igor Murashkin38b8cae2013-05-23 16:38:59 -070014996
14997
14998
14999 <!-- end of kind -->
15000 </tbody>
15001
15002 <!-- end of section -->
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080015003 <tr><td colspan="6" id="section_blackLevel" class="section">blackLevel</td></tr>
Zhijun He69fc0ea2013-07-17 09:42:58 -070015004
15005
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080015006 <tr><td colspan="6" class="kind">controls</td></tr>
Zhijun He69fc0ea2013-07-17 09:42:58 -070015007
15008 <thead class="entries_header">
15009 <tr>
15010 <th class="th_name">Property Name</th>
15011 <th class="th_type">Type</th>
15012 <th class="th_description">Description</th>
15013 <th class="th_units">Units</th>
15014 <th class="th_range">Range</th>
Zhijun He69fc0ea2013-07-17 09:42:58 -070015015 <th class="th_tags">Tags</th>
15016 </tr>
15017 </thead>
15018
15019 <tbody>
15020
15021
15022
15023
15024
15025
15026
15027
15028
15029
15030 <tr class="entry" id="controls_android.blackLevel.lock">
Eino-Ville Talvala7796cfe2013-12-26 13:16:54 -080015031 <td class="entry_name" rowspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -080015032 android.<wbr/>black<wbr/>Level.<wbr/>lock
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080015033 </td>
Zhijun He69fc0ea2013-07-17 09:42:58 -070015034 <td class="entry_type">
15035 <span class="entry_type_name entry_type_name_enum">byte</span>
15036
Igor Murashkinb8dc8812013-07-17 16:29:34 -070015037 <span class="entry_type_visibility"> [public as boolean]</span>
Zhijun He69fc0ea2013-07-17 09:42:58 -070015038
15039 <ul class="entry_type_enum">
15040 <li>
15041 <span class="entry_type_enum_name">OFF</span>
15042 </li>
15043 <li>
15044 <span class="entry_type_enum_name">ON</span>
15045 </li>
15046 </ul>
15047
15048 </td> <!-- entry_type -->
15049
15050 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080015051 <p>Whether black-level compensation is locked
15052to its current values,<wbr/> or is free to vary.<wbr/></p>
Zhijun He69fc0ea2013-07-17 09:42:58 -070015053 </td>
15054
15055 <td class="entry_units">
15056 </td>
15057
15058 <td class="entry_range">
15059 </td>
15060
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080015061 <td class="entry_tags">
15062 <ul class="entry_tags">
15063 <li><a href="#tag_HAL2">HAL2</a></li>
15064 </ul>
15065 </td>
15066
15067 </tr>
15068 <tr class="entries_header">
15069 <th class="th_details" colspan="5">Details</th>
15070 </tr>
15071 <tr class="entry_cont">
15072 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -080015073 <p>When set to ON,<wbr/> the values used for black-level
Eino-Ville Talvala7796cfe2013-12-26 13:16:54 -080015074compensation will not change until the lock is set to
Igor Murashkin0b080452013-12-27 15:30:25 -080015075OFF.<wbr/></p>
Igor Murashkin8aa2a112013-12-09 12:06:17 -080015076<p>Since changes to certain capture parameters (such as
15077exposure time) may require resetting of black level
Igor Murashkin0b080452013-12-27 15:30:25 -080015078compensation,<wbr/> the camera device must report whether setting
Eino-Ville Talvala7796cfe2013-12-26 13:16:54 -080015079the black level lock was successful in the output result
Igor Murashkin0b080452013-12-27 15:30:25 -080015080metadata.<wbr/></p>
15081<p>For example,<wbr/> if a sequence of requests is as follows:</p>
Igor Murashkin8aa2a112013-12-09 12:06:17 -080015082<ul>
Igor Murashkin0b080452013-12-27 15:30:25 -080015083<li>Request 1: Exposure = 10ms,<wbr/> Black level lock = OFF</li>
15084<li>Request 2: Exposure = 10ms,<wbr/> Black level lock = ON</li>
15085<li>Request 3: Exposure = 10ms,<wbr/> Black level lock = ON</li>
15086<li>Request 4: Exposure = 20ms,<wbr/> Black level lock = ON</li>
15087<li>Request 5: Exposure = 20ms,<wbr/> Black level lock = ON</li>
15088<li>Request 6: Exposure = 20ms,<wbr/> Black level lock = ON</li>
Igor Murashkin8aa2a112013-12-09 12:06:17 -080015089</ul>
Eino-Ville Talvala7796cfe2013-12-26 13:16:54 -080015090<p>And the exposure change in Request 4 requires the camera
Igor Murashkin0b080452013-12-27 15:30:25 -080015091device to reset the black level offsets,<wbr/> then the output
Eino-Ville Talvala7796cfe2013-12-26 13:16:54 -080015092result metadata is expected to be:</p>
Igor Murashkin8aa2a112013-12-09 12:06:17 -080015093<ul>
Igor Murashkin0b080452013-12-27 15:30:25 -080015094<li>Result 1: Exposure = 10ms,<wbr/> Black level lock = OFF</li>
15095<li>Result 2: Exposure = 10ms,<wbr/> Black level lock = ON</li>
15096<li>Result 3: Exposure = 10ms,<wbr/> Black level lock = ON</li>
15097<li>Result 4: Exposure = 20ms,<wbr/> Black level lock = OFF</li>
15098<li>Result 5: Exposure = 20ms,<wbr/> Black level lock = ON</li>
15099<li>Result 6: Exposure = 20ms,<wbr/> Black level lock = ON</li>
Igor Murashkin8aa2a112013-12-09 12:06:17 -080015100</ul>
Igor Murashkin0b080452013-12-27 15:30:25 -080015101<p>This indicates to the application that on frame 4,<wbr/> black
15102levels were reset due to exposure value changes,<wbr/> and pixel
15103values may not be consistent across captures.<wbr/></p>
Eino-Ville Talvala7796cfe2013-12-26 13:16:54 -080015104<p>The camera device will maintain the lock to the extent
Igor Murashkin0b080452013-12-27 15:30:25 -080015105possible,<wbr/> only overriding the lock to OFF when changes to
Eino-Ville Talvala7796cfe2013-12-26 13:16:54 -080015106other request parameters require a black level recalculation
Igor Murashkin0b080452013-12-27 15:30:25 -080015107or reset.<wbr/></p>
Zhijun He69fc0ea2013-07-17 09:42:58 -070015108 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080015109 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080015110
Eino-Ville Talvala7796cfe2013-12-26 13:16:54 -080015111 <tr class="entries_header">
15112 <th class="th_details" colspan="5">HAL Implementation Details</th>
15113 </tr>
15114 <tr class="entry_cont">
15115 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -080015116 <p>If for some reason black level locking is no longer possible
15117(for example,<wbr/> the analog gain has changed,<wbr/> which forces
15118black level offsets to be recalculated),<wbr/> then the HAL must
Eino-Ville Talvala7796cfe2013-12-26 13:16:54 -080015119override this request (and it must report 'OFF' when this
15120does happen) until the next capture for which locking is
Igor Murashkin0b080452013-12-27 15:30:25 -080015121possible again.<wbr/></p>
Eino-Ville Talvala7796cfe2013-12-26 13:16:54 -080015122 </td>
15123 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080015124
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080015125 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
15126 <!-- end of entry -->
Zhijun He69fc0ea2013-07-17 09:42:58 -070015127
15128
15129
15130 <!-- end of kind -->
15131 </tbody>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080015132 <tr><td colspan="6" class="kind">dynamic</td></tr>
Zhijun He69fc0ea2013-07-17 09:42:58 -070015133
15134 <thead class="entries_header">
15135 <tr>
15136 <th class="th_name">Property Name</th>
15137 <th class="th_type">Type</th>
15138 <th class="th_description">Description</th>
15139 <th class="th_units">Units</th>
15140 <th class="th_range">Range</th>
Zhijun He69fc0ea2013-07-17 09:42:58 -070015141 <th class="th_tags">Tags</th>
15142 </tr>
15143 </thead>
15144
15145 <tbody>
15146
15147
15148
15149
15150
15151
15152
15153
15154
15155
15156 <tr class="entry" id="dynamic_android.blackLevel.lock">
Eino-Ville Talvala7796cfe2013-12-26 13:16:54 -080015157 <td class="entry_name" rowspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -080015158 android.<wbr/>black<wbr/>Level.<wbr/>lock
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080015159 </td>
Zhijun He69fc0ea2013-07-17 09:42:58 -070015160 <td class="entry_type">
15161 <span class="entry_type_name entry_type_name_enum">byte</span>
15162
Igor Murashkinb8dc8812013-07-17 16:29:34 -070015163 <span class="entry_type_visibility"> [public as boolean]</span>
Zhijun He69fc0ea2013-07-17 09:42:58 -070015164
15165 <ul class="entry_type_enum">
15166 <li>
15167 <span class="entry_type_enum_name">OFF</span>
15168 </li>
15169 <li>
15170 <span class="entry_type_enum_name">ON</span>
15171 </li>
15172 </ul>
15173
15174 </td> <!-- entry_type -->
15175
15176 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080015177 <p>Whether black-level compensation is locked
15178to its current values,<wbr/> or is free to vary.<wbr/></p>
Zhijun He69fc0ea2013-07-17 09:42:58 -070015179 </td>
15180
15181 <td class="entry_units">
15182 </td>
15183
15184 <td class="entry_range">
15185 </td>
15186
Zhijun He69fc0ea2013-07-17 09:42:58 -070015187 <td class="entry_tags">
15188 <ul class="entry_tags">
15189 <li><a href="#tag_HAL2">HAL2</a></li>
15190 </ul>
15191 </td>
15192
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080015193 </tr>
15194 <tr class="entries_header">
15195 <th class="th_details" colspan="5">Details</th>
15196 </tr>
15197 <tr class="entry_cont">
15198 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -080015199 <p>Whether the black level offset was locked for this frame.<wbr/> Should be
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -080015200ON 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 -080015201a change in other capture settings forced the camera device to
Igor Murashkin0b080452013-12-27 15:30:25 -080015202perform a black level reset.<wbr/></p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080015203 </td>
15204 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080015205
Eino-Ville Talvala7796cfe2013-12-26 13:16:54 -080015206 <tr class="entries_header">
15207 <th class="th_details" colspan="5">HAL Implementation Details</th>
15208 </tr>
15209 <tr class="entry_cont">
15210 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -080015211 <p>If for some reason black level locking is no longer possible
15212(for example,<wbr/> the analog gain has changed,<wbr/> which forces
15213black level offsets to be recalculated),<wbr/> then the HAL must
Eino-Ville Talvala7796cfe2013-12-26 13:16:54 -080015214override this request (and it must report 'OFF' when this
15215does happen) until the next capture for which locking is
Igor Murashkin0b080452013-12-27 15:30:25 -080015216possible again.<wbr/></p>
Eino-Ville Talvala7796cfe2013-12-26 13:16:54 -080015217 </td>
15218 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080015219
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080015220 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
15221 <!-- end of entry -->
Zhijun He69fc0ea2013-07-17 09:42:58 -070015222
15223
15224
15225 <!-- end of kind -->
15226 </tbody>
15227
15228 <!-- end of section -->
Igor Murashkin5c1fc682014-01-16 17:51:36 -080015229 <tr><td colspan="6" id="section_sync" class="section">sync</td></tr>
15230
15231
15232 <tr><td colspan="6" class="kind">dynamic</td></tr>
15233
15234 <thead class="entries_header">
15235 <tr>
15236 <th class="th_name">Property Name</th>
15237 <th class="th_type">Type</th>
15238 <th class="th_description">Description</th>
15239 <th class="th_units">Units</th>
15240 <th class="th_range">Range</th>
15241 <th class="th_tags">Tags</th>
15242 </tr>
15243 </thead>
15244
15245 <tbody>
15246
15247
15248
15249
15250
15251
15252
15253
15254
15255
15256 <tr class="entry" id="dynamic_android.sync.frameNumber">
15257 <td class="entry_name" rowspan="5">
15258 android.<wbr/>sync.<wbr/>frame<wbr/>Number
15259 </td>
15260 <td class="entry_type">
15261 <span class="entry_type_name entry_type_name_enum">int64</span>
15262
15263 <span class="entry_type_visibility"> [hidden]</span>
15264
15265 <ul class="entry_type_enum">
15266 <li>
15267 <span class="entry_type_enum_name">CONVERGING</span>
15268 <span class="entry_type_enum_value">-1</span>
15269 <span class="entry_type_enum_notes"><p>The current result is not yet fully synchronized to any request.<wbr/>
15270Synchronization is in progress,<wbr/> and reading metadata from this
15271result may include a mix of data that have taken effect since the
15272last synchronization time.<wbr/></p>
15273<p>In some future result,<wbr/> within <a href="#static_android.sync.maxLatency">android.<wbr/>sync.<wbr/>max<wbr/>Latency</a> frames,<wbr/>
15274this value will update to the actual frame number frame number
15275the result is guaranteed to be synchronized to (as long as the
15276request settings remain constant).<wbr/></p></span>
15277 </li>
15278 <li>
15279 <span class="entry_type_enum_name">UNKNOWN</span>
15280 <span class="entry_type_enum_value">-2</span>
15281 <span class="entry_type_enum_notes"><p>The current result's synchronization status is unknown.<wbr/> The
15282result may have already converged,<wbr/> or it may be in progress.<wbr/>
15283Reading from this result may include some mix of settings from
15284past requests.<wbr/></p>
15285<p>After a settings change,<wbr/> the new settings will eventually all
15286take effect for the output buffers and results.<wbr/> However,<wbr/> this
15287value will not change when that happens.<wbr/> Altering settings
15288rapidly may provide outcomes using mixes of settings from recent
15289requests.<wbr/></p>
15290<p>This value is intended primarily for backwards compatibility with
15291the older camera implementations (for android.<wbr/>hardware.<wbr/>Camera).<wbr/></p></span>
15292 </li>
15293 </ul>
15294
15295 </td> <!-- entry_type -->
15296
15297 <td class="entry_description">
15298 <p>The frame number corresponding to the last request
15299with which the output result (metadata + buffers) has been fully
15300synchronized.<wbr/></p>
15301 </td>
15302
15303 <td class="entry_units">
15304 </td>
15305
15306 <td class="entry_range">
15307 <p>Either a non-negative value corresponding to a
15308<code>frame_<wbr/>number</code>,<wbr/> or one of the two enums (CONVERGING /<wbr/> UNKNOWN).<wbr/></p>
15309 </td>
15310
15311 <td class="entry_tags">
15312 <ul class="entry_tags">
15313 <li><a href="#tag_LIMITED">LIMITED</a></li>
15314 </ul>
15315 </td>
15316
15317 </tr>
15318 <tr class="entries_header">
15319 <th class="th_details" colspan="5">Details</th>
15320 </tr>
15321 <tr class="entry_cont">
15322 <td class="entry_details" colspan="5">
15323 <p>When a request is submitted to the camera device,<wbr/> there is usually a
15324delay of several frames before the controls get applied.<wbr/> A camera
15325device may either choose to account for this delay by implementing a
15326pipeline and carefully submit well-timed atomic control updates,<wbr/> or
15327it may start streaming control changes that span over several frame
15328boundaries.<wbr/></p>
15329<p>In the latter case,<wbr/> whenever a request's settings change relative to
15330the previous submitted request,<wbr/> the full set of changes may take
15331multiple frame durations to fully take effect.<wbr/> Some settings may
15332take effect sooner (in less frame durations) than others.<wbr/></p>
15333<p>While a set of control changes are being propagated,<wbr/> this value
15334will be CONVERGING.<wbr/></p>
15335<p>Once it is fully known that a set of control changes have been
15336finished propagating,<wbr/> and the resulting updated control settings
15337have been read back by the camera device,<wbr/> this value will be set
15338to a non-negative frame number (corresponding to the request to
15339which the results have synchronized to).<wbr/></p>
15340<p>Older camera device implementations may not have a way to detect
15341when all camera controls have been applied,<wbr/> and will always set this
15342value to UNKNOWN.<wbr/></p>
15343<p>FULL capability devices will always have this value set to the
15344frame number of the request corresponding to this result.<wbr/></p>
15345<p><em>Further details</em>:</p>
15346<ul>
15347<li>Whenever a request differs from the last request,<wbr/> any future
15348results not yet returned may have this value set to CONVERGING (this
15349could include any in-progress captures not yet returned by the camera
15350device,<wbr/> for more details see pipeline considerations below).<wbr/></li>
15351<li>Submitting a series of multiple requests that differ from the
15352previous request (e.<wbr/>g.<wbr/> r1,<wbr/> r2,<wbr/> r3 s.<wbr/>t.<wbr/> r1 != r2 != r3)
15353moves the new synchronization frame to the last non-repeating
15354request (using the smallest frame number from the contiguous list of
15355repeating requests).<wbr/></li>
15356<li>Submitting the same request repeatedly will not change this value
15357to CONVERGING,<wbr/> if it was already a non-negative value.<wbr/></li>
15358<li>When this value changes to non-negative,<wbr/> that means that all of the
15359metadata controls from the request have been applied,<wbr/> all of the
15360metadata controls from the camera device have been read to the
15361updated values (into the result),<wbr/> and all of the graphics buffers
15362corresponding to this result are also synchronized to the request.<wbr/></li>
15363</ul>
15364<p><em>Pipeline considerations</em>:</p>
15365<p>Submitting a request with updated controls relative to the previously
15366submitted requests may also invalidate the synchronization state
15367of all the results corresponding to currently in-flight requests.<wbr/></p>
15368<p>In other words,<wbr/> results for this current request and up to
15369<a href="#static_android.request.pipelineMaxDepth">android.<wbr/>request.<wbr/>pipeline<wbr/>Max<wbr/>Depth</a> prior requests may have their
15370<a href="#dynamic_android.sync.frameNumber">android.<wbr/>sync.<wbr/>frame<wbr/>Number</a> change to CONVERGING.<wbr/></p>
15371 </td>
15372 </tr>
15373
15374 <tr class="entries_header">
15375 <th class="th_details" colspan="5">HAL Implementation Details</th>
15376 </tr>
15377 <tr class="entry_cont">
15378 <td class="entry_details" colspan="5">
15379 <p>Using UNKNOWN here is illegal unless android.<wbr/>sync.<wbr/>max<wbr/>Latency
15380is also UNKNOWN.<wbr/></p>
15381<p>FULL capability devices should simply set this value to the
15382<code>frame_<wbr/>number</code> of the request this result corresponds to.<wbr/></p>
15383 </td>
15384 </tr>
15385
15386 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
15387 <!-- end of entry -->
15388
15389
15390
15391 <!-- end of kind -->
15392 </tbody>
15393 <tr><td colspan="6" class="kind">static</td></tr>
15394
15395 <thead class="entries_header">
15396 <tr>
15397 <th class="th_name">Property Name</th>
15398 <th class="th_type">Type</th>
15399 <th class="th_description">Description</th>
15400 <th class="th_units">Units</th>
15401 <th class="th_range">Range</th>
15402 <th class="th_tags">Tags</th>
15403 </tr>
15404 </thead>
15405
15406 <tbody>
15407
15408
15409
15410
15411
15412
15413
15414
15415
15416
15417 <tr class="entry" id="static_android.sync.maxLatency">
15418 <td class="entry_name" rowspan="5">
15419 android.<wbr/>sync.<wbr/>max<wbr/>Latency
15420 </td>
15421 <td class="entry_type">
15422 <span class="entry_type_name entry_type_name_enum">int32</span>
15423
15424 <span class="entry_type_visibility"> [public]</span>
15425
15426 <ul class="entry_type_enum">
15427 <li>
15428 <span class="entry_type_enum_name">PER_FRAME_CONTROL</span>
15429 <span class="entry_type_enum_value">0</span>
15430 <span class="entry_type_enum_notes"><p>Every frame has the requests immediately applied.<wbr/>
15431(and furthermore for all results,<wbr/>
15432<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>
15433<p>Changing controls over multiple requests one after another will
15434produce results that have those controls applied atomically
15435each frame.<wbr/></p>
15436<p>All FULL capability devices will have this as their maxLatency.<wbr/></p></span>
15437 </li>
15438 <li>
15439 <span class="entry_type_enum_name">UNKNOWN</span>
15440 <span class="entry_type_enum_value">-1</span>
15441 <span class="entry_type_enum_notes"><p>Each new frame has some subset (potentially the entire set)
15442of the past requests applied to the camera settings.<wbr/></p>
15443<p>By submitting a series of identical requests,<wbr/> the camera device
15444will eventually have the camera settings applied,<wbr/> but it is
15445unknown when that exact point will be.<wbr/></p></span>
15446 </li>
15447 </ul>
15448
15449 </td> <!-- entry_type -->
15450
15451 <td class="entry_description">
15452 <p>The maximum number of frames that can occur after a request
15453(different than the previous) has been submitted,<wbr/> and before the
15454result's state becomes synchronized (by setting
15455<a href="#dynamic_android.sync.frameNumber">android.<wbr/>sync.<wbr/>frame<wbr/>Number</a> to a non-negative value).<wbr/></p>
15456 </td>
15457
15458 <td class="entry_units">
15459 number of processed requests
15460 </td>
15461
15462 <td class="entry_range">
15463 <p>&gt;= -1</p>
15464 </td>
15465
15466 <td class="entry_tags">
15467 <ul class="entry_tags">
15468 <li><a href="#tag_LIMITED">LIMITED</a></li>
15469 </ul>
15470 </td>
15471
15472 </tr>
15473 <tr class="entries_header">
15474 <th class="th_details" colspan="5">Details</th>
15475 </tr>
15476 <tr class="entry_cont">
15477 <td class="entry_details" colspan="5">
15478 <p>This defines the maximum distance (in number of metadata results),<wbr/>
15479between <a href="#dynamic_android.sync.frameNumber">android.<wbr/>sync.<wbr/>frame<wbr/>Number</a> and the equivalent
15480<a href="#controls_android.request.frameCount">android.<wbr/>request.<wbr/>frame<wbr/>Count</a>.<wbr/></p>
15481<p>In other words this acts as an upper boundary for how many frames
15482must occur before the camera device knows for a fact that the new
15483submitted camera settings have been applied in outgoing frames.<wbr/></p>
15484<p>For example if the distance was 2,<wbr/></p>
15485<pre><code>initial request = X (repeating)
15486request1 = X
15487request2 = Y
15488request3 = Y
15489request4 = Y
15490
15491where requestN has frameNumber N,<wbr/> and the first of the repeating
15492initial request's has frameNumber F (and F &lt; 1).<wbr/>
15493
15494initial result = X' + { <a href="#dynamic_android.sync.frameNumber">android.<wbr/>sync.<wbr/>frame<wbr/>Number</a> == F }
15495result1 = X' + { <a href="#dynamic_android.sync.frameNumber">android.<wbr/>sync.<wbr/>frame<wbr/>Number</a> == F }
15496result2 = X' + { <a href="#dynamic_android.sync.frameNumber">android.<wbr/>sync.<wbr/>frame<wbr/>Number</a> == CONVERGING }
15497result3 = X' + { <a href="#dynamic_android.sync.frameNumber">android.<wbr/>sync.<wbr/>frame<wbr/>Number</a> == CONVERGING }
15498result4 = X' + { <a href="#dynamic_android.sync.frameNumber">android.<wbr/>sync.<wbr/>frame<wbr/>Number</a> == 2 }
15499
15500where resultN has frameNumber N.<wbr/>
15501</code></pre>
15502<p>Since <code>result4</code> has a <code>frameNumber == 4</code> and
15503<code><a href="#dynamic_android.sync.frameNumber">android.<wbr/>sync.<wbr/>frame<wbr/>Number</a> == 2</code>,<wbr/> the distance is clearly
15504<code>4 - 2 = 2</code>.<wbr/></p>
15505 </td>
15506 </tr>
15507
15508 <tr class="entries_header">
15509 <th class="th_details" colspan="5">HAL Implementation Details</th>
15510 </tr>
15511 <tr class="entry_cont">
15512 <td class="entry_details" colspan="5">
15513 <p>Use <code>frame_<wbr/>count</code> from camera3_<wbr/>request_<wbr/>t instead of
15514<a href="#controls_android.request.frameCount">android.<wbr/>request.<wbr/>frame<wbr/>Count</a>.<wbr/></p>
15515<p>LIMITED devices are strongly encouraged to use a non-negative
15516value.<wbr/> If UNKNOWN is used here then app developers do not have a way
15517to know when sensor settings have been applied.<wbr/></p>
15518 </td>
15519 </tr>
15520
15521 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
15522 <!-- end of entry -->
15523
15524
15525
15526 <!-- end of kind -->
15527 </tbody>
15528
15529 <!-- end of section -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080015530<!-- </namespace> -->
15531 </table>
15532
15533 <div class="tags" id="tag_index">
15534 <h2>Tags</h2>
15535 <ul>
15536 <li id="tag_AWB">AWB -
15537 Needed for auto white balance
15538
15539 <ul class="tags_entries">
15540 <li><a href="#controls_android.control.awbMode">android.control.awbMode</a> (controls)</li>
15541 </ul>
15542 </li> <!-- tag_AWB -->
15543 <li id="tag_BC">BC -
15544 Needed for backwards compatibility with old Java API
15545
15546 <ul class="tags_entries">
Eino-Ville Talvala19ce2c12013-12-30 12:03:45 -080015547 <li><a href="#controls_android.control.aeAntibandingMode">android.control.aeAntibandingMode</a> (controls)</li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080015548 <li><a href="#controls_android.control.aeExposureCompensation">android.control.aeExposureCompensation</a> (controls)</li>
15549 <li><a href="#controls_android.control.aeLock">android.control.aeLock</a> (controls)</li>
15550 <li><a href="#controls_android.control.aeMode">android.control.aeMode</a> (controls)</li>
15551 <li><a href="#controls_android.control.aeRegions">android.control.aeRegions</a> (controls)</li>
15552 <li><a href="#controls_android.control.aeTargetFpsRange">android.control.aeTargetFpsRange</a> (controls)</li>
Eino-Ville Talvala3b4383a2013-03-18 09:42:48 -070015553 <li><a href="#controls_android.control.aePrecaptureTrigger">android.control.aePrecaptureTrigger</a> (controls)</li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080015554 <li><a href="#controls_android.control.afMode">android.control.afMode</a> (controls)</li>
15555 <li><a href="#controls_android.control.afRegions">android.control.afRegions</a> (controls)</li>
Eino-Ville Talvala3b4383a2013-03-18 09:42:48 -070015556 <li><a href="#controls_android.control.afTrigger">android.control.afTrigger</a> (controls)</li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080015557 <li><a href="#controls_android.control.awbLock">android.control.awbLock</a> (controls)</li>
15558 <li><a href="#controls_android.control.awbMode">android.control.awbMode</a> (controls)</li>
15559 <li><a href="#controls_android.control.awbRegions">android.control.awbRegions</a> (controls)</li>
15560 <li><a href="#controls_android.control.captureIntent">android.control.captureIntent</a> (controls)</li>
15561 <li><a href="#controls_android.control.effectMode">android.control.effectMode</a> (controls)</li>
15562 <li><a href="#controls_android.control.mode">android.control.mode</a> (controls)</li>
15563 <li><a href="#controls_android.control.sceneMode">android.control.sceneMode</a> (controls)</li>
15564 <li><a href="#controls_android.control.videoStabilizationMode">android.control.videoStabilizationMode</a> (controls)</li>
Eino-Ville Talvala9fa0d902014-01-08 16:16:53 -080015565 <li><a href="#static_android.control.aeAvailableModes">android.control.aeAvailableModes</a> (static)</li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080015566 <li><a href="#static_android.control.aeCompensationRange">android.control.aeCompensationRange</a> (static)</li>
15567 <li><a href="#static_android.control.aeCompensationStep">android.control.aeCompensationStep</a> (static)</li>
15568 <li><a href="#static_android.control.afAvailableModes">android.control.afAvailableModes</a> (static)</li>
15569 <li><a href="#static_android.control.availableEffects">android.control.availableEffects</a> (static)</li>
15570 <li><a href="#static_android.control.availableSceneModes">android.control.availableSceneModes</a> (static)</li>
15571 <li><a href="#static_android.control.availableVideoStabilizationModes">android.control.availableVideoStabilizationModes</a> (static)</li>
15572 <li><a href="#static_android.control.awbAvailableModes">android.control.awbAvailableModes</a> (static)</li>
15573 <li><a href="#static_android.control.maxRegions">android.control.maxRegions</a> (static)</li>
15574 <li><a href="#static_android.control.sceneModeOverrides">android.control.sceneModeOverrides</a> (static)</li>
15575 <li><a href="#controls_android.flash.mode">android.flash.mode</a> (controls)</li>
15576 <li><a href="#static_android.flash.info.available">android.flash.info.available</a> (static)</li>
15577 <li><a href="#controls_android.jpeg.gpsCoordinates">android.jpeg.gpsCoordinates</a> (controls)</li>
15578 <li><a href="#controls_android.jpeg.gpsProcessingMethod">android.jpeg.gpsProcessingMethod</a> (controls)</li>
15579 <li><a href="#controls_android.jpeg.gpsTimestamp">android.jpeg.gpsTimestamp</a> (controls)</li>
15580 <li><a href="#controls_android.jpeg.orientation">android.jpeg.orientation</a> (controls)</li>
15581 <li><a href="#controls_android.jpeg.quality">android.jpeg.quality</a> (controls)</li>
15582 <li><a href="#controls_android.jpeg.thumbnailQuality">android.jpeg.thumbnailQuality</a> (controls)</li>
15583 <li><a href="#controls_android.jpeg.thumbnailSize">android.jpeg.thumbnailSize</a> (controls)</li>
15584 <li><a href="#static_android.jpeg.availableThumbnailSizes">android.jpeg.availableThumbnailSizes</a> (static)</li>
15585 <li><a href="#controls_android.lens.focusDistance">android.lens.focusDistance</a> (controls)</li>
15586 <li><a href="#static_android.lens.info.availableFocalLengths">android.lens.info.availableFocalLengths</a> (static)</li>
15587 <li><a href="#static_android.lens.info.hyperfocalDistance">android.lens.info.hyperfocalDistance</a> (static)</li>
15588 <li><a href="#dynamic_android.lens.focusRange">android.lens.focusRange</a> (dynamic)</li>
15589 <li><a href="#static_android.request.maxNumOutputStreams">android.request.maxNumOutputStreams</a> (static)</li>
15590 <li><a href="#controls_android.scaler.cropRegion">android.scaler.cropRegion</a> (controls)</li>
15591 <li><a href="#static_android.scaler.availableFormats">android.scaler.availableFormats</a> (static)</li>
15592 <li><a href="#static_android.scaler.availableJpegMinDurations">android.scaler.availableJpegMinDurations</a> (static)</li>
15593 <li><a href="#static_android.scaler.availableJpegSizes">android.scaler.availableJpegSizes</a> (static)</li>
Igor Murashkinf11a4df2013-05-07 10:00:46 -070015594 <li><a href="#static_android.scaler.availableMaxDigitalZoom">android.scaler.availableMaxDigitalZoom</a> (static)</li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080015595 <li><a href="#static_android.scaler.availableProcessedMinDurations">android.scaler.availableProcessedMinDurations</a> (static)</li>
15596 <li><a href="#static_android.scaler.availableProcessedSizes">android.scaler.availableProcessedSizes</a> (static)</li>
15597 <li><a href="#static_android.scaler.availableRawMinDurations">android.scaler.availableRawMinDurations</a> (static)</li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080015598 <li><a href="#controls_android.sensor.frameDuration">android.sensor.frameDuration</a> (controls)</li>
Zhijun He69fc0ea2013-07-17 09:42:58 -070015599 <li><a href="#static_android.sensor.info.sensitivityRange">android.sensor.info.sensitivityRange</a> (static)</li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080015600 <li><a href="#static_android.sensor.info.maxFrameDuration">android.sensor.info.maxFrameDuration</a> (static)</li>
15601 <li><a href="#static_android.sensor.info.physicalSize">android.sensor.info.physicalSize</a> (static)</li>
15602 <li><a href="#static_android.sensor.info.pixelArraySize">android.sensor.info.pixelArraySize</a> (static)</li>
15603 <li><a href="#static_android.sensor.orientation">android.sensor.orientation</a> (static)</li>
15604 <li><a href="#dynamic_android.sensor.timestamp">android.sensor.timestamp</a> (dynamic)</li>
15605 <li><a href="#controls_android.statistics.faceDetectMode">android.statistics.faceDetectMode</a> (controls)</li>
15606 <li><a href="#dynamic_android.statistics.faceIds">android.statistics.faceIds</a> (dynamic)</li>
15607 <li><a href="#dynamic_android.statistics.faceLandmarks">android.statistics.faceLandmarks</a> (dynamic)</li>
15608 <li><a href="#dynamic_android.statistics.faceRectangles">android.statistics.faceRectangles</a> (dynamic)</li>
15609 <li><a href="#dynamic_android.statistics.faceScores">android.statistics.faceScores</a> (dynamic)</li>
15610 <li><a href="#dynamic_android.lens.focalLength">android.lens.focalLength</a> (dynamic)</li>
15611 <li><a href="#dynamic_android.lens.focusDistance">android.lens.focusDistance</a> (dynamic)</li>
15612 </ul>
15613 </li> <!-- tag_BC -->
15614 <li id="tag_V1">V1 -
15615 New features for first camera 2 release (API1)
15616
15617 <ul class="tags_entries">
15618 <li><a href="#controls_android.demosaic.mode">android.demosaic.mode</a> (controls)</li>
15619 <li><a href="#controls_android.flash.firingPower">android.flash.firingPower</a> (controls)</li>
15620 <li><a href="#controls_android.flash.firingTime">android.flash.firingTime</a> (controls)</li>
15621 <li><a href="#static_android.flash.info.chargeDuration">android.flash.info.chargeDuration</a> (static)</li>
15622 <li><a href="#controls_android.hotPixel.mode">android.hotPixel.mode</a> (controls)</li>
15623 <li><a href="#controls_android.lens.aperture">android.lens.aperture</a> (controls)</li>
15624 <li><a href="#controls_android.lens.filterDensity">android.lens.filterDensity</a> (controls)</li>
15625 <li><a href="#controls_android.lens.focalLength">android.lens.focalLength</a> (controls)</li>
15626 <li><a href="#controls_android.lens.focusDistance">android.lens.focusDistance</a> (controls)</li>
15627 <li><a href="#controls_android.lens.opticalStabilizationMode">android.lens.opticalStabilizationMode</a> (controls)</li>
15628 <li><a href="#static_android.lens.info.availableApertures">android.lens.info.availableApertures</a> (static)</li>
15629 <li><a href="#static_android.lens.info.availableFilterDensities">android.lens.info.availableFilterDensities</a> (static)</li>
15630 <li><a href="#static_android.lens.info.availableFocalLengths">android.lens.info.availableFocalLengths</a> (static)</li>
15631 <li><a href="#static_android.lens.info.availableOpticalStabilization">android.lens.info.availableOpticalStabilization</a> (static)</li>
15632 <li><a href="#static_android.lens.info.geometricCorrectionMapSize">android.lens.info.geometricCorrectionMapSize</a> (static)</li>
15633 <li><a href="#static_android.lens.info.minimumFocusDistance">android.lens.info.minimumFocusDistance</a> (static)</li>
15634 <li><a href="#static_android.lens.info.shadingMapSize">android.lens.info.shadingMapSize</a> (static)</li>
15635 <li><a href="#static_android.lens.position">android.lens.position</a> (static)</li>
15636 <li><a href="#dynamic_android.lens.state">android.lens.state</a> (dynamic)</li>
15637 <li><a href="#controls_android.noiseReduction.mode">android.noiseReduction.mode</a> (controls)</li>
15638 <li><a href="#controls_android.request.id">android.request.id</a> (controls)</li>
15639 <li><a href="#controls_android.sensor.exposureTime">android.sensor.exposureTime</a> (controls)</li>
15640 <li><a href="#controls_android.sensor.frameDuration">android.sensor.frameDuration</a> (controls)</li>
15641 <li><a href="#controls_android.sensor.sensitivity">android.sensor.sensitivity</a> (controls)</li>
Zhijun He69fc0ea2013-07-17 09:42:58 -070015642 <li><a href="#static_android.sensor.info.sensitivityRange">android.sensor.info.sensitivityRange</a> (static)</li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080015643 <li><a href="#static_android.sensor.info.exposureTimeRange">android.sensor.info.exposureTimeRange</a> (static)</li>
15644 <li><a href="#static_android.sensor.info.maxFrameDuration">android.sensor.info.maxFrameDuration</a> (static)</li>
15645 <li><a href="#static_android.sensor.info.physicalSize">android.sensor.info.physicalSize</a> (static)</li>
15646 <li><a href="#static_android.sensor.baseGainFactor">android.sensor.baseGainFactor</a> (static)</li>
15647 <li><a href="#static_android.sensor.maxAnalogSensitivity">android.sensor.maxAnalogSensitivity</a> (static)</li>
15648 <li><a href="#static_android.sensor.noiseModelCoefficients">android.sensor.noiseModelCoefficients</a> (static)</li>
15649 <li><a href="#controls_android.statistics.histogramMode">android.statistics.histogramMode</a> (controls)</li>
15650 <li><a href="#controls_android.statistics.sharpnessMapMode">android.statistics.sharpnessMapMode</a> (controls)</li>
15651 <li><a href="#dynamic_android.statistics.histogram">android.statistics.histogram</a> (dynamic)</li>
15652 <li><a href="#dynamic_android.statistics.sharpnessMap">android.statistics.sharpnessMap</a> (dynamic)</li>
15653 <li><a href="#dynamic_android.hotPixel.mode">android.hotPixel.mode</a> (dynamic)</li>
15654 <li><a href="#dynamic_android.lens.aperture">android.lens.aperture</a> (dynamic)</li>
15655 <li><a href="#dynamic_android.lens.filterDensity">android.lens.filterDensity</a> (dynamic)</li>
15656 <li><a href="#dynamic_android.lens.opticalStabilizationMode">android.lens.opticalStabilizationMode</a> (dynamic)</li>
15657 </ul>
15658 </li> <!-- tag_V1 -->
15659 <li id="tag_ADV">ADV - None
15660 <ul class="tags_entries">
15661 <li><a href="#static_android.flash.colorTemperature">android.flash.colorTemperature</a> (static)</li>
15662 <li><a href="#static_android.flash.maxEnergy">android.flash.maxEnergy</a> (static)</li>
15663 <li><a href="#controls_android.geometric.strength">android.geometric.strength</a> (controls)</li>
15664 <li><a href="#static_android.hotPixel.info.map">android.hotPixel.info.map</a> (static)</li>
15665 <li><a href="#static_android.lens.opticalAxisAngle">android.lens.opticalAxisAngle</a> (static)</li>
15666 <li><a href="#controls_android.shading.strength">android.shading.strength</a> (controls)</li>
15667 </ul>
15668 </li> <!-- tag_ADV -->
15669 <li id="tag_DNG">DNG -
15670 Needed for DNG file support
15671
15672 <ul class="tags_entries">
15673 <li><a href="#static_android.lens.info.geometricCorrectionMap">android.lens.info.geometricCorrectionMap</a> (static)</li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080015674 <li><a href="#static_android.sensor.info.activeArraySize">android.sensor.info.activeArraySize</a> (static)</li>
15675 <li><a href="#static_android.sensor.info.colorFilterArrangement">android.sensor.info.colorFilterArrangement</a> (static)</li>
15676 <li><a href="#static_android.sensor.info.pixelArraySize">android.sensor.info.pixelArraySize</a> (static)</li>
15677 <li><a href="#static_android.sensor.info.whiteLevel">android.sensor.info.whiteLevel</a> (static)</li>
15678 <li><a href="#static_android.sensor.blackLevelPattern">android.sensor.blackLevelPattern</a> (static)</li>
15679 <li><a href="#static_android.sensor.calibrationTransform1">android.sensor.calibrationTransform1</a> (static)</li>
15680 <li><a href="#static_android.sensor.calibrationTransform2">android.sensor.calibrationTransform2</a> (static)</li>
15681 <li><a href="#static_android.sensor.colorTransform1">android.sensor.colorTransform1</a> (static)</li>
15682 <li><a href="#static_android.sensor.colorTransform2">android.sensor.colorTransform2</a> (static)</li>
15683 <li><a href="#static_android.sensor.forwardMatrix1">android.sensor.forwardMatrix1</a> (static)</li>
15684 <li><a href="#static_android.sensor.forwardMatrix2">android.sensor.forwardMatrix2</a> (static)</li>
15685 <li><a href="#static_android.sensor.referenceIlluminant1">android.sensor.referenceIlluminant1</a> (static)</li>
15686 <li><a href="#controls_android.tonemap.curveRed">android.tonemap.curveRed</a> (controls)</li>
15687 </ul>
15688 </li> <!-- tag_DNG -->
15689 <li id="tag_EXIF">EXIF - None
15690 <ul class="tags_entries">
15691 <li><a href="#static_android.sensor.referenceIlluminant1">android.sensor.referenceIlluminant1</a> (static)</li>
15692 </ul>
15693 </li> <!-- tag_EXIF -->
Eino-Ville Talvalaf384f0a2013-07-12 17:02:27 -070015694 <li id="tag_HAL2">HAL2 -
Alex Rayef40ad62013-10-01 17:52:33 -070015695 Entry is only used by camera device HAL 2.x
Eino-Ville Talvalaf384f0a2013-07-12 17:02:27 -070015696
15697 <ul class="tags_entries">
15698 <li><a href="#controls_android.request.inputStreams">android.request.inputStreams</a> (controls)</li>
15699 <li><a href="#controls_android.request.outputStreams">android.request.outputStreams</a> (controls)</li>
15700 <li><a href="#controls_android.request.type">android.request.type</a> (controls)</li>
Zhijun He12744b22014-01-22 15:58:57 -080015701 <li><a href="#static_android.request.maxNumReprocessStreams">android.request.maxNumReprocessStreams</a> (static)</li>
Zhijun He69fc0ea2013-07-17 09:42:58 -070015702 <li><a href="#controls_android.blackLevel.lock">android.blackLevel.lock</a> (controls)</li>
Eino-Ville Talvalaf384f0a2013-07-12 17:02:27 -070015703 </ul>
15704 </li> <!-- tag_HAL2 -->
Alex Rayef40ad62013-10-01 17:52:33 -070015705 <li id="tag_FULL">FULL -
15706 Entry is required for full hardware level devices, and optional for other hardware levels
15707
15708 <ul class="tags_entries">
15709 <li><a href="#static_android.sensor.baseGainFactor">android.sensor.baseGainFactor</a> (static)</li>
15710 <li><a href="#static_android.sensor.maxAnalogSensitivity">android.sensor.maxAnalogSensitivity</a> (static)</li>
15711 <li><a href="#dynamic_android.sensor.temperature">android.sensor.temperature</a> (dynamic)</li>
15712 </ul>
15713 </li> <!-- tag_FULL -->
Igor Murashkin5c1fc682014-01-16 17:51:36 -080015714 <li id="tag_LIMITED">LIMITED -
15715 Entry assists with LIMITED device implementation. LIMITED devices
15716 must implement all entries with this tag. Optional for FULL devices.
15717
15718 <ul class="tags_entries">
15719 <li><a href="#dynamic_android.sync.frameNumber">android.sync.frameNumber</a> (dynamic)</li>
15720 <li><a href="#static_android.sync.maxLatency">android.sync.maxLatency</a> (static)</li>
15721 </ul>
15722 </li> <!-- tag_LIMITED -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080015723 </ul>
15724 </div>
15725
15726 [ <a href="#">top</a> ]
15727
15728</body>
15729</html>