blob: 3801fb3ce6d3f00e7aea67bd1d6f187457461a93 [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>
Zhijun Hef92c76a2014-02-06 01:40:35 -0800349 <li><a href="#static_android.lens.info.focusDistanceCalibration">android.lens.info.focusDistanceCalibration</a></li>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -0700350
351 <li><a href="#static_android.lens.facing">android.lens.facing</a></li>
352 <li><a href="#static_android.lens.opticalAxisAngle">android.lens.opticalAxisAngle</a></li>
353 <li><a href="#static_android.lens.position">android.lens.position</a></li>
354 </ul>
355 </li>
356 <li>
357 <span class="toc_kind_header">dynamic</span>
358 <ul class="toc_section">
359 <li><a href="#dynamic_android.lens.aperture">android.lens.aperture</a></li>
360 <li><a href="#dynamic_android.lens.filterDensity">android.lens.filterDensity</a></li>
361 <li><a href="#dynamic_android.lens.focalLength">android.lens.focalLength</a></li>
362 <li><a href="#dynamic_android.lens.focusDistance">android.lens.focusDistance</a></li>
363 <li><a href="#dynamic_android.lens.focusRange">android.lens.focusRange</a></li>
364 <li><a href="#dynamic_android.lens.opticalStabilizationMode">android.lens.opticalStabilizationMode</a></li>
365 <li><a href="#dynamic_android.lens.state">android.lens.state</a></li>
366 </ul>
367 </li>
368 </ul> <!-- toc_section -->
369 </li>
370 <li>
371 <span class="toc_section_header"><a href="#section_noiseReduction">noiseReduction</a></span>
372 <ul class="toc_section">
373 <li>
374 <span class="toc_kind_header">controls</span>
375 <ul class="toc_section">
376 <li><a href="#controls_android.noiseReduction.mode">android.noiseReduction.mode</a></li>
377 <li><a href="#controls_android.noiseReduction.strength">android.noiseReduction.strength</a></li>
378 </ul>
379 </li>
380 <li>
381 <span class="toc_kind_header">dynamic</span>
382 <ul class="toc_section">
383 <li><a href="#dynamic_android.noiseReduction.mode">android.noiseReduction.mode</a></li>
384 </ul>
385 </li>
386 </ul> <!-- toc_section -->
387 </li>
388 <li>
389 <span class="toc_section_header"><a href="#section_quirks">quirks</a></span>
390 <ul class="toc_section">
391 <li>
392 <span class="toc_kind_header">static</span>
393 <ul class="toc_section">
394 <li><a href="#static_android.quirks.meteringCropRegion">android.quirks.meteringCropRegion</a></li>
395 <li><a href="#static_android.quirks.triggerAfWithAuto">android.quirks.triggerAfWithAuto</a></li>
396 <li><a href="#static_android.quirks.useZslFormat">android.quirks.useZslFormat</a></li>
Eino-Ville Talvala82ce3312013-10-09 18:21:30 -0700397 <li><a href="#static_android.quirks.usePartialResult">android.quirks.usePartialResult</a></li>
398 </ul>
399 </li>
400 <li>
401 <span class="toc_kind_header">dynamic</span>
402 <ul class="toc_section">
403 <li><a href="#dynamic_android.quirks.partialResult">android.quirks.partialResult</a></li>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -0700404 </ul>
405 </li>
406 </ul> <!-- toc_section -->
407 </li>
408 <li>
409 <span class="toc_section_header"><a href="#section_request">request</a></span>
410 <ul class="toc_section">
411 <li>
412 <span class="toc_kind_header">controls</span>
413 <ul class="toc_section">
414 <li><a href="#controls_android.request.frameCount">android.request.frameCount</a></li>
415 <li><a href="#controls_android.request.id">android.request.id</a></li>
416 <li><a href="#controls_android.request.inputStreams">android.request.inputStreams</a></li>
417 <li><a href="#controls_android.request.metadataMode">android.request.metadataMode</a></li>
418 <li><a href="#controls_android.request.outputStreams">android.request.outputStreams</a></li>
419 <li><a href="#controls_android.request.type">android.request.type</a></li>
420 </ul>
421 </li>
422 <li>
423 <span class="toc_kind_header">static</span>
424 <ul class="toc_section">
425 <li><a href="#static_android.request.maxNumOutputStreams">android.request.maxNumOutputStreams</a></li>
426 <li><a href="#static_android.request.maxNumReprocessStreams">android.request.maxNumReprocessStreams</a></li>
Zhijun He12744b22014-01-22 15:58:57 -0800427 <li><a href="#static_android.request.maxNumInputStreams">android.request.maxNumInputStreams</a></li>
Igor Murashkina46e02f2014-01-09 17:43:38 -0800428 <li><a href="#static_android.request.pipelineMaxDepth">android.request.pipelineMaxDepth</a></li>
Igor Murashkin2e291102014-01-10 14:18:30 -0800429 <li><a href="#static_android.request.partialResultCount">android.request.partialResultCount</a></li>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -0700430 </ul>
431 </li>
432 <li>
433 <span class="toc_kind_header">dynamic</span>
434 <ul class="toc_section">
435 <li><a href="#dynamic_android.request.frameCount">android.request.frameCount</a></li>
436 <li><a href="#dynamic_android.request.id">android.request.id</a></li>
437 <li><a href="#dynamic_android.request.metadataMode">android.request.metadataMode</a></li>
438 <li><a href="#dynamic_android.request.outputStreams">android.request.outputStreams</a></li>
Igor Murashkina46e02f2014-01-09 17:43:38 -0800439 <li><a href="#dynamic_android.request.pipelineDepth">android.request.pipelineDepth</a></li>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -0700440 </ul>
441 </li>
442 </ul> <!-- toc_section -->
443 </li>
444 <li>
445 <span class="toc_section_header"><a href="#section_scaler">scaler</a></span>
446 <ul class="toc_section">
447 <li>
448 <span class="toc_kind_header">controls</span>
449 <ul class="toc_section">
450 <li><a href="#controls_android.scaler.cropRegion">android.scaler.cropRegion</a></li>
451 </ul>
452 </li>
453 <li>
454 <span class="toc_kind_header">static</span>
455 <ul class="toc_section">
456 <li><a href="#static_android.scaler.availableFormats">android.scaler.availableFormats</a></li>
457 <li><a href="#static_android.scaler.availableJpegMinDurations">android.scaler.availableJpegMinDurations</a></li>
458 <li><a href="#static_android.scaler.availableJpegSizes">android.scaler.availableJpegSizes</a></li>
459 <li><a href="#static_android.scaler.availableMaxDigitalZoom">android.scaler.availableMaxDigitalZoom</a></li>
460 <li><a href="#static_android.scaler.availableProcessedMinDurations">android.scaler.availableProcessedMinDurations</a></li>
461 <li><a href="#static_android.scaler.availableProcessedSizes">android.scaler.availableProcessedSizes</a></li>
462 <li><a href="#static_android.scaler.availableRawMinDurations">android.scaler.availableRawMinDurations</a></li>
463 <li><a href="#static_android.scaler.availableRawSizes">android.scaler.availableRawSizes</a></li>
464 </ul>
465 </li>
466 <li>
467 <span class="toc_kind_header">dynamic</span>
468 <ul class="toc_section">
469 <li><a href="#dynamic_android.scaler.cropRegion">android.scaler.cropRegion</a></li>
470 </ul>
471 </li>
472 </ul> <!-- toc_section -->
473 </li>
474 <li>
475 <span class="toc_section_header"><a href="#section_sensor">sensor</a></span>
476 <ul class="toc_section">
477 <li>
478 <span class="toc_kind_header">controls</span>
479 <ul class="toc_section">
480 <li><a href="#controls_android.sensor.exposureTime">android.sensor.exposureTime</a></li>
481 <li><a href="#controls_android.sensor.frameDuration">android.sensor.frameDuration</a></li>
482 <li><a href="#controls_android.sensor.sensitivity">android.sensor.sensitivity</a></li>
Igor Murashkina46e02f2014-01-09 17:43:38 -0800483 <li><a href="#controls_android.sensor.testPatternData">android.sensor.testPatternData</a></li>
484 <li><a href="#controls_android.sensor.testPatternMode">android.sensor.testPatternMode</a></li>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -0700485 </ul>
486 </li>
487 <li>
488 <span class="toc_kind_header">static</span>
489 <ul class="toc_section">
490
491 <li><a href="#static_android.sensor.info.activeArraySize">android.sensor.info.activeArraySize</a></li>
Zhijun He69fc0ea2013-07-17 09:42:58 -0700492 <li><a href="#static_android.sensor.info.sensitivityRange">android.sensor.info.sensitivityRange</a></li>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -0700493 <li><a href="#static_android.sensor.info.colorFilterArrangement">android.sensor.info.colorFilterArrangement</a></li>
494 <li><a href="#static_android.sensor.info.exposureTimeRange">android.sensor.info.exposureTimeRange</a></li>
495 <li><a href="#static_android.sensor.info.maxFrameDuration">android.sensor.info.maxFrameDuration</a></li>
496 <li><a href="#static_android.sensor.info.physicalSize">android.sensor.info.physicalSize</a></li>
497 <li><a href="#static_android.sensor.info.pixelArraySize">android.sensor.info.pixelArraySize</a></li>
498 <li><a href="#static_android.sensor.info.whiteLevel">android.sensor.info.whiteLevel</a></li>
499
500 <li><a href="#static_android.sensor.baseGainFactor">android.sensor.baseGainFactor</a></li>
501 <li><a href="#static_android.sensor.blackLevelPattern">android.sensor.blackLevelPattern</a></li>
502 <li><a href="#static_android.sensor.calibrationTransform1">android.sensor.calibrationTransform1</a></li>
503 <li><a href="#static_android.sensor.calibrationTransform2">android.sensor.calibrationTransform2</a></li>
504 <li><a href="#static_android.sensor.colorTransform1">android.sensor.colorTransform1</a></li>
505 <li><a href="#static_android.sensor.colorTransform2">android.sensor.colorTransform2</a></li>
506 <li><a href="#static_android.sensor.forwardMatrix1">android.sensor.forwardMatrix1</a></li>
507 <li><a href="#static_android.sensor.forwardMatrix2">android.sensor.forwardMatrix2</a></li>
508 <li><a href="#static_android.sensor.maxAnalogSensitivity">android.sensor.maxAnalogSensitivity</a></li>
509 <li><a href="#static_android.sensor.noiseModelCoefficients">android.sensor.noiseModelCoefficients</a></li>
510 <li><a href="#static_android.sensor.orientation">android.sensor.orientation</a></li>
511 <li><a href="#static_android.sensor.referenceIlluminant1">android.sensor.referenceIlluminant1</a></li>
512 <li><a href="#static_android.sensor.referenceIlluminant2">android.sensor.referenceIlluminant2</a></li>
Igor Murashkina46e02f2014-01-09 17:43:38 -0800513 <li><a href="#static_android.sensor.availableTestPatternModes">android.sensor.availableTestPatternModes</a></li>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -0700514 </ul>
515 </li>
516 <li>
517 <span class="toc_kind_header">dynamic</span>
518 <ul class="toc_section">
519 <li><a href="#dynamic_android.sensor.exposureTime">android.sensor.exposureTime</a></li>
520 <li><a href="#dynamic_android.sensor.frameDuration">android.sensor.frameDuration</a></li>
521 <li><a href="#dynamic_android.sensor.sensitivity">android.sensor.sensitivity</a></li>
522 <li><a href="#dynamic_android.sensor.timestamp">android.sensor.timestamp</a></li>
Igor Murashkin656aa5a2013-08-13 14:23:39 -0700523 <li><a href="#dynamic_android.sensor.temperature">android.sensor.temperature</a></li>
Ruben Brunk7b9e9bc2014-02-06 18:37:48 -0800524 <li><a href="#dynamic_android.sensor.neutralColorPoint">android.sensor.neutralColorPoint</a></li>
Igor Murashkina46e02f2014-01-09 17:43:38 -0800525 <li><a href="#dynamic_android.sensor.testPatternMode">android.sensor.testPatternMode</a></li>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -0700526 </ul>
527 </li>
528 </ul> <!-- toc_section -->
529 </li>
530 <li>
531 <span class="toc_section_header"><a href="#section_shading">shading</a></span>
532 <ul class="toc_section">
533 <li>
534 <span class="toc_kind_header">controls</span>
535 <ul class="toc_section">
536 <li><a href="#controls_android.shading.mode">android.shading.mode</a></li>
537 <li><a href="#controls_android.shading.strength">android.shading.strength</a></li>
538 </ul>
539 </li>
540 <li>
541 <span class="toc_kind_header">dynamic</span>
542 <ul class="toc_section">
543 <li><a href="#dynamic_android.shading.mode">android.shading.mode</a></li>
544 </ul>
545 </li>
546 </ul> <!-- toc_section -->
547 </li>
548 <li>
549 <span class="toc_section_header"><a href="#section_statistics">statistics</a></span>
550 <ul class="toc_section">
551 <li>
552 <span class="toc_kind_header">controls</span>
553 <ul class="toc_section">
554 <li><a href="#controls_android.statistics.faceDetectMode">android.statistics.faceDetectMode</a></li>
555 <li><a href="#controls_android.statistics.histogramMode">android.statistics.histogramMode</a></li>
556 <li><a href="#controls_android.statistics.sharpnessMapMode">android.statistics.sharpnessMapMode</a></li>
Zhijun He69fc0ea2013-07-17 09:42:58 -0700557 <li><a href="#controls_android.statistics.lensShadingMapMode">android.statistics.lensShadingMapMode</a></li>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -0700558 </ul>
559 </li>
560 <li>
561 <span class="toc_kind_header">static</span>
562 <ul class="toc_section">
563
564 <li><a href="#static_android.statistics.info.availableFaceDetectModes">android.statistics.info.availableFaceDetectModes</a></li>
565 <li><a href="#static_android.statistics.info.histogramBucketCount">android.statistics.info.histogramBucketCount</a></li>
566 <li><a href="#static_android.statistics.info.maxFaceCount">android.statistics.info.maxFaceCount</a></li>
567 <li><a href="#static_android.statistics.info.maxHistogramCount">android.statistics.info.maxHistogramCount</a></li>
568 <li><a href="#static_android.statistics.info.maxSharpnessMapValue">android.statistics.info.maxSharpnessMapValue</a></li>
569 <li><a href="#static_android.statistics.info.sharpnessMapSize">android.statistics.info.sharpnessMapSize</a></li>
570
571 </ul>
572 </li>
573 <li>
574 <span class="toc_kind_header">dynamic</span>
575 <ul class="toc_section">
576 <li><a href="#dynamic_android.statistics.faceDetectMode">android.statistics.faceDetectMode</a></li>
577 <li><a href="#dynamic_android.statistics.faceIds">android.statistics.faceIds</a></li>
578 <li><a href="#dynamic_android.statistics.faceLandmarks">android.statistics.faceLandmarks</a></li>
579 <li><a href="#dynamic_android.statistics.faceRectangles">android.statistics.faceRectangles</a></li>
580 <li><a href="#dynamic_android.statistics.faceScores">android.statistics.faceScores</a></li>
581 <li><a href="#dynamic_android.statistics.histogram">android.statistics.histogram</a></li>
582 <li><a href="#dynamic_android.statistics.histogramMode">android.statistics.histogramMode</a></li>
583 <li><a href="#dynamic_android.statistics.sharpnessMap">android.statistics.sharpnessMap</a></li>
584 <li><a href="#dynamic_android.statistics.sharpnessMapMode">android.statistics.sharpnessMapMode</a></li>
Zhijun He69fc0ea2013-07-17 09:42:58 -0700585 <li><a href="#dynamic_android.statistics.lensShadingMap">android.statistics.lensShadingMap</a></li>
586 <li><a href="#dynamic_android.statistics.predictedColorGains">android.statistics.predictedColorGains</a></li>
587 <li><a href="#dynamic_android.statistics.predictedColorTransform">android.statistics.predictedColorTransform</a></li>
588 <li><a href="#dynamic_android.statistics.sceneFlicker">android.statistics.sceneFlicker</a></li>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -0700589 </ul>
590 </li>
591 </ul> <!-- toc_section -->
592 </li>
593 <li>
594 <span class="toc_section_header"><a href="#section_tonemap">tonemap</a></span>
595 <ul class="toc_section">
596 <li>
597 <span class="toc_kind_header">controls</span>
598 <ul class="toc_section">
599 <li><a href="#controls_android.tonemap.curveBlue">android.tonemap.curveBlue</a></li>
600 <li><a href="#controls_android.tonemap.curveGreen">android.tonemap.curveGreen</a></li>
601 <li><a href="#controls_android.tonemap.curveRed">android.tonemap.curveRed</a></li>
602 <li><a href="#controls_android.tonemap.mode">android.tonemap.mode</a></li>
603 </ul>
604 </li>
605 <li>
606 <span class="toc_kind_header">static</span>
607 <ul class="toc_section">
608 <li><a href="#static_android.tonemap.maxCurvePoints">android.tonemap.maxCurvePoints</a></li>
609 </ul>
610 </li>
611 <li>
612 <span class="toc_kind_header">dynamic</span>
613 <ul class="toc_section">
614 <li><a href="#dynamic_android.tonemap.curveBlue">android.tonemap.curveBlue</a></li>
615 <li><a href="#dynamic_android.tonemap.curveGreen">android.tonemap.curveGreen</a></li>
616 <li><a href="#dynamic_android.tonemap.curveRed">android.tonemap.curveRed</a></li>
617 <li><a href="#dynamic_android.tonemap.mode">android.tonemap.mode</a></li>
618 </ul>
619 </li>
620 </ul> <!-- toc_section -->
621 </li>
622 <li>
623 <span class="toc_section_header"><a href="#section_led">led</a></span>
624 <ul class="toc_section">
625 <li>
626 <span class="toc_kind_header">controls</span>
627 <ul class="toc_section">
628 <li><a href="#controls_android.led.transmit">android.led.transmit</a></li>
629 </ul>
630 </li>
631 <li>
632 <span class="toc_kind_header">dynamic</span>
633 <ul class="toc_section">
634 <li><a href="#dynamic_android.led.transmit">android.led.transmit</a></li>
635 </ul>
636 </li>
637 <li>
638 <span class="toc_kind_header">static</span>
639 <ul class="toc_section">
640 <li><a href="#static_android.led.availableLeds">android.led.availableLeds</a></li>
641 </ul>
642 </li>
643 </ul> <!-- toc_section -->
644 </li>
645 <li>
646 <span class="toc_section_header"><a href="#section_info">info</a></span>
647 <ul class="toc_section">
648 <li>
649 <span class="toc_kind_header">static</span>
650 <ul class="toc_section">
651 <li><a href="#static_android.info.supportedHardwareLevel">android.info.supportedHardwareLevel</a></li>
652 </ul>
653 </li>
654 </ul> <!-- toc_section -->
655 </li>
Zhijun He69fc0ea2013-07-17 09:42:58 -0700656 <li>
657 <span class="toc_section_header"><a href="#section_blackLevel">blackLevel</a></span>
658 <ul class="toc_section">
659 <li>
660 <span class="toc_kind_header">controls</span>
661 <ul class="toc_section">
662 <li><a href="#controls_android.blackLevel.lock">android.blackLevel.lock</a></li>
663 </ul>
664 </li>
665 <li>
666 <span class="toc_kind_header">dynamic</span>
667 <ul class="toc_section">
668 <li><a href="#dynamic_android.blackLevel.lock">android.blackLevel.lock</a></li>
669 </ul>
670 </li>
671 </ul> <!-- toc_section -->
672 </li>
Igor Murashkin5c1fc682014-01-16 17:51:36 -0800673 <li>
674 <span class="toc_section_header"><a href="#section_sync">sync</a></span>
675 <ul class="toc_section">
676 <li>
677 <span class="toc_kind_header">dynamic</span>
678 <ul class="toc_section">
679 <li><a href="#dynamic_android.sync.frameNumber">android.sync.frameNumber</a></li>
680 </ul>
681 </li>
682 <li>
683 <span class="toc_kind_header">static</span>
684 <ul class="toc_section">
685 <li><a href="#static_android.sync.maxLatency">android.sync.maxLatency</a></li>
686 </ul>
687 </li>
688 </ul> <!-- toc_section -->
689 </li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -0800690 </ul>
691
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -0700692
Igor Murashkin08b8aad2012-11-29 15:23:03 -0800693 <h1>Properties</h1>
694 <table class="properties">
695
696 <thead class="thead_dummy">
697 <tr>
698 <th class="th_name">Property Name</th>
699 <th class="th_type">Type</th>
700 <th class="th_description">Description</th>
701 <th class="th_units">Units</th>
702 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -0800703 <th class="th_tags">Tags</th>
704 </tr>
705 </thead> <!-- so that the first occurrence of thead is not
706 above the first occurrence of tr -->
707<!-- <namespace name="android"> -->
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -0800708 <tr><td colspan="6" id="section_colorCorrection" class="section">colorCorrection</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -0800709
710
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -0800711 <tr><td colspan="6" class="kind">controls</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -0800712
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -0700713 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -0800714 <tr>
715 <th class="th_name">Property Name</th>
716 <th class="th_type">Type</th>
717 <th class="th_description">Description</th>
718 <th class="th_units">Units</th>
719 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -0800720 <th class="th_tags">Tags</th>
721 </tr>
722 </thead>
723
724 <tbody>
725
726
727
728
729
730
731
732
733
734
735 <tr class="entry" id="controls_android.colorCorrection.mode">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -0800736 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -0800737 android.<wbr/>color<wbr/>Correction.<wbr/>mode
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -0800738 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -0800739 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -0800740 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -0800741
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -0700742 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -0800743
744 <ul class="entry_type_enum">
745 <li>
746 <span class="entry_type_enum_name">TRANSFORM_MATRIX</span>
Igor Murashkina10351a2014-01-15 17:05:22 -0800747 <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 -0800748and <a href="#controls_android.colorCorrection.gains">android.<wbr/>color<wbr/>Correction.<wbr/>gains</a> to do color conversion.<wbr/></p>
749<p>All advanced white balance adjustments (not specified
750by our white balance pipeline) must be disabled.<wbr/></p>
751<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
752TRANSFORM_<wbr/>MATRIX is ignored.<wbr/> The camera device will override
753this value to either FAST or HIGH_<wbr/>QUALITY.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -0800754 </li>
755 <li>
756 <span class="entry_type_enum_name">FAST</span>
Igor Murashkin43817ad2014-01-10 15:58:35 -0800757 <span class="entry_type_enum_notes"><p>Must not slow down capture rate relative to sensor raw
758output.<wbr/></p>
759<p>Advanced white balance adjustments above and beyond
760the specified white balance pipeline may be applied.<wbr/></p>
761<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
762the camera device uses the last frame's AWB values
763(or defaults if AWB has never been run).<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -0800764 </li>
765 <li>
766 <span class="entry_type_enum_name">HIGH_QUALITY</span>
Igor Murashkin43817ad2014-01-10 15:58:35 -0800767 <span class="entry_type_enum_notes"><p>Capture rate (relative to sensor raw output)
768may be reduced by high quality.<wbr/></p>
769<p>Advanced white balance adjustments above and beyond
770the specified white balance pipeline may be applied.<wbr/></p>
771<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
772the camera device uses the last frame's AWB values
773(or defaults if AWB has never been run).<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -0800774 </li>
775 </ul>
776
777 </td> <!-- entry_type -->
778
779 <td class="entry_description">
Igor Murashkin43817ad2014-01-10 15:58:35 -0800780 <p>The mode control selects how the image data is converted from the
781sensor's native color into linear sRGB color.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -0800782 </td>
783
784 <td class="entry_units">
785 </td>
786
787 <td class="entry_range">
788 </td>
789
Igor Murashkin08b8aad2012-11-29 15:23:03 -0800790 <td class="entry_tags">
791 </td>
792
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -0800793 </tr>
794 <tr class="entries_header">
795 <th class="th_details" colspan="5">Details</th>
796 </tr>
797 <tr class="entry_cont">
798 <td class="entry_details" colspan="5">
Igor Murashkin43817ad2014-01-10 15:58:35 -0800799 <p>When auto-white balance is enabled with <a href="#controls_android.control.awbMode">android.<wbr/>control.<wbr/>awb<wbr/>Mode</a>,<wbr/> this
800control is overridden by the AWB routine.<wbr/> When AWB is disabled,<wbr/> the
801application controls how the color mapping is performed.<wbr/></p>
802<p>We define the expected processing pipeline below.<wbr/> For consistency
803across devices,<wbr/> this is always the case with TRANSFORM_<wbr/>MATRIX.<wbr/></p>
804<p>When either FULL or HIGH_<wbr/>QUALITY is used,<wbr/> the camera device may
805do additional processing but <a href="#controls_android.colorCorrection.gains">android.<wbr/>color<wbr/>Correction.<wbr/>gains</a> and
806<a href="#controls_android.colorCorrection.transform">android.<wbr/>color<wbr/>Correction.<wbr/>transform</a> will still be provided by the
807camera device (in the results) and be roughly correct.<wbr/></p>
808<p>Switching to TRANSFORM_<wbr/>MATRIX and using the data provided from
809FAST or HIGH_<wbr/>QUALITY will yield a picture with the same white point
810as what was produced by the camera device in the earlier frame.<wbr/></p>
811<p>The expected processing pipeline is as follows:</p>
812<p><img alt="White balance processing pipeline" src="images/camera2/metadata/android.colorCorrection.mode/processing_pipeline.png"/></p>
813<p>The white balance is encoded by two values,<wbr/> a 4-channel white-balance
814gain vector (applied in the Bayer domain),<wbr/> and a 3x3 color transform
815matrix (applied after demosaic).<wbr/></p>
816<p>The 4-channel white-balance gains are defined as:</p>
817<pre><code><a href="#controls_android.colorCorrection.gains">android.<wbr/>color<wbr/>Correction.<wbr/>gains</a> = [ R G_<wbr/>even G_<wbr/>odd B ]
818</code></pre>
819<p>where <code>G_<wbr/>even</code> is the gain for green pixels on even rows of the
820output,<wbr/> and <code>G_<wbr/>odd</code> is the gain for green pixels on the odd rows.<wbr/>
821These may be identical for a given camera device implementation; if
822the camera device does not support a separate gain for even/<wbr/>odd green
823channels,<wbr/> it will use the <code>G_<wbr/>even</code> value,<wbr/> and write <code>G_<wbr/>odd</code> equal to
824<code>G_<wbr/>even</code> in the output result metadata.<wbr/></p>
825<p>The matrices for color transforms are defined as a 9-entry vector:</p>
826<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 ]
827</code></pre>
828<p>which define a transform from input sensor colors,<wbr/> <code>P_<wbr/>in = [ r g b ]</code>,<wbr/>
829to output linear sRGB,<wbr/> <code>P_<wbr/>out = [ r' g' b' ]</code>,<wbr/></p>
830<p>with colors as follows:</p>
831<pre><code>r' = I0r + I1g + I2b
832g' = I3r + I4g + I5b
833b' = I6r + I7g + I8b
834</code></pre>
835<p>Both the input and output value ranges must match.<wbr/> Overflow/<wbr/>underflow
836values are clipped to fit within the range.<wbr/></p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -0800837 </td>
838 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -0800839
840
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -0800841 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
842 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -0800843
844
845 <tr class="entry" id="controls_android.colorCorrection.transform">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -0800846 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -0800847 android.<wbr/>color<wbr/>Correction.<wbr/>transform
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -0800848 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -0800849 <td class="entry_type">
Zhijun He69fc0ea2013-07-17 09:42:58 -0700850 <span class="entry_type_name">rational</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -0800851 <span class="entry_type_container">x</span>
852
853 <span class="entry_type_array">
854 3 x 3
855 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -0700856 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -0800857 <div class="entry_type_notes">3x3 rational matrix in row-major order</div>
Igor Murashkin08b8aad2012-11-29 15:23:03 -0800858
859
860 </td> <!-- entry_type -->
861
862 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -0800863 <p>A color transform matrix to use to transform
864from sensor RGB color space to output linear sRGB color space</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -0800865 </td>
866
867 <td class="entry_units">
868 </td>
869
870 <td class="entry_range">
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">
Zhijun He44d0b3d2014-02-04 16:42:46 -0800882 <p>This matrix is either set by the camera device 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>
Zhijun He44d0b3d2014-02-04 16:42:46 -0800886<p>In the latter case,<wbr/> the camera device may round the matrix to account
887for precision issues; the final rounded matrix should be reported back
888in this matrix result metadata.<wbr/> The transform should keep the magnitude
889of the output color values within <code>[0,<wbr/> 1.<wbr/>0]</code> (assuming input color
890values is within the normalized range <code>[0,<wbr/> 1.<wbr/>0]</code>),<wbr/> or clipping may occur.<wbr/></p>
Zhijun He69fc0ea2013-07-17 09:42:58 -0700891 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -0800892 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -0800893
894
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -0800895 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
896 <!-- end of entry -->
Zhijun He69fc0ea2013-07-17 09:42:58 -0700897
898
899 <tr class="entry" id="controls_android.colorCorrection.gains">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -0800900 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -0800901 android.<wbr/>color<wbr/>Correction.<wbr/>gains
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -0800902 </td>
Zhijun He69fc0ea2013-07-17 09:42:58 -0700903 <td class="entry_type">
904 <span class="entry_type_name">float</span>
905 <span class="entry_type_container">x</span>
906
907 <span class="entry_type_array">
908 4
909 </span>
910 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -0800911 <div class="entry_type_notes">A 1D array of floats for 4 color channel gains</div>
Zhijun He69fc0ea2013-07-17 09:42:58 -0700912
913
914 </td> <!-- entry_type -->
915
916 <td class="entry_description">
Igor Murashkin43817ad2014-01-10 15:58:35 -0800917 <p>Gains applying to Bayer raw color channels for
Igor Murashkin0b080452013-12-27 15:30:25 -0800918white-balance</p>
Zhijun He69fc0ea2013-07-17 09:42:58 -0700919 </td>
920
921 <td class="entry_units">
922 </td>
923
924 <td class="entry_range">
925 </td>
926
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -0800927 <td class="entry_tags">
928 </td>
929
930 </tr>
931 <tr class="entries_header">
932 <th class="th_details" colspan="5">Details</th>
933 </tr>
934 <tr class="entry_cont">
935 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -0800936 <p>The 4-channel white-balance gains are defined in
Igor Murashkin43817ad2014-01-10 15:58:35 -0800937the order of <code>[R G_<wbr/>even G_<wbr/>odd B]</code>,<wbr/> where <code>G_<wbr/>even</code> is the gain
938for green pixels on even rows of the output,<wbr/> and <code>G_<wbr/>odd</code>
939is the gain for green pixels on the odd rows.<wbr/> if a HAL
Igor Murashkin0b080452013-12-27 15:30:25 -0800940does not support a separate gain for even/<wbr/>odd green channels,<wbr/>
Igor Murashkin43817ad2014-01-10 15:58:35 -0800941it should use the <code>G_<wbr/>even</code> value,<wbr/> and write <code>G_<wbr/>odd</code> equal to
942<code>G_<wbr/>even</code> in the output result metadata.<wbr/></p>
Igor Murashkin8aa2a112013-12-09 12:06:17 -0800943<p>This array is either set by HAL when the request
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -0800944<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 -0800945directly by the application in the request when the
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -0800946<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 -0800947<p>The output should be the gains actually applied by the HAL to
Igor Murashkin0b080452013-12-27 15:30:25 -0800948the current frame.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -0800949 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -0800950 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -0800951
952
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -0800953 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
954 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -0800955
956
957
958 <!-- end of kind -->
959 </tbody>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -0800960 <tr><td colspan="6" class="kind">dynamic</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -0800961
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -0700962 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -0800963 <tr>
964 <th class="th_name">Property Name</th>
965 <th class="th_type">Type</th>
966 <th class="th_description">Description</th>
967 <th class="th_units">Units</th>
968 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -0800969 <th class="th_tags">Tags</th>
970 </tr>
971 </thead>
972
973 <tbody>
974
975
976
977
978
979
980
981
982
983
Zhijun He69fc0ea2013-07-17 09:42:58 -0700984 <tr class="entry" id="dynamic_android.colorCorrection.transform">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -0800985 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -0800986 android.<wbr/>color<wbr/>Correction.<wbr/>transform
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -0800987 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -0800988 <td class="entry_type">
Zhijun He69fc0ea2013-07-17 09:42:58 -0700989 <span class="entry_type_name">rational</span>
990 <span class="entry_type_container">x</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -0800991
Zhijun He69fc0ea2013-07-17 09:42:58 -0700992 <span class="entry_type_array">
993 3 x 3
994 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -0700995 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -0800996 <div class="entry_type_notes">3x3 rational matrix in row-major order</div>
Igor Murashkin08b8aad2012-11-29 15:23:03 -0800997
Igor Murashkin08b8aad2012-11-29 15:23:03 -0800998
999 </td> <!-- entry_type -->
1000
1001 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08001002 <p>A color transform matrix to use to transform
1003from sensor RGB color space to output linear sRGB color space</p>
Zhijun He69fc0ea2013-07-17 09:42:58 -07001004 </td>
1005
1006 <td class="entry_units">
1007 </td>
1008
1009 <td class="entry_range">
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">
Zhijun He44d0b3d2014-02-04 16:42:46 -08001021 <p>This matrix is either set by the camera device 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>
Zhijun He44d0b3d2014-02-04 16:42:46 -08001025<p>In the latter case,<wbr/> the camera device may round the matrix to account
1026for precision issues; the final rounded matrix should be reported back
1027in this matrix result metadata.<wbr/> The transform should keep the magnitude
1028of the output color values within <code>[0,<wbr/> 1.<wbr/>0]</code> (assuming input color
1029values is within the normalized range <code>[0,<wbr/> 1.<wbr/>0]</code>),<wbr/> or clipping may occur.<wbr/></p>
Zhijun He69fc0ea2013-07-17 09:42:58 -07001030 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08001031 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08001032
1033
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08001034 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
1035 <!-- end of entry -->
Zhijun He69fc0ea2013-07-17 09:42:58 -07001036
1037
1038 <tr class="entry" id="dynamic_android.colorCorrection.gains">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08001039 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08001040 android.<wbr/>color<wbr/>Correction.<wbr/>gains
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08001041 </td>
Zhijun He69fc0ea2013-07-17 09:42:58 -07001042 <td class="entry_type">
1043 <span class="entry_type_name">float</span>
1044 <span class="entry_type_container">x</span>
1045
1046 <span class="entry_type_array">
1047 4
1048 </span>
1049 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -08001050 <div class="entry_type_notes">A 1D array of floats for 4 color channel gains</div>
Zhijun He69fc0ea2013-07-17 09:42:58 -07001051
1052
1053 </td> <!-- entry_type -->
1054
1055 <td class="entry_description">
Igor Murashkin43817ad2014-01-10 15:58:35 -08001056 <p>Gains applying to Bayer raw color channels for
Igor Murashkin0b080452013-12-27 15:30:25 -08001057white-balance</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001058 </td>
1059
1060 <td class="entry_units">
1061 </td>
1062
1063 <td class="entry_range">
1064 </td>
1065
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08001066 <td class="entry_tags">
1067 </td>
1068
1069 </tr>
1070 <tr class="entries_header">
1071 <th class="th_details" colspan="5">Details</th>
1072 </tr>
1073 <tr class="entry_cont">
1074 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08001075 <p>The 4-channel white-balance gains are defined in
Igor Murashkin43817ad2014-01-10 15:58:35 -08001076the order of <code>[R G_<wbr/>even G_<wbr/>odd B]</code>,<wbr/> where <code>G_<wbr/>even</code> is the gain
1077for green pixels on even rows of the output,<wbr/> and <code>G_<wbr/>odd</code>
1078is the gain for green pixels on the odd rows.<wbr/> if a HAL
Igor Murashkin0b080452013-12-27 15:30:25 -08001079does not support a separate gain for even/<wbr/>odd green channels,<wbr/>
Igor Murashkin43817ad2014-01-10 15:58:35 -08001080it should use the <code>G_<wbr/>even</code> value,<wbr/> and write <code>G_<wbr/>odd</code> equal to
1081<code>G_<wbr/>even</code> in the output result metadata.<wbr/></p>
Igor Murashkin8aa2a112013-12-09 12:06:17 -08001082<p>This array is either set by HAL when the request
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08001083<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 -08001084directly by the application in the request when the
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08001085<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 -08001086<p>The output should be the gains actually applied by the HAL to
Igor Murashkin0b080452013-12-27 15:30:25 -08001087the current frame.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001088 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08001089 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08001090
1091
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08001092 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
1093 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001094
1095
1096
1097 <!-- end of kind -->
1098 </tbody>
1099
1100 <!-- end of section -->
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08001101 <tr><td colspan="6" id="section_control" class="section">control</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001102
1103
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08001104 <tr><td colspan="6" class="kind">controls</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001105
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07001106 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001107 <tr>
1108 <th class="th_name">Property Name</th>
1109 <th class="th_type">Type</th>
1110 <th class="th_description">Description</th>
1111 <th class="th_units">Units</th>
1112 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001113 <th class="th_tags">Tags</th>
1114 </tr>
1115 </thead>
1116
1117 <tbody>
1118
1119
1120
1121
1122
1123
1124
1125
1126
1127
1128 <tr class="entry" id="controls_android.control.aeAntibandingMode">
Eino-Ville Talvala19ce2c12013-12-30 12:03:45 -08001129 <td class="entry_name" rowspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08001130 android.<wbr/>control.<wbr/>ae<wbr/>Antibanding<wbr/>Mode
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08001131 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001132 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08001133 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001134
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07001135 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001136
1137 <ul class="entry_type_enum">
1138 <li>
1139 <span class="entry_type_enum_name">OFF</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08001140 <span class="entry_type_enum_notes"><p>The camera device will not adjust exposure duration to
1141avoid banding problems.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001142 </li>
1143 <li>
1144 <span class="entry_type_enum_name">50HZ</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08001145 <span class="entry_type_enum_notes"><p>The camera device will adjust exposure duration to
1146avoid banding problems with 50Hz illumination sources.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001147 </li>
1148 <li>
1149 <span class="entry_type_enum_name">60HZ</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08001150 <span class="entry_type_enum_notes"><p>The camera device will adjust exposure duration to
1151avoid banding problems with 60Hz illumination
1152sources.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001153 </li>
1154 <li>
1155 <span class="entry_type_enum_name">AUTO</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08001156 <span class="entry_type_enum_notes"><p>The camera device will automatically adapt its
1157antibanding routine to the current illumination
1158conditions.<wbr/> This is the default.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001159 </li>
1160 </ul>
1161
1162 </td> <!-- entry_type -->
1163
1164 <td class="entry_description">
Eino-Ville Talvala19ce2c12013-12-30 12:03:45 -08001165 <p>The desired setting for the camera device's auto-exposure
1166algorithm's antibanding compensation.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001167 </td>
1168
1169 <td class="entry_units">
1170 </td>
1171
1172 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08001173 <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 -08001174 </td>
1175
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001176 <td class="entry_tags">
Eino-Ville Talvala19ce2c12013-12-30 12:03:45 -08001177 <ul class="entry_tags">
1178 <li><a href="#tag_BC">BC</a></li>
1179 </ul>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001180 </td>
1181
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08001182 </tr>
Eino-Ville Talvala19ce2c12013-12-30 12:03:45 -08001183 <tr class="entries_header">
1184 <th class="th_details" colspan="5">Details</th>
1185 </tr>
1186 <tr class="entry_cont">
1187 <td class="entry_details" colspan="5">
1188 <p>Some kinds of lighting fixtures,<wbr/> such as some fluorescent
1189lights,<wbr/> flicker at the rate of the power supply frequency
1190(60Hz or 50Hz,<wbr/> depending on country).<wbr/> While this is
1191typically not noticeable to a person,<wbr/> it can be visible to
1192a camera device.<wbr/> If a camera sets its exposure time to the
1193wrong value,<wbr/> the flicker may become visible in the
1194viewfinder as flicker or in a final captured image,<wbr/> as a
1195set of variable-brightness bands across the image.<wbr/></p>
1196<p>Therefore,<wbr/> the auto-exposure routines of camera devices
1197include antibanding routines that ensure that the chosen
1198exposure value will not cause such banding.<wbr/> The choice of
1199exposure time depends on the rate of flicker,<wbr/> which the
1200camera device can detect automatically,<wbr/> or the expected
1201rate can be selected by the application using this
1202control.<wbr/></p>
1203<p>A given camera device may not support all of the possible
1204options for the antibanding mode.<wbr/> The
1205<a href="#static_android.control.aeAvailableAntibandingModes">android.<wbr/>control.<wbr/>ae<wbr/>Available<wbr/>Antibanding<wbr/>Modes</a> key contains
1206the available modes for a given camera device.<wbr/></p>
1207<p>The default mode is AUTO,<wbr/> which must be supported by all
1208camera devices.<wbr/></p>
1209<p>If manual exposure control is enabled (by setting
1210<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/>
1211then this setting has no effect,<wbr/> and the application must
1212ensure it selects exposure times that do not cause banding
1213issues.<wbr/> The <a href="#dynamic_android.statistics.sceneFlicker">android.<wbr/>statistics.<wbr/>scene<wbr/>Flicker</a> key can assist
1214the application in this.<wbr/></p>
1215 </td>
1216 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08001217
Eino-Ville Talvala19ce2c12013-12-30 12:03:45 -08001218 <tr class="entries_header">
1219 <th class="th_details" colspan="5">HAL Implementation Details</th>
1220 </tr>
1221 <tr class="entry_cont">
1222 <td class="entry_details" colspan="5">
1223 <p>For all capture request templates,<wbr/> this field must be set
1224to AUTO.<wbr/> AUTO is the only mode that must supported;
1225OFF,<wbr/> 50HZ,<wbr/> 60HZ are all optional.<wbr/></p>
1226<p>If manual exposure control is enabled (by setting
1227<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/>
1228then the exposure values provided by the application must not be
1229adjusted for antibanding.<wbr/></p>
1230 </td>
1231 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08001232
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08001233 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
1234 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001235
1236
1237 <tr class="entry" id="controls_android.control.aeExposureCompensation">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08001238 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08001239 android.<wbr/>control.<wbr/>ae<wbr/>Exposure<wbr/>Compensation
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08001240 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001241 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08001242 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001243
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07001244 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001245
1246
1247 </td> <!-- entry_type -->
1248
1249 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08001250 <p>Adjustment to AE target image
1251brightness</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001252 </td>
1253
1254 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -08001255 count of positive/<wbr/>negative EV steps
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001256 </td>
1257
1258 <td class="entry_range">
1259 </td>
1260
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001261 <td class="entry_tags">
1262 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08001263 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001264 </ul>
1265 </td>
1266
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08001267 </tr>
1268 <tr class="entries_header">
1269 <th class="th_details" colspan="5">Details</th>
1270 </tr>
1271 <tr class="entry_cont">
1272 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08001273 <p>For example,<wbr/> if EV step is 0.<wbr/>333,<wbr/> '6' will mean an
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08001274exposure compensation of +2 EV; -3 will mean an exposure
Igor Murashkin0b080452013-12-27 15:30:25 -08001275compensation of -1</p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08001276 </td>
1277 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08001278
1279
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08001280 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
1281 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001282
1283
1284 <tr class="entry" id="controls_android.control.aeLock">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08001285 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08001286 android.<wbr/>control.<wbr/>ae<wbr/>Lock
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08001287 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001288 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08001289 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001290
Igor Murashkinb8dc8812013-07-17 16:29:34 -07001291 <span class="entry_type_visibility"> [public as boolean]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001292
1293 <ul class="entry_type_enum">
1294 <li>
Eino-Ville Talvala76548fe2013-01-11 13:57:19 -08001295 <span class="entry_type_enum_name">OFF</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08001296 <span class="entry_type_enum_notes"><p>Autoexposure lock is disabled; the AE algorithm
1297is free to update its parameters.<wbr/></p></span>
Eino-Ville Talvala76548fe2013-01-11 13:57:19 -08001298 </li>
1299 <li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001300 <span class="entry_type_enum_name">ON</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08001301 <span class="entry_type_enum_notes"><p>Autoexposure lock is enabled; the AE algorithm
1302must not update the exposure and sensitivity parameters
1303while the lock is active</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001304 </li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001305 </ul>
1306
1307 </td> <!-- entry_type -->
1308
1309 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08001310 <p>Whether AE is currently locked to its latest
Zhijun He44d0b3d2014-02-04 16:42:46 -08001311calculated values.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001312 </td>
1313
1314 <td class="entry_units">
1315 </td>
1316
1317 <td class="entry_range">
1318 </td>
1319
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001320 <td class="entry_tags">
1321 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08001322 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001323 </ul>
1324 </td>
1325
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08001326 </tr>
1327 <tr class="entries_header">
1328 <th class="th_details" colspan="5">Details</th>
1329 </tr>
1330 <tr class="entry_cont">
1331 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08001332 <p>Note that even when AE is locked,<wbr/> the flash may be
Zhijun He44d0b3d2014-02-04 16:42:46 -08001333fired if the <a href="#controls_android.control.aeMode">android.<wbr/>control.<wbr/>ae<wbr/>Mode</a> is ON_<wbr/>AUTO_<wbr/>FLASH /<wbr/> ON_<wbr/>ALWAYS_<wbr/>FLASH /<wbr/>
Igor Murashkin0b080452013-12-27 15:30:25 -08001334ON_<wbr/>AUTO_<wbr/>FLASH_<wbr/>REDEYE.<wbr/></p>
Zhijun He44d0b3d2014-02-04 16:42:46 -08001335<p>If AE precapture is triggered (see <a href="#controls_android.control.aePrecaptureTrigger">android.<wbr/>control.<wbr/>ae<wbr/>Precapture<wbr/>Trigger</a>)
1336when AE is already locked,<wbr/> the camera device will not change the exposure time
1337(<a href="#controls_android.sensor.exposureTime">android.<wbr/>sensor.<wbr/>exposure<wbr/>Time</a>) and sensitivity (<a href="#controls_android.sensor.sensitivity">android.<wbr/>sensor.<wbr/>sensitivity</a>)
1338parameters.<wbr/> The flash may be fired if the android.<wbr/>control.<wbr/>ae<wbr/>Mode
1339is ON_<wbr/>AUTO_<wbr/>FLASH/<wbr/>ON_<wbr/>AUTO_<wbr/>FLASH_<wbr/>REDEYE and the scene is too dark.<wbr/> If the
1340<a href="#controls_android.control.aeMode">android.<wbr/>control.<wbr/>ae<wbr/>Mode</a> is ON_<wbr/>ALWAYS_<wbr/>FLASH,<wbr/> the scene may become overexposed.<wbr/></p>
1341<p>See <a href="#dynamic_android.control.aeState">android.<wbr/>control.<wbr/>ae<wbr/>State</a> for AE lock related state transition details.<wbr/></p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08001342 </td>
1343 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08001344
1345
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08001346 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
1347 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001348
1349
1350 <tr class="entry" id="controls_android.control.aeMode">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08001351 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08001352 android.<wbr/>control.<wbr/>ae<wbr/>Mode
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08001353 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001354 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08001355 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001356
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07001357 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001358
1359 <ul class="entry_type_enum">
1360 <li>
1361 <span class="entry_type_enum_name">OFF</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08001362 <span class="entry_type_enum_notes"><p>The camera device's autoexposure routine is disabled;
1363the application-selected <a href="#controls_android.sensor.exposureTime">android.<wbr/>sensor.<wbr/>exposure<wbr/>Time</a>,<wbr/>
1364<a href="#controls_android.sensor.sensitivity">android.<wbr/>sensor.<wbr/>sensitivity</a> and
1365<a href="#controls_android.sensor.frameDuration">android.<wbr/>sensor.<wbr/>frame<wbr/>Duration</a> are used by the camera
1366device,<wbr/> along with android.<wbr/>flash.<wbr/>* fields,<wbr/> if there's
1367a flash unit for this camera device.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001368 </li>
1369 <li>
1370 <span class="entry_type_enum_name">ON</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08001371 <span class="entry_type_enum_notes"><p>The camera device's autoexposure routine is active,<wbr/>
1372with no flash control.<wbr/> The application's values for
1373<a href="#controls_android.sensor.exposureTime">android.<wbr/>sensor.<wbr/>exposure<wbr/>Time</a>,<wbr/>
1374<a href="#controls_android.sensor.sensitivity">android.<wbr/>sensor.<wbr/>sensitivity</a>,<wbr/> and
1375<a href="#controls_android.sensor.frameDuration">android.<wbr/>sensor.<wbr/>frame<wbr/>Duration</a> are ignored.<wbr/> The
1376application has control over the various
1377android.<wbr/>flash.<wbr/>* fields.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001378 </li>
1379 <li>
1380 <span class="entry_type_enum_name">ON_AUTO_FLASH</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08001381 <span class="entry_type_enum_notes"><p>Like ON,<wbr/> except that the camera device also controls
1382the camera's flash unit,<wbr/> firing it in low-light
1383conditions.<wbr/> The flash may be fired during a
1384precapture sequence (triggered by
1385<a href="#controls_android.control.aePrecaptureTrigger">android.<wbr/>control.<wbr/>ae<wbr/>Precapture<wbr/>Trigger</a>) and may be fired
1386for captures for which the
1387<a href="#controls_android.control.captureIntent">android.<wbr/>control.<wbr/>capture<wbr/>Intent</a> field is set to
1388STILL_<wbr/>CAPTURE</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001389 </li>
1390 <li>
1391 <span class="entry_type_enum_name">ON_ALWAYS_FLASH</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08001392 <span class="entry_type_enum_notes"><p>Like ON,<wbr/> except that the camera device also controls
1393the camera's flash unit,<wbr/> always firing it for still
1394captures.<wbr/> The flash may be fired during a precapture
1395sequence (triggered by
1396<a href="#controls_android.control.aePrecaptureTrigger">android.<wbr/>control.<wbr/>ae<wbr/>Precapture<wbr/>Trigger</a>) and will always
1397be fired for captures for which the
1398<a href="#controls_android.control.captureIntent">android.<wbr/>control.<wbr/>capture<wbr/>Intent</a> field is set to
1399STILL_<wbr/>CAPTURE</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001400 </li>
1401 <li>
1402 <span class="entry_type_enum_name">ON_AUTO_FLASH_REDEYE</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08001403 <span class="entry_type_enum_notes"><p>Like ON_<wbr/>AUTO_<wbr/>FLASH,<wbr/> but with automatic red eye
1404reduction.<wbr/> If deemed necessary by the camera device,<wbr/>
1405a red eye reduction flash will fire during the
1406precapture sequence.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001407 </li>
1408 </ul>
1409
1410 </td> <!-- entry_type -->
1411
1412 <td class="entry_description">
Eino-Ville Talvala9fa0d902014-01-08 16:16:53 -08001413 <p>The desired mode for the camera device's
1414auto-exposure routine.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001415 </td>
1416
1417 <td class="entry_units">
1418 </td>
1419
1420 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08001421 <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 -08001422 </td>
1423
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08001424 <td class="entry_tags">
1425 <ul class="entry_tags">
1426 <li><a href="#tag_BC">BC</a></li>
1427 </ul>
1428 </td>
1429
1430 </tr>
1431 <tr class="entries_header">
1432 <th class="th_details" colspan="5">Details</th>
1433 </tr>
1434 <tr class="entry_cont">
1435 <td class="entry_details" colspan="5">
Eino-Ville Talvala9fa0d902014-01-08 16:16:53 -08001436 <p>This control is only effective if <a href="#controls_android.control.mode">android.<wbr/>control.<wbr/>mode</a> is
1437AUTO.<wbr/></p>
1438<p>When set to any of the ON modes,<wbr/> the camera device's
1439auto-exposure routine is enabled,<wbr/> overriding the
1440application's selected exposure time,<wbr/> sensor sensitivity,<wbr/>
1441and frame duration (<a href="#controls_android.sensor.exposureTime">android.<wbr/>sensor.<wbr/>exposure<wbr/>Time</a>,<wbr/>
1442<a href="#controls_android.sensor.sensitivity">android.<wbr/>sensor.<wbr/>sensitivity</a>,<wbr/> and
1443<a href="#controls_android.sensor.frameDuration">android.<wbr/>sensor.<wbr/>frame<wbr/>Duration</a>).<wbr/> If one of the FLASH modes
1444is selected,<wbr/> the camera device's flash unit controls are
1445also overridden.<wbr/></p>
1446<p>The FLASH modes are only available if the camera device
1447has a flash unit (<a href="#static_android.flash.info.available">android.<wbr/>flash.<wbr/>info.<wbr/>available</a> is <code>true</code>).<wbr/></p>
1448<p>If flash TORCH mode is desired,<wbr/> this field must be set to
1449ON or OFF,<wbr/> and <a href="#controls_android.flash.mode">android.<wbr/>flash.<wbr/>mode</a> set to TORCH.<wbr/></p>
1450<p>When set to any of the ON modes,<wbr/> the values chosen by the
1451camera device auto-exposure routine for the overridden
1452fields for a given capture will be available in its
1453CaptureResult.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001454 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08001455 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08001456
1457
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08001458 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
1459 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001460
1461
1462 <tr class="entry" id="controls_android.control.aeRegions">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08001463 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08001464 android.<wbr/>control.<wbr/>ae<wbr/>Regions
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08001465 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001466 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08001467 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001468 <span class="entry_type_container">x</span>
1469
1470 <span class="entry_type_array">
1471 5 x area_count
1472 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07001473 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001474
1475
1476 </td> <!-- entry_type -->
1477
1478 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08001479 <p>List of areas to use for
Ruben Brunk76e4c7d2014-01-31 11:05:30 -08001480metering.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001481 </td>
1482
1483 <td class="entry_units">
1484 </td>
1485
1486 <td class="entry_range">
Ruben Brunk76e4c7d2014-01-31 11:05:30 -08001487 <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 -08001488 </td>
1489
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08001490 <td class="entry_tags">
1491 <ul class="entry_tags">
1492 <li><a href="#tag_BC">BC</a></li>
1493 </ul>
1494 </td>
1495
1496 </tr>
1497 <tr class="entries_header">
1498 <th class="th_details" colspan="5">Details</th>
1499 </tr>
1500 <tr class="entry_cont">
1501 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08001502 <p>Each area is a rectangle plus weight: xmin,<wbr/> ymin,<wbr/>
Ruben Brunk76e4c7d2014-01-31 11:05:30 -08001503xmax,<wbr/> ymax,<wbr/> weight.<wbr/> The rectangle is defined to be inclusive of the
Igor Murashkin0b080452013-12-27 15:30:25 -08001504specified coordinates.<wbr/></p>
1505<p>The coordinate system is based on the active pixel array,<wbr/>
1506with (0,<wbr/>0) being the top-left pixel in the active pixel array,<wbr/> and
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08001507(<a href="#static_android.sensor.info.activeArraySize">android.<wbr/>sensor.<wbr/>info.<wbr/>active<wbr/>Array<wbr/>Size</a>.<wbr/>width - 1,<wbr/>
1508<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 -08001509bottom-right pixel in the active pixel array.<wbr/> The weight
1510should be nonnegative.<wbr/></p>
1511<p>If all regions have 0 weight,<wbr/> then no specific metering area
1512needs to be used by the HAL.<wbr/> If the metering region is
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08001513outside 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 -08001514should ignore the sections outside the region and output the
Ruben Brunk76e4c7d2014-01-31 11:05:30 -08001515used sections in the frame metadata.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001516 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08001517 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08001518
1519
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08001520 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
1521 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001522
1523
1524 <tr class="entry" id="controls_android.control.aeTargetFpsRange">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08001525 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08001526 android.<wbr/>control.<wbr/>ae<wbr/>Target<wbr/>Fps<wbr/>Range
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08001527 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001528 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08001529 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001530 <span class="entry_type_container">x</span>
1531
1532 <span class="entry_type_array">
1533 2
1534 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07001535 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001536
1537
1538 </td> <!-- entry_type -->
1539
1540 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08001541 <p>Range over which fps can be adjusted to
1542maintain exposure</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001543 </td>
1544
1545 <td class="entry_units">
1546 </td>
1547
1548 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08001549 <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 -08001550 </td>
1551
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001552 <td class="entry_tags">
1553 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08001554 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001555 </ul>
1556 </td>
1557
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08001558 </tr>
1559 <tr class="entries_header">
1560 <th class="th_details" colspan="5">Details</th>
1561 </tr>
1562 <tr class="entry_cont">
1563 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08001564 <p>Only constrains AE algorithm,<wbr/> not manual control
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08001565of <a href="#controls_android.sensor.exposureTime">android.<wbr/>sensor.<wbr/>exposure<wbr/>Time</a></p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08001566 </td>
1567 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08001568
1569
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08001570 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
1571 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001572
1573
Eino-Ville Talvala3b4383a2013-03-18 09:42:48 -07001574 <tr class="entry" id="controls_android.control.aePrecaptureTrigger">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08001575 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08001576 android.<wbr/>control.<wbr/>ae<wbr/>Precapture<wbr/>Trigger
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08001577 </td>
Eino-Ville Talvala3b4383a2013-03-18 09:42:48 -07001578 <td class="entry_type">
1579 <span class="entry_type_name entry_type_name_enum">byte</span>
1580
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07001581 <span class="entry_type_visibility"> [public]</span>
Eino-Ville Talvala3b4383a2013-03-18 09:42:48 -07001582
1583 <ul class="entry_type_enum">
1584 <li>
1585 <span class="entry_type_enum_name">IDLE</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08001586 <span class="entry_type_enum_notes"><p>The trigger is idle.<wbr/></p></span>
Eino-Ville Talvala3b4383a2013-03-18 09:42:48 -07001587 </li>
1588 <li>
1589 <span class="entry_type_enum_name">START</span>
Zhijun He92e698d2014-01-13 16:24:31 -08001590 <span class="entry_type_enum_notes"><p>The precapture metering sequence will be started
1591by the camera device.<wbr/> The exact effect of the precapture
1592trigger depends on the current AE mode and state.<wbr/></p></span>
Eino-Ville Talvala3b4383a2013-03-18 09:42:48 -07001593 </li>
1594 </ul>
1595
1596 </td> <!-- entry_type -->
1597
1598 <td class="entry_description">
Zhijun He92e698d2014-01-13 16:24:31 -08001599 <p>Whether the camera device will trigger a precapture
1600metering sequence when it processes this request.<wbr/></p>
Eino-Ville Talvala3b4383a2013-03-18 09:42:48 -07001601 </td>
1602
1603 <td class="entry_units">
1604 </td>
1605
1606 <td class="entry_range">
1607 </td>
1608
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08001609 <td class="entry_tags">
1610 <ul class="entry_tags">
1611 <li><a href="#tag_BC">BC</a></li>
1612 </ul>
1613 </td>
1614
1615 </tr>
1616 <tr class="entries_header">
1617 <th class="th_details" colspan="5">Details</th>
1618 </tr>
1619 <tr class="entry_cont">
1620 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08001621 <p>This entry is normally set to IDLE,<wbr/> or is not
1622included at all in the request settings.<wbr/> When included and
Zhijun He92e698d2014-01-13 16:24:31 -08001623set to START,<wbr/> the camera device will trigger the autoexposure
Igor Murashkin0b080452013-12-27 15:30:25 -08001624precapture metering sequence.<wbr/></p>
Igor Murashkin8aa2a112013-12-09 12:06:17 -08001625<p>The effect of AE precapture trigger depends on the current
Zhijun He92e698d2014-01-13 16:24:31 -08001626AE mode and state; see <a href="#dynamic_android.control.aeState">android.<wbr/>control.<wbr/>ae<wbr/>State</a> for AE precapture
1627state transition details.<wbr/></p>
Eino-Ville Talvala3b4383a2013-03-18 09:42:48 -07001628 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08001629 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08001630
1631
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08001632 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
1633 <!-- end of entry -->
Eino-Ville Talvala3b4383a2013-03-18 09:42:48 -07001634
1635
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001636 <tr class="entry" id="controls_android.control.afMode">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08001637 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08001638 android.<wbr/>control.<wbr/>af<wbr/>Mode
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08001639 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001640 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08001641 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001642
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07001643 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001644
1645 <ul class="entry_type_enum">
1646 <li>
1647 <span class="entry_type_enum_name">OFF</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08001648 <span class="entry_type_enum_notes"><p>The auto-focus routine does not control the lens;
1649<a href="#controls_android.lens.focusDistance">android.<wbr/>lens.<wbr/>focus<wbr/>Distance</a> is controlled by the
1650application</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001651 </li>
1652 <li>
1653 <span class="entry_type_enum_name">AUTO</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08001654 <span class="entry_type_enum_notes"><p>If lens is not fixed focus.<wbr/></p>
1655<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
1656is fixed-focus.<wbr/> In this mode,<wbr/> the lens does not move unless
1657the autofocus trigger action is called.<wbr/> When that trigger
1658is activated,<wbr/> AF must transition to ACTIVE_<wbr/>SCAN,<wbr/> then to
1659the outcome of the scan (FOCUSED or NOT_<wbr/>FOCUSED).<wbr/></p>
1660<p>Triggering AF_<wbr/>CANCEL resets the lens position to default,<wbr/>
1661and sets the AF state to INACTIVE.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001662 </li>
1663 <li>
1664 <span class="entry_type_enum_name">MACRO</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08001665 <span class="entry_type_enum_notes"><p>In this mode,<wbr/> the lens does not move unless the
1666autofocus trigger action is called.<wbr/></p>
1667<p>When that trigger is activated,<wbr/> AF must transition to
1668ACTIVE_<wbr/>SCAN,<wbr/> then to the outcome of the scan (FOCUSED or
1669NOT_<wbr/>FOCUSED).<wbr/> Triggering cancel AF resets the lens
1670position to default,<wbr/> and sets the AF state to
1671INACTIVE.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001672 </li>
1673 <li>
1674 <span class="entry_type_enum_name">CONTINUOUS_VIDEO</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08001675 <span class="entry_type_enum_notes"><p>In this mode,<wbr/> the AF algorithm modifies the lens
1676position continually to attempt to provide a
1677constantly-in-focus image stream.<wbr/></p>
1678<p>The focusing behavior should be suitable for good quality
1679video recording; typically this means slower focus
1680movement and no overshoots.<wbr/> When the AF trigger is not
1681involved,<wbr/> the AF algorithm should start in INACTIVE state,<wbr/>
1682and then transition into PASSIVE_<wbr/>SCAN and PASSIVE_<wbr/>FOCUSED
1683states as appropriate.<wbr/> When the AF trigger is activated,<wbr/>
1684the algorithm should immediately transition into
1685AF_<wbr/>FOCUSED or AF_<wbr/>NOT_<wbr/>FOCUSED as appropriate,<wbr/> and lock the
1686lens position until a cancel AF trigger is received.<wbr/></p>
1687<p>Once cancel is received,<wbr/> the algorithm should transition
1688back to INACTIVE and resume passive scan.<wbr/> Note that this
1689behavior is not identical to CONTINUOUS_<wbr/>PICTURE,<wbr/> since an
1690ongoing PASSIVE_<wbr/>SCAN must immediately be
1691canceled.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001692 </li>
1693 <li>
1694 <span class="entry_type_enum_name">CONTINUOUS_PICTURE</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08001695 <span class="entry_type_enum_notes"><p>In this mode,<wbr/> the AF algorithm modifies the lens
1696position continually to attempt to provide a
1697constantly-in-focus image stream.<wbr/></p>
1698<p>The focusing behavior should be suitable for still image
1699capture; typically this means focusing as fast as
1700possible.<wbr/> When the AF trigger is not involved,<wbr/> the AF
1701algorithm should start in INACTIVE state,<wbr/> and then
1702transition into PASSIVE_<wbr/>SCAN and PASSIVE_<wbr/>FOCUSED states as
1703appropriate as it attempts to maintain focus.<wbr/> When the AF
1704trigger is activated,<wbr/> the algorithm should finish its
1705PASSIVE_<wbr/>SCAN if active,<wbr/> and then transition into
1706AF_<wbr/>FOCUSED or AF_<wbr/>NOT_<wbr/>FOCUSED as appropriate,<wbr/> and lock the
1707lens position until a cancel AF trigger is received.<wbr/></p>
1708<p>When the AF cancel trigger is activated,<wbr/> the algorithm
1709should transition back to INACTIVE and then act as if it
1710has just been started.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001711 </li>
1712 <li>
1713 <span class="entry_type_enum_name">EDOF</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08001714 <span class="entry_type_enum_notes"><p>Extended depth of field (digital focus).<wbr/> AF
1715trigger is ignored,<wbr/> AF state should always be
1716INACTIVE.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001717 </li>
1718 </ul>
1719
1720 </td> <!-- entry_type -->
1721
1722 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08001723 <p>Whether AF is currently enabled,<wbr/> and what
1724mode it is set to</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001725 </td>
1726
1727 <td class="entry_units">
1728 </td>
1729
1730 <td class="entry_range">
Zhijun He7787f7f2014-01-14 16:30:31 -08001731 <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 -08001732 </td>
1733
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001734 <td class="entry_tags">
1735 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08001736 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001737 </ul>
1738 </td>
1739
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08001740 </tr>
1741 <tr class="entries_header">
1742 <th class="th_details" colspan="5">Details</th>
1743 </tr>
1744 <tr class="entry_cont">
1745 <td class="entry_details" colspan="5">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08001746 <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 -08001747<p>If the lens is controlled by the camera device auto-focus algorithm,<wbr/>
1748the camera device will report the current AF status in android.<wbr/>control.<wbr/>af<wbr/>State
1749in result metadata.<wbr/></p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08001750 </td>
1751 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08001752
1753
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08001754 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
1755 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001756
1757
1758 <tr class="entry" id="controls_android.control.afRegions">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08001759 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08001760 android.<wbr/>control.<wbr/>af<wbr/>Regions
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08001761 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001762 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08001763 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001764 <span class="entry_type_container">x</span>
1765
1766 <span class="entry_type_array">
1767 5 x area_count
1768 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07001769 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001770
1771
1772 </td> <!-- entry_type -->
1773
1774 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08001775 <p>List of areas to use for focus
Ruben Brunk76e4c7d2014-01-31 11:05:30 -08001776estimation.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001777 </td>
1778
1779 <td class="entry_units">
1780 </td>
1781
1782 <td class="entry_range">
Ruben Brunk76e4c7d2014-01-31 11:05:30 -08001783 <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 -08001784 </td>
1785
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08001786 <td class="entry_tags">
1787 <ul class="entry_tags">
1788 <li><a href="#tag_BC">BC</a></li>
1789 </ul>
1790 </td>
1791
1792 </tr>
1793 <tr class="entries_header">
1794 <th class="th_details" colspan="5">Details</th>
1795 </tr>
1796 <tr class="entry_cont">
1797 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08001798 <p>Each area is a rectangle plus weight: xmin,<wbr/> ymin,<wbr/>
Ruben Brunk76e4c7d2014-01-31 11:05:30 -08001799xmax,<wbr/> ymax,<wbr/> weight.<wbr/> The rectangle is defined to be inclusive of the
Igor Murashkin0b080452013-12-27 15:30:25 -08001800specified coordinates.<wbr/></p>
1801<p>The coordinate system is based on the active pixel array,<wbr/>
1802with (0,<wbr/>0) being the top-left pixel in the active pixel array,<wbr/> and
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08001803(<a href="#static_android.sensor.info.activeArraySize">android.<wbr/>sensor.<wbr/>info.<wbr/>active<wbr/>Array<wbr/>Size</a>.<wbr/>width - 1,<wbr/>
1804<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 -08001805bottom-right pixel in the active pixel array.<wbr/> The weight
1806should be nonnegative.<wbr/></p>
1807<p>If all regions have 0 weight,<wbr/> then no specific focus area
1808needs to be used by the HAL.<wbr/> If the focusing region is
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08001809outside 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 -08001810should ignore the sections outside the region and output the
Ruben Brunk76e4c7d2014-01-31 11:05:30 -08001811used sections in the frame metadata.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001812 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08001813 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08001814
1815
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08001816 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
1817 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001818
1819
Eino-Ville Talvala3b4383a2013-03-18 09:42:48 -07001820 <tr class="entry" id="controls_android.control.afTrigger">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08001821 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08001822 android.<wbr/>control.<wbr/>af<wbr/>Trigger
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08001823 </td>
Eino-Ville Talvala3b4383a2013-03-18 09:42:48 -07001824 <td class="entry_type">
1825 <span class="entry_type_name entry_type_name_enum">byte</span>
1826
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07001827 <span class="entry_type_visibility"> [public]</span>
Eino-Ville Talvala3b4383a2013-03-18 09:42:48 -07001828
1829 <ul class="entry_type_enum">
1830 <li>
1831 <span class="entry_type_enum_name">IDLE</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08001832 <span class="entry_type_enum_notes"><p>The trigger is idle.<wbr/></p></span>
Eino-Ville Talvala3b4383a2013-03-18 09:42:48 -07001833 </li>
1834 <li>
1835 <span class="entry_type_enum_name">START</span>
Zhijun He92e698d2014-01-13 16:24:31 -08001836 <span class="entry_type_enum_notes"><p>Autofocus will trigger now.<wbr/></p></span>
Eino-Ville Talvala3b4383a2013-03-18 09:42:48 -07001837 </li>
1838 <li>
1839 <span class="entry_type_enum_name">CANCEL</span>
Zhijun He92e698d2014-01-13 16:24:31 -08001840 <span class="entry_type_enum_notes"><p>Autofocus will return to its initial
1841state,<wbr/> and cancel any currently active trigger.<wbr/></p></span>
Eino-Ville Talvala3b4383a2013-03-18 09:42:48 -07001842 </li>
1843 </ul>
1844
1845 </td> <!-- entry_type -->
1846
1847 <td class="entry_description">
Zhijun He92e698d2014-01-13 16:24:31 -08001848 <p>Whether the camera device will trigger autofocus for this request.<wbr/></p>
Eino-Ville Talvala3b4383a2013-03-18 09:42:48 -07001849 </td>
1850
1851 <td class="entry_units">
1852 </td>
1853
1854 <td class="entry_range">
1855 </td>
1856
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08001857 <td class="entry_tags">
1858 <ul class="entry_tags">
1859 <li><a href="#tag_BC">BC</a></li>
1860 </ul>
1861 </td>
1862
1863 </tr>
1864 <tr class="entries_header">
1865 <th class="th_details" colspan="5">Details</th>
1866 </tr>
1867 <tr class="entry_cont">
1868 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08001869 <p>This entry is normally set to IDLE,<wbr/> or is not
1870included at all in the request settings.<wbr/></p>
Zhijun He92e698d2014-01-13 16:24:31 -08001871<p>When included and set to START,<wbr/> the camera device will trigger the
1872autofocus algorithm.<wbr/> If autofocus is disabled,<wbr/> this trigger has no effect.<wbr/></p>
1873<p>When set to CANCEL,<wbr/> the camera device will cancel any active trigger,<wbr/>
1874and return to its initial AF state.<wbr/></p>
1875<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 -07001876 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08001877 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08001878
1879
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08001880 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
1881 <!-- end of entry -->
Eino-Ville Talvala3b4383a2013-03-18 09:42:48 -07001882
1883
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001884 <tr class="entry" id="controls_android.control.awbLock">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08001885 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08001886 android.<wbr/>control.<wbr/>awb<wbr/>Lock
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08001887 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001888 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08001889 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001890
Igor Murashkinb8dc8812013-07-17 16:29:34 -07001891 <span class="entry_type_visibility"> [public as boolean]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001892
1893 <ul class="entry_type_enum">
1894 <li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001895 <span class="entry_type_enum_name">OFF</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08001896 <span class="entry_type_enum_notes"><p>Auto-whitebalance lock is disabled; the AWB
1897algorithm is free to update its parameters if in AUTO
1898mode.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001899 </li>
Eino-Ville Talvala76548fe2013-01-11 13:57:19 -08001900 <li>
1901 <span class="entry_type_enum_name">ON</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08001902 <span class="entry_type_enum_notes"><p>Auto-whitebalance lock is enabled; the AWB
1903algorithm must not update the exposure and sensitivity
1904parameters while the lock is active</p></span>
Eino-Ville Talvala76548fe2013-01-11 13:57:19 -08001905 </li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001906 </ul>
1907
1908 </td> <!-- entry_type -->
1909
1910 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08001911 <p>Whether AWB is currently locked to its
1912latest calculated values</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001913 </td>
1914
1915 <td class="entry_units">
1916 </td>
1917
1918 <td class="entry_range">
1919 </td>
1920
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001921 <td class="entry_tags">
1922 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08001923 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001924 </ul>
1925 </td>
1926
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08001927 </tr>
1928 <tr class="entries_header">
1929 <th class="th_details" colspan="5">Details</th>
1930 </tr>
1931 <tr class="entry_cont">
1932 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08001933 <p>Note that AWB lock is only meaningful for AUTO
1934mode; in other modes,<wbr/> AWB is already fixed to a specific
1935setting</p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08001936 </td>
1937 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08001938
1939
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08001940 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
1941 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001942
1943
1944 <tr class="entry" id="controls_android.control.awbMode">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08001945 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08001946 android.<wbr/>control.<wbr/>awb<wbr/>Mode
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08001947 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001948 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08001949 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001950
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07001951 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001952
1953 <ul class="entry_type_enum">
1954 <li>
1955 <span class="entry_type_enum_name">OFF</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08001956 <span class="entry_type_enum_notes"><p>The camera device's auto white balance routine is disabled;
1957the application-selected color transform matrix
1958(<a href="#controls_android.colorCorrection.transform">android.<wbr/>color<wbr/>Correction.<wbr/>transform</a>) and gains
1959(<a href="#controls_android.colorCorrection.gains">android.<wbr/>color<wbr/>Correction.<wbr/>gains</a>) are used by the camera
1960device for manual white balance control.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001961 </li>
1962 <li>
1963 <span class="entry_type_enum_name">AUTO</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08001964 <span class="entry_type_enum_notes"><p>The camera device's auto white balance routine is active;
1965the application's values for android.<wbr/>color<wbr/>Correction.<wbr/>transform
1966and <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 -08001967 </li>
1968 <li>
1969 <span class="entry_type_enum_name">INCANDESCENT</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08001970 <span class="entry_type_enum_notes"><p>The camera device's auto white balance routine is disabled;
1971the camera device uses incandescent light as the assumed scene
1972illumination for white balance.<wbr/> While the exact white balance
1973transforms are up to the camera device,<wbr/> they will approximately
1974match the CIE standard illuminant A.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001975 </li>
1976 <li>
1977 <span class="entry_type_enum_name">FLUORESCENT</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08001978 <span class="entry_type_enum_notes"><p>The camera device's auto white balance routine is disabled;
1979the camera device uses fluorescent light as the assumed scene
1980illumination for white balance.<wbr/> While the exact white balance
1981transforms are up to the camera device,<wbr/> they will approximately
1982match the CIE standard illuminant F2.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001983 </li>
1984 <li>
1985 <span class="entry_type_enum_name">WARM_FLUORESCENT</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08001986 <span class="entry_type_enum_notes"><p>The camera device's auto white balance routine is disabled;
1987the camera device uses warm fluorescent light as the assumed scene
1988illumination for white balance.<wbr/> While the exact white balance
1989transforms are up to the camera device,<wbr/> they will approximately
1990match the CIE standard illuminant F4.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001991 </li>
1992 <li>
1993 <span class="entry_type_enum_name">DAYLIGHT</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08001994 <span class="entry_type_enum_notes"><p>The camera device's auto white balance routine is disabled;
1995the camera device uses daylight light as the assumed scene
1996illumination for white balance.<wbr/> While the exact white balance
1997transforms are up to the camera device,<wbr/> they will approximately
1998match the CIE standard illuminant D65.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08001999 </li>
2000 <li>
2001 <span class="entry_type_enum_name">CLOUDY_DAYLIGHT</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08002002 <span class="entry_type_enum_notes"><p>The camera device's auto white balance routine is disabled;
2003the camera device uses cloudy daylight light as the assumed scene
2004illumination for white balance.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002005 </li>
2006 <li>
2007 <span class="entry_type_enum_name">TWILIGHT</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08002008 <span class="entry_type_enum_notes"><p>The camera device's auto white balance routine is disabled;
2009the camera device uses twilight light as the assumed scene
2010illumination for white balance.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002011 </li>
2012 <li>
2013 <span class="entry_type_enum_name">SHADE</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08002014 <span class="entry_type_enum_notes"><p>The camera device's auto white balance routine is disabled;
2015the camera device uses shade light as the assumed scene
2016illumination for white balance.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002017 </li>
2018 </ul>
2019
2020 </td> <!-- entry_type -->
2021
2022 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08002023 <p>Whether AWB is currently setting the color
2024transform fields,<wbr/> and what its illumination target
2025is</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002026 </td>
2027
2028 <td class="entry_units">
2029 </td>
2030
2031 <td class="entry_range">
Zhijun He7787f7f2014-01-14 16:30:31 -08002032 <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 -08002033 </td>
2034
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002035 <td class="entry_tags">
2036 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08002037 <li><a href="#tag_BC">BC</a></li>
2038 <li><a href="#tag_AWB">AWB</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002039 </ul>
2040 </td>
2041
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08002042 </tr>
2043 <tr class="entries_header">
2044 <th class="th_details" colspan="5">Details</th>
2045 </tr>
2046 <tr class="entry_cont">
2047 <td class="entry_details" colspan="5">
Zhijun He7787f7f2014-01-14 16:30:31 -08002048 <p>This control is only effective if <a href="#controls_android.control.mode">android.<wbr/>control.<wbr/>mode</a> is AUTO.<wbr/></p>
2049<p>When set to the ON mode,<wbr/> the camera device's auto white balance
2050routine is enabled,<wbr/> overriding the application's selected
2051<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
2052<a href="#controls_android.colorCorrection.mode">android.<wbr/>color<wbr/>Correction.<wbr/>mode</a>.<wbr/></p>
2053<p>When set to the OFF mode,<wbr/> the camera device's auto white balance
2054routine is disabled.<wbr/> The applicantion manually controls the white
2055balance by <a href="#controls_android.colorCorrection.transform">android.<wbr/>color<wbr/>Correction.<wbr/>transform</a>,<wbr/> android.<wbr/>color<wbr/>Correction.<wbr/>gains
2056and <a href="#controls_android.colorCorrection.mode">android.<wbr/>color<wbr/>Correction.<wbr/>mode</a>.<wbr/></p>
2057<p>When set to any other modes,<wbr/> the camera device's auto white balance
2058routine is disabled.<wbr/> The camera device uses each particular illumination
2059target for white balance adjustment.<wbr/></p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08002060 </td>
2061 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08002062
2063
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08002064 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
2065 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002066
2067
2068 <tr class="entry" id="controls_android.control.awbRegions">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08002069 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08002070 android.<wbr/>control.<wbr/>awb<wbr/>Regions
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08002071 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002072 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08002073 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002074 <span class="entry_type_container">x</span>
2075
2076 <span class="entry_type_array">
2077 5 x area_count
2078 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07002079 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002080
2081
2082 </td> <!-- entry_type -->
2083
2084 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08002085 <p>List of areas to use for illuminant
Ruben Brunk76e4c7d2014-01-31 11:05:30 -08002086estimation.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002087 </td>
2088
2089 <td class="entry_units">
2090 </td>
2091
2092 <td class="entry_range">
Ruben Brunk76e4c7d2014-01-31 11:05:30 -08002093 <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 -08002094 </td>
2095
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08002096 <td class="entry_tags">
2097 <ul class="entry_tags">
2098 <li><a href="#tag_BC">BC</a></li>
2099 </ul>
2100 </td>
2101
2102 </tr>
2103 <tr class="entries_header">
2104 <th class="th_details" colspan="5">Details</th>
2105 </tr>
2106 <tr class="entry_cont">
2107 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08002108 <p>Only used in AUTO mode.<wbr/></p>
2109<p>Each area is a rectangle plus weight: xmin,<wbr/> ymin,<wbr/>
Ruben Brunk76e4c7d2014-01-31 11:05:30 -08002110xmax,<wbr/> ymax,<wbr/> weight.<wbr/> The rectangle is defined to be inclusive of the
Igor Murashkin0b080452013-12-27 15:30:25 -08002111specified coordinates.<wbr/></p>
2112<p>The coordinate system is based on the active pixel array,<wbr/>
2113with (0,<wbr/>0) being the top-left pixel in the active pixel array,<wbr/> and
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08002114(<a href="#static_android.sensor.info.activeArraySize">android.<wbr/>sensor.<wbr/>info.<wbr/>active<wbr/>Array<wbr/>Size</a>.<wbr/>width - 1,<wbr/>
2115<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 -08002116bottom-right pixel in the active pixel array.<wbr/> The weight
2117should be nonnegative.<wbr/></p>
2118<p>If all regions have 0 weight,<wbr/> then no specific metering area
2119needs to be used by the HAL.<wbr/> If the metering region is
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08002120outside 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 -08002121should ignore the sections outside the region and output the
Ruben Brunk76e4c7d2014-01-31 11:05:30 -08002122used sections in the frame metadata.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002123 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08002124 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08002125
2126
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08002127 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
2128 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002129
2130
2131 <tr class="entry" id="controls_android.control.captureIntent">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08002132 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08002133 android.<wbr/>control.<wbr/>capture<wbr/>Intent
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08002134 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002135 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08002136 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002137
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07002138 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002139
2140 <ul class="entry_type_enum">
2141 <li>
2142 <span class="entry_type_enum_name">CUSTOM</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08002143 <span class="entry_type_enum_notes"><p>This request doesn't fall into the other
2144categories.<wbr/> Default to preview-like
2145behavior.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002146 </li>
2147 <li>
2148 <span class="entry_type_enum_name">PREVIEW</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08002149 <span class="entry_type_enum_notes"><p>This request is for a preview-like usecase.<wbr/> The
2150precapture trigger may be used to start off a metering
2151w/<wbr/>flash sequence</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002152 </li>
2153 <li>
2154 <span class="entry_type_enum_name">STILL_CAPTURE</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08002155 <span class="entry_type_enum_notes"><p>This request is for a still capture-type
2156usecase.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002157 </li>
2158 <li>
2159 <span class="entry_type_enum_name">VIDEO_RECORD</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08002160 <span class="entry_type_enum_notes"><p>This request is for a video recording
2161usecase.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002162 </li>
2163 <li>
2164 <span class="entry_type_enum_name">VIDEO_SNAPSHOT</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08002165 <span class="entry_type_enum_notes"><p>This request is for a video snapshot (still
2166image while recording video) usecase</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002167 </li>
2168 <li>
2169 <span class="entry_type_enum_name">ZERO_SHUTTER_LAG</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08002170 <span class="entry_type_enum_notes"><p>This request is for a ZSL usecase; the
2171application will stream full-resolution images and
2172reprocess one or several later for a final
2173capture</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002174 </li>
2175 </ul>
2176
2177 </td> <!-- entry_type -->
2178
2179 <td class="entry_description">
Zhijun Heea27bc32014-01-15 13:47:59 -08002180 <p>Information to the camera device 3A (auto-exposure,<wbr/>
2181auto-focus,<wbr/> auto-white balance) routines about the purpose
2182of this capture,<wbr/> to help the camera device to decide optimal 3A
2183strategy.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002184 </td>
2185
2186 <td class="entry_units">
2187 </td>
2188
2189 <td class="entry_range">
Zhijun Heea27bc32014-01-15 13:47:59 -08002190 <p>All must be supported</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002191 </td>
2192
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002193 <td class="entry_tags">
2194 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08002195 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002196 </ul>
2197 </td>
2198
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08002199 </tr>
2200 <tr class="entries_header">
2201 <th class="th_details" colspan="5">Details</th>
2202 </tr>
2203 <tr class="entry_cont">
2204 <td class="entry_details" colspan="5">
Zhijun Heea27bc32014-01-15 13:47:59 -08002205 <p>This control is only effective if <code><a href="#controls_android.control.mode">android.<wbr/>control.<wbr/>mode</a> != OFF</code>
2206and any 3A routine is active.<wbr/></p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08002207 </td>
2208 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08002209
2210
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08002211 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
2212 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002213
2214
2215 <tr class="entry" id="controls_android.control.effectMode">
Ruben Brunkb28b35f2014-01-14 17:17:19 -08002216 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08002217 android.<wbr/>control.<wbr/>effect<wbr/>Mode
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08002218 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002219 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08002220 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002221
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07002222 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002223
2224 <ul class="entry_type_enum">
2225 <li>
2226 <span class="entry_type_enum_name">OFF</span>
Ruben Brunkb28b35f2014-01-14 17:17:19 -08002227 <span class="entry_type_enum_notes"><p>No color effect will be applied.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002228 </li>
2229 <li>
2230 <span class="entry_type_enum_name">MONO</span>
2231 <span class="entry_type_enum_optional">optional</span>
Ruben Brunkb28b35f2014-01-14 17:17:19 -08002232 <span class="entry_type_enum_notes"><p>A "monocolor" effect where the image is mapped into
2233a single color.<wbr/> This will typically be grayscale.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002234 </li>
2235 <li>
2236 <span class="entry_type_enum_name">NEGATIVE</span>
2237 <span class="entry_type_enum_optional">optional</span>
Ruben Brunkb28b35f2014-01-14 17:17:19 -08002238 <span class="entry_type_enum_notes"><p>A "photo-negative" effect where the image's colors
2239are inverted.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002240 </li>
2241 <li>
2242 <span class="entry_type_enum_name">SOLARIZE</span>
2243 <span class="entry_type_enum_optional">optional</span>
Ruben Brunkb28b35f2014-01-14 17:17:19 -08002244 <span class="entry_type_enum_notes"><p>A "solarisation" effect (Sabattier effect) where the
2245image is wholly or partially reversed in
2246tone.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002247 </li>
2248 <li>
2249 <span class="entry_type_enum_name">SEPIA</span>
2250 <span class="entry_type_enum_optional">optional</span>
Ruben Brunkb28b35f2014-01-14 17:17:19 -08002251 <span class="entry_type_enum_notes"><p>A "sepia" effect where the image is mapped into warm
2252gray,<wbr/> red,<wbr/> and brown tones.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002253 </li>
2254 <li>
2255 <span class="entry_type_enum_name">POSTERIZE</span>
2256 <span class="entry_type_enum_optional">optional</span>
Ruben Brunkb28b35f2014-01-14 17:17:19 -08002257 <span class="entry_type_enum_notes"><p>A "posterization" effect where the image uses
2258discrete regions of tone rather than a continuous
2259gradient of tones.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002260 </li>
2261 <li>
2262 <span class="entry_type_enum_name">WHITEBOARD</span>
2263 <span class="entry_type_enum_optional">optional</span>
Ruben Brunkb28b35f2014-01-14 17:17:19 -08002264 <span class="entry_type_enum_notes"><p>A "whiteboard" effect where the image is typically displayed
2265as regions of white,<wbr/> with black or grey details.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002266 </li>
2267 <li>
2268 <span class="entry_type_enum_name">BLACKBOARD</span>
2269 <span class="entry_type_enum_optional">optional</span>
Ruben Brunkb28b35f2014-01-14 17:17:19 -08002270 <span class="entry_type_enum_notes"><p>A "blackboard" effect where the image is typically displayed
2271as regions of black,<wbr/> with white or grey details.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002272 </li>
2273 <li>
2274 <span class="entry_type_enum_name">AQUA</span>
2275 <span class="entry_type_enum_optional">optional</span>
Ruben Brunkb28b35f2014-01-14 17:17:19 -08002276 <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 -08002277 </li>
2278 </ul>
2279
2280 </td> <!-- entry_type -->
2281
2282 <td class="entry_description">
Ruben Brunkb28b35f2014-01-14 17:17:19 -08002283 <p>A special color effect to apply.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002284 </td>
2285
2286 <td class="entry_units">
2287 </td>
2288
2289 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08002290 <p><a href="#static_android.control.availableEffects">android.<wbr/>control.<wbr/>available<wbr/>Effects</a></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002291 </td>
2292
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002293 <td class="entry_tags">
2294 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08002295 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002296 </ul>
2297 </td>
2298
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08002299 </tr>
Ruben Brunkb28b35f2014-01-14 17:17:19 -08002300 <tr class="entries_header">
2301 <th class="th_details" colspan="5">Details</th>
2302 </tr>
2303 <tr class="entry_cont">
2304 <td class="entry_details" colspan="5">
2305 <p>When this mode is set,<wbr/> a color effect will be applied
2306to images produced by the camera device.<wbr/> The interpretation
2307and implementation of these color effects is left to the
2308implementor of the camera device,<wbr/> and should not be
2309depended on to be consistent (or present) across all
2310devices.<wbr/></p>
2311<p>A color effect will only be applied if
2312<a href="#controls_android.control.mode">android.<wbr/>control.<wbr/>mode</a> != OFF.<wbr/></p>
2313 </td>
2314 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08002315
2316
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08002317 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
2318 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002319
2320
2321 <tr class="entry" id="controls_android.control.mode">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08002322 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08002323 android.<wbr/>control.<wbr/>mode
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08002324 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002325 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08002326 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002327
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07002328 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002329
2330 <ul class="entry_type_enum">
2331 <li>
2332 <span class="entry_type_enum_name">OFF</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08002333 <span class="entry_type_enum_notes"><p>Full application control of pipeline.<wbr/> All 3A
2334routines are disabled,<wbr/> no other settings in
2335android.<wbr/>control.<wbr/>* have any effect</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002336 </li>
2337 <li>
2338 <span class="entry_type_enum_name">AUTO</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08002339 <span class="entry_type_enum_notes"><p>Use settings for each individual 3A routine.<wbr/>
2340Manual control of capture parameters is disabled.<wbr/> All
2341controls in android.<wbr/>control.<wbr/>* besides sceneMode take
2342effect</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002343 </li>
2344 <li>
2345 <span class="entry_type_enum_name">USE_SCENE_MODE</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08002346 <span class="entry_type_enum_notes"><p>Use specific scene mode.<wbr/> Enabling this disables
2347control.<wbr/>aeMode,<wbr/> control.<wbr/>awbMode and control.<wbr/>afMode
2348controls; the HAL must ignore those settings while
2349USE_<wbr/>SCENE_<wbr/>MODE is active (except for FACE_<wbr/>PRIORITY
2350scene mode).<wbr/> Other control entries are still active.<wbr/>
2351This setting can only be used if availableSceneModes !=
2352UNSUPPORTED</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002353 </li>
2354 </ul>
2355
2356 </td> <!-- entry_type -->
2357
2358 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08002359 <p>Overall mode of 3A control
2360routines</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002361 </td>
2362
2363 <td class="entry_units">
2364 </td>
2365
2366 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08002367 <p>all must be supported</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002368 </td>
2369
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08002370 <td class="entry_tags">
2371 <ul class="entry_tags">
2372 <li><a href="#tag_BC">BC</a></li>
2373 </ul>
2374 </td>
2375
2376 </tr>
2377 <tr class="entries_header">
2378 <th class="th_details" colspan="5">Details</th>
2379 </tr>
2380 <tr class="entry_cont">
2381 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08002382 <p>High-level 3A control.<wbr/> When set to OFF,<wbr/> all 3A control
Zhijun Hef90eeaf2014-01-16 12:13:35 -08002383by the camera device is disabled.<wbr/> The application must set the fields for
Igor Murashkin0b080452013-12-27 15:30:25 -08002384capture parameters itself.<wbr/></p>
2385<p>When set to AUTO,<wbr/> the individual algorithm controls in
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08002386android.<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 -08002387<p>When set to USE_<wbr/>SCENE_<wbr/>MODE,<wbr/> the individual controls in
Zhijun Hef90eeaf2014-01-16 12:13:35 -08002388android.<wbr/>control.<wbr/>* are mostly disabled,<wbr/> and the camera device implements
Igor Murashkin0b080452013-12-27 15:30:25 -08002389one of the scene mode settings (such as ACTION,<wbr/> SUNSET,<wbr/> or PARTY)
Zhijun Hef90eeaf2014-01-16 12:13:35 -08002390as it wishes.<wbr/> The camera device scene mode 3A settings are provided by
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08002391<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 -08002392 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08002393 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08002394
2395
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08002396 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
2397 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002398
2399
2400 <tr class="entry" id="controls_android.control.sceneMode">
Ruben Brunk9e28ea72014-01-14 18:55:29 -08002401 <td class="entry_name" rowspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08002402 android.<wbr/>control.<wbr/>scene<wbr/>Mode
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08002403 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002404 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08002405 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002406
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07002407 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002408
2409 <ul class="entry_type_enum">
2410 <li>
Ruben Brunk9e28ea72014-01-14 18:55:29 -08002411 <span class="entry_type_enum_name">DISABLED</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002412 <span class="entry_type_enum_value">0</span>
Ruben Brunk9e28ea72014-01-14 18:55:29 -08002413 <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 -08002414 </li>
2415 <li>
2416 <span class="entry_type_enum_name">FACE_PRIORITY</span>
Ruben Brunk9e28ea72014-01-14 18:55:29 -08002417 <span class="entry_type_enum_notes"><p>If face detection support exists,<wbr/> use face
2418detection data for auto-focus,<wbr/> auto-white balance,<wbr/> and
2419auto-exposure routines.<wbr/> If face detection statistics are
2420disabled (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/>
2421this should still operate correctly (but will not return
2422face detection statistics to the framework).<wbr/></p>
2423<p>Unlike the other scene modes,<wbr/> <a href="#controls_android.control.aeMode">android.<wbr/>control.<wbr/>ae<wbr/>Mode</a>,<wbr/>
2424<a href="#controls_android.control.awbMode">android.<wbr/>control.<wbr/>awb<wbr/>Mode</a>,<wbr/> and android.<wbr/>control.<wbr/>af<wbr/>Mode
2425remain active when FACE_<wbr/>PRIORITY is set.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002426 </li>
2427 <li>
2428 <span class="entry_type_enum_name">ACTION</span>
2429 <span class="entry_type_enum_optional">optional</span>
Ruben Brunk9e28ea72014-01-14 18:55:29 -08002430 <span class="entry_type_enum_notes"><p>Optimized for photos of quickly moving objects.<wbr/>
2431Similar to SPORTS.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002432 </li>
2433 <li>
2434 <span class="entry_type_enum_name">PORTRAIT</span>
2435 <span class="entry_type_enum_optional">optional</span>
Ruben Brunk9e28ea72014-01-14 18:55:29 -08002436 <span class="entry_type_enum_notes"><p>Optimized for still photos of people.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002437 </li>
2438 <li>
2439 <span class="entry_type_enum_name">LANDSCAPE</span>
2440 <span class="entry_type_enum_optional">optional</span>
Ruben Brunk9e28ea72014-01-14 18:55:29 -08002441 <span class="entry_type_enum_notes"><p>Optimized for photos of distant macroscopic objects.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002442 </li>
2443 <li>
2444 <span class="entry_type_enum_name">NIGHT</span>
2445 <span class="entry_type_enum_optional">optional</span>
Ruben Brunk9e28ea72014-01-14 18:55:29 -08002446 <span class="entry_type_enum_notes"><p>Optimized for low-light settings.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002447 </li>
2448 <li>
2449 <span class="entry_type_enum_name">NIGHT_PORTRAIT</span>
2450 <span class="entry_type_enum_optional">optional</span>
Ruben Brunk9e28ea72014-01-14 18:55:29 -08002451 <span class="entry_type_enum_notes"><p>Optimized for still photos of people in low-light
2452settings.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002453 </li>
2454 <li>
2455 <span class="entry_type_enum_name">THEATRE</span>
2456 <span class="entry_type_enum_optional">optional</span>
Ruben Brunk9e28ea72014-01-14 18:55:29 -08002457 <span class="entry_type_enum_notes"><p>Optimized for dim,<wbr/> indoor settings where flash must
2458remain off.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002459 </li>
2460 <li>
2461 <span class="entry_type_enum_name">BEACH</span>
2462 <span class="entry_type_enum_optional">optional</span>
Ruben Brunk9e28ea72014-01-14 18:55:29 -08002463 <span class="entry_type_enum_notes"><p>Optimized for bright,<wbr/> outdoor beach settings.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002464 </li>
2465 <li>
2466 <span class="entry_type_enum_name">SNOW</span>
2467 <span class="entry_type_enum_optional">optional</span>
Ruben Brunk9e28ea72014-01-14 18:55:29 -08002468 <span class="entry_type_enum_notes"><p>Optimized for bright,<wbr/> outdoor settings containing snow.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002469 </li>
2470 <li>
2471 <span class="entry_type_enum_name">SUNSET</span>
2472 <span class="entry_type_enum_optional">optional</span>
Ruben Brunk9e28ea72014-01-14 18:55:29 -08002473 <span class="entry_type_enum_notes"><p>Optimized for scenes of the setting sun.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002474 </li>
2475 <li>
2476 <span class="entry_type_enum_name">STEADYPHOTO</span>
2477 <span class="entry_type_enum_optional">optional</span>
Ruben Brunk9e28ea72014-01-14 18:55:29 -08002478 <span class="entry_type_enum_notes"><p>Optimized to avoid blurry photos due to small amounts of
2479device motion (for example: due to hand shake).<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002480 </li>
2481 <li>
2482 <span class="entry_type_enum_name">FIREWORKS</span>
2483 <span class="entry_type_enum_optional">optional</span>
Ruben Brunk9e28ea72014-01-14 18:55:29 -08002484 <span class="entry_type_enum_notes"><p>Optimized for nighttime photos of fireworks.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002485 </li>
2486 <li>
2487 <span class="entry_type_enum_name">SPORTS</span>
2488 <span class="entry_type_enum_optional">optional</span>
Ruben Brunk9e28ea72014-01-14 18:55:29 -08002489 <span class="entry_type_enum_notes"><p>Optimized for photos of quickly moving people.<wbr/>
2490Similar to ACTION.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002491 </li>
2492 <li>
2493 <span class="entry_type_enum_name">PARTY</span>
2494 <span class="entry_type_enum_optional">optional</span>
Ruben Brunk9e28ea72014-01-14 18:55:29 -08002495 <span class="entry_type_enum_notes"><p>Optimized for dim,<wbr/> indoor settings with multiple moving
2496people.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002497 </li>
2498 <li>
2499 <span class="entry_type_enum_name">CANDLELIGHT</span>
2500 <span class="entry_type_enum_optional">optional</span>
Ruben Brunk9e28ea72014-01-14 18:55:29 -08002501 <span class="entry_type_enum_notes"><p>Optimized for dim settings where the main light source
2502is a flame.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002503 </li>
2504 <li>
2505 <span class="entry_type_enum_name">BARCODE</span>
2506 <span class="entry_type_enum_optional">optional</span>
Ruben Brunk9e28ea72014-01-14 18:55:29 -08002507 <span class="entry_type_enum_notes"><p>Optimized for accurately capturing a photo of barcode
2508for use by camera applications that wish to read the
2509barcode value.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002510 </li>
2511 </ul>
2512
2513 </td> <!-- entry_type -->
2514
2515 <td class="entry_description">
Ruben Brunk9e28ea72014-01-14 18:55:29 -08002516 <p>A camera mode optimized for conditions typical in a particular
2517capture setting.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002518 </td>
2519
2520 <td class="entry_units">
2521 </td>
2522
2523 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08002524 <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 -08002525 </td>
2526
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002527 <td class="entry_tags">
2528 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08002529 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002530 </ul>
2531 </td>
2532
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08002533 </tr>
Ruben Brunk9e28ea72014-01-14 18:55:29 -08002534 <tr class="entries_header">
2535 <th class="th_details" colspan="5">Details</th>
2536 </tr>
2537 <tr class="entry_cont">
2538 <td class="entry_details" colspan="5">
2539 <p>This is the mode that that is active when
2540<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/>
2541these modes will disable <a href="#controls_android.control.aeMode">android.<wbr/>control.<wbr/>ae<wbr/>Mode</a>,<wbr/>
2542<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>
2543<p>The interpretation and implementation of these scene modes is left
2544to the implementor of the camera device.<wbr/> Their behavior will not be
2545consistent across all devices,<wbr/> and any given device may only implement
2546a subset of these modes.<wbr/></p>
2547 </td>
2548 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08002549
Ruben Brunk9e28ea72014-01-14 18:55:29 -08002550 <tr class="entries_header">
2551 <th class="th_details" colspan="5">HAL Implementation Details</th>
2552 </tr>
2553 <tr class="entry_cont">
2554 <td class="entry_details" colspan="5">
2555 <p>HAL implementations that include scene modes are expected to provide
2556the per-scene settings to use for <a href="#controls_android.control.aeMode">android.<wbr/>control.<wbr/>ae<wbr/>Mode</a>,<wbr/>
2557<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
2558<a href="#static_android.control.sceneModeOverrides">android.<wbr/>control.<wbr/>scene<wbr/>Mode<wbr/>Overrides</a>.<wbr/></p>
2559 </td>
2560 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08002561
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08002562 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
2563 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002564
2565
2566 <tr class="entry" id="controls_android.control.videoStabilizationMode">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08002567 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08002568 android.<wbr/>control.<wbr/>video<wbr/>Stabilization<wbr/>Mode
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08002569 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002570 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08002571 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002572
Igor Murashkinb8dc8812013-07-17 16:29:34 -07002573 <span class="entry_type_visibility"> [public as boolean]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002574
2575 <ul class="entry_type_enum">
2576 <li>
2577 <span class="entry_type_enum_name">OFF</span>
2578 </li>
2579 <li>
2580 <span class="entry_type_enum_name">ON</span>
2581 </li>
2582 </ul>
2583
2584 </td> <!-- entry_type -->
2585
2586 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08002587 <p>Whether video stabilization is
2588active</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002589 </td>
2590
2591 <td class="entry_units">
2592 </td>
2593
2594 <td class="entry_range">
2595 </td>
2596
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002597 <td class="entry_tags">
2598 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08002599 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002600 </ul>
2601 </td>
2602
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08002603 </tr>
2604 <tr class="entries_header">
2605 <th class="th_details" colspan="5">Details</th>
2606 </tr>
2607 <tr class="entry_cont">
2608 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08002609 <p>If enabled,<wbr/> video stabilization can modify the
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08002610<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 -08002611stabilized</p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08002612 </td>
2613 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08002614
2615
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08002616 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
2617 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002618
2619
2620
2621 <!-- end of kind -->
2622 </tbody>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08002623 <tr><td colspan="6" class="kind">static</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002624
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07002625 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002626 <tr>
2627 <th class="th_name">Property Name</th>
2628 <th class="th_type">Type</th>
2629 <th class="th_description">Description</th>
2630 <th class="th_units">Units</th>
2631 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002632 <th class="th_tags">Tags</th>
2633 </tr>
2634 </thead>
2635
2636 <tbody>
2637
2638
2639
2640
2641
2642
2643
2644
2645
2646
2647 <tr class="entry" id="static_android.control.aeAvailableAntibandingModes">
Eino-Ville Talvala19ce2c12013-12-30 12:03:45 -08002648 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08002649 android.<wbr/>control.<wbr/>ae<wbr/>Available<wbr/>Antibanding<wbr/>Modes
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08002650 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002651 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08002652 <span class="entry_type_name">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002653 <span class="entry_type_container">x</span>
2654
2655 <span class="entry_type_array">
2656 n
2657 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07002658 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -08002659 <div class="entry_type_notes">list of enums</div>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002660
2661
2662 </td> <!-- entry_type -->
2663
2664 <td class="entry_description">
Eino-Ville Talvala19ce2c12013-12-30 12:03:45 -08002665 <p>The set of auto-exposure antibanding modes that are
2666supported by this camera device.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002667 </td>
2668
2669 <td class="entry_units">
2670 </td>
2671
2672 <td class="entry_range">
2673 </td>
2674
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002675 <td class="entry_tags">
2676 </td>
2677
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08002678 </tr>
Eino-Ville Talvala19ce2c12013-12-30 12:03:45 -08002679 <tr class="entries_header">
2680 <th class="th_details" colspan="5">Details</th>
2681 </tr>
2682 <tr class="entry_cont">
2683 <td class="entry_details" colspan="5">
2684 <p>Not all of the auto-exposure anti-banding modes may be
2685supported by a given camera device.<wbr/> This field lists the
2686valid anti-banding modes that the application may request
2687for this camera device; they must include AUTO.<wbr/></p>
2688 </td>
2689 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08002690
2691
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08002692 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
2693 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002694
2695
2696 <tr class="entry" id="static_android.control.aeAvailableModes">
Eino-Ville Talvala9fa0d902014-01-08 16:16:53 -08002697 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08002698 android.<wbr/>control.<wbr/>ae<wbr/>Available<wbr/>Modes
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08002699 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002700 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08002701 <span class="entry_type_name">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002702 <span class="entry_type_container">x</span>
2703
2704 <span class="entry_type_array">
2705 n
2706 </span>
Eino-Ville Talvala9fa0d902014-01-08 16:16:53 -08002707 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -08002708 <div class="entry_type_notes">list of enums</div>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002709
2710
2711 </td> <!-- entry_type -->
2712
2713 <td class="entry_description">
Eino-Ville Talvala9fa0d902014-01-08 16:16:53 -08002714 <p>The set of auto-exposure modes that are supported by this
2715camera device.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002716 </td>
2717
2718 <td class="entry_units">
2719 </td>
2720
2721 <td class="entry_range">
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002722 </td>
2723
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002724 <td class="entry_tags">
Eino-Ville Talvala9fa0d902014-01-08 16:16:53 -08002725 <ul class="entry_tags">
2726 <li><a href="#tag_BC">BC</a></li>
2727 </ul>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002728 </td>
2729
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08002730 </tr>
Eino-Ville Talvala9fa0d902014-01-08 16:16:53 -08002731 <tr class="entries_header">
2732 <th class="th_details" colspan="5">Details</th>
2733 </tr>
2734 <tr class="entry_cont">
2735 <td class="entry_details" colspan="5">
2736 <p>Not all the auto-exposure modes may be supported by a
2737given camera device,<wbr/> especially if no flash unit is
2738available.<wbr/> This entry lists the valid modes for
2739<a href="#controls_android.control.aeMode">android.<wbr/>control.<wbr/>ae<wbr/>Mode</a> for this camera device.<wbr/></p>
2740<p>All camera devices support ON,<wbr/> and all camera devices with
2741flash units support ON_<wbr/>AUTO_<wbr/>FLASH and
2742ON_<wbr/>ALWAYS_<wbr/>FLASH.<wbr/></p>
2743<p>Full-capability camera devices always support OFF mode,<wbr/>
2744which enables application control of camera exposure time,<wbr/>
2745sensitivity,<wbr/> and frame duration.<wbr/></p>
2746 </td>
2747 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08002748
2749
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08002750 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
2751 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002752
2753
2754 <tr class="entry" id="static_android.control.aeAvailableTargetFpsRanges">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08002755 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -08002756 android.<wbr/>control.<wbr/>ae<wbr/>Available<wbr/>Target<wbr/>Fps<wbr/>Ranges
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08002757 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002758 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08002759 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002760 <span class="entry_type_container">x</span>
2761
2762 <span class="entry_type_array">
2763 2 x n
2764 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07002765 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -08002766 <div class="entry_type_notes">list of pairs of frame rates</div>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002767
2768
2769 </td> <!-- entry_type -->
2770
2771 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08002772 <p>List of frame rate ranges supported by the
2773AE algorithm/<wbr/>hardware</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002774 </td>
2775
2776 <td class="entry_units">
2777 </td>
2778
2779 <td class="entry_range">
2780 </td>
2781
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002782 <td class="entry_tags">
2783 </td>
2784
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08002785 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08002786
2787
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08002788 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
2789 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002790
2791
2792 <tr class="entry" id="static_android.control.aeCompensationRange">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08002793 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -08002794 android.<wbr/>control.<wbr/>ae<wbr/>Compensation<wbr/>Range
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08002795 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002796 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08002797 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002798 <span class="entry_type_container">x</span>
2799
2800 <span class="entry_type_array">
2801 2
2802 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07002803 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002804
2805
2806 </td> <!-- entry_type -->
2807
2808 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08002809 <p>Maximum and minimum exposure compensation
2810setting,<wbr/> in counts of
2811android.<wbr/>control.<wbr/>ae<wbr/>Compensation<wbr/>Step<wbr/>Size</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002812 </td>
2813
2814 <td class="entry_units">
2815 </td>
2816
2817 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08002818 <p>At least (-2,<wbr/>2)/<wbr/>(exp compensation step
2819size)</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002820 </td>
2821
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002822 <td class="entry_tags">
2823 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08002824 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002825 </ul>
2826 </td>
2827
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08002828 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08002829
2830
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08002831 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
2832 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002833
2834
2835 <tr class="entry" id="static_android.control.aeCompensationStep">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08002836 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -08002837 android.<wbr/>control.<wbr/>ae<wbr/>Compensation<wbr/>Step
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08002838 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002839 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08002840 <span class="entry_type_name">rational</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002841
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07002842 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002843
2844
2845 </td> <!-- entry_type -->
2846
2847 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08002848 <p>Smallest step by which exposure compensation
2849can be changed</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002850 </td>
2851
2852 <td class="entry_units">
2853 </td>
2854
2855 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08002856 <p>&lt;= 1/<wbr/>2</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002857 </td>
2858
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002859 <td class="entry_tags">
2860 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08002861 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002862 </ul>
2863 </td>
2864
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08002865 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08002866
2867
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08002868 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
2869 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002870
2871
2872 <tr class="entry" id="static_android.control.afAvailableModes">
Zhijun Hef163fa92014-01-14 09:59:04 -08002873 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08002874 android.<wbr/>control.<wbr/>af<wbr/>Available<wbr/>Modes
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08002875 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002876 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08002877 <span class="entry_type_name">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002878 <span class="entry_type_container">x</span>
2879
2880 <span class="entry_type_array">
2881 n
2882 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07002883 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -08002884 <div class="entry_type_notes">List of enums</div>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002885
2886
2887 </td> <!-- entry_type -->
2888
2889 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08002890 <p>List of AF modes that can be
Zhijun Hef163fa92014-01-14 09:59:04 -08002891selected with <a href="#controls_android.control.afMode">android.<wbr/>control.<wbr/>af<wbr/>Mode</a>.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002892 </td>
2893
2894 <td class="entry_units">
2895 </td>
2896
2897 <td class="entry_range">
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002898 </td>
2899
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002900 <td class="entry_tags">
2901 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08002902 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002903 </ul>
2904 </td>
2905
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08002906 </tr>
Zhijun Hef163fa92014-01-14 09:59:04 -08002907 <tr class="entries_header">
2908 <th class="th_details" colspan="5">Details</th>
2909 </tr>
2910 <tr class="entry_cont">
2911 <td class="entry_details" colspan="5">
2912 <p>Not all the auto-focus modes may be supported by a
2913given camera device.<wbr/> This entry lists the valid modes for
2914<a href="#controls_android.control.afMode">android.<wbr/>control.<wbr/>af<wbr/>Mode</a> for this camera device.<wbr/></p>
2915<p>All camera devices will support OFF mode,<wbr/> and all camera devices with
2916adjustable 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>)
2917will support AUTO mode.<wbr/></p>
2918 </td>
2919 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08002920
2921
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08002922 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
2923 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002924
2925
2926 <tr class="entry" id="static_android.control.availableEffects">
Ruben Brunkb28b35f2014-01-14 17:17:19 -08002927 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08002928 android.<wbr/>control.<wbr/>available<wbr/>Effects
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08002929 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002930 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08002931 <span class="entry_type_name">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002932 <span class="entry_type_container">x</span>
2933
2934 <span class="entry_type_array">
2935 n
2936 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07002937 <span class="entry_type_visibility"> [public]</span>
Ruben Brunkb28b35f2014-01-14 17:17:19 -08002938 <div class="entry_type_notes">List of enums (android.<wbr/>control.<wbr/>effect<wbr/>Mode).<wbr/></div>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002939
2940
2941 </td> <!-- entry_type -->
2942
2943 <td class="entry_description">
Ruben Brunkb28b35f2014-01-14 17:17:19 -08002944 <p>List containing the subset of color effects
2945specified in <a href="#controls_android.control.effectMode">android.<wbr/>control.<wbr/>effect<wbr/>Mode</a> that is supported by
2946this device.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002947 </td>
2948
2949 <td class="entry_units">
2950 </td>
2951
2952 <td class="entry_range">
Ruben Brunkb28b35f2014-01-14 17:17:19 -08002953 <p>Any subset of enums from those specified in
2954<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 -08002955 </td>
2956
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002957 <td class="entry_tags">
2958 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08002959 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002960 </ul>
2961 </td>
2962
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08002963 </tr>
Ruben Brunkb28b35f2014-01-14 17:17:19 -08002964 <tr class="entries_header">
2965 <th class="th_details" colspan="5">Details</th>
2966 </tr>
2967 <tr class="entry_cont">
2968 <td class="entry_details" colspan="5">
2969 <p>This list contains the color effect modes that can be applied to
2970images produced by the camera device.<wbr/> Only modes that have
2971been fully implemented for the current device may be included here.<wbr/>
2972Implementations are not expected to be consistent across all devices.<wbr/>
2973If no color effect modes are available for a device,<wbr/> this should
2974simply be set to OFF.<wbr/></p>
2975<p>A color effect will only be applied if
2976<a href="#controls_android.control.mode">android.<wbr/>control.<wbr/>mode</a> != OFF.<wbr/></p>
2977 </td>
2978 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08002979
2980
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08002981 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
2982 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002983
2984
2985 <tr class="entry" id="static_android.control.availableSceneModes">
Ruben Brunkbf870fc2014-01-14 17:46:58 -08002986 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08002987 android.<wbr/>control.<wbr/>available<wbr/>Scene<wbr/>Modes
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08002988 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002989 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08002990 <span class="entry_type_name">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002991 <span class="entry_type_container">x</span>
2992
2993 <span class="entry_type_array">
2994 n
2995 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07002996 <span class="entry_type_visibility"> [public]</span>
Ruben Brunkbf870fc2014-01-14 17:46:58 -08002997 <div class="entry_type_notes">List of enums (android.<wbr/>control.<wbr/>scene<wbr/>Mode).<wbr/></div>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002998
2999
3000 </td> <!-- entry_type -->
3001
3002 <td class="entry_description">
Ruben Brunkbf870fc2014-01-14 17:46:58 -08003003 <p>List containing a subset of scene modes
3004specified in <a href="#controls_android.control.sceneMode">android.<wbr/>control.<wbr/>scene<wbr/>Mode</a>.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003005 </td>
3006
3007 <td class="entry_units">
3008 </td>
3009
3010 <td class="entry_range">
Ruben Brunkbf870fc2014-01-14 17:46:58 -08003011 <p>Any subset of the enums specified in android.<wbr/>control.<wbr/>scene<wbr/>Mode
3012not including DISABLED,<wbr/> or solely DISABLED if no
3013scene modes are available.<wbr/> FACE_<wbr/>PRIORITY must be included
3014if 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 -08003015 </td>
3016
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003017 <td class="entry_tags">
3018 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08003019 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003020 </ul>
3021 </td>
3022
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08003023 </tr>
Ruben Brunkbf870fc2014-01-14 17:46:58 -08003024 <tr class="entries_header">
3025 <th class="th_details" colspan="5">Details</th>
3026 </tr>
3027 <tr class="entry_cont">
3028 <td class="entry_details" colspan="5">
3029 <p>This list contains scene modes that can be set for the camera device.<wbr/>
3030Only scene modes that have been fully implemented for the
3031camera device may be included here.<wbr/> Implementations are not expected
3032to be consistent across all devices.<wbr/> If no scene modes are supported
3033by the camera device,<wbr/> this will be set to <code>[DISABLED]</code>.<wbr/></p>
3034 </td>
3035 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08003036
3037
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08003038 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
3039 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003040
3041
3042 <tr class="entry" id="static_android.control.availableVideoStabilizationModes">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08003043 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -08003044 android.<wbr/>control.<wbr/>available<wbr/>Video<wbr/>Stabilization<wbr/>Modes
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08003045 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003046 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08003047 <span class="entry_type_name">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003048 <span class="entry_type_container">x</span>
3049
3050 <span class="entry_type_array">
3051 n
3052 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07003053 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -08003054 <div class="entry_type_notes">List of enums.<wbr/></div>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003055
3056
3057 </td> <!-- entry_type -->
3058
3059 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08003060 <p>List of video stabilization modes that can
3061be supported</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003062 </td>
3063
3064 <td class="entry_units">
3065 </td>
3066
3067 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08003068 <p>OFF must be included</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003069 </td>
3070
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003071 <td class="entry_tags">
3072 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08003073 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003074 </ul>
3075 </td>
3076
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08003077 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08003078
3079
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08003080 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
3081 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003082
3083
3084 <tr class="entry" id="static_android.control.awbAvailableModes">
Zhijun He7787f7f2014-01-14 16:30:31 -08003085 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08003086 android.<wbr/>control.<wbr/>awb<wbr/>Available<wbr/>Modes
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08003087 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003088 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08003089 <span class="entry_type_name">byte</span>
Alex Raya4251d92013-04-30 16:43:44 -07003090 <span class="entry_type_container">x</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003091
Alex Raya4251d92013-04-30 16:43:44 -07003092 <span class="entry_type_array">
3093 n
3094 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07003095 <span class="entry_type_visibility"> [public]</span>
Zhijun He7787f7f2014-01-14 16:30:31 -08003096 <div class="entry_type_notes">List of enums</div>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003097
3098
3099 </td> <!-- entry_type -->
3100
3101 <td class="entry_description">
Zhijun He7787f7f2014-01-14 16:30:31 -08003102 <p>The set of auto-white-balance modes (<a href="#controls_android.control.awbMode">android.<wbr/>control.<wbr/>awb<wbr/>Mode</a>)
3103that are supported by this camera device.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003104 </td>
3105
3106 <td class="entry_units">
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003107 </td>
3108
3109 <td class="entry_range">
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003110 </td>
3111
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003112 <td class="entry_tags">
3113 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08003114 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003115 </ul>
3116 </td>
3117
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08003118 </tr>
Zhijun He7787f7f2014-01-14 16:30:31 -08003119 <tr class="entries_header">
3120 <th class="th_details" colspan="5">Details</th>
3121 </tr>
3122 <tr class="entry_cont">
3123 <td class="entry_details" colspan="5">
3124 <p>Not all the auto-white-balance modes may be supported by a
3125given camera device.<wbr/> This entry lists the valid modes for
3126<a href="#controls_android.control.awbMode">android.<wbr/>control.<wbr/>awb<wbr/>Mode</a> for this camera device.<wbr/></p>
3127<p>All camera devices will support ON mode.<wbr/></p>
3128<p>Full-capability camera devices will always support OFF mode,<wbr/>
3129which enables application control of white balance,<wbr/> by using
3130<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>
3131 </td>
3132 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08003133
3134
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08003135 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
3136 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003137
3138
3139 <tr class="entry" id="static_android.control.maxRegions">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08003140 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -08003141 android.<wbr/>control.<wbr/>max<wbr/>Regions
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08003142 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003143 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08003144 <span class="entry_type_name">int32</span>
Ruben Brunk120eea42014-01-15 15:55:08 -08003145 <span class="entry_type_container">x</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003146
Ruben Brunk120eea42014-01-15 15:55:08 -08003147 <span class="entry_type_array">
3148 3
3149 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07003150 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003151
3152
3153 </td> <!-- entry_type -->
3154
3155 <td class="entry_description">
Ruben Brunk120eea42014-01-15 15:55:08 -08003156 <p>List of the maximum number of regions that can be used for metering in
3157auto-exposure (AE),<wbr/> auto-white balance (AWB),<wbr/> and auto-focus (AF);
3158this corresponds to the the maximum number of elements in
3159<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/>
3160and <a href="#controls_android.control.afRegions">android.<wbr/>control.<wbr/>af<wbr/>Regions</a>.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003161 </td>
3162
3163 <td class="entry_units">
3164 </td>
3165
3166 <td class="entry_range">
Ruben Brunk120eea42014-01-15 15:55:08 -08003167 <p>Value must be &gt;= 0 for each element.<wbr/> For full-capability devices
3168this value must be &gt;= 1 for AE and AF.<wbr/> The order of the elements is:
3169<code>(AE,<wbr/> AWB,<wbr/> AF)</code>.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003170 </td>
3171
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003172 <td class="entry_tags">
3173 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08003174 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003175 </ul>
3176 </td>
3177
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08003178 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08003179
3180
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08003181 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
3182 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003183
3184
3185 <tr class="entry" id="static_android.control.sceneModeOverrides">
Ruben Brunkcf77fe92014-01-14 19:31:21 -08003186 <td class="entry_name" rowspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08003187 android.<wbr/>control.<wbr/>scene<wbr/>Mode<wbr/>Overrides
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08003188 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003189 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08003190 <span class="entry_type_name">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003191 <span class="entry_type_container">x</span>
3192
3193 <span class="entry_type_array">
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07003194 3 x length(availableSceneModes)
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003195 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07003196 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003197
3198
3199 </td> <!-- entry_type -->
3200
3201 <td class="entry_description">
Ruben Brunkcf77fe92014-01-14 19:31:21 -08003202 <p>Ordered list of auto-exposure,<wbr/> auto-white balance,<wbr/> and auto-focus
3203settings to use with each available scene mode.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003204 </td>
3205
3206 <td class="entry_units">
3207 </td>
3208
3209 <td class="entry_range">
Ruben Brunkcf77fe92014-01-14 19:31:21 -08003210 <p>For each available scene mode,<wbr/> the list must contain three
3211entries containing the <a href="#controls_android.control.aeMode">android.<wbr/>control.<wbr/>ae<wbr/>Mode</a>,<wbr/>
3212<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
3213by the camera device.<wbr/> The entry order is <code>(aeMode,<wbr/> awbMode,<wbr/> afMode)</code>
3214where aeMode has the lowest index position.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003215 </td>
3216
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08003217 <td class="entry_tags">
3218 <ul class="entry_tags">
3219 <li><a href="#tag_BC">BC</a></li>
3220 </ul>
3221 </td>
3222
3223 </tr>
3224 <tr class="entries_header">
3225 <th class="th_details" colspan="5">Details</th>
3226 </tr>
3227 <tr class="entry_cont">
3228 <td class="entry_details" colspan="5">
Ruben Brunkcf77fe92014-01-14 19:31:21 -08003229 <p>When a scene mode is enabled,<wbr/> the camera device is expected
3230to 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/>
3231and <a href="#controls_android.control.afMode">android.<wbr/>control.<wbr/>af<wbr/>Mode</a> with its preferred settings for
3232that scene mode.<wbr/></p>
3233<p>The order of this list matches that of availableSceneModes,<wbr/>
3234with 3 entries for each mode.<wbr/> The overrides listed
3235for FACE_<wbr/>PRIORITY are ignored,<wbr/> since for that
3236mode the application-set <a href="#controls_android.control.aeMode">android.<wbr/>control.<wbr/>ae<wbr/>Mode</a>,<wbr/>
3237<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
3238used instead,<wbr/> matching the behavior when android.<wbr/>control.<wbr/>mode
3239is set to AUTO.<wbr/> It is recommended that the FACE_<wbr/>PRIORITY
3240overrides should be set to 0.<wbr/></p>
3241<p>For example,<wbr/> if availableSceneModes contains
3242<code>(FACE_<wbr/>PRIORITY,<wbr/> ACTION,<wbr/> NIGHT)</code>,<wbr/> then the camera framework
3243expects sceneModeOverrides to have 9 entries formatted like:
3244<code>(0,<wbr/> 0,<wbr/> 0,<wbr/> ON_<wbr/>AUTO_<wbr/>FLASH,<wbr/> AUTO,<wbr/> CONTINUOUS_<wbr/>PICTURE,<wbr/>
3245ON_<wbr/>AUTO_<wbr/>FLASH,<wbr/> INCANDESCENT,<wbr/> AUTO)</code>.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003246 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08003247 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08003248
Ruben Brunkcf77fe92014-01-14 19:31:21 -08003249 <tr class="entries_header">
3250 <th class="th_details" colspan="5">HAL Implementation Details</th>
3251 </tr>
3252 <tr class="entry_cont">
3253 <td class="entry_details" colspan="5">
3254 <p>To maintain backward compatibility,<wbr/> this list will be made available
3255in the static metadata of the camera service.<wbr/> The camera service will
3256use these values to set <a href="#controls_android.control.aeMode">android.<wbr/>control.<wbr/>ae<wbr/>Mode</a>,<wbr/>
3257<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
3258mode other than FACE_<wbr/>PRIORITY.<wbr/></p>
3259 </td>
3260 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08003261
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08003262 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
3263 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003264
3265
3266
3267 <!-- end of kind -->
3268 </tbody>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08003269 <tr><td colspan="6" class="kind">dynamic</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003270
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07003271 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003272 <tr>
3273 <th class="th_name">Property Name</th>
3274 <th class="th_type">Type</th>
3275 <th class="th_description">Description</th>
3276 <th class="th_units">Units</th>
3277 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003278 <th class="th_tags">Tags</th>
3279 </tr>
3280 </thead>
3281
3282 <tbody>
3283
3284
3285
3286
3287
3288
3289
3290
3291
3292
3293 <tr class="entry" id="dynamic_android.control.aePrecaptureId">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08003294 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08003295 android.<wbr/>control.<wbr/>ae<wbr/>Precapture<wbr/>Id
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08003296 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003297 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08003298 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003299
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07003300 <span class="entry_type_visibility"> [hidden]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003301
3302
3303 </td> <!-- entry_type -->
3304
3305 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08003306 <p>The ID sent with the latest
3307CAMERA2_<wbr/>TRIGGER_<wbr/>PRECAPTURE_<wbr/>METERING call</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003308 </td>
3309
3310 <td class="entry_units">
3311 </td>
3312
3313 <td class="entry_range">
Zhijun He7391bb62014-02-05 00:09:04 -08003314 <p><strong>Deprecated</strong>.<wbr/> Do not use.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003315 </td>
3316
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08003317 <td class="entry_tags">
3318 </td>
3319
3320 </tr>
3321 <tr class="entries_header">
3322 <th class="th_details" colspan="5">Details</th>
3323 </tr>
3324 <tr class="entry_cont">
3325 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08003326 <p>Must be 0 if no
3327CAMERA2_<wbr/>TRIGGER_<wbr/>PRECAPTURE_<wbr/>METERING trigger received yet
3328by HAL.<wbr/> Always updated even if AE algorithm ignores the
3329trigger</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003330 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08003331 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08003332
3333
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08003334 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
3335 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003336
3337
Eino-Ville Talvala9fa0d902014-01-08 16:16:53 -08003338 <tr class="entry" id="dynamic_android.control.aeMode">
3339 <td class="entry_name" rowspan="3">
3340 android.<wbr/>control.<wbr/>ae<wbr/>Mode
3341 </td>
3342 <td class="entry_type">
3343 <span class="entry_type_name entry_type_name_enum">byte</span>
3344
3345 <span class="entry_type_visibility"> [public]</span>
3346
3347 <ul class="entry_type_enum">
3348 <li>
3349 <span class="entry_type_enum_name">OFF</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08003350 <span class="entry_type_enum_notes"><p>The camera device's autoexposure routine is disabled;
3351the application-selected <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> and
3353<a href="#controls_android.sensor.frameDuration">android.<wbr/>sensor.<wbr/>frame<wbr/>Duration</a> are used by the camera
3354device,<wbr/> along with android.<wbr/>flash.<wbr/>* fields,<wbr/> if there's
3355a flash unit for this camera device.<wbr/></p></span>
Eino-Ville Talvala9fa0d902014-01-08 16:16:53 -08003356 </li>
3357 <li>
3358 <span class="entry_type_enum_name">ON</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08003359 <span class="entry_type_enum_notes"><p>The camera device's autoexposure routine is active,<wbr/>
3360with no flash control.<wbr/> The application's values for
3361<a href="#controls_android.sensor.exposureTime">android.<wbr/>sensor.<wbr/>exposure<wbr/>Time</a>,<wbr/>
3362<a href="#controls_android.sensor.sensitivity">android.<wbr/>sensor.<wbr/>sensitivity</a>,<wbr/> and
3363<a href="#controls_android.sensor.frameDuration">android.<wbr/>sensor.<wbr/>frame<wbr/>Duration</a> are ignored.<wbr/> The
3364application has control over the various
3365android.<wbr/>flash.<wbr/>* fields.<wbr/></p></span>
Eino-Ville Talvala9fa0d902014-01-08 16:16:53 -08003366 </li>
3367 <li>
3368 <span class="entry_type_enum_name">ON_AUTO_FLASH</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08003369 <span class="entry_type_enum_notes"><p>Like ON,<wbr/> except that the camera device also controls
3370the camera's flash unit,<wbr/> firing it in low-light
3371conditions.<wbr/> The flash may be fired during a
3372precapture sequence (triggered by
3373<a href="#controls_android.control.aePrecaptureTrigger">android.<wbr/>control.<wbr/>ae<wbr/>Precapture<wbr/>Trigger</a>) and may be fired
3374for captures for which the
3375<a href="#controls_android.control.captureIntent">android.<wbr/>control.<wbr/>capture<wbr/>Intent</a> field is set to
3376STILL_<wbr/>CAPTURE</p></span>
Eino-Ville Talvala9fa0d902014-01-08 16:16:53 -08003377 </li>
3378 <li>
3379 <span class="entry_type_enum_name">ON_ALWAYS_FLASH</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08003380 <span class="entry_type_enum_notes"><p>Like ON,<wbr/> except that the camera device also controls
3381the camera's flash unit,<wbr/> always firing it for still
3382captures.<wbr/> The flash may be fired during a precapture
3383sequence (triggered by
3384<a href="#controls_android.control.aePrecaptureTrigger">android.<wbr/>control.<wbr/>ae<wbr/>Precapture<wbr/>Trigger</a>) and will always
3385be fired for captures for which the
3386<a href="#controls_android.control.captureIntent">android.<wbr/>control.<wbr/>capture<wbr/>Intent</a> field is set to
3387STILL_<wbr/>CAPTURE</p></span>
Eino-Ville Talvala9fa0d902014-01-08 16:16:53 -08003388 </li>
3389 <li>
3390 <span class="entry_type_enum_name">ON_AUTO_FLASH_REDEYE</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08003391 <span class="entry_type_enum_notes"><p>Like ON_<wbr/>AUTO_<wbr/>FLASH,<wbr/> but with automatic red eye
3392reduction.<wbr/> If deemed necessary by the camera device,<wbr/>
3393a red eye reduction flash will fire during the
3394precapture sequence.<wbr/></p></span>
Eino-Ville Talvala9fa0d902014-01-08 16:16:53 -08003395 </li>
3396 </ul>
3397
3398 </td> <!-- entry_type -->
3399
3400 <td class="entry_description">
3401 <p>The desired mode for the camera device's
3402auto-exposure routine.<wbr/></p>
3403 </td>
3404
3405 <td class="entry_units">
3406 </td>
3407
3408 <td class="entry_range">
3409 <p><a href="#static_android.control.aeAvailableModes">android.<wbr/>control.<wbr/>ae<wbr/>Available<wbr/>Modes</a></p>
3410 </td>
3411
3412 <td class="entry_tags">
3413 <ul class="entry_tags">
3414 <li><a href="#tag_BC">BC</a></li>
3415 </ul>
3416 </td>
3417
3418 </tr>
3419 <tr class="entries_header">
3420 <th class="th_details" colspan="5">Details</th>
3421 </tr>
3422 <tr class="entry_cont">
3423 <td class="entry_details" colspan="5">
3424 <p>This control is only effective if <a href="#controls_android.control.mode">android.<wbr/>control.<wbr/>mode</a> is
3425AUTO.<wbr/></p>
3426<p>When set to any of the ON modes,<wbr/> the camera device's
3427auto-exposure routine is enabled,<wbr/> overriding the
3428application's selected exposure time,<wbr/> sensor sensitivity,<wbr/>
3429and frame duration (<a href="#controls_android.sensor.exposureTime">android.<wbr/>sensor.<wbr/>exposure<wbr/>Time</a>,<wbr/>
3430<a href="#controls_android.sensor.sensitivity">android.<wbr/>sensor.<wbr/>sensitivity</a>,<wbr/> and
3431<a href="#controls_android.sensor.frameDuration">android.<wbr/>sensor.<wbr/>frame<wbr/>Duration</a>).<wbr/> If one of the FLASH modes
3432is selected,<wbr/> the camera device's flash unit controls are
3433also overridden.<wbr/></p>
3434<p>The FLASH modes are only available if the camera device
3435has a flash unit (<a href="#static_android.flash.info.available">android.<wbr/>flash.<wbr/>info.<wbr/>available</a> is <code>true</code>).<wbr/></p>
3436<p>If flash TORCH mode is desired,<wbr/> this field must be set to
3437ON or OFF,<wbr/> and <a href="#controls_android.flash.mode">android.<wbr/>flash.<wbr/>mode</a> set to TORCH.<wbr/></p>
3438<p>When set to any of the ON modes,<wbr/> the values chosen by the
3439camera device auto-exposure routine for the overridden
3440fields for a given capture will be available in its
3441CaptureResult.<wbr/></p>
3442 </td>
3443 </tr>
3444
3445
3446 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
3447 <!-- end of entry -->
3448
3449
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003450 <tr class="entry" id="dynamic_android.control.aeRegions">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08003451 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08003452 android.<wbr/>control.<wbr/>ae<wbr/>Regions
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08003453 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003454 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08003455 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003456 <span class="entry_type_container">x</span>
3457
3458 <span class="entry_type_array">
3459 5 x area_count
3460 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07003461 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003462
3463
3464 </td> <!-- entry_type -->
3465
3466 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08003467 <p>List of areas to use for
Ruben Brunk76e4c7d2014-01-31 11:05:30 -08003468metering.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003469 </td>
3470
3471 <td class="entry_units">
3472 </td>
3473
3474 <td class="entry_range">
Ruben Brunk76e4c7d2014-01-31 11:05:30 -08003475 <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 -08003476 </td>
3477
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08003478 <td class="entry_tags">
3479 <ul class="entry_tags">
3480 <li><a href="#tag_BC">BC</a></li>
3481 </ul>
3482 </td>
3483
3484 </tr>
3485 <tr class="entries_header">
3486 <th class="th_details" colspan="5">Details</th>
3487 </tr>
3488 <tr class="entry_cont">
3489 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08003490 <p>Each area is a rectangle plus weight: xmin,<wbr/> ymin,<wbr/>
Ruben Brunk76e4c7d2014-01-31 11:05:30 -08003491xmax,<wbr/> ymax,<wbr/> weight.<wbr/> The rectangle is defined to be inclusive of the
Igor Murashkin0b080452013-12-27 15:30:25 -08003492specified coordinates.<wbr/></p>
3493<p>The coordinate system is based on the active pixel array,<wbr/>
3494with (0,<wbr/>0) being the top-left pixel in the active pixel array,<wbr/> and
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08003495(<a href="#static_android.sensor.info.activeArraySize">android.<wbr/>sensor.<wbr/>info.<wbr/>active<wbr/>Array<wbr/>Size</a>.<wbr/>width - 1,<wbr/>
3496<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 -08003497bottom-right pixel in the active pixel array.<wbr/> The weight
3498should be nonnegative.<wbr/></p>
3499<p>If all regions have 0 weight,<wbr/> then no specific metering area
3500needs to be used by the HAL.<wbr/> If the metering region is
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08003501outside 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 -08003502should ignore the sections outside the region and output the
Ruben Brunk76e4c7d2014-01-31 11:05:30 -08003503used sections in the frame metadata.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003504 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08003505 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08003506
3507
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08003508 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
3509 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003510
3511
3512 <tr class="entry" id="dynamic_android.control.aeState">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08003513 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08003514 android.<wbr/>control.<wbr/>ae<wbr/>State
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08003515 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003516 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08003517 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003518
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07003519 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003520
3521 <ul class="entry_type_enum">
3522 <li>
3523 <span class="entry_type_enum_name">INACTIVE</span>
Zhijun He92e698d2014-01-13 16:24:31 -08003524 <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 -08003525this state.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003526 </li>
3527 <li>
3528 <span class="entry_type_enum_name">SEARCHING</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08003529 <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 -08003530for the current scene.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003531 </li>
3532 <li>
3533 <span class="entry_type_enum_name">CONVERGED</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08003534 <span class="entry_type_enum_notes"><p>AE has a good set of control values for the
Zhijun He92e698d2014-01-13 16:24:31 -08003535current scene.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003536 </li>
3537 <li>
3538 <span class="entry_type_enum_name">LOCKED</span>
Zhijun He92e698d2014-01-13 16:24:31 -08003539 <span class="entry_type_enum_notes"><p>AE has been locked.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003540 </li>
3541 <li>
3542 <span class="entry_type_enum_name">FLASH_REQUIRED</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08003543 <span class="entry_type_enum_notes"><p>AE has a good set of control values,<wbr/> but flash
3544needs to be fired for good quality still
Zhijun He92e698d2014-01-13 16:24:31 -08003545capture.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003546 </li>
3547 <li>
3548 <span class="entry_type_enum_name">PRECAPTURE</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08003549 <span class="entry_type_enum_notes"><p>AE has been asked to do a precapture sequence
Zhijun He92e698d2014-01-13 16:24:31 -08003550(through the <a href="#controls_android.control.aePrecaptureTrigger">android.<wbr/>control.<wbr/>ae<wbr/>Precapture<wbr/>Trigger</a> START),<wbr/>
3551and is currently executing it.<wbr/> Once PRECAPTURE
Igor Murashkina10351a2014-01-15 17:05:22 -08003552completes,<wbr/> AE will transition to CONVERGED or
Zhijun He92e698d2014-01-13 16:24:31 -08003553FLASH_<wbr/>REQUIRED as appropriate.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003554 </li>
3555 </ul>
3556
3557 </td> <!-- entry_type -->
3558
3559 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08003560 <p>Current state of AE algorithm</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003561 </td>
3562
3563 <td class="entry_units">
3564 </td>
3565
3566 <td class="entry_range">
3567 </td>
3568
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08003569 <td class="entry_tags">
3570 </td>
3571
3572 </tr>
3573 <tr class="entries_header">
3574 <th class="th_details" colspan="5">Details</th>
3575 </tr>
3576 <tr class="entry_cont">
3577 <td class="entry_details" colspan="5">
Zhijun He92e698d2014-01-13 16:24:31 -08003578 <p>Switching between or enabling AE modes (<a href="#controls_android.control.aeMode">android.<wbr/>control.<wbr/>ae<wbr/>Mode</a>) always
3579resets the AE state to INACTIVE.<wbr/> Similarly,<wbr/> switching between <a href="#controls_android.control.mode">android.<wbr/>control.<wbr/>mode</a>,<wbr/>
3580or <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
3581the algorithm states to INACTIVE.<wbr/></p>
3582<p>The camera device can do several state transitions between two results,<wbr/> if it is
3583allowed by the state transition table.<wbr/> For example: INACTIVE may never actually be
3584seen in a result.<wbr/></p>
3585<p>The state in the result is the state for this image (in sync with this image): if
3586AE state becomes CONVERGED,<wbr/> then the image data associated with this result should
3587be good to use.<wbr/></p>
3588<p>Below are state transition tables for different AE modes.<wbr/></p>
3589<table>
3590<thead>
3591<tr>
3592<th align="center">State</th>
3593<th align="center">Transition Cause</th>
3594<th align="center">New State</th>
3595<th align="center">Notes</th>
3596</tr>
3597</thead>
3598<tbody>
3599<tr>
3600<td align="center">INACTIVE</td>
3601<td align="center"></td>
3602<td align="center">INACTIVE</td>
3603<td align="center">Camera device auto exposure algorithm is disabled</td>
3604</tr>
3605</tbody>
3606</table>
3607<p>When <a href="#controls_android.control.aeMode">android.<wbr/>control.<wbr/>ae<wbr/>Mode</a> is AE_<wbr/>MODE_<wbr/>ON_<wbr/>*:</p>
3608<table>
3609<thead>
3610<tr>
3611<th align="center">State</th>
3612<th align="center">Transition Cause</th>
3613<th align="center">New State</th>
3614<th align="center">Notes</th>
3615</tr>
3616</thead>
3617<tbody>
3618<tr>
3619<td align="center">INACTIVE</td>
3620<td align="center">Camera device initiates AE scan</td>
3621<td align="center">SEARCHING</td>
3622<td align="center">Values changing</td>
3623</tr>
3624<tr>
3625<td align="center">INACTIVE</td>
3626<td align="center"><a href="#controls_android.control.aeLock">android.<wbr/>control.<wbr/>ae<wbr/>Lock</a> is ON</td>
3627<td align="center">LOCKED</td>
3628<td align="center">Values locked</td>
3629</tr>
3630<tr>
3631<td align="center">SEARCHING</td>
3632<td align="center">Camera device finishes AE scan</td>
3633<td align="center">CONVERGED</td>
3634<td align="center">Good values,<wbr/> not changing</td>
3635</tr>
3636<tr>
3637<td align="center">SEARCHING</td>
3638<td align="center">Camera device finishes AE scan</td>
3639<td align="center">FLASH_<wbr/>REQUIRED</td>
3640<td align="center">Converged but too dark w/<wbr/>o flash</td>
3641</tr>
3642<tr>
3643<td align="center">SEARCHING</td>
3644<td align="center"><a href="#controls_android.control.aeLock">android.<wbr/>control.<wbr/>ae<wbr/>Lock</a> is ON</td>
3645<td align="center">LOCKED</td>
3646<td align="center">Values locked</td>
3647</tr>
3648<tr>
3649<td align="center">CONVERGED</td>
3650<td align="center">Camera device initiates AE scan</td>
3651<td align="center">SEARCHING</td>
3652<td align="center">Values changing</td>
3653</tr>
3654<tr>
3655<td align="center">CONVERGED</td>
3656<td align="center"><a href="#controls_android.control.aeLock">android.<wbr/>control.<wbr/>ae<wbr/>Lock</a> is ON</td>
3657<td align="center">LOCKED</td>
3658<td align="center">Values locked</td>
3659</tr>
3660<tr>
3661<td align="center">FLASH_<wbr/>REQUIRED</td>
3662<td align="center">Camera device initiates AE scan</td>
3663<td align="center">SEARCHING</td>
3664<td align="center">Values changing</td>
3665</tr>
3666<tr>
3667<td align="center">FLASH_<wbr/>REQUIRED</td>
3668<td align="center"><a href="#controls_android.control.aeLock">android.<wbr/>control.<wbr/>ae<wbr/>Lock</a> is ON</td>
3669<td align="center">LOCKED</td>
3670<td align="center">Values locked</td>
3671</tr>
3672<tr>
3673<td align="center">LOCKED</td>
3674<td align="center"><a href="#controls_android.control.aeLock">android.<wbr/>control.<wbr/>ae<wbr/>Lock</a> is OFF</td>
3675<td align="center">SEARCHING</td>
3676<td align="center">Values not good after unlock</td>
3677</tr>
3678<tr>
3679<td align="center">LOCKED</td>
3680<td align="center"><a href="#controls_android.control.aeLock">android.<wbr/>control.<wbr/>ae<wbr/>Lock</a> is OFF</td>
3681<td align="center">CONVERGED</td>
3682<td align="center">Values good after unlock</td>
3683</tr>
3684<tr>
3685<td align="center">LOCKED</td>
3686<td align="center"><a href="#controls_android.control.aeLock">android.<wbr/>control.<wbr/>ae<wbr/>Lock</a> is OFF</td>
3687<td align="center">FLASH_<wbr/>REQUIRED</td>
3688<td align="center">Exposure good,<wbr/> but too dark</td>
3689</tr>
3690<tr>
3691<td align="center">PRECAPTURE</td>
3692<td align="center">Sequence done.<wbr/> <a href="#controls_android.control.aeLock">android.<wbr/>control.<wbr/>ae<wbr/>Lock</a> is OFF</td>
3693<td align="center">CONVERGED</td>
3694<td align="center">Ready for high-quality capture</td>
3695</tr>
3696<tr>
3697<td align="center">PRECAPTURE</td>
3698<td align="center">Sequence done.<wbr/> <a href="#controls_android.control.aeLock">android.<wbr/>control.<wbr/>ae<wbr/>Lock</a> is ON</td>
3699<td align="center">LOCKED</td>
3700<td align="center">Ready for high-quality capture</td>
3701</tr>
3702<tr>
3703<td align="center">Any state</td>
3704<td align="center"><a href="#controls_android.control.aePrecaptureTrigger">android.<wbr/>control.<wbr/>ae<wbr/>Precapture<wbr/>Trigger</a> is START</td>
3705<td align="center">PRECAPTURE</td>
3706<td align="center">Start AE precapture metering sequence</td>
3707</tr>
3708</tbody>
3709</table>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003710 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08003711 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08003712
3713
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08003714 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
3715 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003716
3717
3718 <tr class="entry" id="dynamic_android.control.afMode">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08003719 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08003720 android.<wbr/>control.<wbr/>af<wbr/>Mode
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08003721 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003722 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08003723 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003724
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07003725 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003726
3727 <ul class="entry_type_enum">
3728 <li>
3729 <span class="entry_type_enum_name">OFF</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08003730 <span class="entry_type_enum_notes"><p>The auto-focus routine does not control the lens;
3731<a href="#controls_android.lens.focusDistance">android.<wbr/>lens.<wbr/>focus<wbr/>Distance</a> is controlled by the
3732application</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003733 </li>
3734 <li>
3735 <span class="entry_type_enum_name">AUTO</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08003736 <span class="entry_type_enum_notes"><p>If lens is not fixed focus.<wbr/></p>
3737<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
3738is fixed-focus.<wbr/> In this mode,<wbr/> the lens does not move unless
3739the autofocus trigger action is called.<wbr/> When that trigger
3740is activated,<wbr/> AF must transition to ACTIVE_<wbr/>SCAN,<wbr/> then to
3741the outcome of the scan (FOCUSED or NOT_<wbr/>FOCUSED).<wbr/></p>
3742<p>Triggering AF_<wbr/>CANCEL resets the lens position to default,<wbr/>
3743and sets the AF state to INACTIVE.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003744 </li>
3745 <li>
3746 <span class="entry_type_enum_name">MACRO</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08003747 <span class="entry_type_enum_notes"><p>In this mode,<wbr/> the lens does not move unless the
3748autofocus trigger action is called.<wbr/></p>
3749<p>When that trigger is activated,<wbr/> AF must transition to
3750ACTIVE_<wbr/>SCAN,<wbr/> then to the outcome of the scan (FOCUSED or
3751NOT_<wbr/>FOCUSED).<wbr/> Triggering cancel AF resets the lens
3752position to default,<wbr/> and sets the AF state to
3753INACTIVE.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003754 </li>
3755 <li>
3756 <span class="entry_type_enum_name">CONTINUOUS_VIDEO</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08003757 <span class="entry_type_enum_notes"><p>In this mode,<wbr/> the AF algorithm modifies the lens
3758position continually to attempt to provide a
3759constantly-in-focus image stream.<wbr/></p>
3760<p>The focusing behavior should be suitable for good quality
3761video recording; typically this means slower focus
3762movement and no overshoots.<wbr/> When the AF trigger is not
3763involved,<wbr/> the AF algorithm should start in INACTIVE state,<wbr/>
3764and then transition into PASSIVE_<wbr/>SCAN and PASSIVE_<wbr/>FOCUSED
3765states as appropriate.<wbr/> When the AF trigger is activated,<wbr/>
3766the algorithm should immediately transition into
3767AF_<wbr/>FOCUSED or AF_<wbr/>NOT_<wbr/>FOCUSED as appropriate,<wbr/> and lock the
3768lens position until a cancel AF trigger is received.<wbr/></p>
3769<p>Once cancel is received,<wbr/> the algorithm should transition
3770back to INACTIVE and resume passive scan.<wbr/> Note that this
3771behavior is not identical to CONTINUOUS_<wbr/>PICTURE,<wbr/> since an
3772ongoing PASSIVE_<wbr/>SCAN must immediately be
3773canceled.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003774 </li>
3775 <li>
3776 <span class="entry_type_enum_name">CONTINUOUS_PICTURE</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08003777 <span class="entry_type_enum_notes"><p>In this mode,<wbr/> the AF algorithm modifies the lens
3778position continually to attempt to provide a
3779constantly-in-focus image stream.<wbr/></p>
3780<p>The focusing behavior should be suitable for still image
3781capture; typically this means focusing as fast as
3782possible.<wbr/> When the AF trigger is not involved,<wbr/> the AF
3783algorithm should start in INACTIVE state,<wbr/> and then
3784transition into PASSIVE_<wbr/>SCAN and PASSIVE_<wbr/>FOCUSED states as
3785appropriate as it attempts to maintain focus.<wbr/> When the AF
3786trigger is activated,<wbr/> the algorithm should finish its
3787PASSIVE_<wbr/>SCAN if active,<wbr/> and then transition into
3788AF_<wbr/>FOCUSED or AF_<wbr/>NOT_<wbr/>FOCUSED as appropriate,<wbr/> and lock the
3789lens position until a cancel AF trigger is received.<wbr/></p>
3790<p>When the AF cancel trigger is activated,<wbr/> the algorithm
3791should transition back to INACTIVE and then act as if it
3792has just been started.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003793 </li>
3794 <li>
3795 <span class="entry_type_enum_name">EDOF</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08003796 <span class="entry_type_enum_notes"><p>Extended depth of field (digital focus).<wbr/> AF
3797trigger is ignored,<wbr/> AF state should always be
3798INACTIVE.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003799 </li>
3800 </ul>
3801
3802 </td> <!-- entry_type -->
3803
3804 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08003805 <p>Whether AF is currently enabled,<wbr/> and what
3806mode it is set to</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003807 </td>
3808
3809 <td class="entry_units">
3810 </td>
3811
3812 <td class="entry_range">
Zhijun He7787f7f2014-01-14 16:30:31 -08003813 <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 -08003814 </td>
3815
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003816 <td class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08003817 <ul class="entry_tags">
3818 <li><a href="#tag_BC">BC</a></li>
3819 </ul>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003820 </td>
3821
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08003822 </tr>
3823 <tr class="entries_header">
3824 <th class="th_details" colspan="5">Details</th>
3825 </tr>
3826 <tr class="entry_cont">
3827 <td class="entry_details" colspan="5">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08003828 <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 -08003829<p>If the lens is controlled by the camera device auto-focus algorithm,<wbr/>
3830the camera device will report the current AF status in android.<wbr/>control.<wbr/>af<wbr/>State
3831in result metadata.<wbr/></p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08003832 </td>
3833 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08003834
3835
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08003836 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
3837 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003838
3839
3840 <tr class="entry" id="dynamic_android.control.afRegions">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08003841 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08003842 android.<wbr/>control.<wbr/>af<wbr/>Regions
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08003843 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003844 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08003845 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003846 <span class="entry_type_container">x</span>
3847
3848 <span class="entry_type_array">
3849 5 x area_count
3850 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07003851 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003852
3853
3854 </td> <!-- entry_type -->
3855
3856 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08003857 <p>List of areas to use for focus
Ruben Brunk76e4c7d2014-01-31 11:05:30 -08003858estimation.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003859 </td>
3860
3861 <td class="entry_units">
3862 </td>
3863
3864 <td class="entry_range">
Ruben Brunk76e4c7d2014-01-31 11:05:30 -08003865 <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 -08003866 </td>
3867
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08003868 <td class="entry_tags">
3869 <ul class="entry_tags">
3870 <li><a href="#tag_BC">BC</a></li>
3871 </ul>
3872 </td>
3873
3874 </tr>
3875 <tr class="entries_header">
3876 <th class="th_details" colspan="5">Details</th>
3877 </tr>
3878 <tr class="entry_cont">
3879 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08003880 <p>Each area is a rectangle plus weight: xmin,<wbr/> ymin,<wbr/>
Ruben Brunk76e4c7d2014-01-31 11:05:30 -08003881xmax,<wbr/> ymax,<wbr/> weight.<wbr/> The rectangle is defined to be inclusive of the
Igor Murashkin0b080452013-12-27 15:30:25 -08003882specified coordinates.<wbr/></p>
3883<p>The coordinate system is based on the active pixel array,<wbr/>
3884with (0,<wbr/>0) being the top-left pixel in the active pixel array,<wbr/> and
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08003885(<a href="#static_android.sensor.info.activeArraySize">android.<wbr/>sensor.<wbr/>info.<wbr/>active<wbr/>Array<wbr/>Size</a>.<wbr/>width - 1,<wbr/>
3886<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 -08003887bottom-right pixel in the active pixel array.<wbr/> The weight
3888should be nonnegative.<wbr/></p>
3889<p>If all regions have 0 weight,<wbr/> then no specific focus area
3890needs to be used by the HAL.<wbr/> If the focusing region is
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08003891outside 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 -08003892should ignore the sections outside the region and output the
Ruben Brunk76e4c7d2014-01-31 11:05:30 -08003893used sections in the frame metadata.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003894 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08003895 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08003896
3897
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08003898 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
3899 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003900
3901
3902 <tr class="entry" id="dynamic_android.control.afState">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08003903 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08003904 android.<wbr/>control.<wbr/>af<wbr/>State
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08003905 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003906 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08003907 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003908
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07003909 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003910
3911 <ul class="entry_type_enum">
3912 <li>
3913 <span class="entry_type_enum_name">INACTIVE</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08003914 <span class="entry_type_enum_notes"><p>AF off or has not yet tried to scan/<wbr/>been asked
3915to scan.<wbr/> When a camera device is opened,<wbr/> it starts in
3916this state.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003917 </li>
3918 <li>
3919 <span class="entry_type_enum_name">PASSIVE_SCAN</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08003920 <span class="entry_type_enum_notes"><p>if CONTINUOUS_<wbr/>* modes are supported.<wbr/> AF is
3921currently doing an AF scan initiated by a continuous
3922autofocus mode</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003923 </li>
3924 <li>
3925 <span class="entry_type_enum_name">PASSIVE_FOCUSED</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08003926 <span class="entry_type_enum_notes"><p>if CONTINUOUS_<wbr/>* modes are supported.<wbr/> AF currently
3927believes it is in focus,<wbr/> but may restart scanning at
3928any time.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003929 </li>
3930 <li>
3931 <span class="entry_type_enum_name">ACTIVE_SCAN</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08003932 <span class="entry_type_enum_notes"><p>if AUTO or MACRO modes are supported.<wbr/> AF is doing
3933an AF scan because it was triggered by AF
3934trigger</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003935 </li>
3936 <li>
3937 <span class="entry_type_enum_name">FOCUSED_LOCKED</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08003938 <span class="entry_type_enum_notes"><p>if any AF mode besides OFF is supported.<wbr/> AF
3939believes it is focused correctly and is
3940locked</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003941 </li>
3942 <li>
3943 <span class="entry_type_enum_name">NOT_FOCUSED_LOCKED</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08003944 <span class="entry_type_enum_notes"><p>if any AF mode besides OFF is supported.<wbr/> AF has
3945failed to focus successfully and is
3946locked</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003947 </li>
Eino-Ville Talvala492ba7c2013-09-20 17:24:00 -07003948 <li>
3949 <span class="entry_type_enum_name">PASSIVE_UNFOCUSED</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08003950 <span class="entry_type_enum_notes"><p>if CONTINUOUS_<wbr/>* modes are supported.<wbr/> AF finished a
3951passive scan without finding focus,<wbr/> and may restart
3952scanning at any time.<wbr/></p></span>
Eino-Ville Talvala492ba7c2013-09-20 17:24:00 -07003953 </li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003954 </ul>
3955
3956 </td> <!-- entry_type -->
3957
3958 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08003959 <p>Current state of AF algorithm</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003960 </td>
3961
3962 <td class="entry_units">
3963 </td>
3964
3965 <td class="entry_range">
3966 </td>
3967
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08003968 <td class="entry_tags">
3969 </td>
3970
3971 </tr>
3972 <tr class="entries_header">
3973 <th class="th_details" colspan="5">Details</th>
3974 </tr>
3975 <tr class="entry_cont">
3976 <td class="entry_details" colspan="5">
Zhijun He92e698d2014-01-13 16:24:31 -08003977 <p>Switching between or enabling AF modes (<a href="#controls_android.control.afMode">android.<wbr/>control.<wbr/>af<wbr/>Mode</a>) always
3978resets the AF state to INACTIVE.<wbr/> Similarly,<wbr/> switching between <a href="#controls_android.control.mode">android.<wbr/>control.<wbr/>mode</a>,<wbr/>
3979or <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
3980the algorithm states to INACTIVE.<wbr/></p>
3981<p>The camera device can do several state transitions between two results,<wbr/> if it is
3982allowed by the state transition table.<wbr/> For example: INACTIVE may never actually be
3983seen in a result.<wbr/></p>
3984<p>The state in the result is the state for this image (in sync with this image): if
3985AF state becomes FOCUSED,<wbr/> then the image data associated with this result should
3986be sharp.<wbr/></p>
3987<p>Below are state transition tables for different AF modes.<wbr/></p>
3988<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>
3989<table>
3990<thead>
3991<tr>
3992<th align="center">State</th>
3993<th align="center">Transition Cause</th>
3994<th align="center">New State</th>
3995<th align="center">Notes</th>
3996</tr>
3997</thead>
3998<tbody>
3999<tr>
4000<td align="center">INACTIVE</td>
4001<td align="center"></td>
4002<td align="center">INACTIVE</td>
4003<td align="center">Never changes</td>
4004</tr>
4005</tbody>
4006</table>
4007<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>
4008<table>
4009<thead>
4010<tr>
4011<th align="center">State</th>
4012<th align="center">Transition Cause</th>
4013<th align="center">New State</th>
4014<th align="center">Notes</th>
4015</tr>
4016</thead>
4017<tbody>
4018<tr>
4019<td align="center">INACTIVE</td>
4020<td align="center">AF_<wbr/>TRIGGER</td>
4021<td align="center">ACTIVE_<wbr/>SCAN</td>
4022<td align="center">Start AF sweep,<wbr/> Lens now moving</td>
4023</tr>
4024<tr>
4025<td align="center">ACTIVE_<wbr/>SCAN</td>
4026<td align="center">AF sweep done</td>
4027<td align="center">FOCUSED_<wbr/>LOCKED</td>
4028<td align="center">Focused,<wbr/> Lens now locked</td>
4029</tr>
4030<tr>
4031<td align="center">ACTIVE_<wbr/>SCAN</td>
4032<td align="center">AF sweep done</td>
4033<td align="center">NOT_<wbr/>FOCUSED_<wbr/>LOCKED</td>
4034<td align="center">Not focused,<wbr/> Lens now locked</td>
4035</tr>
4036<tr>
4037<td align="center">ACTIVE_<wbr/>SCAN</td>
4038<td align="center">AF_<wbr/>CANCEL</td>
4039<td align="center">INACTIVE</td>
4040<td align="center">Cancel/<wbr/>reset AF,<wbr/> Lens now locked</td>
4041</tr>
4042<tr>
4043<td align="center">FOCUSED_<wbr/>LOCKED</td>
4044<td align="center">AF_<wbr/>CANCEL</td>
4045<td align="center">INACTIVE</td>
4046<td align="center">Cancel/<wbr/>reset AF</td>
4047</tr>
4048<tr>
4049<td align="center">FOCUSED_<wbr/>LOCKED</td>
4050<td align="center">AF_<wbr/>TRIGGER</td>
4051<td align="center">ACTIVE_<wbr/>SCAN</td>
4052<td align="center">Start new sweep,<wbr/> Lens now moving</td>
4053</tr>
4054<tr>
4055<td align="center">NOT_<wbr/>FOCUSED_<wbr/>LOCKED</td>
4056<td align="center">AF_<wbr/>CANCEL</td>
4057<td align="center">INACTIVE</td>
4058<td align="center">Cancel/<wbr/>reset AF</td>
4059</tr>
4060<tr>
4061<td align="center">NOT_<wbr/>FOCUSED_<wbr/>LOCKED</td>
4062<td align="center">AF_<wbr/>TRIGGER</td>
4063<td align="center">ACTIVE_<wbr/>SCAN</td>
4064<td align="center">Start new sweep,<wbr/> Lens now moving</td>
4065</tr>
4066<tr>
4067<td align="center">Any state</td>
4068<td align="center">Mode change</td>
4069<td align="center">INACTIVE</td>
4070<td align="center"></td>
4071</tr>
4072</tbody>
4073</table>
4074<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>
4075<table>
4076<thead>
4077<tr>
4078<th align="center">State</th>
4079<th align="center">Transition Cause</th>
4080<th align="center">New State</th>
4081<th align="center">Notes</th>
4082</tr>
4083</thead>
4084<tbody>
4085<tr>
4086<td align="center">INACTIVE</td>
4087<td align="center">Camera device initiates new scan</td>
4088<td align="center">PASSIVE_<wbr/>SCAN</td>
4089<td align="center">Start AF scan,<wbr/> Lens now moving</td>
4090</tr>
4091<tr>
4092<td align="center">INACTIVE</td>
4093<td align="center">AF_<wbr/>TRIGGER</td>
4094<td align="center">NOT_<wbr/>FOCUSED_<wbr/>LOCKED</td>
4095<td align="center">AF state query,<wbr/> Lens now locked</td>
4096</tr>
4097<tr>
4098<td align="center">PASSIVE_<wbr/>SCAN</td>
4099<td align="center">Camera device completes current scan</td>
4100<td align="center">PASSIVE_<wbr/>FOCUSED</td>
4101<td align="center">End AF scan,<wbr/> Lens now locked</td>
4102</tr>
4103<tr>
4104<td align="center">PASSIVE_<wbr/>SCAN</td>
4105<td align="center">Camera device fails current scan</td>
4106<td align="center">PASSIVE_<wbr/>UNFOCUSED</td>
4107<td align="center">End AF scan,<wbr/> Lens now locked</td>
4108</tr>
4109<tr>
4110<td align="center">PASSIVE_<wbr/>SCAN</td>
4111<td align="center">AF_<wbr/>TRIGGER</td>
4112<td align="center">FOCUSED_<wbr/>LOCKED</td>
4113<td align="center">Immediate trans.<wbr/> If focus is good,<wbr/> Lens now locked</td>
4114</tr>
4115<tr>
4116<td align="center">PASSIVE_<wbr/>SCAN</td>
4117<td align="center">AF_<wbr/>TRIGGER</td>
4118<td align="center">NOT_<wbr/>FOCUSED_<wbr/>LOCKED</td>
4119<td align="center">Immediate trans.<wbr/> if focus is bad,<wbr/> Lens now locked</td>
4120</tr>
4121<tr>
4122<td align="center">PASSIVE_<wbr/>SCAN</td>
4123<td align="center">AF_<wbr/>CANCEL</td>
4124<td align="center">INACTIVE</td>
4125<td align="center">Reset lens position,<wbr/> Lens now locked</td>
4126</tr>
4127<tr>
4128<td align="center">PASSIVE_<wbr/>FOCUSED</td>
4129<td align="center">Camera device initiates new scan</td>
4130<td align="center">PASSIVE_<wbr/>SCAN</td>
4131<td align="center">Start AF scan,<wbr/> Lens now moving</td>
4132</tr>
4133<tr>
4134<td align="center">PASSIVE_<wbr/>UNFOCUSED</td>
4135<td align="center">Camera device initiates new scan</td>
4136<td align="center">PASSIVE_<wbr/>SCAN</td>
4137<td align="center">Start AF scan,<wbr/> Lens now moving</td>
4138</tr>
4139<tr>
4140<td align="center">PASSIVE_<wbr/>FOCUSED</td>
4141<td align="center">AF_<wbr/>TRIGGER</td>
4142<td align="center">FOCUSED_<wbr/>LOCKED</td>
4143<td align="center">Immediate trans.<wbr/> Lens now locked</td>
4144</tr>
4145<tr>
4146<td align="center">PASSIVE_<wbr/>UNFOCUSED</td>
4147<td align="center">AF_<wbr/>TRIGGER</td>
4148<td align="center">NOT_<wbr/>FOCUSED_<wbr/>LOCKED</td>
4149<td align="center">Immediate trans.<wbr/> Lens now locked</td>
4150</tr>
4151<tr>
4152<td align="center">FOCUSED_<wbr/>LOCKED</td>
4153<td align="center">AF_<wbr/>TRIGGER</td>
4154<td align="center">FOCUSED_<wbr/>LOCKED</td>
4155<td align="center">No effect</td>
4156</tr>
4157<tr>
4158<td align="center">FOCUSED_<wbr/>LOCKED</td>
4159<td align="center">AF_<wbr/>CANCEL</td>
4160<td align="center">INACTIVE</td>
4161<td align="center">Restart AF scan</td>
4162</tr>
4163<tr>
4164<td align="center">NOT_<wbr/>FOCUSED_<wbr/>LOCKED</td>
4165<td align="center">AF_<wbr/>TRIGGER</td>
4166<td align="center">NOT_<wbr/>FOCUSED_<wbr/>LOCKED</td>
4167<td align="center">No effect</td>
4168</tr>
4169<tr>
4170<td align="center">NOT_<wbr/>FOCUSED_<wbr/>LOCKED</td>
4171<td align="center">AF_<wbr/>CANCEL</td>
4172<td align="center">INACTIVE</td>
4173<td align="center">Restart AF scan</td>
4174</tr>
4175</tbody>
4176</table>
4177<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>
4178<table>
4179<thead>
4180<tr>
4181<th align="center">State</th>
4182<th align="center">Transition Cause</th>
4183<th align="center">New State</th>
4184<th align="center">Notes</th>
4185</tr>
4186</thead>
4187<tbody>
4188<tr>
4189<td align="center">INACTIVE</td>
4190<td align="center">Camera device initiates new scan</td>
4191<td align="center">PASSIVE_<wbr/>SCAN</td>
4192<td align="center">Start AF scan,<wbr/> Lens now moving</td>
4193</tr>
4194<tr>
4195<td align="center">INACTIVE</td>
4196<td align="center">AF_<wbr/>TRIGGER</td>
4197<td align="center">NOT_<wbr/>FOCUSED_<wbr/>LOCKED</td>
4198<td align="center">AF state query,<wbr/> Lens now locked</td>
4199</tr>
4200<tr>
4201<td align="center">PASSIVE_<wbr/>SCAN</td>
4202<td align="center">Camera device completes current scan</td>
4203<td align="center">PASSIVE_<wbr/>FOCUSED</td>
4204<td align="center">End AF scan,<wbr/> Lens now locked</td>
4205</tr>
4206<tr>
4207<td align="center">PASSIVE_<wbr/>SCAN</td>
4208<td align="center">Camera device fails current scan</td>
4209<td align="center">PASSIVE_<wbr/>UNFOCUSED</td>
4210<td align="center">End AF scan,<wbr/> Lens now locked</td>
4211</tr>
4212<tr>
4213<td align="center">PASSIVE_<wbr/>SCAN</td>
4214<td align="center">AF_<wbr/>TRIGGER</td>
4215<td align="center">FOCUSED_<wbr/>LOCKED</td>
4216<td align="center">Eventual trans.<wbr/> once focus good,<wbr/> Lens now locked</td>
4217</tr>
4218<tr>
4219<td align="center">PASSIVE_<wbr/>SCAN</td>
4220<td align="center">AF_<wbr/>TRIGGER</td>
4221<td align="center">NOT_<wbr/>FOCUSED_<wbr/>LOCKED</td>
4222<td align="center">Eventual trans.<wbr/> if cannot focus,<wbr/> Lens now locked</td>
4223</tr>
4224<tr>
4225<td align="center">PASSIVE_<wbr/>SCAN</td>
4226<td align="center">AF_<wbr/>CANCEL</td>
4227<td align="center">INACTIVE</td>
4228<td align="center">Reset lens position,<wbr/> Lens now locked</td>
4229</tr>
4230<tr>
4231<td align="center">PASSIVE_<wbr/>FOCUSED</td>
4232<td align="center">Camera device initiates new scan</td>
4233<td align="center">PASSIVE_<wbr/>SCAN</td>
4234<td align="center">Start AF scan,<wbr/> Lens now moving</td>
4235</tr>
4236<tr>
4237<td align="center">PASSIVE_<wbr/>UNFOCUSED</td>
4238<td align="center">Camera device initiates new scan</td>
4239<td align="center">PASSIVE_<wbr/>SCAN</td>
4240<td align="center">Start AF scan,<wbr/> Lens now moving</td>
4241</tr>
4242<tr>
4243<td align="center">PASSIVE_<wbr/>FOCUSED</td>
4244<td align="center">AF_<wbr/>TRIGGER</td>
4245<td align="center">FOCUSED_<wbr/>LOCKED</td>
4246<td align="center">Immediate trans.<wbr/> Lens now locked</td>
4247</tr>
4248<tr>
4249<td align="center">PASSIVE_<wbr/>UNFOCUSED</td>
4250<td align="center">AF_<wbr/>TRIGGER</td>
4251<td align="center">NOT_<wbr/>FOCUSED_<wbr/>LOCKED</td>
4252<td align="center">Immediate trans.<wbr/> Lens now locked</td>
4253</tr>
4254<tr>
4255<td align="center">FOCUSED_<wbr/>LOCKED</td>
4256<td align="center">AF_<wbr/>TRIGGER</td>
4257<td align="center">FOCUSED_<wbr/>LOCKED</td>
4258<td align="center">No effect</td>
4259</tr>
4260<tr>
4261<td align="center">FOCUSED_<wbr/>LOCKED</td>
4262<td align="center">AF_<wbr/>CANCEL</td>
4263<td align="center">INACTIVE</td>
4264<td align="center">Restart AF scan</td>
4265</tr>
4266<tr>
4267<td align="center">NOT_<wbr/>FOCUSED_<wbr/>LOCKED</td>
4268<td align="center">AF_<wbr/>TRIGGER</td>
4269<td align="center">NOT_<wbr/>FOCUSED_<wbr/>LOCKED</td>
4270<td align="center">No effect</td>
4271</tr>
4272<tr>
4273<td align="center">NOT_<wbr/>FOCUSED_<wbr/>LOCKED</td>
4274<td align="center">AF_<wbr/>CANCEL</td>
4275<td align="center">INACTIVE</td>
4276<td align="center">Restart AF scan</td>
4277</tr>
4278</tbody>
4279</table>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004280 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08004281 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08004282
4283
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08004284 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
4285 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004286
4287
4288 <tr class="entry" id="dynamic_android.control.afTriggerId">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08004289 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08004290 android.<wbr/>control.<wbr/>af<wbr/>Trigger<wbr/>Id
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08004291 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004292 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08004293 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004294
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07004295 <span class="entry_type_visibility"> [hidden]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004296
4297
4298 </td> <!-- entry_type -->
4299
4300 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08004301 <p>The ID sent with the latest
4302CAMERA2_<wbr/>TRIGGER_<wbr/>AUTOFOCUS call</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004303 </td>
4304
4305 <td class="entry_units">
4306 </td>
4307
4308 <td class="entry_range">
Zhijun He7391bb62014-02-05 00:09:04 -08004309 <p><strong>Deprecated</strong>.<wbr/> Do not use.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004310 </td>
4311
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08004312 <td class="entry_tags">
4313 </td>
4314
4315 </tr>
4316 <tr class="entries_header">
4317 <th class="th_details" colspan="5">Details</th>
4318 </tr>
4319 <tr class="entry_cont">
4320 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08004321 <p>Must be 0 if no CAMERA2_<wbr/>TRIGGER_<wbr/>AUTOFOCUS trigger
4322received yet by HAL.<wbr/> Always updated even if AF algorithm
4323ignores the trigger</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004324 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08004325 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08004326
4327
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08004328 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
4329 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004330
4331
4332 <tr class="entry" id="dynamic_android.control.awbMode">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08004333 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08004334 android.<wbr/>control.<wbr/>awb<wbr/>Mode
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08004335 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004336 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08004337 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004338
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07004339 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004340
4341 <ul class="entry_type_enum">
4342 <li>
4343 <span class="entry_type_enum_name">OFF</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08004344 <span class="entry_type_enum_notes"><p>The camera device's auto white balance routine is disabled;
4345the application-selected color transform matrix
4346(<a href="#controls_android.colorCorrection.transform">android.<wbr/>color<wbr/>Correction.<wbr/>transform</a>) and gains
4347(<a href="#controls_android.colorCorrection.gains">android.<wbr/>color<wbr/>Correction.<wbr/>gains</a>) are used by the camera
4348device for manual white balance control.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004349 </li>
4350 <li>
4351 <span class="entry_type_enum_name">AUTO</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08004352 <span class="entry_type_enum_notes"><p>The camera device's auto white balance routine is active;
4353the application's values for android.<wbr/>color<wbr/>Correction.<wbr/>transform
4354and <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 -08004355 </li>
4356 <li>
4357 <span class="entry_type_enum_name">INCANDESCENT</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08004358 <span class="entry_type_enum_notes"><p>The camera device's auto white balance routine is disabled;
4359the camera device uses incandescent light as the assumed scene
4360illumination for white balance.<wbr/> While the exact white balance
4361transforms are up to the camera device,<wbr/> they will approximately
4362match the CIE standard illuminant A.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004363 </li>
4364 <li>
4365 <span class="entry_type_enum_name">FLUORESCENT</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08004366 <span class="entry_type_enum_notes"><p>The camera device's auto white balance routine is disabled;
4367the camera device uses fluorescent light as the assumed scene
4368illumination for white balance.<wbr/> While the exact white balance
4369transforms are up to the camera device,<wbr/> they will approximately
4370match the CIE standard illuminant F2.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004371 </li>
4372 <li>
4373 <span class="entry_type_enum_name">WARM_FLUORESCENT</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08004374 <span class="entry_type_enum_notes"><p>The camera device's auto white balance routine is disabled;
4375the camera device uses warm fluorescent light as the assumed scene
4376illumination for white balance.<wbr/> While the exact white balance
4377transforms are up to the camera device,<wbr/> they will approximately
4378match the CIE standard illuminant F4.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004379 </li>
4380 <li>
4381 <span class="entry_type_enum_name">DAYLIGHT</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08004382 <span class="entry_type_enum_notes"><p>The camera device's auto white balance routine is disabled;
4383the camera device uses daylight light as the assumed scene
4384illumination for white balance.<wbr/> While the exact white balance
4385transforms are up to the camera device,<wbr/> they will approximately
4386match the CIE standard illuminant D65.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004387 </li>
4388 <li>
4389 <span class="entry_type_enum_name">CLOUDY_DAYLIGHT</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08004390 <span class="entry_type_enum_notes"><p>The camera device's auto white balance routine is disabled;
4391the camera device uses cloudy daylight light as the assumed scene
4392illumination for white balance.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004393 </li>
4394 <li>
4395 <span class="entry_type_enum_name">TWILIGHT</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08004396 <span class="entry_type_enum_notes"><p>The camera device's auto white balance routine is disabled;
4397the camera device uses twilight light as the assumed scene
4398illumination for white balance.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004399 </li>
4400 <li>
4401 <span class="entry_type_enum_name">SHADE</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08004402 <span class="entry_type_enum_notes"><p>The camera device's auto white balance routine is disabled;
4403the camera device uses shade light as the assumed scene
4404illumination for white balance.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004405 </li>
4406 </ul>
4407
4408 </td> <!-- entry_type -->
4409
4410 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08004411 <p>Whether AWB is currently setting the color
4412transform fields,<wbr/> and what its illumination target
4413is</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004414 </td>
4415
4416 <td class="entry_units">
4417 </td>
4418
4419 <td class="entry_range">
Zhijun He7787f7f2014-01-14 16:30:31 -08004420 <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 -08004421 </td>
4422
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004423 <td class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08004424 <ul class="entry_tags">
4425 <li><a href="#tag_BC">BC</a></li>
4426 <li><a href="#tag_AWB">AWB</a></li>
4427 </ul>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004428 </td>
4429
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08004430 </tr>
4431 <tr class="entries_header">
4432 <th class="th_details" colspan="5">Details</th>
4433 </tr>
4434 <tr class="entry_cont">
4435 <td class="entry_details" colspan="5">
Zhijun He7787f7f2014-01-14 16:30:31 -08004436 <p>This control is only effective if <a href="#controls_android.control.mode">android.<wbr/>control.<wbr/>mode</a> is AUTO.<wbr/></p>
4437<p>When set to the ON mode,<wbr/> the camera device's auto white balance
4438routine is enabled,<wbr/> overriding the application's selected
4439<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
4440<a href="#controls_android.colorCorrection.mode">android.<wbr/>color<wbr/>Correction.<wbr/>mode</a>.<wbr/></p>
4441<p>When set to the OFF mode,<wbr/> the camera device's auto white balance
4442routine is disabled.<wbr/> The applicantion manually controls the white
4443balance by <a href="#controls_android.colorCorrection.transform">android.<wbr/>color<wbr/>Correction.<wbr/>transform</a>,<wbr/> android.<wbr/>color<wbr/>Correction.<wbr/>gains
4444and <a href="#controls_android.colorCorrection.mode">android.<wbr/>color<wbr/>Correction.<wbr/>mode</a>.<wbr/></p>
4445<p>When set to any other modes,<wbr/> the camera device's auto white balance
4446routine is disabled.<wbr/> The camera device uses each particular illumination
4447target for white balance adjustment.<wbr/></p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08004448 </td>
4449 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08004450
4451
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08004452 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
4453 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004454
4455
4456 <tr class="entry" id="dynamic_android.control.awbRegions">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08004457 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08004458 android.<wbr/>control.<wbr/>awb<wbr/>Regions
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08004459 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004460 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08004461 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004462 <span class="entry_type_container">x</span>
4463
4464 <span class="entry_type_array">
4465 5 x area_count
4466 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07004467 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004468
4469
4470 </td> <!-- entry_type -->
4471
4472 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08004473 <p>List of areas to use for illuminant
Ruben Brunk76e4c7d2014-01-31 11:05:30 -08004474estimation.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004475 </td>
4476
4477 <td class="entry_units">
4478 </td>
4479
4480 <td class="entry_range">
Ruben Brunk76e4c7d2014-01-31 11:05:30 -08004481 <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 -08004482 </td>
4483
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08004484 <td class="entry_tags">
4485 <ul class="entry_tags">
4486 <li><a href="#tag_BC">BC</a></li>
4487 </ul>
4488 </td>
4489
4490 </tr>
4491 <tr class="entries_header">
4492 <th class="th_details" colspan="5">Details</th>
4493 </tr>
4494 <tr class="entry_cont">
4495 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08004496 <p>Only used in AUTO mode.<wbr/></p>
4497<p>Each area is a rectangle plus weight: xmin,<wbr/> ymin,<wbr/>
Ruben Brunk76e4c7d2014-01-31 11:05:30 -08004498xmax,<wbr/> ymax,<wbr/> weight.<wbr/> The rectangle is defined to be inclusive of the
Igor Murashkin0b080452013-12-27 15:30:25 -08004499specified coordinates.<wbr/></p>
4500<p>The coordinate system is based on the active pixel array,<wbr/>
4501with (0,<wbr/>0) being the top-left pixel in the active pixel array,<wbr/> and
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08004502(<a href="#static_android.sensor.info.activeArraySize">android.<wbr/>sensor.<wbr/>info.<wbr/>active<wbr/>Array<wbr/>Size</a>.<wbr/>width - 1,<wbr/>
4503<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 -08004504bottom-right pixel in the active pixel array.<wbr/> The weight
4505should be nonnegative.<wbr/></p>
4506<p>If all regions have 0 weight,<wbr/> then no specific metering area
4507needs to be used by the HAL.<wbr/> If the metering region is
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08004508outside 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 -08004509should ignore the sections outside the region and output the
Ruben Brunk76e4c7d2014-01-31 11:05:30 -08004510used sections in the frame metadata.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004511 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08004512 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08004513
4514
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08004515 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
4516 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004517
4518
4519 <tr class="entry" id="dynamic_android.control.awbState">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08004520 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08004521 android.<wbr/>control.<wbr/>awb<wbr/>State
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08004522 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004523 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08004524 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004525
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07004526 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004527
4528 <ul class="entry_type_enum">
4529 <li>
4530 <span class="entry_type_enum_name">INACTIVE</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08004531 <span class="entry_type_enum_notes"><p>AWB is not in auto mode.<wbr/> When a camera device is opened,<wbr/> it
4532starts in this state.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004533 </li>
4534 <li>
4535 <span class="entry_type_enum_name">SEARCHING</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08004536 <span class="entry_type_enum_notes"><p>AWB doesn't yet have a good set of control
Zhijun He92e698d2014-01-13 16:24:31 -08004537values for the current scene.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004538 </li>
4539 <li>
4540 <span class="entry_type_enum_name">CONVERGED</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08004541 <span class="entry_type_enum_notes"><p>AWB has a good set of control values for the
Zhijun He92e698d2014-01-13 16:24:31 -08004542current scene.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004543 </li>
4544 <li>
4545 <span class="entry_type_enum_name">LOCKED</span>
Zhijun He92e698d2014-01-13 16:24:31 -08004546 <span class="entry_type_enum_notes"><p>AWB has been locked.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004547 </li>
4548 </ul>
4549
4550 </td> <!-- entry_type -->
4551
4552 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08004553 <p>Current state of AWB algorithm</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004554 </td>
4555
4556 <td class="entry_units">
4557 </td>
4558
4559 <td class="entry_range">
4560 </td>
4561
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08004562 <td class="entry_tags">
4563 </td>
4564
4565 </tr>
4566 <tr class="entries_header">
4567 <th class="th_details" colspan="5">Details</th>
4568 </tr>
4569 <tr class="entry_cont">
4570 <td class="entry_details" colspan="5">
Zhijun He92e698d2014-01-13 16:24:31 -08004571 <p>Switching between or enabling AWB modes (<a href="#controls_android.control.awbMode">android.<wbr/>control.<wbr/>awb<wbr/>Mode</a>) always
4572resets the AWB state to INACTIVE.<wbr/> Similarly,<wbr/> switching between <a href="#controls_android.control.mode">android.<wbr/>control.<wbr/>mode</a>,<wbr/>
4573or <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
4574the algorithm states to INACTIVE.<wbr/></p>
4575<p>The camera device can do several state transitions between two results,<wbr/> if it is
4576allowed by the state transition table.<wbr/> So INACTIVE may never actually be seen in
4577a result.<wbr/></p>
4578<p>The state in the result is the state for this image (in sync with this image): if
4579AWB state becomes CONVERGED,<wbr/> then the image data associated with this result should
4580be good to use.<wbr/></p>
4581<p>Below are state transition tables for different AWB modes.<wbr/></p>
4582<p>When <code><a href="#controls_android.control.awbMode">android.<wbr/>control.<wbr/>awb<wbr/>Mode</a> != AWB_<wbr/>MODE_<wbr/>AUTO</code>:</p>
4583<table>
4584<thead>
4585<tr>
4586<th align="center">State</th>
4587<th align="center">Transition Cause</th>
4588<th align="center">New State</th>
4589<th align="center">Notes</th>
4590</tr>
4591</thead>
4592<tbody>
4593<tr>
4594<td align="center">INACTIVE</td>
4595<td align="center"></td>
4596<td align="center">INACTIVE</td>
4597<td align="center">Camera device auto white balance algorithm is disabled</td>
4598</tr>
4599</tbody>
4600</table>
4601<p>When <a href="#controls_android.control.awbMode">android.<wbr/>control.<wbr/>awb<wbr/>Mode</a> is AWB_<wbr/>MODE_<wbr/>AUTO:</p>
4602<table>
4603<thead>
4604<tr>
4605<th align="center">State</th>
4606<th align="center">Transition Cause</th>
4607<th align="center">New State</th>
4608<th align="center">Notes</th>
4609</tr>
4610</thead>
4611<tbody>
4612<tr>
4613<td align="center">INACTIVE</td>
4614<td align="center">Camera device initiates AWB scan</td>
4615<td align="center">SEARCHING</td>
4616<td align="center">Values changing</td>
4617</tr>
4618<tr>
4619<td align="center">INACTIVE</td>
4620<td align="center"><a href="#controls_android.control.awbLock">android.<wbr/>control.<wbr/>awb<wbr/>Lock</a> is ON</td>
4621<td align="center">LOCKED</td>
4622<td align="center">Values locked</td>
4623</tr>
4624<tr>
4625<td align="center">SEARCHING</td>
4626<td align="center">Camera device finishes AWB scan</td>
4627<td align="center">CONVERGED</td>
4628<td align="center">Good values,<wbr/> not changing</td>
4629</tr>
4630<tr>
4631<td align="center">SEARCHING</td>
4632<td align="center"><a href="#controls_android.control.awbLock">android.<wbr/>control.<wbr/>awb<wbr/>Lock</a> is ON</td>
4633<td align="center">LOCKED</td>
4634<td align="center">Values locked</td>
4635</tr>
4636<tr>
4637<td align="center">CONVERGED</td>
4638<td align="center">Camera device initiates AWB scan</td>
4639<td align="center">SEARCHING</td>
4640<td align="center">Values changing</td>
4641</tr>
4642<tr>
4643<td align="center">CONVERGED</td>
4644<td align="center"><a href="#controls_android.control.awbLock">android.<wbr/>control.<wbr/>awb<wbr/>Lock</a> is ON</td>
4645<td align="center">LOCKED</td>
4646<td align="center">Values locked</td>
4647</tr>
4648<tr>
4649<td align="center">LOCKED</td>
4650<td align="center"><a href="#controls_android.control.awbLock">android.<wbr/>control.<wbr/>awb<wbr/>Lock</a> is OFF</td>
4651<td align="center">SEARCHING</td>
4652<td align="center">Values not good after unlock</td>
4653</tr>
4654<tr>
4655<td align="center">LOCKED</td>
4656<td align="center"><a href="#controls_android.control.awbLock">android.<wbr/>control.<wbr/>awb<wbr/>Lock</a> is OFF</td>
4657<td align="center">CONVERGED</td>
4658<td align="center">Values good after unlock</td>
4659</tr>
4660</tbody>
4661</table>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004662 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08004663 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08004664
4665
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08004666 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
4667 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004668
4669
4670 <tr class="entry" id="dynamic_android.control.mode">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08004671 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08004672 android.<wbr/>control.<wbr/>mode
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08004673 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004674 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08004675 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004676
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07004677 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004678
4679 <ul class="entry_type_enum">
4680 <li>
4681 <span class="entry_type_enum_name">OFF</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08004682 <span class="entry_type_enum_notes"><p>Full application control of pipeline.<wbr/> All 3A
4683routines are disabled,<wbr/> no other settings in
4684android.<wbr/>control.<wbr/>* have any effect</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004685 </li>
4686 <li>
4687 <span class="entry_type_enum_name">AUTO</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08004688 <span class="entry_type_enum_notes"><p>Use settings for each individual 3A routine.<wbr/>
4689Manual control of capture parameters is disabled.<wbr/> All
4690controls in android.<wbr/>control.<wbr/>* besides sceneMode take
4691effect</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004692 </li>
4693 <li>
4694 <span class="entry_type_enum_name">USE_SCENE_MODE</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08004695 <span class="entry_type_enum_notes"><p>Use specific scene mode.<wbr/> Enabling this disables
4696control.<wbr/>aeMode,<wbr/> control.<wbr/>awbMode and control.<wbr/>afMode
4697controls; the HAL must ignore those settings while
4698USE_<wbr/>SCENE_<wbr/>MODE is active (except for FACE_<wbr/>PRIORITY
4699scene mode).<wbr/> Other control entries are still active.<wbr/>
4700This setting can only be used if availableSceneModes !=
4701UNSUPPORTED</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004702 </li>
4703 </ul>
4704
4705 </td> <!-- entry_type -->
4706
4707 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08004708 <p>Overall mode of 3A control
4709routines</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004710 </td>
4711
4712 <td class="entry_units">
4713 </td>
4714
4715 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08004716 <p>all must be supported</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004717 </td>
4718
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08004719 <td class="entry_tags">
4720 <ul class="entry_tags">
4721 <li><a href="#tag_BC">BC</a></li>
4722 </ul>
4723 </td>
4724
4725 </tr>
4726 <tr class="entries_header">
4727 <th class="th_details" colspan="5">Details</th>
4728 </tr>
4729 <tr class="entry_cont">
4730 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08004731 <p>High-level 3A control.<wbr/> When set to OFF,<wbr/> all 3A control
Zhijun Hef90eeaf2014-01-16 12:13:35 -08004732by the camera device is disabled.<wbr/> The application must set the fields for
Igor Murashkin0b080452013-12-27 15:30:25 -08004733capture parameters itself.<wbr/></p>
4734<p>When set to AUTO,<wbr/> the individual algorithm controls in
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08004735android.<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 -08004736<p>When set to USE_<wbr/>SCENE_<wbr/>MODE,<wbr/> the individual controls in
Zhijun Hef90eeaf2014-01-16 12:13:35 -08004737android.<wbr/>control.<wbr/>* are mostly disabled,<wbr/> and the camera device implements
Igor Murashkin0b080452013-12-27 15:30:25 -08004738one of the scene mode settings (such as ACTION,<wbr/> SUNSET,<wbr/> or PARTY)
Zhijun Hef90eeaf2014-01-16 12:13:35 -08004739as it wishes.<wbr/> The camera device scene mode 3A settings are provided by
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08004740<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 -08004741 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08004742 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08004743
4744
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08004745 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
4746 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004747
4748
4749
4750 <!-- end of kind -->
4751 </tbody>
4752
4753 <!-- end of section -->
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08004754 <tr><td colspan="6" id="section_demosaic" class="section">demosaic</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004755
4756
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08004757 <tr><td colspan="6" class="kind">controls</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004758
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07004759 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004760 <tr>
4761 <th class="th_name">Property Name</th>
4762 <th class="th_type">Type</th>
4763 <th class="th_description">Description</th>
4764 <th class="th_units">Units</th>
4765 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004766 <th class="th_tags">Tags</th>
4767 </tr>
4768 </thead>
4769
4770 <tbody>
4771
4772
4773
4774
4775
4776
4777
4778
4779
4780
4781 <tr class="entry" id="controls_android.demosaic.mode">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08004782 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -08004783 android.<wbr/>demosaic.<wbr/>mode
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08004784 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004785 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08004786 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004787
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07004788 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004789
4790 <ul class="entry_type_enum">
4791 <li>
4792 <span class="entry_type_enum_name">FAST</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08004793 <span class="entry_type_enum_notes"><p>Minimal or no slowdown of frame rate compared to
4794Bayer RAW output</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004795 </li>
4796 <li>
4797 <span class="entry_type_enum_name">HIGH_QUALITY</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08004798 <span class="entry_type_enum_notes"><p>High-quality may reduce output frame
4799rate</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004800 </li>
4801 </ul>
4802
4803 </td> <!-- entry_type -->
4804
4805 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08004806 <p>Controls the quality of the demosaicing
4807processing</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004808 </td>
4809
4810 <td class="entry_units">
4811 </td>
4812
4813 <td class="entry_range">
4814 </td>
4815
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004816 <td class="entry_tags">
4817 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08004818 <li><a href="#tag_V1">V1</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004819 </ul>
4820 </td>
4821
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08004822 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08004823
4824
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08004825 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
4826 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004827
4828
4829
4830 <!-- end of kind -->
4831 </tbody>
4832
4833 <!-- end of section -->
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08004834 <tr><td colspan="6" id="section_edge" class="section">edge</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004835
4836
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08004837 <tr><td colspan="6" class="kind">controls</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004838
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07004839 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004840 <tr>
4841 <th class="th_name">Property Name</th>
4842 <th class="th_type">Type</th>
4843 <th class="th_description">Description</th>
4844 <th class="th_units">Units</th>
4845 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004846 <th class="th_tags">Tags</th>
4847 </tr>
4848 </thead>
4849
4850 <tbody>
4851
4852
4853
4854
4855
4856
4857
4858
4859
4860
4861 <tr class="entry" id="controls_android.edge.mode">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08004862 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08004863 android.<wbr/>edge.<wbr/>mode
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08004864 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004865 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08004866 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004867
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07004868 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004869
4870 <ul class="entry_type_enum">
4871 <li>
4872 <span class="entry_type_enum_name">OFF</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08004873 <span class="entry_type_enum_notes"><p>No edge enhancement is applied</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004874 </li>
4875 <li>
4876 <span class="entry_type_enum_name">FAST</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08004877 <span class="entry_type_enum_notes"><p>Must not slow down frame rate relative to sensor
4878output</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004879 </li>
4880 <li>
4881 <span class="entry_type_enum_name">HIGH_QUALITY</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08004882 <span class="entry_type_enum_notes"><p>Frame rate may be reduced by high
4883quality</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004884 </li>
4885 </ul>
4886
4887 </td> <!-- entry_type -->
4888
4889 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08004890 <p>Operation mode for edge
4891enhancement</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004892 </td>
4893
4894 <td class="entry_units">
4895 </td>
4896
4897 <td class="entry_range">
4898 </td>
4899
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08004900 <td class="entry_tags">
4901 </td>
4902
4903 </tr>
4904 <tr class="entries_header">
4905 <th class="th_details" colspan="5">Details</th>
4906 </tr>
4907 <tr class="entry_cont">
4908 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08004909 <p>Edge/<wbr/>sharpness/<wbr/>detail enhancement.<wbr/> OFF means no
4910enhancement will be applied by the HAL.<wbr/></p>
Zhijun Hef90eeaf2014-01-16 12:13:35 -08004911<p>FAST/<wbr/>HIGH_<wbr/>QUALITY both mean camera device determined enhancement
Igor Murashkin0b080452013-12-27 15:30:25 -08004912will be applied.<wbr/> HIGH_<wbr/>QUALITY mode indicates that the
Zhijun Hef90eeaf2014-01-16 12:13:35 -08004913camera device will use the highest-quality enhancement algorithms,<wbr/>
4914even if it slows down capture rate.<wbr/> FAST means the camera device will
Igor Murashkin0b080452013-12-27 15:30:25 -08004915not slow down capture rate when applying edge enhancement.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004916 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08004917 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08004918
4919
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08004920 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
4921 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004922
4923
4924 <tr class="entry" id="controls_android.edge.strength">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08004925 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -08004926 android.<wbr/>edge.<wbr/>strength
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08004927 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004928 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08004929 <span class="entry_type_name">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004930
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07004931 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004932
4933
4934 </td> <!-- entry_type -->
4935
4936 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08004937 <p>Control the amount of edge enhancement
4938applied to the images</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004939 </td>
4940
4941 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -08004942 1-10; 10 is maximum sharpening
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004943 </td>
4944
4945 <td class="entry_range">
4946 </td>
4947
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004948 <td class="entry_tags">
4949 </td>
4950
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08004951 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08004952
4953
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08004954 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
4955 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004956
4957
4958
4959 <!-- end of kind -->
4960 </tbody>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08004961 <tr><td colspan="6" class="kind">dynamic</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004962
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07004963 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004964 <tr>
4965 <th class="th_name">Property Name</th>
4966 <th class="th_type">Type</th>
4967 <th class="th_description">Description</th>
4968 <th class="th_units">Units</th>
4969 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004970 <th class="th_tags">Tags</th>
4971 </tr>
4972 </thead>
4973
4974 <tbody>
4975
4976
4977
4978
4979
4980
4981
4982
4983
4984
4985 <tr class="entry" id="dynamic_android.edge.mode">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08004986 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08004987 android.<wbr/>edge.<wbr/>mode
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08004988 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004989 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08004990 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004991
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07004992 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004993
4994 <ul class="entry_type_enum">
4995 <li>
4996 <span class="entry_type_enum_name">OFF</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08004997 <span class="entry_type_enum_notes"><p>No edge enhancement is applied</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004998 </li>
4999 <li>
5000 <span class="entry_type_enum_name">FAST</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08005001 <span class="entry_type_enum_notes"><p>Must not slow down frame rate relative to sensor
5002output</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005003 </li>
5004 <li>
5005 <span class="entry_type_enum_name">HIGH_QUALITY</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08005006 <span class="entry_type_enum_notes"><p>Frame rate may be reduced by high
5007quality</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005008 </li>
5009 </ul>
5010
5011 </td> <!-- entry_type -->
5012
5013 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08005014 <p>Operation mode for edge
5015enhancement</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005016 </td>
5017
5018 <td class="entry_units">
5019 </td>
5020
5021 <td class="entry_range">
5022 </td>
5023
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005024 <td class="entry_tags">
5025 </td>
5026
5027 </tr>
5028 <tr class="entries_header">
5029 <th class="th_details" colspan="5">Details</th>
5030 </tr>
5031 <tr class="entry_cont">
5032 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08005033 <p>Edge/<wbr/>sharpness/<wbr/>detail enhancement.<wbr/> OFF means no
5034enhancement will be applied by the HAL.<wbr/></p>
Zhijun Hef90eeaf2014-01-16 12:13:35 -08005035<p>FAST/<wbr/>HIGH_<wbr/>QUALITY both mean camera device determined enhancement
Igor Murashkin0b080452013-12-27 15:30:25 -08005036will be applied.<wbr/> HIGH_<wbr/>QUALITY mode indicates that the
Zhijun Hef90eeaf2014-01-16 12:13:35 -08005037camera device will use the highest-quality enhancement algorithms,<wbr/>
5038even if it slows down capture rate.<wbr/> FAST means the camera device will
Igor Murashkin0b080452013-12-27 15:30:25 -08005039not slow down capture rate when applying edge enhancement.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005040 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005041 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005042
5043
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005044 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
5045 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005046
5047
5048
5049 <!-- end of kind -->
5050 </tbody>
5051
5052 <!-- end of section -->
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005053 <tr><td colspan="6" id="section_flash" class="section">flash</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005054
5055
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005056 <tr><td colspan="6" class="kind">controls</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005057
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07005058 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005059 <tr>
5060 <th class="th_name">Property Name</th>
5061 <th class="th_type">Type</th>
5062 <th class="th_description">Description</th>
5063 <th class="th_units">Units</th>
5064 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005065 <th class="th_tags">Tags</th>
5066 </tr>
5067 </thead>
5068
5069 <tbody>
5070
5071
5072
5073
5074
5075
5076
5077
5078
5079
5080 <tr class="entry" id="controls_android.flash.firingPower">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005081 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08005082 android.<wbr/>flash.<wbr/>firing<wbr/>Power
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005083 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005084 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08005085 <span class="entry_type_name">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005086
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07005087 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005088
5089
5090 </td> <!-- entry_type -->
5091
5092 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08005093 <p>Power for flash firing/<wbr/>torch</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005094 </td>
5095
5096 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -08005097 10 is max power; 0 is no flash.<wbr/> Linear
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005098 </td>
5099
5100 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08005101 <p>0 - 10</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005102 </td>
5103
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005104 <td class="entry_tags">
5105 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08005106 <li><a href="#tag_V1">V1</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005107 </ul>
5108 </td>
5109
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005110 </tr>
5111 <tr class="entries_header">
5112 <th class="th_details" colspan="5">Details</th>
5113 </tr>
5114 <tr class="entry_cont">
5115 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08005116 <p>Power for snapshot may use a different scale than
5117for torch mode.<wbr/> Only one entry for torch mode will be
5118used</p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005119 </td>
5120 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005121
5122
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005123 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
5124 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005125
5126
5127 <tr class="entry" id="controls_android.flash.firingTime">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005128 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08005129 android.<wbr/>flash.<wbr/>firing<wbr/>Time
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005130 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005131 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08005132 <span class="entry_type_name">int64</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005133
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07005134 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005135
5136
5137 </td> <!-- entry_type -->
5138
5139 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08005140 <p>Firing time of flash relative to start of
5141exposure</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005142 </td>
5143
5144 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -08005145 nanoseconds
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005146 </td>
5147
5148 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08005149 <p>0-(exposure time-flash duration)</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005150 </td>
5151
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005152 <td class="entry_tags">
5153 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08005154 <li><a href="#tag_V1">V1</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005155 </ul>
5156 </td>
5157
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005158 </tr>
5159 <tr class="entries_header">
5160 <th class="th_details" colspan="5">Details</th>
5161 </tr>
5162 <tr class="entry_cont">
5163 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08005164 <p>Clamped to (0,<wbr/> exposure time - flash
5165duration).<wbr/></p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005166 </td>
5167 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005168
5169
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005170 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
5171 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005172
5173
5174 <tr class="entry" id="controls_android.flash.mode">
Zhijun Heea27bc32014-01-15 13:47:59 -08005175 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08005176 android.<wbr/>flash.<wbr/>mode
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005177 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005178 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08005179 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005180
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07005181 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005182
5183 <ul class="entry_type_enum">
5184 <li>
5185 <span class="entry_type_enum_name">OFF</span>
Zhijun Heea27bc32014-01-15 13:47:59 -08005186 <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 -08005187 </li>
5188 <li>
5189 <span class="entry_type_enum_name">SINGLE</span>
Zhijun Heea27bc32014-01-15 13:47:59 -08005190 <span class="entry_type_enum_notes"><p>If the flash is available and charged,<wbr/> fire flash
5191for this capture based on <a href="#controls_android.flash.firingPower">android.<wbr/>flash.<wbr/>firing<wbr/>Power</a> and
5192<a href="#controls_android.flash.firingTime">android.<wbr/>flash.<wbr/>firing<wbr/>Time</a>.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005193 </li>
5194 <li>
5195 <span class="entry_type_enum_name">TORCH</span>
Zhijun Heea27bc32014-01-15 13:47:59 -08005196 <span class="entry_type_enum_notes"><p>Transition flash to continuously on.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005197 </li>
5198 </ul>
5199
5200 </td> <!-- entry_type -->
5201
5202 <td class="entry_description">
Zhijun Heea27bc32014-01-15 13:47:59 -08005203 <p>The desired mode for for the camera device's flash control.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005204 </td>
5205
5206 <td class="entry_units">
5207 </td>
5208
5209 <td class="entry_range">
5210 </td>
5211
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005212 <td class="entry_tags">
5213 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08005214 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005215 </ul>
5216 </td>
5217
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005218 </tr>
Zhijun Heea27bc32014-01-15 13:47:59 -08005219 <tr class="entries_header">
5220 <th class="th_details" colspan="5">Details</th>
5221 </tr>
5222 <tr class="entry_cont">
5223 <td class="entry_details" colspan="5">
5224 <p>This control is only effective when flash unit is available
Zhijun Hebdc94c42014-01-21 18:28:30 -08005225(<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 -08005226<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/>
5227Otherwise,<wbr/> the camera device auto-exposure related flash control (ON_<wbr/>AUTO_<wbr/>FLASH,<wbr/>
5228ON_<wbr/>ALWAYS_<wbr/>FLASH,<wbr/> or ON_<wbr/>AUTO_<wbr/>FLASH_<wbr/>REDEYE) will override this control.<wbr/></p>
5229<p>When set to OFF,<wbr/> the camera device will not fire flash for this capture.<wbr/></p>
5230<p>When set to SINGLE,<wbr/> the camera device will fire flash regardless of the camera
5231device's auto-exposure routine's result.<wbr/> When used in still capture case,<wbr/> this
5232control should be used along with AE precapture metering sequence
5233(<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>
5234<p>When set to TORCH,<wbr/> the flash will be on continuously.<wbr/> This mode can be used
5235for 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 -08005236<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 -08005237 </td>
5238 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005239
5240
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005241 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
5242 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005243
5244
5245
5246 <!-- end of kind -->
5247 </tbody>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005248 <tr><td colspan="6" class="kind">static</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005249
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07005250 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005251 <tr>
5252 <th class="th_name">Property Name</th>
5253 <th class="th_type">Type</th>
5254 <th class="th_description">Description</th>
5255 <th class="th_units">Units</th>
5256 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005257 <th class="th_tags">Tags</th>
5258 </tr>
5259 </thead>
5260
5261 <tbody>
5262
5263
5264
5265
5266
5267
5268
5269
5270
5271
5272
5273
5274 <tr class="entry" id="static_android.flash.info.available">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005275 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08005276 android.<wbr/>flash.<wbr/>info.<wbr/>available
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005277 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005278 <td class="entry_type">
Zhijun He5169ce12014-01-24 16:48:25 -08005279 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005280
Zhijun He5169ce12014-01-24 16:48:25 -08005281 <span class="entry_type_visibility"> [public as boolean]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005282
Zhijun He5169ce12014-01-24 16:48:25 -08005283 <ul class="entry_type_enum">
5284 <li>
5285 <span class="entry_type_enum_name">FALSE</span>
5286 </li>
5287 <li>
5288 <span class="entry_type_enum_name">TRUE</span>
5289 </li>
5290 </ul>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005291
5292 </td> <!-- entry_type -->
5293
5294 <td class="entry_description">
Zhijun He5169ce12014-01-24 16:48:25 -08005295 <p>Whether this camera device has a
5296flash.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005297 </td>
5298
5299 <td class="entry_units">
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005300 </td>
5301
5302 <td class="entry_range">
5303 </td>
5304
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005305 <td class="entry_tags">
5306 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08005307 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005308 </ul>
5309 </td>
5310
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005311 </tr>
5312 <tr class="entries_header">
5313 <th class="th_details" colspan="5">Details</th>
5314 </tr>
5315 <tr class="entry_cont">
5316 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08005317 <p>If no flash,<wbr/> none of the flash controls do
Zhijun He5169ce12014-01-24 16:48:25 -08005318anything.<wbr/> All other metadata should return 0.<wbr/></p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005319 </td>
5320 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005321
5322
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005323 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
5324 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005325
5326
5327 <tr class="entry" id="static_android.flash.info.chargeDuration">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005328 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08005329 android.<wbr/>flash.<wbr/>info.<wbr/>charge<wbr/>Duration
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005330 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005331 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08005332 <span class="entry_type_name">int64</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005333
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07005334 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005335
5336
5337 </td> <!-- entry_type -->
5338
5339 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08005340 <p>Time taken before flash can fire
5341again</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005342 </td>
5343
5344 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -08005345 nanoseconds
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005346 </td>
5347
5348 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08005349 <p>0-1e9</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005350 </td>
5351
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005352 <td class="entry_tags">
5353 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08005354 <li><a href="#tag_V1">V1</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005355 </ul>
5356 </td>
5357
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005358 </tr>
5359 <tr class="entries_header">
5360 <th class="th_details" colspan="5">Details</th>
5361 </tr>
5362 <tr class="entry_cont">
5363 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08005364 <p>1 second too long/<wbr/>too short for recharge? Should
5365this be power-dependent?</p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005366 </td>
5367 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005368
5369
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005370 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
5371 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005372
5373
5374
5375
5376
5377 <tr class="entry" id="static_android.flash.colorTemperature">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005378 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -08005379 android.<wbr/>flash.<wbr/>color<wbr/>Temperature
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005380 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005381 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08005382 <span class="entry_type_name">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005383
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07005384 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005385
5386
5387 </td> <!-- entry_type -->
5388
5389 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08005390 <p>The x,<wbr/>y whitepoint of the
5391flash</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005392 </td>
5393
5394 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -08005395 pair of floats
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005396 </td>
5397
5398 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08005399 <p>0-1 for both</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005400 </td>
5401
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005402 <td class="entry_tags">
5403 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08005404 <li><a href="#tag_ADV">ADV</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005405 </ul>
5406 </td>
5407
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005408 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005409
5410
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005411 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
5412 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005413
5414
5415 <tr class="entry" id="static_android.flash.maxEnergy">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005416 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -08005417 android.<wbr/>flash.<wbr/>max<wbr/>Energy
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005418 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005419 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08005420 <span class="entry_type_name">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005421
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07005422 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005423
5424
5425 </td> <!-- entry_type -->
5426
5427 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08005428 <p>Max energy output of the flash for a full
5429power single flash</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005430 </td>
5431
5432 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -08005433 lumen-seconds
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005434 </td>
5435
5436 <td class="entry_range">
Igor Murashkin6cb7c2c2014-01-10 15:12:40 -08005437 <p>&gt;= 0</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005438 </td>
5439
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005440 <td class="entry_tags">
5441 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08005442 <li><a href="#tag_ADV">ADV</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005443 </ul>
5444 </td>
5445
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005446 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005447
5448
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005449 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
5450 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005451
5452
5453
5454 <!-- end of kind -->
5455 </tbody>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005456 <tr><td colspan="6" class="kind">dynamic</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005457
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07005458 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005459 <tr>
5460 <th class="th_name">Property Name</th>
5461 <th class="th_type">Type</th>
5462 <th class="th_description">Description</th>
5463 <th class="th_units">Units</th>
5464 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005465 <th class="th_tags">Tags</th>
5466 </tr>
5467 </thead>
5468
5469 <tbody>
5470
5471
5472
5473
5474
5475
5476
5477
5478
5479
5480 <tr class="entry" id="dynamic_android.flash.firingPower">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005481 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08005482 android.<wbr/>flash.<wbr/>firing<wbr/>Power
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005483 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005484 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08005485 <span class="entry_type_name">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005486
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07005487 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005488
5489
5490 </td> <!-- entry_type -->
5491
5492 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08005493 <p>Power for flash firing/<wbr/>torch</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005494 </td>
5495
5496 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -08005497 10 is max power; 0 is no flash.<wbr/> Linear
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005498 </td>
5499
5500 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08005501 <p>0 - 10</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005502 </td>
5503
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005504 <td class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08005505 <ul class="entry_tags">
5506 <li><a href="#tag_V1">V1</a></li>
5507 </ul>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005508 </td>
5509
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005510 </tr>
5511 <tr class="entries_header">
5512 <th class="th_details" colspan="5">Details</th>
5513 </tr>
5514 <tr class="entry_cont">
5515 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08005516 <p>Power for snapshot may use a different scale than
5517for torch mode.<wbr/> Only one entry for torch mode will be
5518used</p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005519 </td>
5520 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005521
5522
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005523 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
5524 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005525
5526
5527 <tr class="entry" id="dynamic_android.flash.firingTime">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005528 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08005529 android.<wbr/>flash.<wbr/>firing<wbr/>Time
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005530 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005531 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08005532 <span class="entry_type_name">int64</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005533
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07005534 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005535
5536
5537 </td> <!-- entry_type -->
5538
5539 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08005540 <p>Firing time of flash relative to start of
5541exposure</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005542 </td>
5543
5544 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -08005545 nanoseconds
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005546 </td>
5547
5548 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08005549 <p>0-(exposure time-flash duration)</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005550 </td>
5551
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005552 <td class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08005553 <ul class="entry_tags">
5554 <li><a href="#tag_V1">V1</a></li>
5555 </ul>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005556 </td>
5557
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005558 </tr>
5559 <tr class="entries_header">
5560 <th class="th_details" colspan="5">Details</th>
5561 </tr>
5562 <tr class="entry_cont">
5563 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08005564 <p>Clamped to (0,<wbr/> exposure time - flash
5565duration).<wbr/></p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005566 </td>
5567 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005568
5569
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005570 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
5571 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005572
5573
5574 <tr class="entry" id="dynamic_android.flash.mode">
Zhijun Heea27bc32014-01-15 13:47:59 -08005575 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08005576 android.<wbr/>flash.<wbr/>mode
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005577 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005578 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08005579 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005580
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07005581 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005582
5583 <ul class="entry_type_enum">
5584 <li>
5585 <span class="entry_type_enum_name">OFF</span>
Zhijun Heea27bc32014-01-15 13:47:59 -08005586 <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 -08005587 </li>
5588 <li>
5589 <span class="entry_type_enum_name">SINGLE</span>
Zhijun Heea27bc32014-01-15 13:47:59 -08005590 <span class="entry_type_enum_notes"><p>If the flash is available and charged,<wbr/> fire flash
5591for this capture based on <a href="#controls_android.flash.firingPower">android.<wbr/>flash.<wbr/>firing<wbr/>Power</a> and
5592<a href="#controls_android.flash.firingTime">android.<wbr/>flash.<wbr/>firing<wbr/>Time</a>.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005593 </li>
5594 <li>
5595 <span class="entry_type_enum_name">TORCH</span>
Zhijun Heea27bc32014-01-15 13:47:59 -08005596 <span class="entry_type_enum_notes"><p>Transition flash to continuously on.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005597 </li>
5598 </ul>
5599
5600 </td> <!-- entry_type -->
5601
5602 <td class="entry_description">
Zhijun Heea27bc32014-01-15 13:47:59 -08005603 <p>The desired mode for for the camera device's flash control.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005604 </td>
5605
5606 <td class="entry_units">
5607 </td>
5608
5609 <td class="entry_range">
5610 </td>
5611
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005612 <td class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08005613 <ul class="entry_tags">
5614 <li><a href="#tag_BC">BC</a></li>
5615 </ul>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005616 </td>
5617
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005618 </tr>
Zhijun Heea27bc32014-01-15 13:47:59 -08005619 <tr class="entries_header">
5620 <th class="th_details" colspan="5">Details</th>
5621 </tr>
5622 <tr class="entry_cont">
5623 <td class="entry_details" colspan="5">
5624 <p>This control is only effective when flash unit is available
Zhijun Hebdc94c42014-01-21 18:28:30 -08005625(<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 -08005626<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/>
5627Otherwise,<wbr/> the camera device auto-exposure related flash control (ON_<wbr/>AUTO_<wbr/>FLASH,<wbr/>
5628ON_<wbr/>ALWAYS_<wbr/>FLASH,<wbr/> or ON_<wbr/>AUTO_<wbr/>FLASH_<wbr/>REDEYE) will override this control.<wbr/></p>
5629<p>When set to OFF,<wbr/> the camera device will not fire flash for this capture.<wbr/></p>
5630<p>When set to SINGLE,<wbr/> the camera device will fire flash regardless of the camera
5631device's auto-exposure routine's result.<wbr/> When used in still capture case,<wbr/> this
5632control should be used along with AE precapture metering sequence
5633(<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>
5634<p>When set to TORCH,<wbr/> the flash will be on continuously.<wbr/> This mode can be used
5635for 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 -08005636<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 -08005637 </td>
5638 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005639
5640
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005641 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
5642 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005643
5644
5645 <tr class="entry" id="dynamic_android.flash.state">
Zhijun He5169ce12014-01-24 16:48:25 -08005646 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08005647 android.<wbr/>flash.<wbr/>state
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005648 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005649 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08005650 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005651
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07005652 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005653
5654 <ul class="entry_type_enum">
5655 <li>
5656 <span class="entry_type_enum_name">UNAVAILABLE</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08005657 <span class="entry_type_enum_notes"><p>No flash on camera</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005658 </li>
5659 <li>
5660 <span class="entry_type_enum_name">CHARGING</span>
Zhijun He5169ce12014-01-24 16:48:25 -08005661 <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 -08005662charging and cannot be fired</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005663 </li>
5664 <li>
5665 <span class="entry_type_enum_name">READY</span>
Zhijun He5169ce12014-01-24 16:48:25 -08005666 <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 -08005667ready to fire</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005668 </li>
5669 <li>
5670 <span class="entry_type_enum_name">FIRED</span>
Zhijun He5169ce12014-01-24 16:48:25 -08005671 <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 -08005672for this capture</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005673 </li>
5674 </ul>
5675
5676 </td> <!-- entry_type -->
5677
5678 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08005679 <p>Current state of the flash
Zhijun He5169ce12014-01-24 16:48:25 -08005680unit.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005681 </td>
5682
5683 <td class="entry_units">
5684 </td>
5685
5686 <td class="entry_range">
5687 </td>
5688
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005689 <td class="entry_tags">
5690 </td>
5691
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005692 </tr>
Zhijun He5169ce12014-01-24 16:48:25 -08005693 <tr class="entries_header">
5694 <th class="th_details" colspan="5">Details</th>
5695 </tr>
5696 <tr class="entry_cont">
5697 <td class="entry_details" colspan="5">
5698 <p>When the camera device doesn't have flash unit
5699(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/>
5700Other states indicate the current flash status.<wbr/></p>
5701 </td>
5702 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005703
5704
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005705 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
5706 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005707
5708
5709
5710 <!-- end of kind -->
5711 </tbody>
5712
5713 <!-- end of section -->
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005714 <tr><td colspan="6" id="section_geometric" class="section">geometric</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005715
5716
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005717 <tr><td colspan="6" class="kind">controls</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005718
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07005719 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005720 <tr>
5721 <th class="th_name">Property Name</th>
5722 <th class="th_type">Type</th>
5723 <th class="th_description">Description</th>
5724 <th class="th_units">Units</th>
5725 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005726 <th class="th_tags">Tags</th>
5727 </tr>
5728 </thead>
5729
5730 <tbody>
5731
5732
5733
5734
5735
5736
5737
5738
5739
5740
5741 <tr class="entry" id="controls_android.geometric.mode">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005742 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -08005743 android.<wbr/>geometric.<wbr/>mode
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005744 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005745 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08005746 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005747
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07005748 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005749
5750 <ul class="entry_type_enum">
5751 <li>
5752 <span class="entry_type_enum_name">OFF</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08005753 <span class="entry_type_enum_notes"><p>No geometric correction is
5754applied</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005755 </li>
5756 <li>
5757 <span class="entry_type_enum_name">FAST</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08005758 <span class="entry_type_enum_notes"><p>Must not slow down frame rate relative to raw
5759bayer output</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005760 </li>
5761 <li>
5762 <span class="entry_type_enum_name">HIGH_QUALITY</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08005763 <span class="entry_type_enum_notes"><p>Frame rate may be reduced by high
5764quality</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005765 </li>
5766 </ul>
5767
5768 </td> <!-- entry_type -->
5769
5770 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08005771 <p>Operating mode of geometric
5772correction</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005773 </td>
5774
5775 <td class="entry_units">
5776 </td>
5777
5778 <td class="entry_range">
5779 </td>
5780
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005781 <td class="entry_tags">
5782 </td>
5783
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005784 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005785
5786
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005787 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
5788 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005789
5790
5791 <tr class="entry" id="controls_android.geometric.strength">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005792 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -08005793 android.<wbr/>geometric.<wbr/>strength
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005794 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005795 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08005796 <span class="entry_type_name">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005797
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07005798 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005799
5800
5801 </td> <!-- entry_type -->
5802
5803 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08005804 <p>Control the amount of shading correction
5805applied to the images</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005806 </td>
5807
5808 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -08005809 unitless: 1-10; 10 is full shading
5810 compensation
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005811 </td>
5812
5813 <td class="entry_range">
5814 </td>
5815
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005816 <td class="entry_tags">
5817 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08005818 <li><a href="#tag_ADV">ADV</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005819 </ul>
5820 </td>
5821
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005822 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005823
5824
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005825 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
5826 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005827
5828
5829
5830 <!-- end of kind -->
5831 </tbody>
5832
5833 <!-- end of section -->
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005834 <tr><td colspan="6" id="section_hotPixel" class="section">hotPixel</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005835
5836
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005837 <tr><td colspan="6" class="kind">controls</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005838
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07005839 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005840 <tr>
5841 <th class="th_name">Property Name</th>
5842 <th class="th_type">Type</th>
5843 <th class="th_description">Description</th>
5844 <th class="th_units">Units</th>
5845 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005846 <th class="th_tags">Tags</th>
5847 </tr>
5848 </thead>
5849
5850 <tbody>
5851
5852
5853
5854
5855
5856
5857
5858
5859
5860
5861 <tr class="entry" id="controls_android.hotPixel.mode">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005862 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -08005863 android.<wbr/>hot<wbr/>Pixel.<wbr/>mode
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005864 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005865 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08005866 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005867
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07005868 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005869
5870 <ul class="entry_type_enum">
5871 <li>
5872 <span class="entry_type_enum_name">OFF</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08005873 <span class="entry_type_enum_notes"><p>No hot pixel correction can be
5874applied</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005875 </li>
5876 <li>
5877 <span class="entry_type_enum_name">FAST</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08005878 <span class="entry_type_enum_notes"><p>Frame rate must not be reduced compared to raw
5879Bayer output</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005880 </li>
5881 <li>
5882 <span class="entry_type_enum_name">HIGH_QUALITY</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08005883 <span class="entry_type_enum_notes"><p>Frame rate may be reduced by high
5884quality</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005885 </li>
5886 </ul>
5887
5888 </td> <!-- entry_type -->
5889
5890 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08005891 <p>Set operational mode for hot pixel
5892correction</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005893 </td>
5894
5895 <td class="entry_units">
5896 </td>
5897
5898 <td class="entry_range">
5899 </td>
5900
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005901 <td class="entry_tags">
5902 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08005903 <li><a href="#tag_V1">V1</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005904 </ul>
5905 </td>
5906
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005907 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005908
5909
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005910 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
5911 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005912
5913
5914
5915 <!-- end of kind -->
5916 </tbody>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005917 <tr><td colspan="6" class="kind">static</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005918
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07005919 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005920 <tr>
5921 <th class="th_name">Property Name</th>
5922 <th class="th_type">Type</th>
5923 <th class="th_description">Description</th>
5924 <th class="th_units">Units</th>
5925 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005926 <th class="th_tags">Tags</th>
5927 </tr>
5928 </thead>
5929
5930 <tbody>
5931
5932
5933
5934
5935
5936
5937
5938
5939
5940
5941
5942
5943 <tr class="entry" id="static_android.hotPixel.info.map">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005944 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -08005945 android.<wbr/>hot<wbr/>Pixel.<wbr/>info.<wbr/>map
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005946 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005947 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08005948 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005949 <span class="entry_type_container">x</span>
5950
5951 <span class="entry_type_array">
5952 2 x n
5953 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07005954 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -08005955 <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 -08005956
5957
5958 </td> <!-- entry_type -->
5959
5960 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08005961 <p>Location of hot/<wbr/>defective pixels on
5962sensor</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005963 </td>
5964
5965 <td class="entry_units">
5966 </td>
5967
5968 <td class="entry_range">
5969 </td>
5970
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005971 <td class="entry_tags">
5972 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08005973 <li><a href="#tag_ADV">ADV</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005974 </ul>
5975 </td>
5976
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005977 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005978
5979
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005980 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
5981 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005982
5983
5984
5985
5986
5987
5988 <!-- end of kind -->
5989 </tbody>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005990 <tr><td colspan="6" class="kind">dynamic</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005991
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07005992 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005993 <tr>
5994 <th class="th_name">Property Name</th>
5995 <th class="th_type">Type</th>
5996 <th class="th_description">Description</th>
5997 <th class="th_units">Units</th>
5998 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005999 <th class="th_tags">Tags</th>
6000 </tr>
6001 </thead>
6002
6003 <tbody>
6004
6005
6006
6007
6008
6009
6010
6011
6012
6013
6014 <tr class="entry" id="dynamic_android.hotPixel.mode">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006015 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -08006016 android.<wbr/>hot<wbr/>Pixel.<wbr/>mode
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006017 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006018 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08006019 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006020
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07006021 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006022
6023 <ul class="entry_type_enum">
6024 <li>
6025 <span class="entry_type_enum_name">OFF</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08006026 <span class="entry_type_enum_notes"><p>No hot pixel correction can be
6027applied</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006028 </li>
6029 <li>
6030 <span class="entry_type_enum_name">FAST</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08006031 <span class="entry_type_enum_notes"><p>Frame rate must not be reduced compared to raw
6032Bayer output</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006033 </li>
6034 <li>
6035 <span class="entry_type_enum_name">HIGH_QUALITY</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08006036 <span class="entry_type_enum_notes"><p>Frame rate may be reduced by high
6037quality</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006038 </li>
6039 </ul>
6040
6041 </td> <!-- entry_type -->
6042
6043 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08006044 <p>Set operational mode for hot pixel
6045correction</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006046 </td>
6047
6048 <td class="entry_units">
6049 </td>
6050
6051 <td class="entry_range">
6052 </td>
6053
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006054 <td class="entry_tags">
6055 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08006056 <li><a href="#tag_V1">V1</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006057 </ul>
6058 </td>
6059
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006060 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006061
6062
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006063 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
6064 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006065
6066
6067
6068 <!-- end of kind -->
6069 </tbody>
6070
6071 <!-- end of section -->
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006072 <tr><td colspan="6" id="section_jpeg" class="section">jpeg</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006073
6074
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006075 <tr><td colspan="6" class="kind">controls</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006076
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07006077 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006078 <tr>
6079 <th class="th_name">Property Name</th>
6080 <th class="th_type">Type</th>
6081 <th class="th_description">Description</th>
6082 <th class="th_units">Units</th>
6083 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006084 <th class="th_tags">Tags</th>
6085 </tr>
6086 </thead>
6087
6088 <tbody>
6089
6090
6091
6092
6093
6094
6095
6096
6097
6098
6099 <tr class="entry" id="controls_android.jpeg.gpsCoordinates">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006100 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -08006101 android.<wbr/>jpeg.<wbr/>gps<wbr/>Coordinates
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006102 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006103 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08006104 <span class="entry_type_name">double</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006105 <span class="entry_type_container">x</span>
6106
6107 <span class="entry_type_array">
6108 3
6109 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07006110 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -08006111 <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 -08006112
6113
6114 </td> <!-- entry_type -->
6115
6116 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08006117 <p>GPS coordinates to include in output JPEG
6118EXIF</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006119 </td>
6120
6121 <td class="entry_units">
6122 </td>
6123
6124 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08006125 <p>(-180 - 180],<wbr/> [-90,<wbr/>90],<wbr/> [-inf,<wbr/> inf]</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006126 </td>
6127
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006128 <td class="entry_tags">
6129 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08006130 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006131 </ul>
6132 </td>
6133
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006134 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006135
6136
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006137 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
6138 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006139
6140
6141 <tr class="entry" id="controls_android.jpeg.gpsProcessingMethod">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006142 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -08006143 android.<wbr/>jpeg.<wbr/>gps<wbr/>Processing<wbr/>Method
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006144 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006145 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08006146 <span class="entry_type_name">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006147
Igor Murashkinb8dc8812013-07-17 16:29:34 -07006148 <span class="entry_type_visibility"> [public as string]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006149
6150
6151 </td> <!-- entry_type -->
6152
6153 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08006154 <p>32 characters describing GPS algorithm to
6155include in EXIF</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006156 </td>
6157
6158 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -08006159 UTF-8 null-terminated string
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006160 </td>
6161
6162 <td class="entry_range">
6163 </td>
6164
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006165 <td class="entry_tags">
6166 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08006167 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006168 </ul>
6169 </td>
6170
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006171 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006172
6173
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006174 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
6175 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006176
6177
6178 <tr class="entry" id="controls_android.jpeg.gpsTimestamp">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006179 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -08006180 android.<wbr/>jpeg.<wbr/>gps<wbr/>Timestamp
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006181 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006182 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08006183 <span class="entry_type_name">int64</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006184
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07006185 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006186
6187
6188 </td> <!-- entry_type -->
6189
6190 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08006191 <p>Time GPS fix was made to include in
6192EXIF</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006193 </td>
6194
6195 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -08006196 UTC in seconds since January 1,<wbr/> 1970
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006197 </td>
6198
6199 <td class="entry_range">
6200 </td>
6201
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006202 <td class="entry_tags">
6203 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08006204 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006205 </ul>
6206 </td>
6207
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006208 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006209
6210
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006211 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
6212 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006213
6214
6215 <tr class="entry" id="controls_android.jpeg.orientation">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006216 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -08006217 android.<wbr/>jpeg.<wbr/>orientation
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006218 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006219 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08006220 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006221
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07006222 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006223
6224
6225 </td> <!-- entry_type -->
6226
6227 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08006228 <p>Orientation of JPEG image to
6229write</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006230 </td>
6231
6232 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -08006233 Degrees in multiples of 90
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006234 </td>
6235
6236 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08006237 <p>0,<wbr/> 90,<wbr/> 180,<wbr/> 270</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006238 </td>
6239
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006240 <td class="entry_tags">
6241 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08006242 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006243 </ul>
6244 </td>
6245
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006246 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006247
6248
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006249 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
6250 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006251
6252
6253 <tr class="entry" id="controls_android.jpeg.quality">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006254 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08006255 android.<wbr/>jpeg.<wbr/>quality
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006256 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006257 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08006258 <span class="entry_type_name">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006259
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07006260 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006261
6262
6263 </td> <!-- entry_type -->
6264
6265 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08006266 <p>Compression quality of the final JPEG
6267image</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006268 </td>
6269
6270 <td class="entry_units">
6271 </td>
6272
6273 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08006274 <p>1-100; larger is higher quality</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006275 </td>
6276
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006277 <td class="entry_tags">
6278 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08006279 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006280 </ul>
6281 </td>
6282
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006283 </tr>
6284 <tr class="entries_header">
6285 <th class="th_details" colspan="5">Details</th>
6286 </tr>
6287 <tr class="entry_cont">
6288 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08006289 <p>85-95 is typical usage range</p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006290 </td>
6291 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006292
6293
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006294 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
6295 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006296
6297
6298 <tr class="entry" id="controls_android.jpeg.thumbnailQuality">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006299 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -08006300 android.<wbr/>jpeg.<wbr/>thumbnail<wbr/>Quality
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006301 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006302 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08006303 <span class="entry_type_name">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006304
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07006305 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006306
6307
6308 </td> <!-- entry_type -->
6309
6310 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08006311 <p>Compression quality of JPEG
6312thumbnail</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006313 </td>
6314
6315 <td class="entry_units">
6316 </td>
6317
6318 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08006319 <p>1-100; larger is higher quality</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006320 </td>
6321
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006322 <td class="entry_tags">
6323 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08006324 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006325 </ul>
6326 </td>
6327
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006328 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006329
6330
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006331 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
6332 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006333
6334
6335 <tr class="entry" id="controls_android.jpeg.thumbnailSize">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006336 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08006337 android.<wbr/>jpeg.<wbr/>thumbnail<wbr/>Size
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006338 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006339 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08006340 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006341 <span class="entry_type_container">x</span>
6342
6343 <span class="entry_type_array">
6344 2
6345 </span>
Igor Murashkinb8dc8812013-07-17 16:29:34 -07006346 <span class="entry_type_visibility"> [public as size]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006347
6348
6349 </td> <!-- entry_type -->
6350
6351 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08006352 <p>Resolution of embedded JPEG thumbnail</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006353 </td>
6354
6355 <td class="entry_units">
6356 </td>
6357
6358 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08006359 <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 -08006360 </td>
6361
6362 <td class="entry_tags">
6363 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08006364 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006365 </ul>
6366 </td>
6367
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006368 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006369 <tr class="entries_header">
6370 <th class="th_details" colspan="5">Details</th>
6371 </tr>
6372 <tr class="entry_cont">
6373 <td class="entry_details" colspan="5">
Zhijun Hef90eeaf2014-01-16 12:13:35 -08006374 <p>When set to (0,<wbr/> 0) value,<wbr/> the JPEG EXIF will not contain thumbnail,<wbr/>
6375but the captured JPEG will still be a valid image.<wbr/></p>
Igor Murashkin0b080452013-12-27 15:30:25 -08006376<p>When a jpeg image capture is issued,<wbr/> the thumbnail size selected should have
6377the same aspect ratio as the jpeg image.<wbr/></p>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006378 </td>
6379 </tr>
6380
6381
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006382 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
6383 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006384
6385
6386
6387 <!-- end of kind -->
6388 </tbody>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006389 <tr><td colspan="6" class="kind">static</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006390
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07006391 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006392 <tr>
6393 <th class="th_name">Property Name</th>
6394 <th class="th_type">Type</th>
6395 <th class="th_description">Description</th>
6396 <th class="th_units">Units</th>
6397 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006398 <th class="th_tags">Tags</th>
6399 </tr>
6400 </thead>
6401
6402 <tbody>
6403
6404
6405
6406
6407
6408
6409
6410
6411
6412
6413 <tr class="entry" id="static_android.jpeg.availableThumbnailSizes">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006414 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08006415 android.<wbr/>jpeg.<wbr/>available<wbr/>Thumbnail<wbr/>Sizes
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006416 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006417 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08006418 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006419 <span class="entry_type_container">x</span>
6420
6421 <span class="entry_type_array">
6422 2 x n
6423 </span>
Igor Murashkinb8dc8812013-07-17 16:29:34 -07006424 <span class="entry_type_visibility"> [public as size]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006425
6426
6427 </td> <!-- entry_type -->
6428
6429 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08006430 <p>Supported resolutions for the JPEG thumbnail</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006431 </td>
6432
6433 <td class="entry_units">
6434 </td>
6435
6436 <td class="entry_range">
Zhijun Hef90eeaf2014-01-16 12:13:35 -08006437 <p>Will include at least one valid resolution,<wbr/> plus
6438(0,<wbr/>0) for no thumbnail generation,<wbr/> and each size will be distinct.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006439 </td>
6440
6441 <td class="entry_tags">
6442 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08006443 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006444 </ul>
6445 </td>
6446
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006447 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006448 <tr class="entries_header">
6449 <th class="th_details" colspan="5">Details</th>
6450 </tr>
6451 <tr class="entry_cont">
6452 <td class="entry_details" colspan="5">
Zhijun Hef90eeaf2014-01-16 12:13:35 -08006453 <p>Below condiditions will be satisfied for this size list:</p>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006454<ul>
Zhijun Hef90eeaf2014-01-16 12:13:35 -08006455<li>The sizes will be sorted by increasing pixel area (width x height).<wbr/>
6456If several resolutions have the same area,<wbr/> they will be sorted by increasing width.<wbr/></li>
6457<li>The aspect ratio of the largest thumbnail size will be same as the
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08006458aspect 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 -08006459The largest size is defined as the size that has the largest pixel area
Igor Murashkin0b080452013-12-27 15:30:25 -08006460in a given size list.<wbr/></li>
Zhijun Hef90eeaf2014-01-16 12:13:35 -08006461<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 -08006462one corresponding size that has the same aspect ratio in availableThumbnailSizes,<wbr/>
6463and vice versa.<wbr/></li>
Zhijun Hef90eeaf2014-01-16 12:13:35 -08006464<li>All non (0,<wbr/> 0) sizes will have non-zero widths and heights.<wbr/></li>
Igor Murashkin0b080452013-12-27 15:30:25 -08006465</ul>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006466 </td>
6467 </tr>
6468
6469
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006470 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
6471 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006472
6473
6474 <tr class="entry" id="static_android.jpeg.maxSize">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006475 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08006476 android.<wbr/>jpeg.<wbr/>max<wbr/>Size
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006477 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006478 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08006479 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006480
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07006481 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006482
6483
6484 </td> <!-- entry_type -->
6485
6486 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08006487 <p>Maximum size in bytes for the compressed
6488JPEG buffer</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006489 </td>
6490
6491 <td class="entry_units">
6492 </td>
6493
6494 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08006495 <p>Must be large enough to fit any JPEG produced by
6496the camera</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006497 </td>
6498
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006499 <td class="entry_tags">
6500 </td>
6501
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006502 </tr>
6503 <tr class="entries_header">
6504 <th class="th_details" colspan="5">Details</th>
6505 </tr>
6506 <tr class="entry_cont">
6507 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08006508 <p>This is used for sizing the gralloc buffers for
6509JPEG</p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006510 </td>
6511 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006512
6513
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006514 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
6515 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006516
6517
6518
6519 <!-- end of kind -->
6520 </tbody>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006521 <tr><td colspan="6" class="kind">dynamic</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006522
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07006523 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006524 <tr>
6525 <th class="th_name">Property Name</th>
6526 <th class="th_type">Type</th>
6527 <th class="th_description">Description</th>
6528 <th class="th_units">Units</th>
6529 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006530 <th class="th_tags">Tags</th>
6531 </tr>
6532 </thead>
6533
6534 <tbody>
6535
6536
6537
6538
6539
6540
6541
6542
6543
6544
6545 <tr class="entry" id="dynamic_android.jpeg.gpsCoordinates">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006546 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -08006547 android.<wbr/>jpeg.<wbr/>gps<wbr/>Coordinates
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006548 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006549 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08006550 <span class="entry_type_name">double</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006551 <span class="entry_type_container">x</span>
6552
6553 <span class="entry_type_array">
6554 3
6555 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07006556 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -08006557 <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 -08006558
6559
6560 </td> <!-- entry_type -->
6561
6562 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08006563 <p>GPS coordinates to include in output JPEG
6564EXIF</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006565 </td>
6566
6567 <td class="entry_units">
6568 </td>
6569
6570 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08006571 <p>(-180 - 180],<wbr/> [-90,<wbr/>90],<wbr/> [-inf,<wbr/> inf]</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006572 </td>
6573
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006574 <td class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08006575 <ul class="entry_tags">
6576 <li><a href="#tag_BC">BC</a></li>
6577 </ul>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006578 </td>
6579
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006580 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006581
6582
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006583 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
6584 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006585
6586
6587 <tr class="entry" id="dynamic_android.jpeg.gpsProcessingMethod">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006588 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -08006589 android.<wbr/>jpeg.<wbr/>gps<wbr/>Processing<wbr/>Method
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006590 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006591 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08006592 <span class="entry_type_name">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006593
Igor Murashkinb8dc8812013-07-17 16:29:34 -07006594 <span class="entry_type_visibility"> [public as string]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006595
6596
6597 </td> <!-- entry_type -->
6598
6599 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08006600 <p>32 characters describing GPS algorithm to
6601include in EXIF</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006602 </td>
6603
6604 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -08006605 UTF-8 null-terminated string
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006606 </td>
6607
6608 <td class="entry_range">
6609 </td>
6610
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006611 <td class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08006612 <ul class="entry_tags">
6613 <li><a href="#tag_BC">BC</a></li>
6614 </ul>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006615 </td>
6616
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006617 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006618
6619
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006620 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
6621 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006622
6623
6624 <tr class="entry" id="dynamic_android.jpeg.gpsTimestamp">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006625 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -08006626 android.<wbr/>jpeg.<wbr/>gps<wbr/>Timestamp
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006627 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006628 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08006629 <span class="entry_type_name">int64</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006630
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07006631 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006632
6633
6634 </td> <!-- entry_type -->
6635
6636 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08006637 <p>Time GPS fix was made to include in
6638EXIF</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006639 </td>
6640
6641 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -08006642 UTC in seconds since January 1,<wbr/> 1970
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006643 </td>
6644
6645 <td class="entry_range">
6646 </td>
6647
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006648 <td class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08006649 <ul class="entry_tags">
6650 <li><a href="#tag_BC">BC</a></li>
6651 </ul>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006652 </td>
6653
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006654 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006655
6656
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006657 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
6658 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006659
6660
6661 <tr class="entry" id="dynamic_android.jpeg.orientation">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006662 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -08006663 android.<wbr/>jpeg.<wbr/>orientation
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006664 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006665 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08006666 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006667
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07006668 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006669
6670
6671 </td> <!-- entry_type -->
6672
6673 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08006674 <p>Orientation of JPEG image to
6675write</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006676 </td>
6677
6678 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -08006679 Degrees in multiples of 90
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006680 </td>
6681
6682 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08006683 <p>0,<wbr/> 90,<wbr/> 180,<wbr/> 270</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006684 </td>
6685
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006686 <td class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08006687 <ul class="entry_tags">
6688 <li><a href="#tag_BC">BC</a></li>
6689 </ul>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006690 </td>
6691
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006692 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006693
6694
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006695 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
6696 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006697
6698
6699 <tr class="entry" id="dynamic_android.jpeg.quality">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006700 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08006701 android.<wbr/>jpeg.<wbr/>quality
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006702 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006703 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08006704 <span class="entry_type_name">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006705
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07006706 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006707
6708
6709 </td> <!-- entry_type -->
6710
6711 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08006712 <p>Compression quality of the final JPEG
6713image</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006714 </td>
6715
6716 <td class="entry_units">
6717 </td>
6718
6719 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08006720 <p>1-100; larger is higher quality</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006721 </td>
6722
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006723 <td class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08006724 <ul class="entry_tags">
6725 <li><a href="#tag_BC">BC</a></li>
6726 </ul>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006727 </td>
6728
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006729 </tr>
6730 <tr class="entries_header">
6731 <th class="th_details" colspan="5">Details</th>
6732 </tr>
6733 <tr class="entry_cont">
6734 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08006735 <p>85-95 is typical usage range</p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006736 </td>
6737 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006738
6739
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006740 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
6741 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006742
6743
6744 <tr class="entry" id="dynamic_android.jpeg.size">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006745 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08006746 android.<wbr/>jpeg.<wbr/>size
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006747 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006748 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08006749 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006750
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07006751 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006752
6753
6754 </td> <!-- entry_type -->
6755
6756 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08006757 <p>The size of the compressed JPEG image,<wbr/> in
6758bytes</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006759 </td>
6760
6761 <td class="entry_units">
6762 </td>
6763
6764 <td class="entry_range">
Igor Murashkin6cb7c2c2014-01-10 15:12:40 -08006765 <p>&gt;= 0</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006766 </td>
6767
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006768 <td class="entry_tags">
6769 </td>
6770
6771 </tr>
6772 <tr class="entries_header">
6773 <th class="th_details" colspan="5">Details</th>
6774 </tr>
6775 <tr class="entry_cont">
6776 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08006777 <p>If no JPEG output is produced for the request,<wbr/>
6778this must be 0.<wbr/></p>
6779<p>Otherwise,<wbr/> this describes the real size of the compressed
6780JPEG image placed in the output stream.<wbr/> More specifically,<wbr/>
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08006781if <a href="#static_android.jpeg.maxSize">android.<wbr/>jpeg.<wbr/>max<wbr/>Size</a> = 1000000,<wbr/> and a specific capture
6782has <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 -08006783the JPEG stream will be 1000000 bytes,<wbr/> of which the first
6784500000 make up the real data.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006785 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006786 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006787
6788
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006789 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
6790 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006791
6792
6793 <tr class="entry" id="dynamic_android.jpeg.thumbnailQuality">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006794 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -08006795 android.<wbr/>jpeg.<wbr/>thumbnail<wbr/>Quality
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006796 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006797 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08006798 <span class="entry_type_name">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006799
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07006800 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006801
6802
6803 </td> <!-- entry_type -->
6804
6805 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08006806 <p>Compression quality of JPEG
6807thumbnail</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006808 </td>
6809
6810 <td class="entry_units">
6811 </td>
6812
6813 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08006814 <p>1-100; larger is higher quality</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006815 </td>
6816
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006817 <td class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08006818 <ul class="entry_tags">
6819 <li><a href="#tag_BC">BC</a></li>
6820 </ul>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006821 </td>
6822
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006823 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006824
6825
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006826 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
6827 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006828
6829
6830 <tr class="entry" id="dynamic_android.jpeg.thumbnailSize">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006831 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08006832 android.<wbr/>jpeg.<wbr/>thumbnail<wbr/>Size
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006833 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006834 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08006835 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006836 <span class="entry_type_container">x</span>
6837
6838 <span class="entry_type_array">
6839 2
6840 </span>
Igor Murashkinb8dc8812013-07-17 16:29:34 -07006841 <span class="entry_type_visibility"> [public as size]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006842
6843
6844 </td> <!-- entry_type -->
6845
6846 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08006847 <p>Resolution of embedded JPEG thumbnail</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006848 </td>
6849
6850 <td class="entry_units">
6851 </td>
6852
6853 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08006854 <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 -08006855 </td>
6856
6857 <td class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08006858 <ul class="entry_tags">
6859 <li><a href="#tag_BC">BC</a></li>
6860 </ul>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006861 </td>
6862
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006863 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006864 <tr class="entries_header">
6865 <th class="th_details" colspan="5">Details</th>
6866 </tr>
6867 <tr class="entry_cont">
6868 <td class="entry_details" colspan="5">
Zhijun Hef90eeaf2014-01-16 12:13:35 -08006869 <p>When set to (0,<wbr/> 0) value,<wbr/> the JPEG EXIF will not contain thumbnail,<wbr/>
6870but the captured JPEG will still be a valid image.<wbr/></p>
Igor Murashkin0b080452013-12-27 15:30:25 -08006871<p>When a jpeg image capture is issued,<wbr/> the thumbnail size selected should have
6872the same aspect ratio as the jpeg image.<wbr/></p>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006873 </td>
6874 </tr>
6875
6876
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006877 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
6878 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006879
6880
6881
6882 <!-- end of kind -->
6883 </tbody>
6884
6885 <!-- end of section -->
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006886 <tr><td colspan="6" id="section_lens" class="section">lens</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006887
6888
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006889 <tr><td colspan="6" class="kind">controls</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006890
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07006891 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006892 <tr>
6893 <th class="th_name">Property Name</th>
6894 <th class="th_type">Type</th>
6895 <th class="th_description">Description</th>
6896 <th class="th_units">Units</th>
6897 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006898 <th class="th_tags">Tags</th>
6899 </tr>
6900 </thead>
6901
6902 <tbody>
6903
6904
6905
6906
6907
6908
6909
6910
6911
6912
6913 <tr class="entry" id="controls_android.lens.aperture">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006914 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08006915 android.<wbr/>lens.<wbr/>aperture
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006916 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006917 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08006918 <span class="entry_type_name">float</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006919
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07006920 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006921
6922
6923 </td> <!-- entry_type -->
6924
6925 <td class="entry_description">
Zhijun He1b58d382014-01-10 10:22:53 -08006926 <p>The ratio of lens focal length to the effective
6927aperture diameter.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006928 </td>
6929
6930 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -08006931 f-number (f/<wbr/>NNN)
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006932 </td>
6933
6934 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08006935 <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 -08006936 </td>
6937
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006938 <td class="entry_tags">
6939 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08006940 <li><a href="#tag_V1">V1</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006941 </ul>
6942 </td>
6943
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006944 </tr>
6945 <tr class="entries_header">
6946 <th class="th_details" colspan="5">Details</th>
6947 </tr>
6948 <tr class="entry_cont">
6949 <td class="entry_details" colspan="5">
Zhijun He1b58d382014-01-10 10:22:53 -08006950 <p>This will only be supported on the camera devices that
6951have variable aperture lens.<wbr/> The aperture value can only be
6952one of the values listed in <a href="#static_android.lens.info.availableApertures">android.<wbr/>lens.<wbr/>info.<wbr/>available<wbr/>Apertures</a>.<wbr/></p>
6953<p>When this is supported and <a href="#controls_android.control.aeMode">android.<wbr/>control.<wbr/>ae<wbr/>Mode</a> is OFF,<wbr/>
6954this can be set along with <a href="#controls_android.sensor.exposureTime">android.<wbr/>sensor.<wbr/>exposure<wbr/>Time</a>,<wbr/>
6955<a href="#controls_android.sensor.sensitivity">android.<wbr/>sensor.<wbr/>sensitivity</a>,<wbr/> and android.<wbr/>sensor.<wbr/>frame<wbr/>Duration
6956to achieve manual exposure control.<wbr/></p>
6957<p>The requested aperture value may take several frames to reach the
6958requested value; the camera device will report the current (intermediate)
Zhijun He5169ce12014-01-24 16:48:25 -08006959aperture size in capture result metadata while the aperture is changing.<wbr/>
6960While 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 -08006961<p>When this is supported and <a href="#controls_android.control.aeMode">android.<wbr/>control.<wbr/>ae<wbr/>Mode</a> is one of
6962the ON modes,<wbr/> this will be overridden by the camera device
6963auto-exposure algorithm,<wbr/> the overridden values are then provided
6964back to the user in the corresponding result.<wbr/></p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006965 </td>
6966 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006967
6968
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006969 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
6970 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006971
6972
6973 <tr class="entry" id="controls_android.lens.filterDensity">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006974 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08006975 android.<wbr/>lens.<wbr/>filter<wbr/>Density
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006976 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006977 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08006978 <span class="entry_type_name">float</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006979
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07006980 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006981
6982
6983 </td> <!-- entry_type -->
6984
6985 <td class="entry_description">
Ruben Brunk83eb3032014-01-15 16:12:07 -08006986 <p>State of lens neutral density filter(s).<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006987 </td>
6988
6989 <td class="entry_units">
Ruben Brunk83eb3032014-01-15 16:12:07 -08006990 Steps of Exposure Value (EV).<wbr/>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006991 </td>
6992
6993 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08006994 <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 -08006995 </td>
6996
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006997 <td class="entry_tags">
6998 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08006999 <li><a href="#tag_V1">V1</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007000 </ul>
7001 </td>
7002
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007003 </tr>
7004 <tr class="entries_header">
7005 <th class="th_details" colspan="5">Details</th>
7006 </tr>
7007 <tr class="entry_cont">
7008 <td class="entry_details" colspan="5">
Ruben Brunk83eb3032014-01-15 16:12:07 -08007009 <p>This will not be supported on most camera devices.<wbr/> On devices
7010where this is supported,<wbr/> this may only be set to one of the
7011values included in <a href="#static_android.lens.info.availableFilterDensities">android.<wbr/>lens.<wbr/>info.<wbr/>available<wbr/>Filter<wbr/>Densities</a>.<wbr/></p>
7012<p>Lens filters are typically used to lower the amount of light the
7013sensor is exposed to (measured in steps of EV).<wbr/> As used here,<wbr/> an EV
7014step is the standard logarithmic representation,<wbr/> which are
7015non-negative,<wbr/> and inversely proportional to the amount of light
7016hitting the sensor.<wbr/> For example,<wbr/> setting this to 0 would result
7017in no reduction of the incoming light,<wbr/> and setting this to 2 would
7018mean that the filter is set to reduce incoming light by two stops
7019(allowing 1/<wbr/>4 of the prior amount of light to the sensor).<wbr/></p>
Zhijun He5169ce12014-01-24 16:48:25 -08007020<p>It may take several frames before the lens filter density changes
7021to the requested value.<wbr/> While the filter density is still changing,<wbr/>
7022<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 -08007023 </td>
7024 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007025
7026
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007027 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
7028 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007029
7030
7031 <tr class="entry" id="controls_android.lens.focalLength">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007032 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08007033 android.<wbr/>lens.<wbr/>focal<wbr/>Length
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007034 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007035 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08007036 <span class="entry_type_name">float</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007037
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07007038 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007039
7040
7041 </td> <!-- entry_type -->
7042
7043 <td class="entry_description">
Ruben Brunkac9bbb92014-01-15 18:39:35 -08007044 <p>The current lens focal length; used for optical zoom.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007045 </td>
7046
7047 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -08007048 focal length in mm
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007049 </td>
7050
7051 <td class="entry_range">
Ruben Brunkac9bbb92014-01-15 18:39:35 -08007052 <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 -08007053 </td>
7054
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007055 <td class="entry_tags">
7056 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08007057 <li><a href="#tag_V1">V1</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007058 </ul>
7059 </td>
7060
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007061 </tr>
7062 <tr class="entries_header">
7063 <th class="th_details" colspan="5">Details</th>
7064 </tr>
7065 <tr class="entry_cont">
7066 <td class="entry_details" colspan="5">
Ruben Brunkac9bbb92014-01-15 18:39:35 -08007067 <p>This setting controls the physical focal length of the camera
7068device's lens.<wbr/> Changing the focal length changes the field of
7069view of the camera device,<wbr/> and is usually used for optical zoom.<wbr/></p>
7070<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
7071setting won't be applied instantaneously,<wbr/> and it may take several
Zhijun He5169ce12014-01-24 16:48:25 -08007072frames before the lens can change to the requested focal length.<wbr/>
Ruben Brunkac9bbb92014-01-15 18:39:35 -08007073While the focal length is still changing,<wbr/> <a href="#dynamic_android.lens.state">android.<wbr/>lens.<wbr/>state</a> will
7074be set to MOVING.<wbr/></p>
7075<p>This is expected not to be supported on most devices.<wbr/></p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007076 </td>
7077 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007078
7079
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007080 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
7081 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007082
7083
7084 <tr class="entry" id="controls_android.lens.focusDistance">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007085 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08007086 android.<wbr/>lens.<wbr/>focus<wbr/>Distance
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007087 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007088 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08007089 <span class="entry_type_name">float</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007090
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07007091 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007092
7093
7094 </td> <!-- entry_type -->
7095
7096 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08007097 <p>Distance to plane of sharpest focus,<wbr/>
7098measured from frontmost surface of the lens</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007099 </td>
7100
7101 <td class="entry_units">
Zhijun Hef92c76a2014-02-06 01:40:35 -08007102 See android.<wbr/>lens.<wbr/>info.<wbr/>focus<wbr/>Distance<wbr/>Calibration for details.<wbr/>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007103 </td>
7104
7105 <td class="entry_range">
Igor Murashkin6cb7c2c2014-01-10 15:12:40 -08007106 <p>&gt;= 0</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007107 </td>
7108
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007109 <td class="entry_tags">
7110 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08007111 <li><a href="#tag_BC">BC</a></li>
7112 <li><a href="#tag_V1">V1</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007113 </ul>
7114 </td>
7115
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007116 </tr>
7117 <tr class="entries_header">
7118 <th class="th_details" colspan="5">Details</th>
7119 </tr>
7120 <tr class="entry_cont">
7121 <td class="entry_details" colspan="5">
Zhijun He5169ce12014-01-24 16:48:25 -08007122 <p>0 means infinity focus.<wbr/> Used value will be clamped
7123to [0,<wbr/> <a href="#static_android.lens.info.minimumFocusDistance">android.<wbr/>lens.<wbr/>info.<wbr/>minimum<wbr/>Focus<wbr/>Distance</a>].<wbr/></p>
7124<p>Like <a href="#controls_android.lens.focalLength">android.<wbr/>lens.<wbr/>focal<wbr/>Length</a>,<wbr/> this setting won't be applied
7125instantaneously,<wbr/> and it may take several frames before the lens
7126can move to the requested focus distance.<wbr/> While the lens is still moving,<wbr/>
7127<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 -08007128 </td>
7129 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007130
7131
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007132 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
7133 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007134
7135
7136 <tr class="entry" id="controls_android.lens.opticalStabilizationMode">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007137 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08007138 android.<wbr/>lens.<wbr/>optical<wbr/>Stabilization<wbr/>Mode
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007139 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007140 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08007141 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007142
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07007143 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007144
7145 <ul class="entry_type_enum">
7146 <li>
7147 <span class="entry_type_enum_name">OFF</span>
Ruben Brunk218639c2014-01-15 18:09:41 -08007148 <span class="entry_type_enum_notes"><p>Optical stabilization is unavailable.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007149 </li>
7150 <li>
7151 <span class="entry_type_enum_name">ON</span>
7152 <span class="entry_type_enum_optional">optional</span>
Ruben Brunk218639c2014-01-15 18:09:41 -08007153 <span class="entry_type_enum_notes"><p>Optical stabilization is enabled.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007154 </li>
7155 </ul>
7156
7157 </td> <!-- entry_type -->
7158
7159 <td class="entry_description">
Ruben Brunk218639c2014-01-15 18:09:41 -08007160 <p>Sets whether the camera device uses optical image stabilization (OIS)
7161when capturing images.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007162 </td>
7163
7164 <td class="entry_units">
7165 </td>
7166
7167 <td class="entry_range">
Ruben Brunk218639c2014-01-15 18:09:41 -08007168 <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 -08007169 </td>
7170
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007171 <td class="entry_tags">
7172 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08007173 <li><a href="#tag_V1">V1</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007174 </ul>
7175 </td>
7176
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007177 </tr>
7178 <tr class="entries_header">
7179 <th class="th_details" colspan="5">Details</th>
7180 </tr>
7181 <tr class="entry_cont">
7182 <td class="entry_details" colspan="5">
Ruben Brunk218639c2014-01-15 18:09:41 -08007183 <p>OIS is used to compensate for motion blur due to small movements of
7184the camera during capture.<wbr/> Unlike digital image stabilization,<wbr/> OIS makes
7185use of mechanical elements to stabilize the camera sensor,<wbr/> and thus
7186allows for longer exposure times before camera shake becomes
7187apparent.<wbr/></p>
7188<p>This is not expected to be supported on most devices.<wbr/></p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007189 </td>
7190 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007191
7192
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007193 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
7194 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007195
7196
7197
7198 <!-- end of kind -->
7199 </tbody>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007200 <tr><td colspan="6" class="kind">static</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007201
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07007202 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007203 <tr>
7204 <th class="th_name">Property Name</th>
7205 <th class="th_type">Type</th>
7206 <th class="th_description">Description</th>
7207 <th class="th_units">Units</th>
7208 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007209 <th class="th_tags">Tags</th>
7210 </tr>
7211 </thead>
7212
7213 <tbody>
7214
7215
7216
7217
7218
7219
7220
7221
7222
7223
7224
7225
7226 <tr class="entry" id="static_android.lens.info.availableApertures">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007227 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08007228 android.<wbr/>lens.<wbr/>info.<wbr/>available<wbr/>Apertures
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007229 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007230 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08007231 <span class="entry_type_name">float</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007232 <span class="entry_type_container">x</span>
7233
7234 <span class="entry_type_array">
7235 n
7236 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07007237 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007238
7239
7240 </td> <!-- entry_type -->
7241
7242 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08007243 <p>List of supported aperture
Zhijun He1b58d382014-01-10 10:22:53 -08007244values.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007245 </td>
7246
7247 <td class="entry_units">
7248 </td>
7249
7250 <td class="entry_range">
Zhijun He5169ce12014-01-24 16:48:25 -08007251 <p>one entry required,<wbr/> &gt; 0</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007252 </td>
7253
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007254 <td class="entry_tags">
7255 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08007256 <li><a href="#tag_V1">V1</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007257 </ul>
7258 </td>
7259
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007260 </tr>
7261 <tr class="entries_header">
7262 <th class="th_details" colspan="5">Details</th>
7263 </tr>
7264 <tr class="entry_cont">
7265 <td class="entry_details" colspan="5">
Zhijun He1b58d382014-01-10 10:22:53 -08007266 <p>If the camera device doesn't support variable apertures,<wbr/>
7267listed value will be the fixed aperture.<wbr/></p>
7268<p>If the camera device supports variable apertures,<wbr/> the aperture value
7269in this list will be sorted in ascending order.<wbr/></p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007270 </td>
7271 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007272
7273
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007274 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
7275 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007276
7277
7278 <tr class="entry" id="static_android.lens.info.availableFilterDensities">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007279 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08007280 android.<wbr/>lens.<wbr/>info.<wbr/>available<wbr/>Filter<wbr/>Densities
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007281 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007282 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08007283 <span class="entry_type_name">float</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007284 <span class="entry_type_container">x</span>
7285
7286 <span class="entry_type_array">
7287 n
7288 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07007289 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007290
7291
7292 </td> <!-- entry_type -->
7293
7294 <td class="entry_description">
Ruben Brunk83eb3032014-01-15 16:12:07 -08007295 <p>List of supported neutral density filter values for
7296<a href="#controls_android.lens.filterDensity">android.<wbr/>lens.<wbr/>filter<wbr/>Density</a>.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007297 </td>
7298
7299 <td class="entry_units">
7300 </td>
7301
7302 <td class="entry_range">
Ruben Brunk83eb3032014-01-15 16:12:07 -08007303 <p>At least one value is required.<wbr/> Values must be &gt;= 0.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007304 </td>
7305
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007306 <td class="entry_tags">
7307 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08007308 <li><a href="#tag_V1">V1</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007309 </ul>
7310 </td>
7311
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007312 </tr>
7313 <tr class="entries_header">
7314 <th class="th_details" colspan="5">Details</th>
7315 </tr>
7316 <tr class="entry_cont">
7317 <td class="entry_details" colspan="5">
Ruben Brunk83eb3032014-01-15 16:12:07 -08007318 <p>If changing <a href="#controls_android.lens.filterDensity">android.<wbr/>lens.<wbr/>filter<wbr/>Density</a> is not supported,<wbr/>
7319availableFilterDensities must contain only 0.<wbr/> Otherwise,<wbr/> this
7320list contains only the exact filter density values available on
7321this camera device.<wbr/></p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007322 </td>
7323 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007324
7325
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007326 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
7327 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007328
7329
7330 <tr class="entry" id="static_android.lens.info.availableFocalLengths">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007331 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08007332 android.<wbr/>lens.<wbr/>info.<wbr/>available<wbr/>Focal<wbr/>Lengths
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007333 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007334 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08007335 <span class="entry_type_name">float</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007336 <span class="entry_type_container">x</span>
7337
7338 <span class="entry_type_array">
7339 n
7340 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07007341 <span class="entry_type_visibility"> [public]</span>
Ruben Brunkac9bbb92014-01-15 18:39:35 -08007342 <div class="entry_type_notes">The list of available focal lengths</div>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007343
7344
7345 </td> <!-- entry_type -->
7346
7347 <td class="entry_description">
Ruben Brunkac9bbb92014-01-15 18:39:35 -08007348 <p>The available focal lengths for this device for use with
7349<a href="#controls_android.lens.focalLength">android.<wbr/>lens.<wbr/>focal<wbr/>Length</a>.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007350 </td>
7351
7352 <td class="entry_units">
7353 </td>
7354
7355 <td class="entry_range">
Ruben Brunkac9bbb92014-01-15 18:39:35 -08007356 <p>Each value in this list must be &gt; 0.<wbr/> This list must
7357contain at least one value.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007358 </td>
7359
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007360 <td class="entry_tags">
7361 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08007362 <li><a href="#tag_BC">BC</a></li>
7363 <li><a href="#tag_V1">V1</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007364 </ul>
7365 </td>
7366
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007367 </tr>
7368 <tr class="entries_header">
7369 <th class="th_details" colspan="5">Details</th>
7370 </tr>
7371 <tr class="entry_cont">
7372 <td class="entry_details" colspan="5">
Ruben Brunkac9bbb92014-01-15 18:39:35 -08007373 <p>If optical zoom is not supported,<wbr/> this will only report
7374a single value corresponding to the static focal length of the
7375device.<wbr/> Otherwise,<wbr/> this will report every focal length supported
7376by the device.<wbr/></p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007377 </td>
7378 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007379
7380
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007381 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
7382 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007383
7384
7385 <tr class="entry" id="static_android.lens.info.availableOpticalStabilization">
Ruben Brunk218639c2014-01-15 18:09:41 -08007386 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08007387 android.<wbr/>lens.<wbr/>info.<wbr/>available<wbr/>Optical<wbr/>Stabilization
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007388 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007389 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08007390 <span class="entry_type_name">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007391 <span class="entry_type_container">x</span>
7392
7393 <span class="entry_type_array">
7394 n
7395 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07007396 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -08007397 <div class="entry_type_notes">list of enums</div>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007398
7399
7400 </td> <!-- entry_type -->
7401
7402 <td class="entry_description">
Ruben Brunk218639c2014-01-15 18:09:41 -08007403 <p>List containing a subset of the optical image
7404stabilization (OIS) modes specified in
7405<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 -08007406 </td>
7407
7408 <td class="entry_units">
7409 </td>
7410
7411 <td class="entry_range">
7412 </td>
7413
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007414 <td class="entry_tags">
7415 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08007416 <li><a href="#tag_V1">V1</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007417 </ul>
7418 </td>
7419
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007420 </tr>
Ruben Brunk218639c2014-01-15 18:09:41 -08007421 <tr class="entries_header">
7422 <th class="th_details" colspan="5">Details</th>
7423 </tr>
7424 <tr class="entry_cont">
7425 <td class="entry_details" colspan="5">
7426 <p>If OIS is not implemented for a given camera device,<wbr/> this should
7427contain only OFF.<wbr/></p>
7428 </td>
7429 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007430
7431
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007432 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
7433 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007434
7435
7436 <tr class="entry" id="static_android.lens.info.geometricCorrectionMap">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007437 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08007438 android.<wbr/>lens.<wbr/>info.<wbr/>geometric<wbr/>Correction<wbr/>Map
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007439 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007440 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08007441 <span class="entry_type_name">float</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007442 <span class="entry_type_container">x</span>
7443
7444 <span class="entry_type_array">
7445 2 x 3 x n x m
7446 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07007447 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -08007448 <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 -08007449
7450
7451 </td> <!-- entry_type -->
7452
7453 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08007454 <p>A low-resolution map for correction of
7455geometric distortions and chromatic aberrations,<wbr/> per
7456color channel</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007457 </td>
7458
7459 <td class="entry_units">
7460 </td>
7461
7462 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08007463 <p>N,<wbr/> M &gt;= 2</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007464 </td>
7465
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007466 <td class="entry_tags">
7467 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08007468 <li><a href="#tag_DNG">DNG</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007469 </ul>
7470 </td>
7471
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007472 </tr>
7473 <tr class="entries_header">
7474 <th class="th_details" colspan="5">Details</th>
7475 </tr>
7476 <tr class="entry_cont">
7477 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08007478 <p>[DNG wants a function instead].<wbr/> What's easiest
7479for implementers? With an array size (M,<wbr/> N),<wbr/> entry (i,<wbr/>
7480j) provides the destination for pixel (i/<wbr/>(M-1) * width,<wbr/>
7481j/<wbr/>(N-1) * height).<wbr/> Data is row-major,<wbr/> with each array
7482entry 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 -08007483 </td>
7484 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007485
7486
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007487 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
7488 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007489
7490
7491 <tr class="entry" id="static_android.lens.info.geometricCorrectionMapSize">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007492 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -08007493 android.<wbr/>lens.<wbr/>info.<wbr/>geometric<wbr/>Correction<wbr/>Map<wbr/>Size
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007494 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007495 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08007496 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007497 <span class="entry_type_container">x</span>
7498
7499 <span class="entry_type_array">
7500 2
7501 </span>
Igor Murashkinb8dc8812013-07-17 16:29:34 -07007502 <span class="entry_type_visibility"> [system as size]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -08007503 <div class="entry_type_notes">width and height of geometric correction map</div>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007504
7505
7506 </td> <!-- entry_type -->
7507
7508 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08007509 <p>Dimensions of geometric correction
7510map</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007511 </td>
7512
7513 <td class="entry_units">
7514 </td>
7515
7516 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08007517 <p>Both values &gt;= 2</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007518 </td>
7519
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007520 <td class="entry_tags">
7521 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08007522 <li><a href="#tag_V1">V1</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007523 </ul>
7524 </td>
7525
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007526 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007527
7528
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007529 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
7530 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007531
7532
7533 <tr class="entry" id="static_android.lens.info.hyperfocalDistance">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007534 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08007535 android.<wbr/>lens.<wbr/>info.<wbr/>hyperfocal<wbr/>Distance
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007536 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007537 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08007538 <span class="entry_type_name">float</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007539
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07007540 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007541
7542
7543 </td> <!-- entry_type -->
7544
7545 <td class="entry_description">
Zhijun Hef92c76a2014-02-06 01:40:35 -08007546 <p>Optional.<wbr/> Hyperfocal distance for this lens.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007547 </td>
7548
7549 <td class="entry_units">
Zhijun Hef92c76a2014-02-06 01:40:35 -08007550 See android.<wbr/>lens.<wbr/>info.<wbr/>focus<wbr/>Distance<wbr/>Calibration for details.<wbr/>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007551 </td>
7552
7553 <td class="entry_range">
Igor Murashkin6cb7c2c2014-01-10 15:12:40 -08007554 <p>&gt;= 0</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007555 </td>
7556
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007557 <td class="entry_tags">
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007558 </td>
7559
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007560 </tr>
7561 <tr class="entries_header">
7562 <th class="th_details" colspan="5">Details</th>
7563 </tr>
7564 <tr class="entry_cont">
7565 <td class="entry_details" colspan="5">
Zhijun Hef92c76a2014-02-06 01:40:35 -08007566 <p>If the lens is fixed focus,<wbr/> the camera device will report 0.<wbr/></p>
7567<p>If the lens is not fixed focus,<wbr/> the camera device will report this
7568field when <a href="#static_android.lens.info.focusDistanceCalibration">android.<wbr/>lens.<wbr/>info.<wbr/>focus<wbr/>Distance<wbr/>Calibration</a> is APPROXIMATE or CALIBRATED.<wbr/></p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007569 </td>
7570 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007571
7572
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007573 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
7574 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007575
7576
7577 <tr class="entry" id="static_android.lens.info.minimumFocusDistance">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007578 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08007579 android.<wbr/>lens.<wbr/>info.<wbr/>minimum<wbr/>Focus<wbr/>Distance
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007580 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007581 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08007582 <span class="entry_type_name">float</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007583
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07007584 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007585
7586
7587 </td> <!-- entry_type -->
7588
7589 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08007590 <p>Shortest distance from frontmost surface
Zhijun Hef92c76a2014-02-06 01:40:35 -08007591of the lens that can be focused correctly.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007592 </td>
7593
7594 <td class="entry_units">
Zhijun Hef92c76a2014-02-06 01:40:35 -08007595 See android.<wbr/>lens.<wbr/>info.<wbr/>focus<wbr/>Distance<wbr/>Calibration for details.<wbr/>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007596 </td>
7597
7598 <td class="entry_range">
Igor Murashkin6cb7c2c2014-01-10 15:12:40 -08007599 <p>&gt;= 0</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007600 </td>
7601
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007602 <td class="entry_tags">
7603 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08007604 <li><a href="#tag_V1">V1</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007605 </ul>
7606 </td>
7607
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007608 </tr>
7609 <tr class="entries_header">
7610 <th class="th_details" colspan="5">Details</th>
7611 </tr>
7612 <tr class="entry_cont">
7613 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08007614 <p>If the lens is fixed-focus,<wbr/> this should be
Zhijun Hef92c76a2014-02-06 01:40:35 -080076150.<wbr/></p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007616 </td>
7617 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007618
7619
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007620 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
7621 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007622
7623
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007624 <tr class="entry" id="static_android.lens.info.shadingMapSize">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007625 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08007626 android.<wbr/>lens.<wbr/>info.<wbr/>shading<wbr/>Map<wbr/>Size
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007627 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007628 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08007629 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007630 <span class="entry_type_container">x</span>
7631
7632 <span class="entry_type_array">
7633 2
7634 </span>
Igor Murashkinb8dc8812013-07-17 16:29:34 -07007635 <span class="entry_type_visibility"> [public as size]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -08007636 <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 -08007637
7638
7639 </td> <!-- entry_type -->
7640
7641 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08007642 <p>Dimensions of lens shading map.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007643 </td>
7644
7645 <td class="entry_units">
7646 </td>
7647
7648 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08007649 <p>Both values &gt;= 1</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007650 </td>
7651
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007652 <td class="entry_tags">
7653 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08007654 <li><a href="#tag_V1">V1</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007655 </ul>
7656 </td>
7657
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007658 </tr>
7659 <tr class="entries_header">
7660 <th class="th_details" colspan="5">Details</th>
7661 </tr>
7662 <tr class="entry_cont">
7663 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08007664 <p>The map should be on the order of 30-40 rows and columns,<wbr/> and
7665must be smaller than 64x64.<wbr/></p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007666 </td>
7667 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007668
7669
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007670 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
7671 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007672
Zhijun Hef92c76a2014-02-06 01:40:35 -08007673
7674 <tr class="entry" id="static_android.lens.info.focusDistanceCalibration">
7675 <td class="entry_name" rowspan="3">
7676 android.<wbr/>lens.<wbr/>info.<wbr/>focus<wbr/>Distance<wbr/>Calibration
7677 </td>
7678 <td class="entry_type">
7679 <span class="entry_type_name entry_type_name_enum">byte</span>
7680
7681 <span class="entry_type_visibility"> [public]</span>
7682
7683 <ul class="entry_type_enum">
7684 <li>
7685 <span class="entry_type_enum_name">UNCALIBRATED</span>
7686 <span class="entry_type_enum_notes"><p>The lens focus distance is not accurate,<wbr/> and the units used for
7687<a href="#controls_android.lens.focusDistance">android.<wbr/>lens.<wbr/>focus<wbr/>Distance</a> do not correspond to any physical units.<wbr/>
7688Setting the lens to the same focus distance on separate occasions may
7689result in a different real focus distance,<wbr/> depending on factors such
7690as the orientation of the device,<wbr/> the age of the focusing mechanism,<wbr/>
7691and the device temperature.<wbr/> The focus distance value will still be
7692in the range of <code>[0,<wbr/> <a href="#static_android.lens.info.minimumFocusDistance">android.<wbr/>lens.<wbr/>info.<wbr/>minimum<wbr/>Focus<wbr/>Distance</a>]</code>,<wbr/> where 0
7693represents the farthest focus.<wbr/></p></span>
7694 </li>
7695 <li>
7696 <span class="entry_type_enum_name">APPROXIMATE</span>
7697 <span class="entry_type_enum_notes"><p>The lens focus distance is measured in diopters.<wbr/> However,<wbr/> setting the lens
7698to the same focus distance on separate occasions may result in a
7699different real focus distance,<wbr/> depending on factors such as the
7700orientation of the device,<wbr/> the age of the focusing mechanism,<wbr/> and
7701the device temperature.<wbr/></p></span>
7702 </li>
7703 <li>
7704 <span class="entry_type_enum_name">CALIBRATED</span>
7705 <span class="entry_type_enum_notes"><p>The lens focus distance is measured in diopters.<wbr/> The lens mechanism is
7706calibrated so that setting the same focus distance is repeatable on
7707multiple occasions with good accuracy,<wbr/> and the focus distance corresponds
7708to the real physical distance to the plane of best focus.<wbr/></p></span>
7709 </li>
7710 </ul>
7711
7712 </td> <!-- entry_type -->
7713
7714 <td class="entry_description">
7715 <p>The lens focus distance calibration quality.<wbr/></p>
7716 </td>
7717
7718 <td class="entry_units">
7719 </td>
7720
7721 <td class="entry_range">
7722 </td>
7723
7724 <td class="entry_tags">
7725 <ul class="entry_tags">
7726 <li><a href="#tag_V1">V1</a></li>
7727 </ul>
7728 </td>
7729
7730 </tr>
7731 <tr class="entries_header">
7732 <th class="th_details" colspan="5">Details</th>
7733 </tr>
7734 <tr class="entry_cont">
7735 <td class="entry_details" colspan="5">
7736 <p>The lens focus distance calibration quality determines the reliability of
7737focus related metadata entries,<wbr/> i.<wbr/>e.<wbr/> <a href="#controls_android.lens.focusDistance">android.<wbr/>lens.<wbr/>focus<wbr/>Distance</a>,<wbr/>
7738<a href="#dynamic_android.lens.focusRange">android.<wbr/>lens.<wbr/>focus<wbr/>Range</a>,<wbr/> <a href="#static_android.lens.info.hyperfocalDistance">android.<wbr/>lens.<wbr/>info.<wbr/>hyperfocal<wbr/>Distance</a>,<wbr/> and
7739<a href="#static_android.lens.info.minimumFocusDistance">android.<wbr/>lens.<wbr/>info.<wbr/>minimum<wbr/>Focus<wbr/>Distance</a>.<wbr/></p>
7740 </td>
7741 </tr>
7742
7743
7744 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
7745 <!-- end of entry -->
7746
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007747
7748
7749
7750
7751 <tr class="entry" id="static_android.lens.facing">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007752 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -08007753 android.<wbr/>lens.<wbr/>facing
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007754 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007755 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08007756 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007757
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07007758 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007759
7760 <ul class="entry_type_enum">
7761 <li>
7762 <span class="entry_type_enum_name">FRONT</span>
7763 </li>
7764 <li>
7765 <span class="entry_type_enum_name">BACK</span>
7766 </li>
7767 </ul>
7768
7769 </td> <!-- entry_type -->
7770
7771 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08007772 <p>Direction the camera faces relative to
7773device screen</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007774 </td>
7775
7776 <td class="entry_units">
7777 </td>
7778
7779 <td class="entry_range">
7780 </td>
7781
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007782 <td class="entry_tags">
7783 </td>
7784
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007785 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007786
7787
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007788 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
7789 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007790
7791
7792 <tr class="entry" id="static_android.lens.opticalAxisAngle">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007793 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08007794 android.<wbr/>lens.<wbr/>optical<wbr/>Axis<wbr/>Angle
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007795 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007796 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08007797 <span class="entry_type_name">float</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007798 <span class="entry_type_container">x</span>
7799
7800 <span class="entry_type_array">
7801 2
7802 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07007803 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -08007804 <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 -08007805
7806
7807 </td> <!-- entry_type -->
7808
7809 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08007810 <p>Relative angle of camera optical axis to the
7811perpendicular axis from the display</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007812 </td>
7813
7814 <td class="entry_units">
7815 </td>
7816
7817 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08007818 <p>[0-90) for first angle,<wbr/> [0-360) for second</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007819 </td>
7820
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007821 <td class="entry_tags">
7822 <ul class="entry_tags">
7823 <li><a href="#tag_ADV">ADV</a></li>
7824 </ul>
7825 </td>
7826
7827 </tr>
7828 <tr class="entries_header">
7829 <th class="th_details" colspan="5">Details</th>
7830 </tr>
7831 <tr class="entry_cont">
7832 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08007833 <p>Examples:</p>
7834<p>(0,<wbr/>0) means that the camera optical axis
Igor Murashkin8aa2a112013-12-09 12:06:17 -08007835is perpendicular to the display surface;</p>
Igor Murashkin0b080452013-12-27 15:30:25 -08007836<p>(45,<wbr/>0) means that the camera points 45 degrees up when
Igor Murashkin8aa2a112013-12-09 12:06:17 -08007837device is held upright;</p>
Igor Murashkin0b080452013-12-27 15:30:25 -08007838<p>(45,<wbr/>90) means the camera points 45 degrees to the right when
7839the device is held upright.<wbr/></p>
Igor Murashkin8aa2a112013-12-09 12:06:17 -08007840<p>Use FACING field to determine perpendicular outgoing
Igor Murashkin0b080452013-12-27 15:30:25 -08007841direction</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007842 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007843 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007844
7845
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007846 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
7847 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007848
7849
7850 <tr class="entry" id="static_android.lens.position">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007851 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -08007852 android.<wbr/>lens.<wbr/>position
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007853 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007854 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08007855 <span class="entry_type_name">float</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007856 <span class="entry_type_container">x</span>
7857
7858 <span class="entry_type_array">
7859 3, location in mm, in the sensor coordinate
7860 system
7861 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07007862 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007863
7864
7865 </td> <!-- entry_type -->
7866
7867 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08007868 <p>Coordinates of camera optical axis on
7869device</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007870 </td>
7871
7872 <td class="entry_units">
7873 </td>
7874
7875 <td class="entry_range">
7876 </td>
7877
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007878 <td class="entry_tags">
7879 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08007880 <li><a href="#tag_V1">V1</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007881 </ul>
7882 </td>
7883
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007884 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007885
7886
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007887 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
7888 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007889
7890
7891
7892 <!-- end of kind -->
7893 </tbody>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007894 <tr><td colspan="6" class="kind">dynamic</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007895
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07007896 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007897 <tr>
7898 <th class="th_name">Property Name</th>
7899 <th class="th_type">Type</th>
7900 <th class="th_description">Description</th>
7901 <th class="th_units">Units</th>
7902 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007903 <th class="th_tags">Tags</th>
7904 </tr>
7905 </thead>
7906
7907 <tbody>
7908
7909
7910
7911
7912
7913
7914
7915
7916
7917
7918 <tr class="entry" id="dynamic_android.lens.aperture">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007919 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08007920 android.<wbr/>lens.<wbr/>aperture
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007921 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007922 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08007923 <span class="entry_type_name">float</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007924
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07007925 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007926
7927
7928 </td> <!-- entry_type -->
7929
7930 <td class="entry_description">
Zhijun He1b58d382014-01-10 10:22:53 -08007931 <p>The ratio of lens focal length to the effective
7932aperture diameter.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007933 </td>
7934
7935 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -08007936 f-number (f/<wbr/>NNN)
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007937 </td>
7938
7939 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08007940 <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 -08007941 </td>
7942
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007943 <td class="entry_tags">
7944 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08007945 <li><a href="#tag_V1">V1</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007946 </ul>
7947 </td>
7948
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007949 </tr>
7950 <tr class="entries_header">
7951 <th class="th_details" colspan="5">Details</th>
7952 </tr>
7953 <tr class="entry_cont">
7954 <td class="entry_details" colspan="5">
Zhijun He1b58d382014-01-10 10:22:53 -08007955 <p>This will only be supported on the camera devices that
7956have variable aperture lens.<wbr/> The aperture value can only be
7957one of the values listed in <a href="#static_android.lens.info.availableApertures">android.<wbr/>lens.<wbr/>info.<wbr/>available<wbr/>Apertures</a>.<wbr/></p>
7958<p>When this is supported and <a href="#controls_android.control.aeMode">android.<wbr/>control.<wbr/>ae<wbr/>Mode</a> is OFF,<wbr/>
7959this can be set along with <a href="#controls_android.sensor.exposureTime">android.<wbr/>sensor.<wbr/>exposure<wbr/>Time</a>,<wbr/>
7960<a href="#controls_android.sensor.sensitivity">android.<wbr/>sensor.<wbr/>sensitivity</a>,<wbr/> and android.<wbr/>sensor.<wbr/>frame<wbr/>Duration
7961to achieve manual exposure control.<wbr/></p>
7962<p>The requested aperture value may take several frames to reach the
7963requested value; the camera device will report the current (intermediate)
Zhijun He5169ce12014-01-24 16:48:25 -08007964aperture size in capture result metadata while the aperture is changing.<wbr/>
7965While 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 -08007966<p>When this is supported and <a href="#controls_android.control.aeMode">android.<wbr/>control.<wbr/>ae<wbr/>Mode</a> is one of
7967the ON modes,<wbr/> this will be overridden by the camera device
7968auto-exposure algorithm,<wbr/> the overridden values are then provided
7969back to the user in the corresponding result.<wbr/></p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007970 </td>
7971 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007972
7973
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007974 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
7975 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007976
7977
7978 <tr class="entry" id="dynamic_android.lens.filterDensity">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007979 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08007980 android.<wbr/>lens.<wbr/>filter<wbr/>Density
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007981 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007982 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08007983 <span class="entry_type_name">float</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007984
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07007985 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007986
7987
7988 </td> <!-- entry_type -->
7989
7990 <td class="entry_description">
Ruben Brunk83eb3032014-01-15 16:12:07 -08007991 <p>State of lens neutral density filter(s).<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007992 </td>
7993
7994 <td class="entry_units">
Ruben Brunk83eb3032014-01-15 16:12:07 -08007995 Steps of Exposure Value (EV).<wbr/>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007996 </td>
7997
7998 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08007999 <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 -08008000 </td>
8001
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008002 <td class="entry_tags">
8003 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08008004 <li><a href="#tag_V1">V1</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008005 </ul>
8006 </td>
8007
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008008 </tr>
8009 <tr class="entries_header">
8010 <th class="th_details" colspan="5">Details</th>
8011 </tr>
8012 <tr class="entry_cont">
8013 <td class="entry_details" colspan="5">
Ruben Brunk83eb3032014-01-15 16:12:07 -08008014 <p>This will not be supported on most camera devices.<wbr/> On devices
8015where this is supported,<wbr/> this may only be set to one of the
8016values included in <a href="#static_android.lens.info.availableFilterDensities">android.<wbr/>lens.<wbr/>info.<wbr/>available<wbr/>Filter<wbr/>Densities</a>.<wbr/></p>
8017<p>Lens filters are typically used to lower the amount of light the
8018sensor is exposed to (measured in steps of EV).<wbr/> As used here,<wbr/> an EV
8019step is the standard logarithmic representation,<wbr/> which are
8020non-negative,<wbr/> and inversely proportional to the amount of light
8021hitting the sensor.<wbr/> For example,<wbr/> setting this to 0 would result
8022in no reduction of the incoming light,<wbr/> and setting this to 2 would
8023mean that the filter is set to reduce incoming light by two stops
8024(allowing 1/<wbr/>4 of the prior amount of light to the sensor).<wbr/></p>
Zhijun He5169ce12014-01-24 16:48:25 -08008025<p>It may take several frames before the lens filter density changes
8026to the requested value.<wbr/> While the filter density is still changing,<wbr/>
8027<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 -08008028 </td>
8029 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008030
8031
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008032 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
8033 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008034
8035
8036 <tr class="entry" id="dynamic_android.lens.focalLength">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008037 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08008038 android.<wbr/>lens.<wbr/>focal<wbr/>Length
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008039 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008040 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08008041 <span class="entry_type_name">float</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008042
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07008043 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008044
8045
8046 </td> <!-- entry_type -->
8047
8048 <td class="entry_description">
Ruben Brunkac9bbb92014-01-15 18:39:35 -08008049 <p>The current lens focal length; used for optical zoom.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008050 </td>
8051
8052 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -08008053 focal length in mm
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008054 </td>
8055
8056 <td class="entry_range">
Ruben Brunkac9bbb92014-01-15 18:39:35 -08008057 <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 -08008058 </td>
8059
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008060 <td class="entry_tags">
8061 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08008062 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008063 </ul>
8064 </td>
8065
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008066 </tr>
8067 <tr class="entries_header">
8068 <th class="th_details" colspan="5">Details</th>
8069 </tr>
8070 <tr class="entry_cont">
8071 <td class="entry_details" colspan="5">
Ruben Brunkac9bbb92014-01-15 18:39:35 -08008072 <p>This setting controls the physical focal length of the camera
8073device's lens.<wbr/> Changing the focal length changes the field of
8074view of the camera device,<wbr/> and is usually used for optical zoom.<wbr/></p>
8075<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
8076setting won't be applied instantaneously,<wbr/> and it may take several
Zhijun He5169ce12014-01-24 16:48:25 -08008077frames before the lens can change to the requested focal length.<wbr/>
Ruben Brunkac9bbb92014-01-15 18:39:35 -08008078While the focal length is still changing,<wbr/> <a href="#dynamic_android.lens.state">android.<wbr/>lens.<wbr/>state</a> will
8079be set to MOVING.<wbr/></p>
8080<p>This is expected not to be supported on most devices.<wbr/></p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008081 </td>
8082 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008083
8084
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008085 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
8086 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008087
8088
8089 <tr class="entry" id="dynamic_android.lens.focusDistance">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008090 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08008091 android.<wbr/>lens.<wbr/>focus<wbr/>Distance
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008092 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008093 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08008094 <span class="entry_type_name">float</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008095
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07008096 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008097
8098
8099 </td> <!-- entry_type -->
8100
8101 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08008102 <p>Distance to plane of sharpest focus,<wbr/>
8103measured from frontmost surface of the lens</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008104 </td>
8105
8106 <td class="entry_units">
Zhijun Hef92c76a2014-02-06 01:40:35 -08008107 See android.<wbr/>lens.<wbr/>info.<wbr/>focus<wbr/>Distance<wbr/>Calibration for details.<wbr/>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008108 </td>
8109
8110 <td class="entry_range">
Igor Murashkin6cb7c2c2014-01-10 15:12:40 -08008111 <p>&gt;= 0</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008112 </td>
8113
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008114 <td class="entry_tags">
8115 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08008116 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008117 </ul>
8118 </td>
8119
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008120 </tr>
8121 <tr class="entries_header">
8122 <th class="th_details" colspan="5">Details</th>
8123 </tr>
8124 <tr class="entry_cont">
8125 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08008126 <p>Should be zero for fixed-focus cameras</p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008127 </td>
8128 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008129
8130
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008131 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
8132 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008133
8134
8135 <tr class="entry" id="dynamic_android.lens.focusRange">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008136 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08008137 android.<wbr/>lens.<wbr/>focus<wbr/>Range
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008138 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008139 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08008140 <span class="entry_type_name">float</span>
Zhijun He50451ad2013-09-26 10:27:47 -07008141 <span class="entry_type_container">x</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008142
Zhijun He50451ad2013-09-26 10:27:47 -07008143 <span class="entry_type_array">
8144 2
8145 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07008146 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -08008147 <div class="entry_type_notes">Range of scene distances that are in focus</div>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008148
8149
8150 </td> <!-- entry_type -->
8151
8152 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08008153 <p>The range of scene distances that are in
8154sharp focus (depth of field)</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008155 </td>
8156
8157 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -08008158 pair of focus distances in diopters: (near,<wbr/>
Zhijun Hef92c76a2014-02-06 01:40:35 -08008159 far),<wbr/> see android.<wbr/>lens.<wbr/>info.<wbr/>focus<wbr/>Distance<wbr/>Calibration for details.<wbr/>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008160 </td>
8161
8162 <td class="entry_range">
Igor Murashkin6cb7c2c2014-01-10 15:12:40 -08008163 <p>&gt;=0</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008164 </td>
8165
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008166 <td class="entry_tags">
8167 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08008168 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008169 </ul>
8170 </td>
8171
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008172 </tr>
8173 <tr class="entries_header">
8174 <th class="th_details" colspan="5">Details</th>
8175 </tr>
8176 <tr class="entry_cont">
8177 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08008178 <p>If variable focus not supported,<wbr/> can still report
8179fixed depth of field range</p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008180 </td>
8181 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008182
8183
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008184 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
8185 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008186
8187
8188 <tr class="entry" id="dynamic_android.lens.opticalStabilizationMode">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008189 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08008190 android.<wbr/>lens.<wbr/>optical<wbr/>Stabilization<wbr/>Mode
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008191 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008192 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08008193 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008194
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07008195 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008196
8197 <ul class="entry_type_enum">
8198 <li>
8199 <span class="entry_type_enum_name">OFF</span>
Ruben Brunk218639c2014-01-15 18:09:41 -08008200 <span class="entry_type_enum_notes"><p>Optical stabilization is unavailable.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008201 </li>
8202 <li>
8203 <span class="entry_type_enum_name">ON</span>
8204 <span class="entry_type_enum_optional">optional</span>
Ruben Brunk218639c2014-01-15 18:09:41 -08008205 <span class="entry_type_enum_notes"><p>Optical stabilization is enabled.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008206 </li>
8207 </ul>
8208
8209 </td> <!-- entry_type -->
8210
8211 <td class="entry_description">
Ruben Brunk218639c2014-01-15 18:09:41 -08008212 <p>Sets whether the camera device uses optical image stabilization (OIS)
8213when capturing images.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008214 </td>
8215
8216 <td class="entry_units">
8217 </td>
8218
8219 <td class="entry_range">
Ruben Brunk218639c2014-01-15 18:09:41 -08008220 <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 -08008221 </td>
8222
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008223 <td class="entry_tags">
8224 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08008225 <li><a href="#tag_V1">V1</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008226 </ul>
8227 </td>
8228
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008229 </tr>
8230 <tr class="entries_header">
8231 <th class="th_details" colspan="5">Details</th>
8232 </tr>
8233 <tr class="entry_cont">
8234 <td class="entry_details" colspan="5">
Ruben Brunk218639c2014-01-15 18:09:41 -08008235 <p>OIS is used to compensate for motion blur due to small movements of
8236the camera during capture.<wbr/> Unlike digital image stabilization,<wbr/> OIS makes
8237use of mechanical elements to stabilize the camera sensor,<wbr/> and thus
8238allows for longer exposure times before camera shake becomes
8239apparent.<wbr/></p>
8240<p>This is not expected to be supported on most devices.<wbr/></p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008241 </td>
8242 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008243
8244
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008245 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
8246 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008247
8248
8249 <tr class="entry" id="dynamic_android.lens.state">
Zhijun He5169ce12014-01-24 16:48:25 -08008250 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08008251 android.<wbr/>lens.<wbr/>state
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008252 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008253 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08008254 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008255
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07008256 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008257
8258 <ul class="entry_type_enum">
8259 <li>
8260 <span class="entry_type_enum_name">STATIONARY</span>
Zhijun He5169ce12014-01-24 16:48:25 -08008261 <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
8262android.<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 -08008263 </li>
Igor Murashkin0e323a12013-09-06 11:50:48 -07008264 <li>
8265 <span class="entry_type_enum_name">MOVING</span>
Zhijun He5169ce12014-01-24 16:48:25 -08008266 <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
8267android.<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 -07008268 </li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008269 </ul>
8270
8271 </td> <!-- entry_type -->
8272
8273 <td class="entry_description">
Zhijun He5169ce12014-01-24 16:48:25 -08008274 <p>Current lens status.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008275 </td>
8276
8277 <td class="entry_units">
8278 </td>
8279
8280 <td class="entry_range">
8281 </td>
8282
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008283 <td class="entry_tags">
8284 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08008285 <li><a href="#tag_V1">V1</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008286 </ul>
8287 </td>
8288
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008289 </tr>
Zhijun He5169ce12014-01-24 16:48:25 -08008290 <tr class="entries_header">
8291 <th class="th_details" colspan="5">Details</th>
8292 </tr>
8293 <tr class="entry_cont">
8294 <td class="entry_details" colspan="5">
8295 <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/>
8296<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/>
8297they may take several frames to reach the requested values.<wbr/> This state indicates
8298the current status of the lens parameters.<wbr/></p>
8299<p>When the state is STATIONARY,<wbr/> the lens parameters are not changing.<wbr/> This could be
8300either because the parameters are all fixed,<wbr/> or because the lens has had enough
8301time to reach the most recently-requested values.<wbr/>
8302If all these lens parameters are not changable for a camera device,<wbr/> as listed below:</p>
8303<ul>
8304<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
8305<a href="#controls_android.lens.focusDistance">android.<wbr/>lens.<wbr/>focus<wbr/>Distance</a> parameter will always be 0.<wbr/></li>
8306<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/>
8307which means the optical zoom is not supported.<wbr/></li>
8308<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>
8309<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>
8310</ul>
8311<p>Then this state will always be STATIONARY.<wbr/></p>
8312<p>When the state is MOVING,<wbr/> it indicates that at least one of the lens parameters
8313is changing.<wbr/></p>
8314 </td>
8315 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008316
8317
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008318 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
8319 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008320
8321
8322
8323 <!-- end of kind -->
8324 </tbody>
8325
8326 <!-- end of section -->
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008327 <tr><td colspan="6" id="section_noiseReduction" class="section">noiseReduction</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008328
8329
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008330 <tr><td colspan="6" class="kind">controls</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008331
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07008332 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008333 <tr>
8334 <th class="th_name">Property Name</th>
8335 <th class="th_type">Type</th>
8336 <th class="th_description">Description</th>
8337 <th class="th_units">Units</th>
8338 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008339 <th class="th_tags">Tags</th>
8340 </tr>
8341 </thead>
8342
8343 <tbody>
8344
8345
8346
8347
8348
8349
8350
8351
8352
8353
8354 <tr class="entry" id="controls_android.noiseReduction.mode">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008355 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08008356 android.<wbr/>noise<wbr/>Reduction.<wbr/>mode
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008357 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008358 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08008359 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008360
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07008361 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008362
8363 <ul class="entry_type_enum">
8364 <li>
8365 <span class="entry_type_enum_name">OFF</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08008366 <span class="entry_type_enum_notes"><p>No noise reduction is applied</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008367 </li>
8368 <li>
8369 <span class="entry_type_enum_name">FAST</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08008370 <span class="entry_type_enum_notes"><p>Must not slow down frame rate relative to sensor
8371output</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008372 </li>
8373 <li>
8374 <span class="entry_type_enum_name">HIGH_QUALITY</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08008375 <span class="entry_type_enum_notes"><p>May slow down frame rate to provide highest
8376quality</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008377 </li>
8378 </ul>
8379
8380 </td> <!-- entry_type -->
8381
8382 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08008383 <p>Mode of operation for the noise reduction
8384algorithm</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008385 </td>
8386
8387 <td class="entry_units">
8388 </td>
8389
8390 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08008391 <p>android.<wbr/>noise<wbr/>Reduction.<wbr/>available<wbr/>Modes</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008392 </td>
8393
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008394 <td class="entry_tags">
8395 <ul class="entry_tags">
8396 <li><a href="#tag_V1">V1</a></li>
8397 </ul>
8398 </td>
8399
8400 </tr>
8401 <tr class="entries_header">
8402 <th class="th_details" colspan="5">Details</th>
8403 </tr>
8404 <tr class="entry_cont">
8405 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08008406 <p>Noise filtering control.<wbr/> OFF means no noise reduction
8407will be applied by the HAL.<wbr/></p>
Zhijun Hef90eeaf2014-01-16 12:13:35 -08008408<p>FAST/<wbr/>HIGH_<wbr/>QUALITY both mean camera device determined noise filtering
8409will be applied.<wbr/> HIGH_<wbr/>QUALITY mode indicates that the camera device
8410will use the highest-quality noise filtering algorithms,<wbr/>
8411even if it slows down capture rate.<wbr/> FAST means the camera device should not
Igor Murashkin0b080452013-12-27 15:30:25 -08008412slow down capture rate when applying noise filtering.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008413 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008414 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008415
8416
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008417 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
8418 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008419
8420
8421 <tr class="entry" id="controls_android.noiseReduction.strength">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008422 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -08008423 android.<wbr/>noise<wbr/>Reduction.<wbr/>strength
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008424 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008425 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08008426 <span class="entry_type_name">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008427
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07008428 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008429
8430
8431 </td> <!-- entry_type -->
8432
8433 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08008434 <p>Control the amount of noise reduction
8435applied to the images</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008436 </td>
8437
8438 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -08008439 1-10; 10 is max noise reduction
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008440 </td>
8441
8442 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08008443 <p>1 - 10</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008444 </td>
8445
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008446 <td class="entry_tags">
8447 </td>
8448
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008449 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008450
8451
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008452 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
8453 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008454
8455
8456
8457 <!-- end of kind -->
8458 </tbody>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008459 <tr><td colspan="6" class="kind">dynamic</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008460
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07008461 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008462 <tr>
8463 <th class="th_name">Property Name</th>
8464 <th class="th_type">Type</th>
8465 <th class="th_description">Description</th>
8466 <th class="th_units">Units</th>
8467 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008468 <th class="th_tags">Tags</th>
8469 </tr>
8470 </thead>
8471
8472 <tbody>
8473
8474
8475
8476
8477
8478
8479
8480
8481
8482
8483 <tr class="entry" id="dynamic_android.noiseReduction.mode">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008484 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08008485 android.<wbr/>noise<wbr/>Reduction.<wbr/>mode
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008486 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008487 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08008488 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008489
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07008490 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008491
8492 <ul class="entry_type_enum">
8493 <li>
8494 <span class="entry_type_enum_name">OFF</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08008495 <span class="entry_type_enum_notes"><p>No noise reduction is applied</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008496 </li>
8497 <li>
8498 <span class="entry_type_enum_name">FAST</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08008499 <span class="entry_type_enum_notes"><p>Must not slow down frame rate relative to sensor
8500output</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008501 </li>
8502 <li>
8503 <span class="entry_type_enum_name">HIGH_QUALITY</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08008504 <span class="entry_type_enum_notes"><p>May slow down frame rate to provide highest
8505quality</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008506 </li>
8507 </ul>
8508
8509 </td> <!-- entry_type -->
8510
8511 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08008512 <p>Mode of operation for the noise reduction
8513algorithm</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008514 </td>
8515
8516 <td class="entry_units">
8517 </td>
8518
8519 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08008520 <p>android.<wbr/>noise<wbr/>Reduction.<wbr/>available<wbr/>Modes</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008521 </td>
8522
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008523 <td class="entry_tags">
8524 <ul class="entry_tags">
8525 <li><a href="#tag_V1">V1</a></li>
8526 </ul>
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>Noise filtering control.<wbr/> OFF means no noise reduction
8536will be applied by the HAL.<wbr/></p>
Zhijun Hef90eeaf2014-01-16 12:13:35 -08008537<p>FAST/<wbr/>HIGH_<wbr/>QUALITY both mean camera device determined noise filtering
8538will be applied.<wbr/> HIGH_<wbr/>QUALITY mode indicates that the camera device
8539will use the highest-quality noise filtering algorithms,<wbr/>
8540even if it slows down capture rate.<wbr/> FAST means the camera device should not
Igor Murashkin0b080452013-12-27 15:30:25 -08008541slow down capture rate when applying noise filtering.<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
8551 <!-- end of kind -->
8552 </tbody>
8553
8554 <!-- end of section -->
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008555 <tr><td colspan="6" id="section_quirks" class="section">quirks</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008556
8557
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008558 <tr><td colspan="6" class="kind">static</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008559
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07008560 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008561 <tr>
8562 <th class="th_name">Property Name</th>
8563 <th class="th_type">Type</th>
8564 <th class="th_description">Description</th>
8565 <th class="th_units">Units</th>
8566 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008567 <th class="th_tags">Tags</th>
8568 </tr>
8569 </thead>
8570
8571 <tbody>
8572
8573
8574
8575
8576
8577
8578
8579
8580
8581
8582 <tr class="entry" id="static_android.quirks.meteringCropRegion">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008583 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08008584 android.<wbr/>quirks.<wbr/>metering<wbr/>Crop<wbr/>Region
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008585 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008586 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08008587 <span class="entry_type_name">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008588
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07008589 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008590
8591
8592 </td> <!-- entry_type -->
8593
8594 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08008595 <p>If set to 1,<wbr/> the camera service does not
Igor Murashkin8aa2a112013-12-09 12:06:17 -08008596scale 'normalized' coordinates with respect to the crop
Igor Murashkin0b080452013-12-27 15:30:25 -08008597region.<wbr/> This applies to metering input (a{e,<wbr/>f,<wbr/>wb}Region
8598and output (face rectangles).<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008599 </td>
8600
8601 <td class="entry_units">
8602 </td>
8603
8604 <td class="entry_range">
Zhijun Hefb4701f2014-02-04 11:32:24 -08008605 <p><strong>Deprecated</strong>.<wbr/> Do not use.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008606 </td>
8607
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008608 <td class="entry_tags">
8609 </td>
8610
8611 </tr>
8612 <tr class="entries_header">
8613 <th class="th_details" colspan="5">Details</th>
8614 </tr>
8615 <tr class="entry_cont">
8616 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08008617 <p>Normalized coordinates refer to those in the
8618(-1000,<wbr/>1000) range mentioned in the
8619android.<wbr/>hardware.<wbr/>Camera API.<wbr/></p>
Igor Murashkin8aa2a112013-12-09 12:06:17 -08008620<p>HAL implementations should instead always use and emit
Igor Murashkin0b080452013-12-27 15:30:25 -08008621sensor array-relative coordinates for all region data.<wbr/> Does
8622not need to be listed in static metadata.<wbr/> Support will be
8623removed in future versions of camera service.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008624 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008625 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008626
8627
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008628 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
8629 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008630
8631
8632 <tr class="entry" id="static_android.quirks.triggerAfWithAuto">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008633 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08008634 android.<wbr/>quirks.<wbr/>trigger<wbr/>Af<wbr/>With<wbr/>Auto
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008635 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008636 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08008637 <span class="entry_type_name">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008638
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07008639 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008640
8641
8642 </td> <!-- entry_type -->
8643
8644 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08008645 <p>If set to 1,<wbr/> then the camera service always
8646switches to FOCUS_<wbr/>MODE_<wbr/>AUTO before issuing a AF
8647trigger.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008648 </td>
8649
8650 <td class="entry_units">
8651 </td>
8652
8653 <td class="entry_range">
Zhijun Hefb4701f2014-02-04 11:32:24 -08008654 <p><strong>Deprecated</strong>.<wbr/> Do not use.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008655 </td>
8656
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008657 <td class="entry_tags">
8658 </td>
8659
8660 </tr>
8661 <tr class="entries_header">
8662 <th class="th_details" colspan="5">Details</th>
8663 </tr>
8664 <tr class="entry_cont">
8665 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08008666 <p>HAL implementations should implement AF trigger
8667modes for AUTO,<wbr/> MACRO,<wbr/> CONTINUOUS_<wbr/>FOCUS,<wbr/> and
8668CONTINUOUS_<wbr/>PICTURE modes instead of using this flag.<wbr/> Does
8669not need to be listed in static metadata.<wbr/> Support will be
8670removed in future versions of camera service</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008671 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008672 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008673
8674
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008675 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
8676 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008677
8678
8679 <tr class="entry" id="static_android.quirks.useZslFormat">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008680 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08008681 android.<wbr/>quirks.<wbr/>use<wbr/>Zsl<wbr/>Format
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008682 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008683 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08008684 <span class="entry_type_name">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008685
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07008686 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008687
8688
8689 </td> <!-- entry_type -->
8690
8691 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08008692 <p>If set to 1,<wbr/> the camera service uses
8693CAMERA2_<wbr/>PIXEL_<wbr/>FORMAT_<wbr/>ZSL instead of
8694HAL_<wbr/>PIXEL_<wbr/>FORMAT_<wbr/>IMPLEMENTATION_<wbr/>DEFINED for the zero
8695shutter lag stream</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008696 </td>
8697
8698 <td class="entry_units">
8699 </td>
8700
8701 <td class="entry_range">
Zhijun Hefb4701f2014-02-04 11:32:24 -08008702 <p><strong>Deprecated</strong>.<wbr/> Do not use.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008703 </td>
8704
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008705 <td class="entry_tags">
8706 </td>
8707
8708 </tr>
8709 <tr class="entries_header">
8710 <th class="th_details" colspan="5">Details</th>
8711 </tr>
8712 <tr class="entry_cont">
8713 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08008714 <p>HAL implementations should use gralloc usage flags
Igor Murashkin8aa2a112013-12-09 12:06:17 -08008715to determine that a stream will be used for
Igor Murashkin0b080452013-12-27 15:30:25 -08008716zero-shutter-lag,<wbr/> instead of relying on an explicit
8717format setting.<wbr/> Does not need to be listed in static
8718metadata.<wbr/> Support will be removed in future versions of
8719camera service.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008720 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008721 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008722
8723
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008724 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
8725 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008726
Eino-Ville Talvala82ce3312013-10-09 18:21:30 -07008727
8728 <tr class="entry" id="static_android.quirks.usePartialResult">
Igor Murashkin7761a222014-01-27 16:06:38 -08008729 <td class="entry_name" rowspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08008730 android.<wbr/>quirks.<wbr/>use<wbr/>Partial<wbr/>Result
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008731 </td>
Eino-Ville Talvala82ce3312013-10-09 18:21:30 -07008732 <td class="entry_type">
8733 <span class="entry_type_name">byte</span>
8734
Eino-Ville Talvala52a64a52013-11-07 14:43:43 -08008735 <span class="entry_type_visibility"> [hidden]</span>
Eino-Ville Talvala82ce3312013-10-09 18:21:30 -07008736
8737
8738 </td> <!-- entry_type -->
8739
8740 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08008741 <p>If set to 1,<wbr/> the HAL will always split result
8742metadata for a single capture into multiple buffers,<wbr/>
8743returned using multiple process_<wbr/>capture_<wbr/>result calls.<wbr/></p>
Eino-Ville Talvala82ce3312013-10-09 18:21:30 -07008744 </td>
8745
8746 <td class="entry_units">
8747 </td>
8748
8749 <td class="entry_range">
Igor Murashkin7761a222014-01-27 16:06:38 -08008750 <p><strong>Deprecated</strong>.<wbr/> Do not use.<wbr/></p>
Eino-Ville Talvala82ce3312013-10-09 18:21:30 -07008751 </td>
8752
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008753 <td class="entry_tags">
8754 </td>
8755
8756 </tr>
8757 <tr class="entries_header">
8758 <th class="th_details" colspan="5">Details</th>
8759 </tr>
8760 <tr class="entry_cont">
8761 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08008762 <p>Does not need to be listed in static
8763metadata.<wbr/> Support for partial results will be reworked in
8764future versions of camera service.<wbr/> This quirk will stop
Igor Murashkin8aa2a112013-12-09 12:06:17 -08008765working at that point; DO NOT USE without careful
Igor Murashkin0b080452013-12-27 15:30:25 -08008766consideration of future support.<wbr/></p>
Eino-Ville Talvala82ce3312013-10-09 18:21:30 -07008767 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008768 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008769
Igor Murashkin7761a222014-01-27 16:06:38 -08008770 <tr class="entries_header">
8771 <th class="th_details" colspan="5">HAL Implementation Details</th>
8772 </tr>
8773 <tr class="entry_cont">
8774 <td class="entry_details" colspan="5">
8775 <p>Refer to <code>camera3_<wbr/>capture_<wbr/>result::partial_<wbr/>result</code>
8776for information on how to implement partial results.<wbr/></p>
8777 </td>
8778 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008779
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008780 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
8781 <!-- end of entry -->
Eino-Ville Talvala82ce3312013-10-09 18:21:30 -07008782
8783
8784
8785 <!-- end of kind -->
8786 </tbody>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008787 <tr><td colspan="6" class="kind">dynamic</td></tr>
Eino-Ville Talvala82ce3312013-10-09 18:21:30 -07008788
8789 <thead class="entries_header">
8790 <tr>
8791 <th class="th_name">Property Name</th>
8792 <th class="th_type">Type</th>
8793 <th class="th_description">Description</th>
8794 <th class="th_units">Units</th>
8795 <th class="th_range">Range</th>
Eino-Ville Talvala82ce3312013-10-09 18:21:30 -07008796 <th class="th_tags">Tags</th>
8797 </tr>
8798 </thead>
8799
8800 <tbody>
8801
8802
8803
8804
8805
8806
8807
8808
8809
8810
8811 <tr class="entry" id="dynamic_android.quirks.partialResult">
Igor Murashkin7761a222014-01-27 16:06:38 -08008812 <td class="entry_name" rowspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08008813 android.<wbr/>quirks.<wbr/>partial<wbr/>Result
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008814 </td>
Eino-Ville Talvala82ce3312013-10-09 18:21:30 -07008815 <td class="entry_type">
8816 <span class="entry_type_name entry_type_name_enum">byte</span>
8817
Eino-Ville Talvala52a64a52013-11-07 14:43:43 -08008818 <span class="entry_type_visibility"> [hidden as boolean]</span>
Eino-Ville Talvala82ce3312013-10-09 18:21:30 -07008819
8820 <ul class="entry_type_enum">
8821 <li>
8822 <span class="entry_type_enum_name">FINAL</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08008823 <span class="entry_type_enum_notes"><p>The last or only metadata result buffer
8824for this capture.<wbr/></p></span>
Eino-Ville Talvala82ce3312013-10-09 18:21:30 -07008825 </li>
8826 <li>
8827 <span class="entry_type_enum_name">PARTIAL</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08008828 <span class="entry_type_enum_notes"><p>A partial buffer of result metadata for this
8829capture.<wbr/> More result buffers for this capture will be sent
8830by the HAL,<wbr/> the last of which will be marked
8831FINAL.<wbr/></p></span>
Eino-Ville Talvala82ce3312013-10-09 18:21:30 -07008832 </li>
8833 </ul>
8834
8835 </td> <!-- entry_type -->
8836
8837 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08008838 <p>Whether a result given to the framework is the
8839final one for the capture,<wbr/> or only a partial that contains a
Igor Murashkin8aa2a112013-12-09 12:06:17 -08008840subset of the full set of dynamic metadata
Igor Murashkin0b080452013-12-27 15:30:25 -08008841values.<wbr/></p>
Eino-Ville Talvala82ce3312013-10-09 18:21:30 -07008842 </td>
8843
8844 <td class="entry_units">
8845 </td>
8846
8847 <td class="entry_range">
Igor Murashkin7761a222014-01-27 16:06:38 -08008848 <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 -07008849 </td>
8850
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008851 <td class="entry_tags">
8852 </td>
8853
8854 </tr>
8855 <tr class="entries_header">
8856 <th class="th_details" colspan="5">Details</th>
8857 </tr>
8858 <tr class="entry_cont">
8859 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08008860 <p>The entries in the result metadata buffers for a
8861single capture may not overlap,<wbr/> except for this entry.<wbr/> The
Igor Murashkin8aa2a112013-12-09 12:06:17 -08008862FINAL buffers must retain FIFO ordering relative to the
Igor Murashkin0b080452013-12-27 15:30:25 -08008863requests that generate them,<wbr/> so the FINAL buffer for frame 3 must
8864always be sent to the framework after the FINAL buffer for frame 2,<wbr/> and
8865before the FINAL buffer for frame 4.<wbr/> PARTIAL buffers may be returned
8866in any order relative to other frames,<wbr/> but all PARTIAL buffers for a given
8867capture must arrive before the FINAL buffer for that capture.<wbr/> This entry may
8868only be used by the HAL if quirks.<wbr/>usePartialResult is set to 1.<wbr/></p>
Eino-Ville Talvala82ce3312013-10-09 18:21:30 -07008869 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008870 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008871
Igor Murashkin7761a222014-01-27 16:06:38 -08008872 <tr class="entries_header">
8873 <th class="th_details" colspan="5">HAL Implementation Details</th>
8874 </tr>
8875 <tr class="entry_cont">
8876 <td class="entry_details" colspan="5">
8877 <p>Refer to <code>camera3_<wbr/>capture_<wbr/>result::partial_<wbr/>result</code>
8878for information on how to implement partial results.<wbr/></p>
8879 </td>
8880 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008881
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008882 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
8883 <!-- end of entry -->
Eino-Ville Talvala82ce3312013-10-09 18:21:30 -07008884
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008885
8886
8887 <!-- end of kind -->
8888 </tbody>
8889
8890 <!-- end of section -->
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008891 <tr><td colspan="6" id="section_request" class="section">request</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008892
8893
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008894 <tr><td colspan="6" class="kind">controls</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008895
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07008896 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008897 <tr>
8898 <th class="th_name">Property Name</th>
8899 <th class="th_type">Type</th>
8900 <th class="th_description">Description</th>
8901 <th class="th_units">Units</th>
8902 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008903 <th class="th_tags">Tags</th>
8904 </tr>
8905 </thead>
8906
8907 <tbody>
8908
8909
8910
8911
8912
8913
8914
8915
8916
8917
8918 <tr class="entry" id="controls_android.request.frameCount">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008919 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -08008920 android.<wbr/>request.<wbr/>frame<wbr/>Count
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008921 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008922 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08008923 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008924
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07008925 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008926
8927
8928 </td> <!-- entry_type -->
8929
8930 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08008931 <p>A frame counter set by the framework.<wbr/> Must
8932be maintained unchanged in output frame.<wbr/> This value monotonically
8933increases with every new result (that is,<wbr/> each new result has a unique
8934frameCount value).<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008935 </td>
8936
8937 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -08008938 incrementing integer
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008939 </td>
8940
8941 <td class="entry_range">
Zhijun Hefb4701f2014-02-04 11:32:24 -08008942 <p><strong>Deprecated</strong>.<wbr/> Do not use.<wbr/> Any int.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008943 </td>
8944
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008945 <td class="entry_tags">
8946 </td>
8947
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008948 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008949
8950
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008951 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
8952 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008953
8954
8955 <tr class="entry" id="controls_android.request.id">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008956 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -08008957 android.<wbr/>request.<wbr/>id
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008958 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008959 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08008960 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008961
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07008962 <span class="entry_type_visibility"> [hidden]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008963
8964
8965 </td> <!-- entry_type -->
8966
8967 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08008968 <p>An application-specified ID for the current
8969request.<wbr/> Must be maintained unchanged in output
8970frame</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008971 </td>
8972
8973 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -08008974 arbitrary integer assigned by application
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008975 </td>
8976
8977 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08008978 <p>Any int</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008979 </td>
8980
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008981 <td class="entry_tags">
8982 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08008983 <li><a href="#tag_V1">V1</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008984 </ul>
8985 </td>
8986
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008987 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008988
8989
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008990 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
8991 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008992
8993
8994 <tr class="entry" id="controls_android.request.inputStreams">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008995 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08008996 android.<wbr/>request.<wbr/>input<wbr/>Streams
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008997 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008998 <td class="entry_type">
Zhijun Hee36cdbe2013-09-06 14:28:37 -07008999 <span class="entry_type_name">int32</span>
Eino-Ville Talvalaf384f0a2013-07-12 17:02:27 -07009000 <span class="entry_type_container">x</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009001
Eino-Ville Talvalaf384f0a2013-07-12 17:02:27 -07009002 <span class="entry_type_array">
9003 n
9004 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07009005 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009006
9007
9008 </td> <!-- entry_type -->
9009
9010 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08009011 <p>List which camera reprocess stream is used
9012for the source of reprocessing data.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009013 </td>
9014
9015 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -08009016 List of camera reprocess stream IDs
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009017 </td>
9018
9019 <td class="entry_range">
Zhijun Hefb4701f2014-02-04 11:32:24 -08009020 <p><strong>Deprecated</strong>.<wbr/> Do not use.<wbr/></p>
9021<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 -08009022<p>If android.<wbr/>jpeg.<wbr/>needs<wbr/>Thumbnail is set,<wbr/> then multiple
9023reprocess streams may be included in a single request; they
9024must be different scaled versions of the same image.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009025 </td>
9026
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009027 <td class="entry_tags">
Eino-Ville Talvalaf384f0a2013-07-12 17:02:27 -07009028 <ul class="entry_tags">
9029 <li><a href="#tag_HAL2">HAL2</a></li>
9030 </ul>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009031 </td>
9032
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08009033 </tr>
9034 <tr class="entries_header">
9035 <th class="th_details" colspan="5">Details</th>
9036 </tr>
9037 <tr class="entry_cont">
9038 <td class="entry_details" colspan="5">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08009039 <p>Only meaningful when <a href="#controls_android.request.type">android.<wbr/>request.<wbr/>type</a> ==
Igor Murashkin0b080452013-12-27 15:30:25 -08009040REPROCESS.<wbr/> Ignored otherwise</p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08009041 </td>
9042 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08009043
9044
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08009045 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
9046 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009047
9048
9049 <tr class="entry" id="controls_android.request.metadataMode">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08009050 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -08009051 android.<wbr/>request.<wbr/>metadata<wbr/>Mode
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08009052 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009053 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08009054 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009055
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07009056 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009057
9058 <ul class="entry_type_enum">
9059 <li>
9060 <span class="entry_type_enum_name">NONE</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08009061 <span class="entry_type_enum_notes"><p>No metadata should be produced on output,<wbr/> except
9062for application-bound buffer data.<wbr/> If no
9063application-bound streams exist,<wbr/> no frame should be
9064placed in the output frame queue.<wbr/> If such streams
9065exist,<wbr/> a frame should be placed on the output queue
9066with null metadata but with the necessary output buffer
9067information.<wbr/> Timestamp information should still be
9068included with any output stream buffers</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009069 </li>
9070 <li>
9071 <span class="entry_type_enum_name">FULL</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08009072 <span class="entry_type_enum_notes"><p>All metadata should be produced.<wbr/> Statistics will
9073only be produced if they are separately
9074enabled</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009075 </li>
9076 </ul>
9077
9078 </td> <!-- entry_type -->
9079
9080 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08009081 <p>How much metadata to produce on
9082output</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009083 </td>
9084
9085 <td class="entry_units">
9086 </td>
9087
9088 <td class="entry_range">
9089 </td>
9090
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009091 <td class="entry_tags">
9092 </td>
9093
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08009094 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08009095
9096
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08009097 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
9098 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009099
9100
9101 <tr class="entry" id="controls_android.request.outputStreams">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08009102 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08009103 android.<wbr/>request.<wbr/>output<wbr/>Streams
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08009104 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009105 <td class="entry_type">
Zhijun Hee36cdbe2013-09-06 14:28:37 -07009106 <span class="entry_type_name">int32</span>
Eino-Ville Talvalaf384f0a2013-07-12 17:02:27 -07009107 <span class="entry_type_container">x</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009108
Eino-Ville Talvalaf384f0a2013-07-12 17:02:27 -07009109 <span class="entry_type_array">
9110 n
9111 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07009112 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009113
9114
9115 </td> <!-- entry_type -->
9116
9117 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08009118 <p>Lists which camera output streams image data
9119from this capture must be sent to</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009120 </td>
9121
9122 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -08009123 List of camera stream IDs
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009124 </td>
9125
9126 <td class="entry_range">
Zhijun Hefb4701f2014-02-04 11:32:24 -08009127 <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 -08009128created</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009129 </td>
9130
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009131 <td class="entry_tags">
Eino-Ville Talvalaf384f0a2013-07-12 17:02:27 -07009132 <ul class="entry_tags">
9133 <li><a href="#tag_HAL2">HAL2</a></li>
9134 </ul>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009135 </td>
9136
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08009137 </tr>
9138 <tr class="entries_header">
9139 <th class="th_details" colspan="5">Details</th>
9140 </tr>
9141 <tr class="entry_cont">
9142 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08009143 <p>If no output streams are listed,<wbr/> then the image
9144data should simply be discarded.<wbr/> The image data must
9145still be captured for metadata and statistics production,<wbr/>
9146and the lens and flash must operate as requested.<wbr/></p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08009147 </td>
9148 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08009149
9150
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08009151 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
9152 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009153
9154
9155 <tr class="entry" id="controls_android.request.type">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08009156 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -08009157 android.<wbr/>request.<wbr/>type
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08009158 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009159 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08009160 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009161
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07009162 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009163
9164 <ul class="entry_type_enum">
9165 <li>
9166 <span class="entry_type_enum_name">CAPTURE</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08009167 <span class="entry_type_enum_notes"><p>Capture a new image from the imaging hardware,<wbr/>
9168and process it according to the
9169settings</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009170 </li>
9171 <li>
9172 <span class="entry_type_enum_name">REPROCESS</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08009173 <span class="entry_type_enum_notes"><p>Process previously captured data; the
9174android.<wbr/>request.<wbr/>input<wbr/>Stream parameter determines the
9175source reprocessing stream.<wbr/> TODO: Mark dynamic metadata
9176needed for reprocessing with [RP]</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009177 </li>
9178 </ul>
9179
9180 </td> <!-- entry_type -->
9181
9182 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08009183 <p>The type of the request; either CAPTURE or
9184REPROCESS.<wbr/> For HAL3,<wbr/> this tag is redundant.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009185 </td>
9186
9187 <td class="entry_units">
9188 </td>
9189
9190 <td class="entry_range">
9191 </td>
9192
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009193 <td class="entry_tags">
Eino-Ville Talvalaf384f0a2013-07-12 17:02:27 -07009194 <ul class="entry_tags">
9195 <li><a href="#tag_HAL2">HAL2</a></li>
9196 </ul>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009197 </td>
9198
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08009199 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08009200
9201
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08009202 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
9203 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009204
9205
9206
9207 <!-- end of kind -->
9208 </tbody>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08009209 <tr><td colspan="6" class="kind">static</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009210
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07009211 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009212 <tr>
9213 <th class="th_name">Property Name</th>
9214 <th class="th_type">Type</th>
9215 <th class="th_description">Description</th>
9216 <th class="th_units">Units</th>
9217 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009218 <th class="th_tags">Tags</th>
9219 </tr>
9220 </thead>
9221
9222 <tbody>
9223
9224
9225
9226
9227
9228
9229
9230
9231
9232
9233 <tr class="entry" id="static_android.request.maxNumOutputStreams">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08009234 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08009235 android.<wbr/>request.<wbr/>max<wbr/>Num<wbr/>Output<wbr/>Streams
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08009236 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009237 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08009238 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009239 <span class="entry_type_container">x</span>
9240
9241 <span class="entry_type_array">
9242 3
9243 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07009244 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009245
9246
9247 </td> <!-- entry_type -->
9248
9249 <td class="entry_description">
Zhijun He12744b22014-01-22 15:58:57 -08009250 <p>The maximum numbers of different types of output streams
9251that can be configured and used simultaneously by a camera device.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009252 </td>
9253
9254 <td class="entry_units">
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009255 </td>
9256
9257 <td class="entry_range">
Zhijun He12744b22014-01-22 15:58:57 -08009258 <p>&gt;= 1 for JPEG-compressed format streams.<wbr/></p>
9259<p>&gt;= 0 for Raw format streams.<wbr/></p>
9260<p>&gt;= 3 for processed,<wbr/> uncompressed format streams.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009261 </td>
9262
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009263 <td class="entry_tags">
9264 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08009265 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009266 </ul>
9267 </td>
9268
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08009269 </tr>
9270 <tr class="entries_header">
9271 <th class="th_details" colspan="5">Details</th>
9272 </tr>
9273 <tr class="entry_cont">
9274 <td class="entry_details" colspan="5">
Zhijun He12744b22014-01-22 15:58:57 -08009275 <p>This is a 3 element tuple that contains the max number of output simultaneous
9276streams for raw sensor,<wbr/> processed (and uncompressed),<wbr/> and JPEG formats respectively.<wbr/>
9277For example,<wbr/> if max raw sensor format output stream number is 1,<wbr/> max YUV streams
9278number 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>
9279<p>This lists the upper bound of the number of output streams supported by
9280the camera device.<wbr/> Using more streams simultaneously may require more hardware and
9281CPU resources that will consume more power.<wbr/> The image format for a output stream can
9282be any supported format provided by <a href="#static_android.scaler.availableFormats">android.<wbr/>scaler.<wbr/>available<wbr/>Formats</a>.<wbr/> The formats
9283defined in <a href="#static_android.scaler.availableFormats">android.<wbr/>scaler.<wbr/>available<wbr/>Formats</a> can be catergorized into the 3 stream types
9284as below:</p>
9285<ul>
9286<li>JPEG-compressed format: BLOB.<wbr/></li>
9287<li>Raw formats: RAW_<wbr/>SENSOR and RAW_<wbr/>OPAQUE.<wbr/></li>
9288<li>processed,<wbr/> uncompressed formats: YCb<wbr/>Cr_<wbr/>420_<wbr/>888,<wbr/> YCr<wbr/>Cb_<wbr/>420_<wbr/>SP,<wbr/> YV12.<wbr/></li>
9289</ul>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08009290 </td>
9291 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08009292
9293
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08009294 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
9295 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009296
9297
9298 <tr class="entry" id="static_android.request.maxNumReprocessStreams">
Zhijun He12744b22014-01-22 15:58:57 -08009299 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08009300 android.<wbr/>request.<wbr/>max<wbr/>Num<wbr/>Reprocess<wbr/>Streams
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08009301 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009302 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08009303 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009304 <span class="entry_type_container">x</span>
9305
9306 <span class="entry_type_array">
9307 1
9308 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07009309 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009310
9311
9312 </td> <!-- entry_type -->
9313
9314 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08009315 <p>How many reprocessing streams of any type
Zhijun He12744b22014-01-22 15:58:57 -08009316can be allocated at the same time.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009317 </td>
9318
9319 <td class="entry_units">
9320 </td>
9321
9322 <td class="entry_range">
Zhijun He12744b22014-01-22 15:58:57 -08009323 <p>&gt;= 0</p>
9324 </td>
9325
9326 <td class="entry_tags">
9327 <ul class="entry_tags">
9328 <li><a href="#tag_HAL2">HAL2</a></li>
9329 </ul>
9330 </td>
9331
9332 </tr>
9333 <tr class="entries_header">
9334 <th class="th_details" colspan="5">Details</th>
9335 </tr>
9336 <tr class="entry_cont">
9337 <td class="entry_details" colspan="5">
9338 <p><strong>Deprecated</strong>.<wbr/> Only used by HAL2.<wbr/>x.<wbr/></p>
9339<p>When set to 0,<wbr/> it means no reprocess stream is supported.<wbr/></p>
9340 </td>
9341 </tr>
9342
9343
9344 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
9345 <!-- end of entry -->
9346
9347
9348 <tr class="entry" id="static_android.request.maxNumInputStreams">
9349 <td class="entry_name" rowspan="3">
9350 android.<wbr/>request.<wbr/>max<wbr/>Num<wbr/>Input<wbr/>Streams
9351 </td>
9352 <td class="entry_type">
9353 <span class="entry_type_name">int32</span>
9354
9355 <span class="entry_type_visibility"> [public]</span>
9356
9357
9358 </td> <!-- entry_type -->
9359
9360 <td class="entry_description">
9361 <p>The maximum numbers of any type of input streams
9362that can be configured and used simultaneously by a camera device.<wbr/></p>
9363 </td>
9364
9365 <td class="entry_units">
9366 </td>
9367
9368 <td class="entry_range">
9369 <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/>
9370&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 -08009371 </td>
9372
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009373 <td class="entry_tags">
9374 </td>
9375
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08009376 </tr>
Zhijun He12744b22014-01-22 15:58:57 -08009377 <tr class="entries_header">
9378 <th class="th_details" colspan="5">Details</th>
9379 </tr>
9380 <tr class="entry_cont">
9381 <td class="entry_details" colspan="5">
9382 <p>When set to 0,<wbr/> it means no input stream is supported.<wbr/></p>
9383<p>The image format for a input stream can be any supported format provided
9384by android.<wbr/>scaler.<wbr/>available<wbr/>Input<wbr/>Formats.<wbr/> When using an input stream,<wbr/> there must be
9385at least one output stream configured to to receive the reprocessed images.<wbr/></p>
9386<p>For example,<wbr/> for Zero Shutter Lag (ZSL) still capture use case,<wbr/> the input
9387stream image format will be RAW_<wbr/>OPAQUE,<wbr/> the associated output stream image format
9388should be JPEG.<wbr/></p>
9389 </td>
9390 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08009391
9392
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08009393 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
9394 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009395
Igor Murashkina46e02f2014-01-09 17:43:38 -08009396
9397 <tr class="entry" id="static_android.request.pipelineMaxDepth">
9398 <td class="entry_name" rowspan="5">
9399 android.<wbr/>request.<wbr/>pipeline<wbr/>Max<wbr/>Depth
9400 </td>
9401 <td class="entry_type">
9402 <span class="entry_type_name">byte</span>
9403
9404 <span class="entry_type_visibility"> [public]</span>
9405
9406
9407 </td> <!-- entry_type -->
9408
9409 <td class="entry_description">
9410 <p>Specifies the number of maximum pipeline stages a frame
9411has to go through from when it's exposed to when it's available
9412to the framework.<wbr/></p>
9413 </td>
9414
9415 <td class="entry_units">
9416 </td>
9417
9418 <td class="entry_range">
9419 </td>
9420
9421 <td class="entry_tags">
9422 </td>
9423
9424 </tr>
9425 <tr class="entries_header">
9426 <th class="th_details" colspan="5">Details</th>
9427 </tr>
9428 <tr class="entry_cont">
9429 <td class="entry_details" colspan="5">
9430 <p>A typical minimum value for this is 2 (one stage to expose,<wbr/>
9431one stage to readout) from the sensor.<wbr/> The ISP then usually adds
9432its own stages to do custom HW processing.<wbr/> Further stages may be
9433added by SW processing.<wbr/></p>
9434<p>Depending on what settings are used (e.<wbr/>g.<wbr/> YUV,<wbr/> JPEG) and what
9435processing is enabled (e.<wbr/>g.<wbr/> face detection),<wbr/> the actual pipeline
9436depth (specified by <a href="#dynamic_android.request.pipelineDepth">android.<wbr/>request.<wbr/>pipeline<wbr/>Depth</a>) may be less than
9437the max pipeline depth.<wbr/></p>
9438<p>A pipeline depth of X stages is equivalent to a pipeline latency of
9439X frame intervals.<wbr/></p>
9440<p>This value will be 8 or less.<wbr/></p>
9441 </td>
9442 </tr>
9443
9444 <tr class="entries_header">
9445 <th class="th_details" colspan="5">HAL Implementation Details</th>
9446 </tr>
9447 <tr class="entry_cont">
9448 <td class="entry_details" colspan="5">
9449 <p>This value should be 4 or less.<wbr/></p>
9450 </td>
9451 </tr>
9452
9453 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
9454 <!-- end of entry -->
9455
Igor Murashkin2e291102014-01-10 14:18:30 -08009456
9457 <tr class="entry" id="static_android.request.partialResultCount">
9458 <td class="entry_name" rowspan="3">
9459 android.<wbr/>request.<wbr/>partial<wbr/>Result<wbr/>Count
9460 </td>
9461 <td class="entry_type">
9462 <span class="entry_type_name">int32</span>
9463
9464 <span class="entry_type_visibility"> [public]</span>
9465
9466
9467 </td> <!-- entry_type -->
9468
9469 <td class="entry_description">
9470 <p>Optional.<wbr/> Defaults to 1.<wbr/> Defines how many sub-components
9471a result will be composed of.<wbr/></p>
9472 </td>
9473
9474 <td class="entry_units">
9475 </td>
9476
9477 <td class="entry_range">
9478 <p>&gt;= 1</p>
9479 </td>
9480
9481 <td class="entry_tags">
9482 </td>
9483
9484 </tr>
9485 <tr class="entries_header">
9486 <th class="th_details" colspan="5">Details</th>
9487 </tr>
9488 <tr class="entry_cont">
9489 <td class="entry_details" colspan="5">
9490 <p>In order to combat the pipeline latency,<wbr/> partial results
9491may be delivered to the application layer from the camera device as
9492soon as they are available.<wbr/></p>
9493<p>A value of 1 means that partial results are not supported.<wbr/></p>
9494<p>A typical use case for this might be: after requesting an AF lock the
9495new AF state might be available 50% of the way through the pipeline.<wbr/>
9496The camera device could then immediately dispatch this state via a
9497partial result to the framework/<wbr/>application layer,<wbr/> and the rest of
9498the metadata via later partial results.<wbr/></p>
9499 </td>
9500 </tr>
9501
9502
9503 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
9504 <!-- end of entry -->
9505
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009506
9507
9508 <!-- end of kind -->
9509 </tbody>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08009510 <tr><td colspan="6" class="kind">dynamic</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009511
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07009512 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009513 <tr>
9514 <th class="th_name">Property Name</th>
9515 <th class="th_type">Type</th>
9516 <th class="th_description">Description</th>
9517 <th class="th_units">Units</th>
9518 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009519 <th class="th_tags">Tags</th>
9520 </tr>
9521 </thead>
9522
9523 <tbody>
9524
9525
9526
9527
9528
9529
9530
9531
9532
9533
9534 <tr class="entry" id="dynamic_android.request.frameCount">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08009535 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08009536 android.<wbr/>request.<wbr/>frame<wbr/>Count
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08009537 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009538 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08009539 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009540
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07009541 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009542
9543
9544 </td> <!-- entry_type -->
9545
9546 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08009547 <p>A frame counter set by the framework.<wbr/> This value monotonically
9548increases with every new result (that is,<wbr/> each new result has a unique
9549frameCount value).<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009550 </td>
9551
9552 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -08009553 count of frames
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009554 </td>
9555
9556 <td class="entry_range">
Igor Murashkin6cb7c2c2014-01-10 15:12:40 -08009557 <p>&gt; 0</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009558 </td>
9559
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009560 <td class="entry_tags">
9561 </td>
9562
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08009563 </tr>
9564 <tr class="entries_header">
9565 <th class="th_details" colspan="5">Details</th>
9566 </tr>
9567 <tr class="entry_cont">
9568 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08009569 <p>Reset on release()</p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08009570 </td>
9571 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08009572
9573
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08009574 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
9575 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009576
9577
9578 <tr class="entry" id="dynamic_android.request.id">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08009579 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -08009580 android.<wbr/>request.<wbr/>id
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08009581 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009582 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08009583 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009584
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07009585 <span class="entry_type_visibility"> [hidden]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009586
9587
9588 </td> <!-- entry_type -->
9589
9590 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08009591 <p>An application-specified ID for the current
9592request.<wbr/> Must be maintained unchanged in output
9593frame</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009594 </td>
9595
9596 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -08009597 arbitrary integer assigned by application
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009598 </td>
9599
9600 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08009601 <p>Any int</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009602 </td>
9603
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009604 <td class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08009605 <ul class="entry_tags">
9606 <li><a href="#tag_V1">V1</a></li>
9607 </ul>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009608 </td>
9609
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08009610 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08009611
9612
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08009613 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
9614 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009615
9616
9617 <tr class="entry" id="dynamic_android.request.metadataMode">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08009618 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -08009619 android.<wbr/>request.<wbr/>metadata<wbr/>Mode
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08009620 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009621 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08009622 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009623
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07009624 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009625
9626 <ul class="entry_type_enum">
9627 <li>
9628 <span class="entry_type_enum_name">NONE</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08009629 <span class="entry_type_enum_notes"><p>No metadata should be produced on output,<wbr/> except
9630for application-bound buffer data.<wbr/> If no
9631application-bound streams exist,<wbr/> no frame should be
9632placed in the output frame queue.<wbr/> If such streams
9633exist,<wbr/> a frame should be placed on the output queue
9634with null metadata but with the necessary output buffer
9635information.<wbr/> Timestamp information should still be
9636included with any output stream buffers</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009637 </li>
9638 <li>
9639 <span class="entry_type_enum_name">FULL</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08009640 <span class="entry_type_enum_notes"><p>All metadata should be produced.<wbr/> Statistics will
9641only be produced if they are separately
9642enabled</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009643 </li>
9644 </ul>
9645
9646 </td> <!-- entry_type -->
9647
9648 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08009649 <p>How much metadata to produce on
9650output</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009651 </td>
9652
9653 <td class="entry_units">
9654 </td>
9655
9656 <td class="entry_range">
9657 </td>
9658
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009659 <td class="entry_tags">
9660 </td>
9661
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08009662 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08009663
9664
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08009665 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
9666 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009667
9668
9669 <tr class="entry" id="dynamic_android.request.outputStreams">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08009670 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08009671 android.<wbr/>request.<wbr/>output<wbr/>Streams
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08009672 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009673 <td class="entry_type">
Zhijun Hee36cdbe2013-09-06 14:28:37 -07009674 <span class="entry_type_name">int32</span>
Eino-Ville Talvalaf384f0a2013-07-12 17:02:27 -07009675 <span class="entry_type_container">x</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009676
Eino-Ville Talvalaf384f0a2013-07-12 17:02:27 -07009677 <span class="entry_type_array">
9678 n
9679 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07009680 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009681
9682
9683 </td> <!-- entry_type -->
9684
9685 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08009686 <p>Lists which camera output streams image data
9687from this capture must be sent to</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009688 </td>
9689
9690 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -08009691 List of camera stream IDs
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009692 </td>
9693
9694 <td class="entry_range">
Zhijun Hefb4701f2014-02-04 11:32:24 -08009695 <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 -08009696created</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009697 </td>
9698
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009699 <td class="entry_tags">
Eino-Ville Talvalaf384f0a2013-07-12 17:02:27 -07009700 <ul class="entry_tags">
9701 <li><a href="#tag_HAL2">HAL2</a></li>
9702 </ul>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009703 </td>
9704
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08009705 </tr>
9706 <tr class="entries_header">
9707 <th class="th_details" colspan="5">Details</th>
9708 </tr>
9709 <tr class="entry_cont">
9710 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08009711 <p>If no output streams are listed,<wbr/> then the image
9712data should simply be discarded.<wbr/> The image data must
9713still be captured for metadata and statistics production,<wbr/>
9714and the lens and flash must operate as requested.<wbr/></p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08009715 </td>
9716 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08009717
9718
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08009719 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
9720 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009721
Igor Murashkina46e02f2014-01-09 17:43:38 -08009722
9723 <tr class="entry" id="dynamic_android.request.pipelineDepth">
9724 <td class="entry_name" rowspan="5">
9725 android.<wbr/>request.<wbr/>pipeline<wbr/>Depth
9726 </td>
9727 <td class="entry_type">
9728 <span class="entry_type_name">byte</span>
9729
9730 <span class="entry_type_visibility"> [public]</span>
9731
9732
9733 </td> <!-- entry_type -->
9734
9735 <td class="entry_description">
9736 <p>Specifies the number of pipeline stages the frame went
9737through from when it was exposed to when the final completed result
9738was available to the framework.<wbr/></p>
9739 </td>
9740
9741 <td class="entry_units">
9742 </td>
9743
9744 <td class="entry_range">
9745 <p>&lt;= <a href="#static_android.request.pipelineMaxDepth">android.<wbr/>request.<wbr/>pipeline<wbr/>Max<wbr/>Depth</a></p>
9746 </td>
9747
9748 <td class="entry_tags">
9749 </td>
9750
9751 </tr>
9752 <tr class="entries_header">
9753 <th class="th_details" colspan="5">Details</th>
9754 </tr>
9755 <tr class="entry_cont">
9756 <td class="entry_details" colspan="5">
9757 <p>Depending on what settings are used in the request,<wbr/> and
9758what streams are configured,<wbr/> the data may undergo less processing,<wbr/>
9759and some pipeline stages skipped.<wbr/></p>
9760<p>See <a href="#static_android.request.pipelineMaxDepth">android.<wbr/>request.<wbr/>pipeline<wbr/>Max<wbr/>Depth</a> for more details.<wbr/></p>
9761 </td>
9762 </tr>
9763
9764 <tr class="entries_header">
9765 <th class="th_details" colspan="5">HAL Implementation Details</th>
9766 </tr>
9767 <tr class="entry_cont">
9768 <td class="entry_details" colspan="5">
9769 <p>This value must always represent the accurate count of how many
9770pipeline stages were actually used.<wbr/></p>
9771 </td>
9772 </tr>
9773
9774 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
9775 <!-- end of entry -->
9776
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009777
9778
9779 <!-- end of kind -->
9780 </tbody>
9781
9782 <!-- end of section -->
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08009783 <tr><td colspan="6" id="section_scaler" class="section">scaler</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009784
9785
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08009786 <tr><td colspan="6" class="kind">controls</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009787
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07009788 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009789 <tr>
9790 <th class="th_name">Property Name</th>
9791 <th class="th_type">Type</th>
9792 <th class="th_description">Description</th>
9793 <th class="th_units">Units</th>
9794 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009795 <th class="th_tags">Tags</th>
9796 </tr>
9797 </thead>
9798
9799 <tbody>
9800
9801
9802
9803
9804
9805
9806
9807
9808
9809
9810 <tr class="entry" id="controls_android.scaler.cropRegion">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08009811 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08009812 android.<wbr/>scaler.<wbr/>crop<wbr/>Region
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08009813 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009814 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08009815 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009816 <span class="entry_type_container">x</span>
9817
9818 <span class="entry_type_array">
Eino-Ville Talvalae04ec6e2013-04-16 15:35:18 -07009819 4
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009820 </span>
Igor Murashkinb8dc8812013-07-17 16:29:34 -07009821 <span class="entry_type_visibility"> [public as rectangle]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009822
9823
9824 </td> <!-- entry_type -->
9825
9826 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08009827 <p>(x,<wbr/> y,<wbr/> width,<wbr/> height).<wbr/></p>
9828<p>A rectangle with the top-level corner of (x,<wbr/>y) and size
9829(width,<wbr/> height).<wbr/> The region of the sensor that is used for
9830output.<wbr/> Each stream must use this rectangle to produce its
9831output,<wbr/> cropping to a smaller region if necessary to
9832maintain the stream's aspect ratio.<wbr/></p>
9833<p>HAL2.<wbr/>x uses only (x,<wbr/> y,<wbr/> width)</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009834 </td>
9835
9836 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -08009837 (x,<wbr/>y) of top-left corner,<wbr/> width and height of region
9838 in pixels; (0,<wbr/>0) is top-left corner of
9839 android.<wbr/>sensor.<wbr/>active<wbr/>Array<wbr/>Size
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009840 </td>
9841
9842 <td class="entry_range">
9843 </td>
9844
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08009845 <td class="entry_tags">
9846 <ul class="entry_tags">
9847 <li><a href="#tag_BC">BC</a></li>
9848 </ul>
9849 </td>
9850
9851 </tr>
9852 <tr class="entries_header">
9853 <th class="th_details" colspan="5">Details</th>
9854 </tr>
9855 <tr class="entry_cont">
9856 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08009857 <p>Any additional per-stream cropping must be done to
9858maximize the final pixel area of the stream.<wbr/></p>
9859<p>For example,<wbr/> if the crop region is set to a 4:3 aspect
9860ratio,<wbr/> then 4:3 streams should use the exact crop
9861region.<wbr/> 16:9 streams should further crop vertically
9862(letterbox).<wbr/></p>
9863<p>Conversely,<wbr/> if the crop region is set to a 16:9,<wbr/> then 4:3
9864outputs should crop horizontally (pillarbox),<wbr/> and 16:9
9865streams should match exactly.<wbr/> These additional crops must
9866be centered within the crop region.<wbr/></p>
Igor Murashkin8aa2a112013-12-09 12:06:17 -08009867<p>The output streams must maintain square pixels at all
Igor Murashkin0b080452013-12-27 15:30:25 -08009868times,<wbr/> no matter what the relative aspect ratios of the
9869crop region and the stream are.<wbr/> Negative values for
Igor Murashkin8aa2a112013-12-09 12:06:17 -08009870corner are allowed for raw output if full pixel array is
Igor Murashkin0b080452013-12-27 15:30:25 -08009871larger than active pixel array.<wbr/> Width and height may be
9872rounded to nearest larger supportable width,<wbr/> especially
9873for raw output,<wbr/> where only a few fixed scales may be
9874possible.<wbr/> The width and height of the crop region cannot
9875be set to be smaller than floor( activeArraySize.<wbr/>width /<wbr/>
9876android.<wbr/>scaler.<wbr/>max<wbr/>Digital<wbr/>Zoom ) and floor(
9877activeArraySize.<wbr/>height /<wbr/> android.<wbr/>scaler.<wbr/>max<wbr/>Digital<wbr/>Zoom),<wbr/>
9878respectively.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009879 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08009880 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08009881
9882
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08009883 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
9884 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009885
9886
9887
9888 <!-- end of kind -->
9889 </tbody>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08009890 <tr><td colspan="6" class="kind">static</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009891
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07009892 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009893 <tr>
9894 <th class="th_name">Property Name</th>
9895 <th class="th_type">Type</th>
9896 <th class="th_description">Description</th>
9897 <th class="th_units">Units</th>
9898 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009899 <th class="th_tags">Tags</th>
9900 </tr>
9901 </thead>
9902
9903 <tbody>
9904
9905
9906
9907
9908
9909
9910
9911
9912
9913
9914 <tr class="entry" id="static_android.scaler.availableFormats">
Zhijun Heb8317e22014-01-16 09:47:07 -08009915 <td class="entry_name" rowspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08009916 android.<wbr/>scaler.<wbr/>available<wbr/>Formats
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08009917 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009918 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08009919 <span class="entry_type_name entry_type_name_enum">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009920 <span class="entry_type_container">x</span>
9921
9922 <span class="entry_type_array">
9923 n
9924 </span>
Eino-Ville Talvalad4e240a2013-08-08 12:56:37 -07009925 <span class="entry_type_visibility"> [public as imageFormat]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009926
9927 <ul class="entry_type_enum">
9928 <li>
9929 <span class="entry_type_enum_name">RAW_SENSOR</span>
Zhijun Heb8317e22014-01-16 09:47:07 -08009930 <span class="entry_type_enum_optional">optional</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009931 <span class="entry_type_enum_value">0x20</span>
9932 </li>
9933 <li>
9934 <span class="entry_type_enum_name">YV12</span>
Zhijun Heb8317e22014-01-16 09:47:07 -08009935 <span class="entry_type_enum_optional">optional</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009936 <span class="entry_type_enum_value">0x32315659</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08009937 <span class="entry_type_enum_notes"><p>YCrCb 4:2:0 Planar</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009938 </li>
9939 <li>
Zhijun Hec2eebff2013-05-16 17:49:35 -07009940 <span class="entry_type_enum_name">YCrCb_420_SP</span>
Zhijun Heb8317e22014-01-16 09:47:07 -08009941 <span class="entry_type_enum_optional">optional</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009942 <span class="entry_type_enum_value">0x11</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08009943 <span class="entry_type_enum_notes"><p>NV21</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009944 </li>
9945 <li>
Zhijun Hec2eebff2013-05-16 17:49:35 -07009946 <span class="entry_type_enum_name">IMPLEMENTATION_DEFINED</span>
9947 <span class="entry_type_enum_value">0x22</span>
Zhijun Heb8317e22014-01-16 09:47:07 -08009948 <span class="entry_type_enum_notes"><p>System internal format,<wbr/> not application-accessible</p></span>
Zhijun Hec2eebff2013-05-16 17:49:35 -07009949 </li>
9950 <li>
9951 <span class="entry_type_enum_name">YCbCr_420_888</span>
9952 <span class="entry_type_enum_value">0x23</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08009953 <span class="entry_type_enum_notes"><p>Flexible YUV420 Format</p></span>
Zhijun Hec2eebff2013-05-16 17:49:35 -07009954 </li>
9955 <li>
9956 <span class="entry_type_enum_name">BLOB</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009957 <span class="entry_type_enum_value">0x21</span>
Zhijun Heb8317e22014-01-16 09:47:07 -08009958 <span class="entry_type_enum_notes"><p>JPEG format</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009959 </li>
9960 </ul>
9961
9962 </td> <!-- entry_type -->
9963
9964 <td class="entry_description">
Zhijun Heb8317e22014-01-16 09:47:07 -08009965 <p>The list of image formats that are supported by this
9966camera device.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009967 </td>
9968
9969 <td class="entry_units">
9970 </td>
9971
9972 <td class="entry_range">
9973 </td>
9974
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009975 <td class="entry_tags">
9976 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08009977 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009978 </ul>
9979 </td>
9980
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08009981 </tr>
Zhijun Heb8317e22014-01-16 09:47:07 -08009982 <tr class="entries_header">
9983 <th class="th_details" colspan="5">Details</th>
9984 </tr>
9985 <tr class="entry_cont">
9986 <td class="entry_details" colspan="5">
9987 <p>All camera devices will support JPEG and YUV_<wbr/>420_<wbr/>888 formats.<wbr/></p>
9988<p>When set to YUV_<wbr/>420_<wbr/>888,<wbr/> application can access the YUV420 data directly.<wbr/></p>
9989 </td>
9990 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08009991
Zhijun Heb8317e22014-01-16 09:47:07 -08009992 <tr class="entries_header">
9993 <th class="th_details" colspan="5">HAL Implementation Details</th>
9994 </tr>
9995 <tr class="entry_cont">
9996 <td class="entry_details" colspan="5">
9997 <p>These format values are from HAL_<wbr/>PIXEL_<wbr/>FORMAT_<wbr/>* in
9998system/<wbr/>core/<wbr/>include/<wbr/>system/<wbr/>graphics.<wbr/>h.<wbr/></p>
9999<p>When IMPLEMENTATION_<wbr/>DEFINED is used,<wbr/> the platform
10000gralloc module will select a format based on the usage flags provided
10001by the camera HAL device and the other endpoint of the stream.<wbr/> It is
10002usually used by preview and recording streams,<wbr/> where the application doesn't
10003need access the image data.<wbr/></p>
10004<p>YCb<wbr/>Cr_<wbr/>420_<wbr/>888 format must be supported by the HAL.<wbr/> When an image stream
10005needs CPU/<wbr/>application direct access,<wbr/> this format will be used.<wbr/></p>
10006<p>The BLOB format must be supported by the HAL.<wbr/> This is used for the JPEG stream.<wbr/></p>
10007 </td>
10008 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080010009
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080010010 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
10011 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010012
10013
10014 <tr class="entry" id="static_android.scaler.availableJpegMinDurations">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080010015 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080010016 android.<wbr/>scaler.<wbr/>available<wbr/>Jpeg<wbr/>Min<wbr/>Durations
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080010017 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010018 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080010019 <span class="entry_type_name">int64</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010020 <span class="entry_type_container">x</span>
10021
10022 <span class="entry_type_array">
10023 n
10024 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070010025 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010026
10027
10028 </td> <!-- entry_type -->
10029
10030 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080010031 <p>The minimum frame duration that is supported
Igor Murashkin10f4e0f2014-01-13 17:22:58 -080010032for 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 -080010033 </td>
10034
10035 <td class="entry_units">
Igor Murashkin10f4e0f2014-01-13 17:22:58 -080010036 ns
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010037 </td>
10038
10039 <td class="entry_range">
10040 </td>
10041
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010042 <td class="entry_tags">
10043 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080010044 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010045 </ul>
10046 </td>
10047
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080010048 </tr>
10049 <tr class="entries_header">
10050 <th class="th_details" colspan="5">Details</th>
10051 </tr>
10052 <tr class="entry_cont">
10053 <td class="entry_details" colspan="5">
Igor Murashkin10f4e0f2014-01-13 17:22:58 -080010054 <p>This corresponds to the minimum steady-state frame duration when only
10055that JPEG stream is active and captured in a burst,<wbr/> with all
10056processing (typically in android.<wbr/>*.<wbr/>mode) set to FAST.<wbr/></p>
10057<p>When multiple streams are configured,<wbr/> the minimum
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080010058frame duration will be &gt;= max(individual stream min
Igor Murashkin0b080452013-12-27 15:30:25 -080010059durations)</p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080010060 </td>
10061 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080010062
10063
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080010064 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
10065 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010066
10067
10068 <tr class="entry" id="static_android.scaler.availableJpegSizes">
Zhijun Heb8317e22014-01-16 09:47:07 -080010069 <td class="entry_name" rowspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -080010070 android.<wbr/>scaler.<wbr/>available<wbr/>Jpeg<wbr/>Sizes
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080010071 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010072 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080010073 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010074 <span class="entry_type_container">x</span>
10075
10076 <span class="entry_type_array">
10077 n x 2
10078 </span>
Igor Murashkinb8dc8812013-07-17 16:29:34 -070010079 <span class="entry_type_visibility"> [public as size]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010080
10081
10082 </td> <!-- entry_type -->
10083
10084 <td class="entry_description">
Zhijun Heb8317e22014-01-16 09:47:07 -080010085 <p>The JPEG resolutions that are supported by this camera device.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010086 </td>
10087
10088 <td class="entry_units">
10089 </td>
10090
10091 <td class="entry_range">
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010092 </td>
10093
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010094 <td class="entry_tags">
10095 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080010096 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010097 </ul>
10098 </td>
10099
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080010100 </tr>
Zhijun Heb8317e22014-01-16 09:47:07 -080010101 <tr class="entries_header">
10102 <th class="th_details" colspan="5">Details</th>
10103 </tr>
10104 <tr class="entry_cont">
10105 <td class="entry_details" colspan="5">
10106 <p>The resolutions are listed as <code>(width,<wbr/> height)</code> pairs.<wbr/> All camera devices will support
10107sensor 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>
10108 </td>
10109 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080010110
Zhijun Heb8317e22014-01-16 09:47:07 -080010111 <tr class="entries_header">
10112 <th class="th_details" colspan="5">HAL Implementation Details</th>
10113 </tr>
10114 <tr class="entry_cont">
10115 <td class="entry_details" colspan="5">
10116 <p>The HAL must include sensor maximum resolution
10117(defined by <a href="#static_android.sensor.info.activeArraySize">android.<wbr/>sensor.<wbr/>info.<wbr/>active<wbr/>Array<wbr/>Size</a>),<wbr/>
10118and should include half/<wbr/>quarter of sensor maximum resolution.<wbr/></p>
10119 </td>
10120 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080010121
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080010122 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
10123 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010124
10125
10126 <tr class="entry" id="static_android.scaler.availableMaxDigitalZoom">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080010127 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -080010128 android.<wbr/>scaler.<wbr/>available<wbr/>Max<wbr/>Digital<wbr/>Zoom
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080010129 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010130 <td class="entry_type">
Igor Murashkinf11a4df2013-05-07 10:00:46 -070010131 <span class="entry_type_name">float</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010132
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070010133 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010134
10135
10136 </td> <!-- entry_type -->
10137
10138 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080010139 <p>The maximum ratio between active area width
10140and crop region width,<wbr/> or between active area height and
10141crop region height,<wbr/> if the crop region height is larger
10142than width</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010143 </td>
10144
10145 <td class="entry_units">
10146 </td>
10147
10148 <td class="entry_range">
Igor Murashkin6cb7c2c2014-01-10 15:12:40 -080010149 <p>&gt;=1</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010150 </td>
10151
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010152 <td class="entry_tags">
Igor Murashkinf11a4df2013-05-07 10:00:46 -070010153 <ul class="entry_tags">
10154 <li><a href="#tag_BC">BC</a></li>
10155 </ul>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010156 </td>
10157
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080010158 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080010159
10160
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080010161 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
10162 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010163
10164
10165 <tr class="entry" id="static_android.scaler.availableProcessedMinDurations">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080010166 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080010167 android.<wbr/>scaler.<wbr/>available<wbr/>Processed<wbr/>Min<wbr/>Durations
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080010168 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010169 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080010170 <span class="entry_type_name">int64</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010171 <span class="entry_type_container">x</span>
10172
10173 <span class="entry_type_array">
10174 n
10175 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070010176 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010177
10178
10179 </td> <!-- entry_type -->
10180
10181 <td class="entry_description">
Igor Murashkin10f4e0f2014-01-13 17:22:58 -080010182 <p>For each available processed output size (defined in
10183<a href="#static_android.scaler.availableProcessedSizes">android.<wbr/>scaler.<wbr/>available<wbr/>Processed<wbr/>Sizes</a>),<wbr/> this property lists the
10184minimum supportable frame duration for that size.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010185 </td>
10186
10187 <td class="entry_units">
Igor Murashkin10f4e0f2014-01-13 17:22:58 -080010188 ns
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010189 </td>
10190
10191 <td class="entry_range">
10192 </td>
10193
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010194 <td class="entry_tags">
10195 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080010196 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010197 </ul>
10198 </td>
10199
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080010200 </tr>
10201 <tr class="entries_header">
10202 <th class="th_details" colspan="5">Details</th>
10203 </tr>
10204 <tr class="entry_cont">
10205 <td class="entry_details" colspan="5">
Igor Murashkin10f4e0f2014-01-13 17:22:58 -080010206 <p>This should correspond to the frame duration when only that processed
10207stream is active,<wbr/> with all processing (typically in android.<wbr/>*.<wbr/>mode)
10208set to FAST.<wbr/></p>
10209<p>When multiple streams are configured,<wbr/> the minimum frame duration will
10210be &gt;= max(individual stream min durations).<wbr/></p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080010211 </td>
10212 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080010213
10214
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080010215 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
10216 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010217
10218
10219 <tr class="entry" id="static_android.scaler.availableProcessedSizes">
Zhijun Heb8317e22014-01-16 09:47:07 -080010220 <td class="entry_name" rowspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -080010221 android.<wbr/>scaler.<wbr/>available<wbr/>Processed<wbr/>Sizes
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080010222 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010223 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080010224 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010225 <span class="entry_type_container">x</span>
10226
10227 <span class="entry_type_array">
10228 n x 2
10229 </span>
Igor Murashkinb8dc8812013-07-17 16:29:34 -070010230 <span class="entry_type_visibility"> [public as size]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010231
10232
10233 </td> <!-- entry_type -->
10234
10235 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080010236 <p>The resolutions available for use with
10237processed output streams,<wbr/> such as YV12,<wbr/> NV12,<wbr/> and
10238platform opaque YUV/<wbr/>RGB streams to the GPU or video
Zhijun Heb8317e22014-01-16 09:47:07 -080010239encoders.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010240 </td>
10241
10242 <td class="entry_units">
10243 </td>
10244
10245 <td class="entry_range">
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010246 </td>
10247
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080010248 <td class="entry_tags">
10249 <ul class="entry_tags">
10250 <li><a href="#tag_BC">BC</a></li>
10251 </ul>
10252 </td>
10253
10254 </tr>
10255 <tr class="entries_header">
10256 <th class="th_details" colspan="5">Details</th>
10257 </tr>
10258 <tr class="entry_cont">
10259 <td class="entry_details" colspan="5">
Zhijun Heb8317e22014-01-16 09:47:07 -080010260 <p>The resolutions are listed as <code>(width,<wbr/> height)</code> pairs.<wbr/></p>
10261<p>For a given use case,<wbr/> the actual maximum supported resolution
10262may be lower than what is listed here,<wbr/> depending on the destination
10263Surface for the image data.<wbr/> For example,<wbr/> for recording video,<wbr/>
10264the video encoder chosen may have a maximum size limit (e.<wbr/>g.<wbr/> 1080p)
10265smaller than what the camera (e.<wbr/>g.<wbr/> maximum resolution is 3264x2448)
10266can provide.<wbr/></p>
10267<p>Please reference the documentation for the image data destination to
10268check if it limits the maximum size for image data.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010269 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080010270 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080010271
Zhijun Heb8317e22014-01-16 09:47:07 -080010272 <tr class="entries_header">
10273 <th class="th_details" colspan="5">HAL Implementation Details</th>
10274 </tr>
10275 <tr class="entry_cont">
10276 <td class="entry_details" colspan="5">
10277 <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/>
10278the HAL must include all JPEG sizes listed in android.<wbr/>scaler.<wbr/>available<wbr/>Jpeg<wbr/>Sizes
10279and each below resolution if it is smaller than or equal to the sensor
10280maximum resolution (if they are not listed in JPEG sizes already):</p>
10281<ul>
10282<li>240p (320 x 240)</li>
10283<li>480p (640 x 480)</li>
10284<li>720p (1280 x 720)</li>
10285<li>1080p (1920 x 1080)</li>
10286</ul>
10287<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/>
10288the HAL only has to list up to the maximum video size supported by the devices.<wbr/></p>
10289 </td>
10290 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080010291
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080010292 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
10293 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010294
10295
10296 <tr class="entry" id="static_android.scaler.availableRawMinDurations">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080010297 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080010298 android.<wbr/>scaler.<wbr/>available<wbr/>Raw<wbr/>Min<wbr/>Durations
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080010299 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010300 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080010301 <span class="entry_type_name">int64</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010302 <span class="entry_type_container">x</span>
10303
10304 <span class="entry_type_array">
10305 n
10306 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070010307 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010308
10309
10310 </td> <!-- entry_type -->
10311
10312 <td class="entry_description">
Zhijun Hebdc94c42014-01-21 18:28:30 -080010313 <p>For each available raw output size (defined in
Igor Murashkin10f4e0f2014-01-13 17:22:58 -080010314<a href="#static_android.scaler.availableRawSizes">android.<wbr/>scaler.<wbr/>available<wbr/>Raw<wbr/>Sizes</a>),<wbr/> this property lists the minimum
10315supportable frame duration for that size.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010316 </td>
10317
10318 <td class="entry_units">
Igor Murashkin10f4e0f2014-01-13 17:22:58 -080010319 ns
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010320 </td>
10321
10322 <td class="entry_range">
10323 </td>
10324
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010325 <td class="entry_tags">
10326 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080010327 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010328 </ul>
10329 </td>
10330
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080010331 </tr>
10332 <tr class="entries_header">
10333 <th class="th_details" colspan="5">Details</th>
10334 </tr>
10335 <tr class="entry_cont">
10336 <td class="entry_details" colspan="5">
Igor Murashkin10f4e0f2014-01-13 17:22:58 -080010337 <p>Should correspond to the frame duration when only the raw stream is
10338active.<wbr/></p>
10339<p>When multiple streams are configured,<wbr/> the minimum
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080010340frame duration will be &gt;= max(individual stream min
Igor Murashkin0b080452013-12-27 15:30:25 -080010341durations)</p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080010342 </td>
10343 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080010344
10345
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080010346 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
10347 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010348
10349
10350 <tr class="entry" id="static_android.scaler.availableRawSizes">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080010351 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -080010352 android.<wbr/>scaler.<wbr/>available<wbr/>Raw<wbr/>Sizes
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080010353 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010354 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080010355 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010356 <span class="entry_type_container">x</span>
10357
10358 <span class="entry_type_array">
10359 n x 2
10360 </span>
Igor Murashkinb8dc8812013-07-17 16:29:34 -070010361 <span class="entry_type_visibility"> [system as size]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010362
10363
10364 </td> <!-- entry_type -->
10365
10366 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080010367 <p>The resolutions available for use with raw
10368sensor output streams,<wbr/> listed as width,<wbr/>
10369height</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010370 </td>
10371
10372 <td class="entry_units">
10373 </td>
10374
10375 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -080010376 <p>Must include: - sensor maximum resolution</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010377 </td>
10378
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010379 <td class="entry_tags">
10380 </td>
10381
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080010382 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080010383
10384
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080010385 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
10386 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010387
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010388
10389
10390 <!-- end of kind -->
10391 </tbody>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080010392 <tr><td colspan="6" class="kind">dynamic</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010393
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070010394 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010395 <tr>
10396 <th class="th_name">Property Name</th>
10397 <th class="th_type">Type</th>
10398 <th class="th_description">Description</th>
10399 <th class="th_units">Units</th>
10400 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010401 <th class="th_tags">Tags</th>
10402 </tr>
10403 </thead>
10404
10405 <tbody>
10406
10407
10408
10409
10410
10411
10412
10413
10414
10415
10416 <tr class="entry" id="dynamic_android.scaler.cropRegion">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080010417 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080010418 android.<wbr/>scaler.<wbr/>crop<wbr/>Region
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080010419 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010420 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080010421 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010422 <span class="entry_type_container">x</span>
10423
10424 <span class="entry_type_array">
Eino-Ville Talvalae04ec6e2013-04-16 15:35:18 -070010425 4
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010426 </span>
Igor Murashkinb8dc8812013-07-17 16:29:34 -070010427 <span class="entry_type_visibility"> [public as rectangle]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010428
10429
10430 </td> <!-- entry_type -->
10431
10432 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080010433 <p>(x,<wbr/> y,<wbr/> width,<wbr/> height).<wbr/></p>
10434<p>A rectangle with the top-level corner of (x,<wbr/>y) and size
10435(width,<wbr/> height).<wbr/> The region of the sensor that is used for
10436output.<wbr/> Each stream must use this rectangle to produce its
10437output,<wbr/> cropping to a smaller region if necessary to
10438maintain the stream's aspect ratio.<wbr/></p>
10439<p>HAL2.<wbr/>x uses only (x,<wbr/> y,<wbr/> width)</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010440 </td>
10441
10442 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -080010443 (x,<wbr/>y) of top-left corner,<wbr/> width and height of region
10444 in pixels; (0,<wbr/>0) is top-left corner of
10445 android.<wbr/>sensor.<wbr/>active<wbr/>Array<wbr/>Size
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010446 </td>
10447
10448 <td class="entry_range">
10449 </td>
10450
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080010451 <td class="entry_tags">
10452 <ul class="entry_tags">
10453 <li><a href="#tag_BC">BC</a></li>
10454 </ul>
10455 </td>
10456
10457 </tr>
10458 <tr class="entries_header">
10459 <th class="th_details" colspan="5">Details</th>
10460 </tr>
10461 <tr class="entry_cont">
10462 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -080010463 <p>Any additional per-stream cropping must be done to
10464maximize the final pixel area of the stream.<wbr/></p>
10465<p>For example,<wbr/> if the crop region is set to a 4:3 aspect
10466ratio,<wbr/> then 4:3 streams should use the exact crop
10467region.<wbr/> 16:9 streams should further crop vertically
10468(letterbox).<wbr/></p>
10469<p>Conversely,<wbr/> if the crop region is set to a 16:9,<wbr/> then 4:3
10470outputs should crop horizontally (pillarbox),<wbr/> and 16:9
10471streams should match exactly.<wbr/> These additional crops must
10472be centered within the crop region.<wbr/></p>
Igor Murashkin8aa2a112013-12-09 12:06:17 -080010473<p>The output streams must maintain square pixels at all
Igor Murashkin0b080452013-12-27 15:30:25 -080010474times,<wbr/> no matter what the relative aspect ratios of the
10475crop region and the stream are.<wbr/> Negative values for
Igor Murashkin8aa2a112013-12-09 12:06:17 -080010476corner are allowed for raw output if full pixel array is
Igor Murashkin0b080452013-12-27 15:30:25 -080010477larger than active pixel array.<wbr/> Width and height may be
10478rounded to nearest larger supportable width,<wbr/> especially
10479for raw output,<wbr/> where only a few fixed scales may be
10480possible.<wbr/> The width and height of the crop region cannot
10481be set to be smaller than floor( activeArraySize.<wbr/>width /<wbr/>
10482android.<wbr/>scaler.<wbr/>max<wbr/>Digital<wbr/>Zoom ) and floor(
10483activeArraySize.<wbr/>height /<wbr/> android.<wbr/>scaler.<wbr/>max<wbr/>Digital<wbr/>Zoom),<wbr/>
10484respectively.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010485 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080010486 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080010487
10488
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080010489 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
10490 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010491
10492
10493
10494 <!-- end of kind -->
10495 </tbody>
10496
10497 <!-- end of section -->
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080010498 <tr><td colspan="6" id="section_sensor" class="section">sensor</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010499
10500
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080010501 <tr><td colspan="6" class="kind">controls</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010502
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070010503 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010504 <tr>
10505 <th class="th_name">Property Name</th>
10506 <th class="th_type">Type</th>
10507 <th class="th_description">Description</th>
10508 <th class="th_units">Units</th>
10509 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010510 <th class="th_tags">Tags</th>
10511 </tr>
10512 </thead>
10513
10514 <tbody>
10515
10516
10517
10518
10519
10520
10521
10522
10523
10524
10525 <tr class="entry" id="controls_android.sensor.exposureTime">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080010526 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080010527 android.<wbr/>sensor.<wbr/>exposure<wbr/>Time
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080010528 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010529 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080010530 <span class="entry_type_name">int64</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010531
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070010532 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010533
10534
10535 </td> <!-- entry_type -->
10536
10537 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080010538 <p>Duration each pixel is exposed to
10539light.<wbr/></p>
10540<p>If the sensor can't expose this exact duration,<wbr/> it should shorten the
10541duration exposed to the nearest possible value (rather than expose longer).<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010542 </td>
10543
10544 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -080010545 nanoseconds
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010546 </td>
10547
10548 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -080010549 <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 -080010550 </td>
10551
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010552 <td class="entry_tags">
10553 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080010554 <li><a href="#tag_V1">V1</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010555 </ul>
10556 </td>
10557
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080010558 </tr>
10559 <tr class="entries_header">
10560 <th class="th_details" colspan="5">Details</th>
10561 </tr>
10562 <tr class="entry_cont">
10563 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -080010564 <p>1/<wbr/>10000 - 30 sec range.<wbr/> No bulb mode</p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080010565 </td>
10566 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080010567
10568
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080010569 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
10570 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010571
10572
10573 <tr class="entry" id="controls_android.sensor.frameDuration">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080010574 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080010575 android.<wbr/>sensor.<wbr/>frame<wbr/>Duration
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080010576 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010577 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080010578 <span class="entry_type_name">int64</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010579
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070010580 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010581
10582
10583 </td> <!-- entry_type -->
10584
10585 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080010586 <p>Duration from start of frame exposure to
Igor Murashkin10f4e0f2014-01-13 17:22:58 -080010587start of next frame exposure.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010588 </td>
10589
10590 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -080010591 nanoseconds
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010592 </td>
10593
10594 <td class="entry_range">
Igor Murashkin10f4e0f2014-01-13 17:22:58 -080010595 <p>See <a href="#static_android.sensor.info.maxFrameDuration">android.<wbr/>sensor.<wbr/>info.<wbr/>max<wbr/>Frame<wbr/>Duration</a>,<wbr/>
10596android.<wbr/>scaler.<wbr/>available*Min<wbr/>Durations.<wbr/> The duration
10597is capped to <code>max(duration,<wbr/> exposureTime + overhead)</code>.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010598 </td>
10599
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010600 <td class="entry_tags">
10601 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080010602 <li><a href="#tag_V1">V1</a></li>
10603 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010604 </ul>
10605 </td>
10606
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080010607 </tr>
10608 <tr class="entries_header">
10609 <th class="th_details" colspan="5">Details</th>
10610 </tr>
10611 <tr class="entry_cont">
10612 <td class="entry_details" colspan="5">
Igor Murashkin10f4e0f2014-01-13 17:22:58 -080010613 <p>The maximum frame rate that can be supported by a camera subsystem is
10614a function of many factors:</p>
10615<ul>
10616<li>Requested resolutions of output image streams</li>
10617<li>Availability of binning /<wbr/> skipping modes on the imager</li>
10618<li>The bandwidth of the imager interface</li>
10619<li>The bandwidth of the various ISP processing blocks</li>
10620</ul>
10621<p>Since these factors can vary greatly between different ISPs and
10622sensors,<wbr/> the camera abstraction tries to represent the bandwidth
10623restrictions with as simple a model as possible.<wbr/></p>
10624<p>The model presented has the following characteristics:</p>
10625<ul>
10626<li>The image sensor is always configured to output the smallest
10627resolution possible given the application's requested output stream
10628sizes.<wbr/> The smallest resolution is defined as being at least as large
10629as the largest requested output stream size; the camera pipeline must
10630never digitally upsample sensor data when the crop region covers the
10631whole sensor.<wbr/> In general,<wbr/> this means that if only small output stream
10632resolutions are configured,<wbr/> the sensor can provide a higher frame
10633rate.<wbr/></li>
10634<li>Since any request may use any or all the currently configured
10635output streams,<wbr/> the sensor and ISP must be configured to support
10636scaling a single capture to all the streams at the same time.<wbr/> This
10637means the camera pipeline must be ready to produce the largest
10638requested output size without any delay.<wbr/> Therefore,<wbr/> the overall
10639frame rate of a given configured stream set is governed only by the
10640largest requested stream resolution.<wbr/></li>
10641<li>Using more than one output stream in a request does not affect the
10642frame duration.<wbr/></li>
10643<li>JPEG streams act like processed YUV streams in requests for which
10644they are not included; in requests in which they are directly
10645referenced,<wbr/> they act as JPEG streams.<wbr/> This is because supporting a
10646JPEG stream requires the underlying YUV data to always be ready for
10647use by a JPEG encoder,<wbr/> but the encoder will only be used (and impact
10648frame duration) on requests that actually reference a JPEG stream.<wbr/></li>
10649<li>The JPEG processor can run concurrently to the rest of the camera
10650pipeline,<wbr/> but cannot process more than 1 capture at a time.<wbr/></li>
10651</ul>
10652<p>The necessary information for the application,<wbr/> given the model above,<wbr/>
10653is provided via the android.<wbr/>scaler.<wbr/>available*Min<wbr/>Durations fields.<wbr/>
10654These are used to determine the maximum frame rate /<wbr/> minimum frame
10655duration that is possible for a given stream configuration.<wbr/></p>
10656<p>Specifically,<wbr/> the application can use the following rules to
10657determine the minimum frame duration it can request from the HAL
10658device:</p>
10659<ol>
10660<li>Given the application's currently configured set of output
10661streams,<wbr/> <code>S</code>,<wbr/> divide them into three sets: streams in a JPEG format
10662<code>SJ</code>,<wbr/> streams in a raw sensor format <code>SR</code>,<wbr/> and the rest ('processed')
10663<code>SP</code>.<wbr/></li>
10664<li>For each subset of streams,<wbr/> find the largest resolution (by pixel
10665count) in the subset.<wbr/> This gives (at most) three resolutions <code>RJ</code>,<wbr/>
10666<code>RR</code>,<wbr/> and <code>RP</code>.<wbr/></li>
10667<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
10668no exact match for <code>RP == RJ</code> (in particular there isn't an available
10669processed resolution at the same size as <code>RJ</code>),<wbr/> then set <code>RP</code> equal
10670to the smallest processed resolution that is larger than <code>RJ</code>.<wbr/> If
10671there are no processed resolutions larger than <code>RJ</code>,<wbr/> then set <code>RJ</code> to
10672the processed resolution closest to <code>RJ</code>.<wbr/></li>
10673<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
10674no exact match for <code>RR == RP</code> (in particular there isn't an available
10675raw resolution at the same size as <code>RP</code>),<wbr/> then set <code>RR</code> equal to
10676or to the smallest raw resolution that is larger than <code>RP</code>.<wbr/> If
10677there are no raw resolutions larger than <code>RP</code>,<wbr/> then set <code>RR</code> to
10678the raw resolution closest to <code>RP</code>.<wbr/></li>
10679<li>Look up the matching minimum frame durations in the property lists
10680<a href="#static_android.scaler.availableJpegMinDurations">android.<wbr/>scaler.<wbr/>available<wbr/>Jpeg<wbr/>Min<wbr/>Durations</a>,<wbr/>
10681<a href="#static_android.scaler.availableRawMinDurations">android.<wbr/>scaler.<wbr/>available<wbr/>Raw<wbr/>Min<wbr/>Durations</a>,<wbr/> and
10682<a href="#static_android.scaler.availableProcessedMinDurations">android.<wbr/>scaler.<wbr/>available<wbr/>Processed<wbr/>Min<wbr/>Durations</a>.<wbr/> This gives three
10683minimum frame durations <code>FJ</code>,<wbr/> <code>FR</code>,<wbr/> and <code>FP</code>.<wbr/></li>
10684<li>If a stream of requests do not use a JPEG stream,<wbr/> then the minimum
10685supported frame duration for each request is <code>max(FR,<wbr/> FP)</code>.<wbr/></li>
10686<li>If a stream of requests all use the JPEG stream,<wbr/> then the minimum
10687supported frame duration for each request is <code>max(FR,<wbr/> FP,<wbr/> FJ)</code>.<wbr/></li>
10688<li>If a mix of JPEG-using and non-JPEG-using requests is submitted by
10689the application,<wbr/> then the HAL will have to delay JPEG-using requests
10690whenever the JPEG encoder is still busy processing an older capture.<wbr/>
10691This will happen whenever a JPEG-using request starts capture less
10692than <code>FJ</code> <em>ns</em> after a previous JPEG-using request.<wbr/> The minimum
10693supported frame duration will vary between the values calculated in
10694#6 and #7.<wbr/></li>
10695</ol>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080010696 </td>
10697 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080010698
10699
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080010700 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
10701 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010702
10703
10704 <tr class="entry" id="controls_android.sensor.sensitivity">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080010705 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080010706 android.<wbr/>sensor.<wbr/>sensitivity
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080010707 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010708 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080010709 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010710
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070010711 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010712
10713
10714 </td> <!-- entry_type -->
10715
10716 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080010717 <p>Gain applied to image data.<wbr/> Must be
Igor Murashkin8aa2a112013-12-09 12:06:17 -080010718implemented through analog gain only if set to values
Igor Murashkin0b080452013-12-27 15:30:25 -080010719below 'maximum analog sensitivity'.<wbr/></p>
10720<p>If the sensor can't apply this exact gain,<wbr/> it should lessen the
10721gain to the nearest possible value (rather than gain more).<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010722 </td>
10723
10724 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -080010725 ISO arithmetic units
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010726 </td>
10727
10728 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -080010729 <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 -080010730 </td>
10731
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010732 <td class="entry_tags">
10733 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080010734 <li><a href="#tag_V1">V1</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010735 </ul>
10736 </td>
10737
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080010738 </tr>
10739 <tr class="entries_header">
10740 <th class="th_details" colspan="5">Details</th>
10741 </tr>
10742 <tr class="entry_cont">
10743 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -080010744 <p>ISO 12232:2006 REI method</p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080010745 </td>
10746 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080010747
10748
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080010749 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
10750 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010751
Igor Murashkina46e02f2014-01-09 17:43:38 -080010752
10753 <tr class="entry" id="controls_android.sensor.testPatternData">
10754 <td class="entry_name" rowspan="5">
10755 android.<wbr/>sensor.<wbr/>test<wbr/>Pattern<wbr/>Data
10756 </td>
10757 <td class="entry_type">
10758 <span class="entry_type_name">int32</span>
10759 <span class="entry_type_container">x</span>
10760
10761 <span class="entry_type_array">
10762 4
10763 </span>
10764 <span class="entry_type_visibility"> [public]</span>
10765
10766
10767 </td> <!-- entry_type -->
10768
10769 <td class="entry_description">
10770 <p>A pixel <code>[R,<wbr/> G_<wbr/>even,<wbr/> G_<wbr/>odd,<wbr/> B]</code> that supplies the test pattern
10771when <a href="#controls_android.sensor.testPatternMode">android.<wbr/>sensor.<wbr/>test<wbr/>Pattern<wbr/>Mode</a> is SOLID_<wbr/>COLOR.<wbr/></p>
10772 </td>
10773
10774 <td class="entry_units">
10775 </td>
10776
10777 <td class="entry_range">
10778 <p>Optional.<wbr/>
10779Must be supported if <a href="#static_android.sensor.availableTestPatternModes">android.<wbr/>sensor.<wbr/>available<wbr/>Test<wbr/>Pattern<wbr/>Modes</a> contains
10780SOLID_<wbr/>COLOR.<wbr/></p>
10781 </td>
10782
10783 <td class="entry_tags">
10784 </td>
10785
10786 </tr>
10787 <tr class="entries_header">
10788 <th class="th_details" colspan="5">Details</th>
10789 </tr>
10790 <tr class="entry_cont">
10791 <td class="entry_details" colspan="5">
10792 <p>Each color channel is treated as an unsigned 32-bit integer.<wbr/>
10793The camera device then uses the most significant X bits
10794that correspond to how many bits are in its Bayer raw sensor
10795output.<wbr/></p>
10796<p>For example,<wbr/> a sensor with RAW10 Bayer output would use the
1079710 most significant bits from each color channel.<wbr/></p>
10798 </td>
10799 </tr>
10800
10801 <tr class="entries_header">
10802 <th class="th_details" colspan="5">HAL Implementation Details</th>
10803 </tr>
10804 <tr class="entry_cont">
10805 <td class="entry_details" colspan="5">
10806
10807 </td>
10808 </tr>
10809
10810 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
10811 <!-- end of entry -->
10812
10813
10814 <tr class="entry" id="controls_android.sensor.testPatternMode">
10815 <td class="entry_name" rowspan="5">
10816 android.<wbr/>sensor.<wbr/>test<wbr/>Pattern<wbr/>Mode
10817 </td>
10818 <td class="entry_type">
10819 <span class="entry_type_name entry_type_name_enum">int32</span>
10820
10821 <span class="entry_type_visibility"> [public]</span>
10822
10823 <ul class="entry_type_enum">
10824 <li>
10825 <span class="entry_type_enum_name">OFF</span>
10826 <span class="entry_type_enum_notes"><p>Default.<wbr/> No test pattern mode is used,<wbr/> and the camera
10827device returns captures from the image sensor.<wbr/></p></span>
10828 </li>
10829 <li>
10830 <span class="entry_type_enum_name">SOLID_COLOR</span>
10831 <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
10832respective color channel provided in
10833<a href="#controls_android.sensor.testPatternData">android.<wbr/>sensor.<wbr/>test<wbr/>Pattern<wbr/>Data</a>.<wbr/></p>
10834<p>For example:</p>
10835<pre><code>android.<wbr/>testPatternData = [0,<wbr/> 0xFFFFFFFF,<wbr/> 0xFFFFFFFF,<wbr/> 0]
10836</code></pre>
10837<p>All green pixels are 100% green.<wbr/> All red/<wbr/>blue pixels are black.<wbr/></p>
10838<pre><code>android.<wbr/>testPatternData = [0xFFFFFFFF,<wbr/> 0,<wbr/> 0xFFFFFFFF,<wbr/> 0]
10839</code></pre>
10840<p>All red pixels are 100% red.<wbr/> Only the odd green pixels
10841are 100% green.<wbr/> All blue pixels are 100% black.<wbr/></p></span>
10842 </li>
10843 <li>
10844 <span class="entry_type_enum_name">COLOR_BARS</span>
10845 <span class="entry_type_enum_notes"><p>All pixel data is replaced with an 8-bar color pattern.<wbr/></p>
10846<p>The vertical bars (left-to-right) are as follows:</p>
10847<ul>
10848<li>100% white</li>
10849<li>yellow</li>
10850<li>cyan</li>
10851<li>green</li>
10852<li>magenta</li>
10853<li>red</li>
10854<li>blue</li>
10855<li>black</li>
10856</ul>
10857<p>In general the image would look like the following:</p>
10858<pre><code>W Y C G M R B K
10859W Y C G M R B K
10860W Y C G M R B K
10861W Y C G M R B K
10862W Y C G M R B K
10863.<wbr/> .<wbr/> .<wbr/> .<wbr/> .<wbr/> .<wbr/> .<wbr/> .<wbr/>
10864.<wbr/> .<wbr/> .<wbr/> .<wbr/> .<wbr/> .<wbr/> .<wbr/> .<wbr/>
10865.<wbr/> .<wbr/> .<wbr/> .<wbr/> .<wbr/> .<wbr/> .<wbr/> .<wbr/>
10866
10867(B = Blue,<wbr/> K = Black)
10868</code></pre>
10869<p>Each bar should take up 1/<wbr/>8 of the sensor pixel array width.<wbr/>
10870When this is not possible,<wbr/> the bar size should be rounded
10871down to the nearest integer and the pattern can repeat
10872on the right side.<wbr/></p>
10873<p>Each bar's height must always take up the full sensor
10874pixel array height.<wbr/></p>
10875<p>Each pixel in this test pattern must be set to either
108760% intensity or 100% intensity.<wbr/></p></span>
10877 </li>
10878 <li>
10879 <span class="entry_type_enum_name">COLOR_BARS_FADE_TO_GRAY</span>
10880 <span class="entry_type_enum_notes"><p>The test pattern is similar to COLOR_<wbr/>BARS,<wbr/> except that
10881each bar should start at its specified color at the top,<wbr/>
10882and fade to gray at the bottom.<wbr/></p>
10883<p>Furthermore each bar is further subdivided into a left and
10884right half.<wbr/> The left half should have a smooth gradient,<wbr/>
10885and the right half should have a quantized gradient.<wbr/></p>
10886<p>In particular,<wbr/> the right half's should consist of blocks of the
10887same color for 1/<wbr/>16th active sensor pixel array width.<wbr/></p>
10888<p>The least significant bits in the quantized gradient should
10889be copied from the most significant bits of the smooth gradient.<wbr/></p>
10890<p>The height of each bar should always be a multiple of 128.<wbr/>
10891When this is not the case,<wbr/> the pattern should repeat at the bottom
10892of the image.<wbr/></p></span>
10893 </li>
10894 <li>
10895 <span class="entry_type_enum_name">PN9</span>
10896 <span class="entry_type_enum_notes"><p>All pixel data is replaced by a pseudo-random sequence
10897generated from a PN9 512-bit sequence (typically implemented
10898in hardware with a linear feedback shift register).<wbr/></p>
10899<p>The generator should be reset at the beginning of each frame,<wbr/>
10900and thus each subsequent raw frame with this test pattern should
10901be exactly the same as the last.<wbr/></p></span>
10902 </li>
10903 <li>
10904 <span class="entry_type_enum_name">CUSTOM1</span>
10905 <span class="entry_type_enum_value">256</span>
10906 <span class="entry_type_enum_notes"><p>The first custom test pattern.<wbr/> All custom patterns that are
10907available only on this camera device are at least this numeric
10908value.<wbr/></p>
10909<p>All of the custom test patterns will be static
10910(that is the raw image must not vary from frame to frame).<wbr/></p></span>
10911 </li>
10912 </ul>
10913
10914 </td> <!-- entry_type -->
10915
10916 <td class="entry_description">
10917 <p>When enabled,<wbr/> the sensor sends a test pattern instead of
10918doing a real exposure from the camera.<wbr/></p>
10919 </td>
10920
10921 <td class="entry_units">
10922 </td>
10923
10924 <td class="entry_range">
10925 <p>Optional.<wbr/> Defaults to OFF.<wbr/> Value must be one of
10926<a href="#static_android.sensor.availableTestPatternModes">android.<wbr/>sensor.<wbr/>available<wbr/>Test<wbr/>Pattern<wbr/>Modes</a></p>
10927 </td>
10928
10929 <td class="entry_tags">
10930 </td>
10931
10932 </tr>
10933 <tr class="entries_header">
10934 <th class="th_details" colspan="5">Details</th>
10935 </tr>
10936 <tr class="entry_cont">
10937 <td class="entry_details" colspan="5">
10938 <p>When a test pattern is enabled,<wbr/> all manual sensor controls specified
10939by android.<wbr/>sensor.<wbr/>* should be ignored.<wbr/> All other controls should
10940work as normal.<wbr/></p>
10941<p>For example,<wbr/> if manual flash is enabled,<wbr/> flash firing should still
10942occur (and that the test pattern remain unmodified,<wbr/> since the flash
10943would not actually affect it).<wbr/></p>
10944 </td>
10945 </tr>
10946
10947 <tr class="entries_header">
10948 <th class="th_details" colspan="5">HAL Implementation Details</th>
10949 </tr>
10950 <tr class="entry_cont">
10951 <td class="entry_details" colspan="5">
10952 <p>All test patterns are specified in the Bayer domain.<wbr/></p>
10953<p>The HAL may choose to substitute test patterns from the sensor
10954with test patterns from on-device memory.<wbr/> In that case,<wbr/> it should be
10955indistinguishable to the ISP whether the data came from the
10956sensor interconnect bus (such as CSI2) or memory.<wbr/></p>
10957 </td>
10958 </tr>
10959
10960 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
10961 <!-- end of entry -->
10962
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010963
10964
10965 <!-- end of kind -->
10966 </tbody>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080010967 <tr><td colspan="6" class="kind">static</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010968
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070010969 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010970 <tr>
10971 <th class="th_name">Property Name</th>
10972 <th class="th_type">Type</th>
10973 <th class="th_description">Description</th>
10974 <th class="th_units">Units</th>
10975 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010976 <th class="th_tags">Tags</th>
10977 </tr>
10978 </thead>
10979
10980 <tbody>
10981
10982
10983
10984
10985
10986
10987
10988
10989
10990
10991
10992
10993 <tr class="entry" id="static_android.sensor.info.activeArraySize">
Zhijun Hebdc94c42014-01-21 18:28:30 -080010994 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080010995 android.<wbr/>sensor.<wbr/>info.<wbr/>active<wbr/>Array<wbr/>Size
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080010996 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010997 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080010998 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010999 <span class="entry_type_container">x</span>
11000
11001 <span class="entry_type_array">
11002 4
11003 </span>
Igor Murashkinb8dc8812013-07-17 16:29:34 -070011004 <span class="entry_type_visibility"> [public as rectangle]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -080011005 <div class="entry_type_notes">Four ints defining the active pixel rectangle</div>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011006
11007
11008 </td> <!-- entry_type -->
11009
11010 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080011011 <p>Area of raw data which corresponds to only
Zhijun Hebdc94c42014-01-21 18:28:30 -080011012active pixels.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011013 </td>
11014
11015 <td class="entry_units">
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011016 </td>
11017
11018 <td class="entry_range">
Zhijun Hebdc94c42014-01-21 18:28:30 -080011019 <p>This array contains <code>(xmin,<wbr/> ymin,<wbr/> width,<wbr/> height)</code>.<wbr/> The <code>(xmin,<wbr/> ymin)</code> must be
11020&gt;= <code>(0,<wbr/>0)</code>.<wbr/> The <code>(width,<wbr/> height)</code> must be &lt;=
11021<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 -080011022 </td>
11023
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011024 <td class="entry_tags">
11025 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080011026 <li><a href="#tag_DNG">DNG</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011027 </ul>
11028 </td>
11029
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011030 </tr>
Zhijun Hebdc94c42014-01-21 18:28:30 -080011031 <tr class="entries_header">
11032 <th class="th_details" colspan="5">Details</th>
11033 </tr>
11034 <tr class="entry_cont">
11035 <td class="entry_details" colspan="5">
11036 <p>It is smaller or equal to
11037sensor full pixel array,<wbr/> which could include the black calibration pixels.<wbr/></p>
11038 </td>
11039 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011040
11041
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011042 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
11043 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011044
11045
Zhijun He69fc0ea2013-07-17 09:42:58 -070011046 <tr class="entry" id="static_android.sensor.info.sensitivityRange">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011047 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -080011048 android.<wbr/>sensor.<wbr/>info.<wbr/>sensitivity<wbr/>Range
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011049 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011050 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080011051 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011052 <span class="entry_type_container">x</span>
11053
11054 <span class="entry_type_array">
Zhijun He69fc0ea2013-07-17 09:42:58 -070011055 2
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011056 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070011057 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -080011058 <div class="entry_type_notes">Range of supported sensitivities</div>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011059
11060
11061 </td> <!-- entry_type -->
11062
11063 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080011064 <p>Range of valid sensitivities</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011065 </td>
11066
11067 <td class="entry_units">
11068 </td>
11069
11070 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -080011071 <p>Min &lt;= 100,<wbr/> Max &gt;= 1600</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011072 </td>
11073
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011074 <td class="entry_tags">
11075 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080011076 <li><a href="#tag_BC">BC</a></li>
11077 <li><a href="#tag_V1">V1</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011078 </ul>
11079 </td>
11080
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011081 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011082
11083
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011084 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
11085 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011086
11087
11088 <tr class="entry" id="static_android.sensor.info.colorFilterArrangement">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011089 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -080011090 android.<wbr/>sensor.<wbr/>info.<wbr/>color<wbr/>Filter<wbr/>Arrangement
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011091 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011092 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080011093 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011094
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070011095 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011096
11097 <ul class="entry_type_enum">
11098 <li>
11099 <span class="entry_type_enum_name">RGGB</span>
11100 </li>
11101 <li>
11102 <span class="entry_type_enum_name">GRBG</span>
11103 </li>
11104 <li>
11105 <span class="entry_type_enum_name">GBRG</span>
11106 </li>
11107 <li>
11108 <span class="entry_type_enum_name">BGGR</span>
11109 </li>
11110 <li>
11111 <span class="entry_type_enum_name">RGB</span>
Igor Murashkina10351a2014-01-15 17:05:22 -080011112 <span class="entry_type_enum_notes"><p>Sensor is not Bayer; output has 3 16-bit
11113values for each pixel,<wbr/> instead of just 1 16-bit value
11114per pixel.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011115 </li>
11116 </ul>
11117
11118 </td> <!-- entry_type -->
11119
11120 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080011121 <p>Arrangement of color filters on sensor;
Igor Murashkin8aa2a112013-12-09 12:06:17 -080011122represents the colors in the top-left 2x2 section of
Igor Murashkin0b080452013-12-27 15:30:25 -080011123the sensor,<wbr/> in reading order</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011124 </td>
11125
11126 <td class="entry_units">
11127 </td>
11128
11129 <td class="entry_range">
11130 </td>
11131
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011132 <td class="entry_tags">
11133 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080011134 <li><a href="#tag_DNG">DNG</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011135 </ul>
11136 </td>
11137
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011138 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011139
11140
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011141 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
11142 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011143
11144
11145 <tr class="entry" id="static_android.sensor.info.exposureTimeRange">
Igor Murashkin061c6002014-01-27 16:00:26 -080011146 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080011147 android.<wbr/>sensor.<wbr/>info.<wbr/>exposure<wbr/>Time<wbr/>Range
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011148 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011149 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080011150 <span class="entry_type_name">int64</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011151 <span class="entry_type_container">x</span>
11152
11153 <span class="entry_type_array">
11154 2
11155 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070011156 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -080011157 <div class="entry_type_notes">nanoseconds</div>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011158
11159
11160 </td> <!-- entry_type -->
11161
11162 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080011163 <p>Range of valid exposure
Igor Murashkin061c6002014-01-27 16:00:26 -080011164times 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 -080011165 </td>
11166
11167 <td class="entry_units">
11168 </td>
11169
11170 <td class="entry_range">
Igor Murashkin061c6002014-01-27 16:00:26 -080011171 <p>Min &lt;= 100e3 (100 us),<wbr/> Max &gt;= 1e9 (1
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -080011172sec)</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011173 </td>
11174
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011175 <td class="entry_tags">
11176 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080011177 <li><a href="#tag_V1">V1</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011178 </ul>
11179 </td>
11180
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011181 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011182
Igor Murashkin061c6002014-01-27 16:00:26 -080011183 <tr class="entries_header">
11184 <th class="th_details" colspan="5">HAL Implementation Details</th>
11185 </tr>
11186 <tr class="entry_cont">
11187 <td class="entry_details" colspan="5">
11188 <p>The maximum of the range must be at least
111891 second.<wbr/> It should be at least 30 seconds.<wbr/></p>
11190 </td>
11191 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011192
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011193 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
11194 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011195
11196
11197 <tr class="entry" id="static_android.sensor.info.maxFrameDuration">
Igor Murashkin061c6002014-01-27 16:00:26 -080011198 <td class="entry_name" rowspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -080011199 android.<wbr/>sensor.<wbr/>info.<wbr/>max<wbr/>Frame<wbr/>Duration
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011200 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011201 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080011202 <span class="entry_type_name">int64</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011203
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070011204 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011205
11206
11207 </td> <!-- entry_type -->
11208
11209 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080011210 <p>Maximum possible frame duration (minimum frame
Igor Murashkin061c6002014-01-27 16:00:26 -080011211rate).<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011212 </td>
11213
11214 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -080011215 nanoseconds
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011216 </td>
11217
11218 <td class="entry_range">
Igor Murashkin6cb7c2c2014-01-10 15:12:40 -080011219 <p>&gt;= 30e9</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011220 </td>
11221
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011222 <td class="entry_tags">
11223 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080011224 <li><a href="#tag_BC">BC</a></li>
11225 <li><a href="#tag_V1">V1</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011226 </ul>
11227 </td>
11228
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011229 </tr>
11230 <tr class="entries_header">
11231 <th class="th_details" colspan="5">Details</th>
11232 </tr>
11233 <tr class="entry_cont">
11234 <td class="entry_details" colspan="5">
Igor Murashkin061c6002014-01-27 16:00:26 -080011235 <p>The largest possible android.<wbr/>sensor.<wbr/>frame<wbr/>Duration
11236that will be accepted by the camera device.<wbr/> Attempting to use
11237frame durations beyond the maximum will result in the frame duration
11238being clipped to the maximum.<wbr/> See that control
11239for a full definition of frame durations.<wbr/></p>
11240<p>Refer to
11241<a href="#static_android.scaler.availableProcessedMinDurations">android.<wbr/>scaler.<wbr/>available<wbr/>Processed<wbr/>Min<wbr/>Durations</a>,<wbr/>
11242<a href="#static_android.scaler.availableJpegMinDurations">android.<wbr/>scaler.<wbr/>available<wbr/>Jpeg<wbr/>Min<wbr/>Durations</a>,<wbr/> and
11243<a href="#static_android.scaler.availableRawMinDurations">android.<wbr/>scaler.<wbr/>available<wbr/>Raw<wbr/>Min<wbr/>Durations</a> for the minimum
11244frame duration values.<wbr/></p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011245 </td>
11246 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011247
Igor Murashkin061c6002014-01-27 16:00:26 -080011248 <tr class="entries_header">
11249 <th class="th_details" colspan="5">HAL Implementation Details</th>
11250 </tr>
11251 <tr class="entry_cont">
11252 <td class="entry_details" colspan="5">
11253 <p>This value must be at least 1 second.<wbr/> It should be at least 30
11254seconds (30e9 ns).<wbr/></p>
11255<p>android.<wbr/>sensor.<wbr/>max<wbr/>Frame<wbr/>Duration must be greater or equal to the
11256android.<wbr/>sensor.<wbr/>exposure<wbr/>Time<wbr/>Range max value (since exposure time
11257overrides frame duration).<wbr/></p>
11258 </td>
11259 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011260
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011261 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
11262 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011263
11264
11265 <tr class="entry" id="static_android.sensor.info.physicalSize">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011266 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080011267 android.<wbr/>sensor.<wbr/>info.<wbr/>physical<wbr/>Size
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011268 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011269 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080011270 <span class="entry_type_name">float</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011271 <span class="entry_type_container">x</span>
11272
11273 <span class="entry_type_array">
11274 2
11275 </span>
Timothy Knightec817d52013-08-16 16:15:29 -070011276 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -080011277 <div class="entry_type_notes">width x height in millimeters</div>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011278
11279
11280 </td> <!-- entry_type -->
11281
11282 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080011283 <p>The physical dimensions of the full pixel
11284array</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011285 </td>
11286
11287 <td class="entry_units">
11288 </td>
11289
11290 <td class="entry_range">
11291 </td>
11292
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011293 <td class="entry_tags">
11294 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080011295 <li><a href="#tag_V1">V1</a></li>
11296 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011297 </ul>
11298 </td>
11299
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011300 </tr>
11301 <tr class="entries_header">
11302 <th class="th_details" colspan="5">Details</th>
11303 </tr>
11304 <tr class="entry_cont">
11305 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -080011306 <p>Needed for FOV calculation for old API</p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011307 </td>
11308 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011309
11310
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011311 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
11312 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011313
11314
11315 <tr class="entry" id="static_android.sensor.info.pixelArraySize">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011316 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080011317 android.<wbr/>sensor.<wbr/>info.<wbr/>pixel<wbr/>Array<wbr/>Size
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011318 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011319 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080011320 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011321 <span class="entry_type_container">x</span>
11322
11323 <span class="entry_type_array">
11324 2
11325 </span>
Igor Murashkinb8dc8812013-07-17 16:29:34 -070011326 <span class="entry_type_visibility"> [system as size]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011327
11328
11329 </td> <!-- entry_type -->
11330
11331 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080011332 <p>Dimensions of full pixel array,<wbr/> possibly
Zhijun Hebdc94c42014-01-21 18:28:30 -080011333including black calibration pixels.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011334 </td>
11335
11336 <td class="entry_units">
11337 </td>
11338
11339 <td class="entry_range">
11340 </td>
11341
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011342 <td class="entry_tags">
11343 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080011344 <li><a href="#tag_DNG">DNG</a></li>
11345 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011346 </ul>
11347 </td>
11348
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011349 </tr>
11350 <tr class="entries_header">
11351 <th class="th_details" colspan="5">Details</th>
11352 </tr>
11353 <tr class="entry_cont">
11354 <td class="entry_details" colspan="5">
Zhijun Hebdc94c42014-01-21 18:28:30 -080011355 <p>The maximum output resolution for raw format in
11356<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 -080011357 </td>
11358 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011359
11360
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011361 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
11362 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011363
11364
11365 <tr class="entry" id="static_android.sensor.info.whiteLevel">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011366 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080011367 android.<wbr/>sensor.<wbr/>info.<wbr/>white<wbr/>Level
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011368 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011369 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080011370 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011371
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070011372 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011373
11374
11375 </td> <!-- entry_type -->
11376
11377 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080011378 <p>Maximum raw value output by
11379sensor</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011380 </td>
11381
11382 <td class="entry_units">
11383 </td>
11384
11385 <td class="entry_range">
Igor Murashkin6cb7c2c2014-01-10 15:12:40 -080011386 <p>&gt; 1024 (10-bit output)</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011387 </td>
11388
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011389 <td class="entry_tags">
11390 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080011391 <li><a href="#tag_DNG">DNG</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011392 </ul>
11393 </td>
11394
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011395 </tr>
11396 <tr class="entries_header">
11397 <th class="th_details" colspan="5">Details</th>
11398 </tr>
11399 <tr class="entry_cont">
11400 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -080011401 <p>Defines sensor bit depth (10-14 bits is
11402expected)</p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011403 </td>
11404 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011405
11406
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011407 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
11408 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011409
11410
11411
11412
11413
11414 <tr class="entry" id="static_android.sensor.baseGainFactor">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011415 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -080011416 android.<wbr/>sensor.<wbr/>base<wbr/>Gain<wbr/>Factor
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011417 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011418 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080011419 <span class="entry_type_name">rational</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011420
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070011421 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011422
11423
11424 </td> <!-- entry_type -->
11425
11426 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080011427 <p>Gain factor from electrons to raw units when
11428ISO=100</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011429 </td>
11430
11431 <td class="entry_units">
11432 </td>
11433
11434 <td class="entry_range">
11435 </td>
11436
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011437 <td class="entry_tags">
11438 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080011439 <li><a href="#tag_V1">V1</a></li>
Alex Rayef40ad62013-10-01 17:52:33 -070011440 <li><a href="#tag_FULL">FULL</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011441 </ul>
11442 </td>
11443
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011444 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011445
11446
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011447 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
11448 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011449
11450
11451 <tr class="entry" id="static_android.sensor.blackLevelPattern">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011452 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080011453 android.<wbr/>sensor.<wbr/>black<wbr/>Level<wbr/>Pattern
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011454 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011455 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080011456 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011457 <span class="entry_type_container">x</span>
11458
11459 <span class="entry_type_array">
11460 4
11461 </span>
Ruben Brunk24bdaaf2014-01-31 14:11:20 -080011462 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -080011463 <div class="entry_type_notes">2x2 raw count block</div>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011464
11465
11466 </td> <!-- entry_type -->
11467
11468 <td class="entry_description">
Ruben Brunk24bdaaf2014-01-31 14:11:20 -080011469 <p>A fixed black level offset for each of the color filter arrangement
11470(CFA) mosaic channels.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011471 </td>
11472
11473 <td class="entry_units">
11474 </td>
11475
11476 <td class="entry_range">
Ruben Brunk24bdaaf2014-01-31 14:11:20 -080011477 <p>&gt;= 0 for each.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011478 </td>
11479
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011480 <td class="entry_tags">
11481 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080011482 <li><a href="#tag_DNG">DNG</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011483 </ul>
11484 </td>
11485
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011486 </tr>
11487 <tr class="entries_header">
11488 <th class="th_details" colspan="5">Details</th>
11489 </tr>
11490 <tr class="entry_cont">
11491 <td class="entry_details" colspan="5">
Ruben Brunk24bdaaf2014-01-31 14:11:20 -080011492 <p>This tag specifies the zero light value for each of the CFA mosaic
11493channels in the camera sensor.<wbr/></p>
11494<p>The values are given in row-column scan order,<wbr/> with the first value
11495corresponding to the element of the CFA in row=0,<wbr/> column=0.<wbr/></p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011496 </td>
11497 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011498
11499
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011500 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
11501 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011502
11503
11504 <tr class="entry" id="static_android.sensor.calibrationTransform1">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011505 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -080011506 android.<wbr/>sensor.<wbr/>calibration<wbr/>Transform1
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011507 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011508 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080011509 <span class="entry_type_name">rational</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011510 <span class="entry_type_container">x</span>
11511
11512 <span class="entry_type_array">
11513 9
11514 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070011515 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -080011516 <div class="entry_type_notes">3x3 matrix in row-major-order</div>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011517
11518
11519 </td> <!-- entry_type -->
11520
11521 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080011522 <p>Per-device calibration on top of color space
11523transform 1</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011524 </td>
11525
11526 <td class="entry_units">
11527 </td>
11528
11529 <td class="entry_range">
11530 </td>
11531
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011532 <td class="entry_tags">
11533 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080011534 <li><a href="#tag_DNG">DNG</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011535 </ul>
11536 </td>
11537
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011538 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011539
11540
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011541 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
11542 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011543
11544
11545 <tr class="entry" id="static_android.sensor.calibrationTransform2">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011546 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -080011547 android.<wbr/>sensor.<wbr/>calibration<wbr/>Transform2
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011548 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011549 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080011550 <span class="entry_type_name">rational</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011551 <span class="entry_type_container">x</span>
11552
11553 <span class="entry_type_array">
11554 9
11555 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070011556 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -080011557 <div class="entry_type_notes">3x3 matrix in row-major-order</div>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011558
11559
11560 </td> <!-- entry_type -->
11561
11562 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080011563 <p>Per-device calibration on top of color space
11564transform 2</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011565 </td>
11566
11567 <td class="entry_units">
11568 </td>
11569
11570 <td class="entry_range">
11571 </td>
11572
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011573 <td class="entry_tags">
11574 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080011575 <li><a href="#tag_DNG">DNG</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011576 </ul>
11577 </td>
11578
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011579 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011580
11581
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011582 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
11583 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011584
11585
11586 <tr class="entry" id="static_android.sensor.colorTransform1">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011587 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080011588 android.<wbr/>sensor.<wbr/>color<wbr/>Transform1
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011589 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011590 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080011591 <span class="entry_type_name">rational</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011592 <span class="entry_type_container">x</span>
11593
11594 <span class="entry_type_array">
11595 9
11596 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070011597 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -080011598 <div class="entry_type_notes">3x3 matrix in row-major-order</div>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011599
11600
11601 </td> <!-- entry_type -->
11602
11603 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080011604 <p>Linear mapping from XYZ (D50) color space to
11605reference linear sensor color,<wbr/> for first reference
11606illuminant</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011607 </td>
11608
11609 <td class="entry_units">
11610 </td>
11611
11612 <td class="entry_range">
11613 </td>
11614
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011615 <td class="entry_tags">
11616 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080011617 <li><a href="#tag_DNG">DNG</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011618 </ul>
11619 </td>
11620
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011621 </tr>
11622 <tr class="entries_header">
11623 <th class="th_details" colspan="5">Details</th>
11624 </tr>
11625 <tr class="entry_cont">
11626 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -080011627 <p>Use as follows XYZ = inv(transform) * clip( (raw -
11628black level(raw) ) /<wbr/> ( white level - max black level) ).<wbr/>
11629At least in the simple case</p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011630 </td>
11631 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011632
11633
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011634 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
11635 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011636
11637
11638 <tr class="entry" id="static_android.sensor.colorTransform2">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011639 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -080011640 android.<wbr/>sensor.<wbr/>color<wbr/>Transform2
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011641 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011642 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080011643 <span class="entry_type_name">rational</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011644 <span class="entry_type_container">x</span>
11645
11646 <span class="entry_type_array">
11647 9
11648 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070011649 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -080011650 <div class="entry_type_notes">3x3 matrix in row-major-order</div>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011651
11652
11653 </td> <!-- entry_type -->
11654
11655 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080011656 <p>Linear mapping from XYZ (D50) color space to
11657reference linear sensor color,<wbr/> for second reference
11658illuminant</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011659 </td>
11660
11661 <td class="entry_units">
11662 </td>
11663
11664 <td class="entry_range">
11665 </td>
11666
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011667 <td class="entry_tags">
11668 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080011669 <li><a href="#tag_DNG">DNG</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011670 </ul>
11671 </td>
11672
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011673 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011674
11675
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011676 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
11677 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011678
11679
11680 <tr class="entry" id="static_android.sensor.forwardMatrix1">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011681 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -080011682 android.<wbr/>sensor.<wbr/>forward<wbr/>Matrix1
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011683 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011684 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080011685 <span class="entry_type_name">rational</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011686 <span class="entry_type_container">x</span>
11687
11688 <span class="entry_type_array">
11689 9
11690 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070011691 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -080011692 <div class="entry_type_notes">3x3 matrix in row-major-order</div>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011693
11694
11695 </td> <!-- entry_type -->
11696
11697 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080011698 <p>Used by DNG for better WB
11699adaptation</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011700 </td>
11701
11702 <td class="entry_units">
11703 </td>
11704
11705 <td class="entry_range">
11706 </td>
11707
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011708 <td class="entry_tags">
11709 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080011710 <li><a href="#tag_DNG">DNG</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011711 </ul>
11712 </td>
11713
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011714 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011715
11716
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011717 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
11718 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011719
11720
11721 <tr class="entry" id="static_android.sensor.forwardMatrix2">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011722 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -080011723 android.<wbr/>sensor.<wbr/>forward<wbr/>Matrix2
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011724 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011725 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080011726 <span class="entry_type_name">rational</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011727 <span class="entry_type_container">x</span>
11728
11729 <span class="entry_type_array">
11730 9
11731 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070011732 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -080011733 <div class="entry_type_notes">3x3 matrix in row-major-order</div>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011734
11735
11736 </td> <!-- entry_type -->
11737
11738 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080011739 <p>Used by DNG for better WB
11740adaptation</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011741 </td>
11742
11743 <td class="entry_units">
11744 </td>
11745
11746 <td class="entry_range">
11747 </td>
11748
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011749 <td class="entry_tags">
11750 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080011751 <li><a href="#tag_DNG">DNG</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011752 </ul>
11753 </td>
11754
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011755 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011756
11757
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011758 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
11759 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011760
11761
11762 <tr class="entry" id="static_android.sensor.maxAnalogSensitivity">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011763 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080011764 android.<wbr/>sensor.<wbr/>max<wbr/>Analog<wbr/>Sensitivity
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011765 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011766 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080011767 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011768
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070011769 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011770
11771
11772 </td> <!-- entry_type -->
11773
11774 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080011775 <p>Maximum sensitivity that is implemented
Zhijun Hebdc94c42014-01-21 18:28:30 -080011776purely through analog gain.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011777 </td>
11778
11779 <td class="entry_units">
11780 </td>
11781
11782 <td class="entry_range">
11783 </td>
11784
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011785 <td class="entry_tags">
11786 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080011787 <li><a href="#tag_V1">V1</a></li>
Alex Rayef40ad62013-10-01 17:52:33 -070011788 <li><a href="#tag_FULL">FULL</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011789 </ul>
11790 </td>
11791
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011792 </tr>
11793 <tr class="entries_header">
11794 <th class="th_details" colspan="5">Details</th>
11795 </tr>
11796 <tr class="entry_cont">
11797 <td class="entry_details" colspan="5">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -080011798 <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 -080011799equal to this,<wbr/> all applied gain must be analog.<wbr/> For
Zhijun Hebdc94c42014-01-21 18:28:30 -080011800values above this,<wbr/> the gain applied can be a mix of analog and
11801digital.<wbr/></p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011802 </td>
11803 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011804
11805
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011806 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
11807 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011808
11809
11810 <tr class="entry" id="static_android.sensor.noiseModelCoefficients">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011811 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080011812 android.<wbr/>sensor.<wbr/>noise<wbr/>Model<wbr/>Coefficients
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011813 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011814 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080011815 <span class="entry_type_name">float</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011816 <span class="entry_type_container">x</span>
11817
11818 <span class="entry_type_array">
11819 2
11820 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070011821 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -080011822 <div class="entry_type_notes">float constants A,<wbr/> B for the noise variance model</div>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011823
11824
11825 </td> <!-- entry_type -->
11826
11827 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080011828 <p>Estimation of sensor noise
11829characteristics</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011830 </td>
11831
11832 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -080011833 var(raw pixel value) = electrons * (baseGainFactor
11834 * iso/<wbr/>100)^2 + A * (baseGainFactor * iso/<wbr/>100)^2 +
11835 B
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011836 </td>
11837
11838 <td class="entry_range">
11839 </td>
11840
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011841 <td class="entry_tags">
11842 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080011843 <li><a href="#tag_V1">V1</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011844 </ul>
11845 </td>
11846
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011847 </tr>
11848 <tr class="entries_header">
11849 <th class="th_details" colspan="5">Details</th>
11850 </tr>
11851 <tr class="entry_cont">
11852 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -080011853 <p>A represents sensor read noise before analog
11854amplification; B represents noise from A/<wbr/>D conversion and
11855other circuits after amplification.<wbr/> Both noise sources
11856are assumed to be gaussian,<wbr/> independent,<wbr/> and not to vary
11857across the sensor</p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011858 </td>
11859 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011860
11861
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011862 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
11863 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011864
11865
11866 <tr class="entry" id="static_android.sensor.orientation">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011867 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -080011868 android.<wbr/>sensor.<wbr/>orientation
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011869 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011870 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080011871 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011872
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070011873 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011874
11875
11876 </td> <!-- entry_type -->
11877
11878 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080011879 <p>Clockwise angle through which the output
Igor Murashkin8aa2a112013-12-09 12:06:17 -080011880image needs to be rotated to be upright on the device
Igor Murashkin0b080452013-12-27 15:30:25 -080011881screen in its native orientation.<wbr/> Also defines the
11882direction of rolling shutter readout,<wbr/> which is from top
11883to bottom in the sensor's coordinate system</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011884 </td>
11885
11886 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -080011887 degrees clockwise rotation,<wbr/> only multiples of
11888 90
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011889 </td>
11890
11891 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -080011892 <p>0,<wbr/>90,<wbr/>180,<wbr/>270</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011893 </td>
11894
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011895 <td class="entry_tags">
11896 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080011897 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011898 </ul>
11899 </td>
11900
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011901 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011902
11903
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011904 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
11905 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011906
11907
11908 <tr class="entry" id="static_android.sensor.referenceIlluminant1">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011909 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080011910 android.<wbr/>sensor.<wbr/>reference<wbr/>Illuminant1
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011911 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011912 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080011913 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011914
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070011915 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011916
11917 <ul class="entry_type_enum">
11918 <li>
11919 <span class="entry_type_enum_name">DAYLIGHT</span>
11920 <span class="entry_type_enum_value">1</span>
11921 </li>
11922 <li>
11923 <span class="entry_type_enum_name">FLUORESCENT</span>
11924 <span class="entry_type_enum_value">2</span>
11925 </li>
11926 <li>
11927 <span class="entry_type_enum_name">TUNGSTEN</span>
11928 <span class="entry_type_enum_value">3</span>
Igor Murashkina10351a2014-01-15 17:05:22 -080011929 <span class="entry_type_enum_notes"><p>Incandescent light</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011930 </li>
11931 <li>
11932 <span class="entry_type_enum_name">FLASH</span>
11933 <span class="entry_type_enum_value">4</span>
11934 </li>
11935 <li>
11936 <span class="entry_type_enum_name">FINE_WEATHER</span>
11937 <span class="entry_type_enum_value">9</span>
11938 </li>
11939 <li>
11940 <span class="entry_type_enum_name">CLOUDY_WEATHER</span>
11941 <span class="entry_type_enum_value">10</span>
11942 </li>
11943 <li>
11944 <span class="entry_type_enum_name">SHADE</span>
11945 <span class="entry_type_enum_value">11</span>
11946 </li>
11947 <li>
11948 <span class="entry_type_enum_name">DAYLIGHT_FLUORESCENT</span>
11949 <span class="entry_type_enum_value">12</span>
Igor Murashkina10351a2014-01-15 17:05:22 -080011950 <span class="entry_type_enum_notes"><p>D 5700 - 7100K</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011951 </li>
11952 <li>
11953 <span class="entry_type_enum_name">DAY_WHITE_FLUORESCENT</span>
11954 <span class="entry_type_enum_value">13</span>
Igor Murashkina10351a2014-01-15 17:05:22 -080011955 <span class="entry_type_enum_notes"><p>N 4600 - 5400K</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011956 </li>
11957 <li>
11958 <span class="entry_type_enum_name">COOL_WHITE_FLUORESCENT</span>
11959 <span class="entry_type_enum_value">14</span>
Igor Murashkina10351a2014-01-15 17:05:22 -080011960 <span class="entry_type_enum_notes"><p>W 3900 - 4500K</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011961 </li>
11962 <li>
11963 <span class="entry_type_enum_name">WHITE_FLUORESCENT</span>
11964 <span class="entry_type_enum_value">15</span>
Igor Murashkina10351a2014-01-15 17:05:22 -080011965 <span class="entry_type_enum_notes"><p>WW 3200 - 3700K</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011966 </li>
11967 <li>
11968 <span class="entry_type_enum_name">STANDARD_A</span>
11969 <span class="entry_type_enum_value">17</span>
11970 </li>
11971 <li>
11972 <span class="entry_type_enum_name">STANDARD_B</span>
11973 <span class="entry_type_enum_value">18</span>
11974 </li>
11975 <li>
11976 <span class="entry_type_enum_name">STANDARD_C</span>
11977 <span class="entry_type_enum_value">19</span>
11978 </li>
11979 <li>
11980 <span class="entry_type_enum_name">D55</span>
11981 <span class="entry_type_enum_value">20</span>
11982 </li>
11983 <li>
11984 <span class="entry_type_enum_name">D65</span>
11985 <span class="entry_type_enum_value">21</span>
11986 </li>
11987 <li>
11988 <span class="entry_type_enum_name">D75</span>
11989 <span class="entry_type_enum_value">22</span>
11990 </li>
11991 <li>
11992 <span class="entry_type_enum_name">D50</span>
11993 <span class="entry_type_enum_value">23</span>
11994 </li>
11995 <li>
11996 <span class="entry_type_enum_name">ISO_STUDIO_TUNGSTEN</span>
11997 <span class="entry_type_enum_value">24</span>
11998 </li>
11999 </ul>
12000
12001 </td> <!-- entry_type -->
12002
12003 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080012004 <p>Light source used to define transform
120051</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012006 </td>
12007
12008 <td class="entry_units">
12009 </td>
12010
12011 <td class="entry_range">
12012 </td>
12013
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012014 <td class="entry_tags">
12015 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080012016 <li><a href="#tag_DNG">DNG</a></li>
12017 <li><a href="#tag_EXIF">EXIF</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012018 </ul>
12019 </td>
12020
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012021 </tr>
12022 <tr class="entries_header">
12023 <th class="th_details" colspan="5">Details</th>
12024 </tr>
12025 <tr class="entry_cont">
12026 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -080012027 <p>[EXIF LightSource tag] Must all these be
12028supported? Need CCT for each!</p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012029 </td>
12030 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080012031
12032
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012033 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
12034 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012035
12036
12037 <tr class="entry" id="static_android.sensor.referenceIlluminant2">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080012038 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -080012039 android.<wbr/>sensor.<wbr/>reference<wbr/>Illuminant2
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080012040 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012041 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080012042 <span class="entry_type_name">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012043
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070012044 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012045
12046
12047 </td> <!-- entry_type -->
12048
12049 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080012050 <p>Light source used to define transform
120512</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012052 </td>
12053
12054 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -080012055 Same as illuminant 1
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012056 </td>
12057
12058 <td class="entry_range">
12059 </td>
12060
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012061 <td class="entry_tags">
12062 </td>
12063
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012064 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080012065
12066
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012067 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
12068 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012069
Igor Murashkina46e02f2014-01-09 17:43:38 -080012070
12071 <tr class="entry" id="static_android.sensor.availableTestPatternModes">
12072 <td class="entry_name" rowspan="1">
12073 android.<wbr/>sensor.<wbr/>available<wbr/>Test<wbr/>Pattern<wbr/>Modes
12074 </td>
12075 <td class="entry_type">
12076 <span class="entry_type_name">byte</span>
12077
12078 <span class="entry_type_visibility"> [public]</span>
12079
12080
12081 </td> <!-- entry_type -->
12082
12083 <td class="entry_description">
12084 <p>Optional.<wbr/> Defaults to [OFF].<wbr/> Lists the supported test
12085pattern modes for android.<wbr/>test.<wbr/>pattern<wbr/>Mode.<wbr/></p>
12086 </td>
12087
12088 <td class="entry_units">
12089 </td>
12090
12091 <td class="entry_range">
12092 <p>Must include OFF.<wbr/> All custom modes must be &gt;= CUSTOM1</p>
12093 </td>
12094
12095 <td class="entry_tags">
12096 </td>
12097
12098 </tr>
12099
12100
12101 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
12102 <!-- end of entry -->
12103
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012104
12105
12106 <!-- end of kind -->
12107 </tbody>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012108 <tr><td colspan="6" class="kind">dynamic</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012109
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070012110 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012111 <tr>
12112 <th class="th_name">Property Name</th>
12113 <th class="th_type">Type</th>
12114 <th class="th_description">Description</th>
12115 <th class="th_units">Units</th>
12116 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012117 <th class="th_tags">Tags</th>
12118 </tr>
12119 </thead>
12120
12121 <tbody>
12122
12123
12124
12125
12126
12127
12128
12129
12130
12131
12132 <tr class="entry" id="dynamic_android.sensor.exposureTime">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080012133 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080012134 android.<wbr/>sensor.<wbr/>exposure<wbr/>Time
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080012135 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012136 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080012137 <span class="entry_type_name">int64</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012138
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070012139 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012140
12141
12142 </td> <!-- entry_type -->
12143
12144 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080012145 <p>Duration each pixel is exposed to
12146light.<wbr/></p>
12147<p>If the sensor can't expose this exact duration,<wbr/> it should shorten the
12148duration exposed to the nearest possible value (rather than expose longer).<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012149 </td>
12150
12151 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -080012152 nanoseconds
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012153 </td>
12154
12155 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -080012156 <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 -080012157 </td>
12158
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012159 <td class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080012160 <ul class="entry_tags">
12161 <li><a href="#tag_V1">V1</a></li>
12162 </ul>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012163 </td>
12164
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012165 </tr>
12166 <tr class="entries_header">
12167 <th class="th_details" colspan="5">Details</th>
12168 </tr>
12169 <tr class="entry_cont">
12170 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -080012171 <p>1/<wbr/>10000 - 30 sec range.<wbr/> No bulb mode</p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012172 </td>
12173 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080012174
12175
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012176 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
12177 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012178
12179
12180 <tr class="entry" id="dynamic_android.sensor.frameDuration">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080012181 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080012182 android.<wbr/>sensor.<wbr/>frame<wbr/>Duration
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080012183 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012184 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080012185 <span class="entry_type_name">int64</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012186
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070012187 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012188
12189
12190 </td> <!-- entry_type -->
12191
12192 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080012193 <p>Duration from start of frame exposure to
Igor Murashkin10f4e0f2014-01-13 17:22:58 -080012194start of next frame exposure.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012195 </td>
12196
12197 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -080012198 nanoseconds
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012199 </td>
12200
12201 <td class="entry_range">
Igor Murashkin10f4e0f2014-01-13 17:22:58 -080012202 <p>See <a href="#static_android.sensor.info.maxFrameDuration">android.<wbr/>sensor.<wbr/>info.<wbr/>max<wbr/>Frame<wbr/>Duration</a>,<wbr/>
12203android.<wbr/>scaler.<wbr/>available*Min<wbr/>Durations.<wbr/> The duration
12204is capped to <code>max(duration,<wbr/> exposureTime + overhead)</code>.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012205 </td>
12206
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012207 <td class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080012208 <ul class="entry_tags">
12209 <li><a href="#tag_V1">V1</a></li>
12210 <li><a href="#tag_BC">BC</a></li>
12211 </ul>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012212 </td>
12213
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012214 </tr>
12215 <tr class="entries_header">
12216 <th class="th_details" colspan="5">Details</th>
12217 </tr>
12218 <tr class="entry_cont">
12219 <td class="entry_details" colspan="5">
Igor Murashkin10f4e0f2014-01-13 17:22:58 -080012220 <p>The maximum frame rate that can be supported by a camera subsystem is
12221a function of many factors:</p>
12222<ul>
12223<li>Requested resolutions of output image streams</li>
12224<li>Availability of binning /<wbr/> skipping modes on the imager</li>
12225<li>The bandwidth of the imager interface</li>
12226<li>The bandwidth of the various ISP processing blocks</li>
12227</ul>
12228<p>Since these factors can vary greatly between different ISPs and
12229sensors,<wbr/> the camera abstraction tries to represent the bandwidth
12230restrictions with as simple a model as possible.<wbr/></p>
12231<p>The model presented has the following characteristics:</p>
12232<ul>
12233<li>The image sensor is always configured to output the smallest
12234resolution possible given the application's requested output stream
12235sizes.<wbr/> The smallest resolution is defined as being at least as large
12236as the largest requested output stream size; the camera pipeline must
12237never digitally upsample sensor data when the crop region covers the
12238whole sensor.<wbr/> In general,<wbr/> this means that if only small output stream
12239resolutions are configured,<wbr/> the sensor can provide a higher frame
12240rate.<wbr/></li>
12241<li>Since any request may use any or all the currently configured
12242output streams,<wbr/> the sensor and ISP must be configured to support
12243scaling a single capture to all the streams at the same time.<wbr/> This
12244means the camera pipeline must be ready to produce the largest
12245requested output size without any delay.<wbr/> Therefore,<wbr/> the overall
12246frame rate of a given configured stream set is governed only by the
12247largest requested stream resolution.<wbr/></li>
12248<li>Using more than one output stream in a request does not affect the
12249frame duration.<wbr/></li>
12250<li>JPEG streams act like processed YUV streams in requests for which
12251they are not included; in requests in which they are directly
12252referenced,<wbr/> they act as JPEG streams.<wbr/> This is because supporting a
12253JPEG stream requires the underlying YUV data to always be ready for
12254use by a JPEG encoder,<wbr/> but the encoder will only be used (and impact
12255frame duration) on requests that actually reference a JPEG stream.<wbr/></li>
12256<li>The JPEG processor can run concurrently to the rest of the camera
12257pipeline,<wbr/> but cannot process more than 1 capture at a time.<wbr/></li>
12258</ul>
12259<p>The necessary information for the application,<wbr/> given the model above,<wbr/>
12260is provided via the android.<wbr/>scaler.<wbr/>available*Min<wbr/>Durations fields.<wbr/>
12261These are used to determine the maximum frame rate /<wbr/> minimum frame
12262duration that is possible for a given stream configuration.<wbr/></p>
12263<p>Specifically,<wbr/> the application can use the following rules to
12264determine the minimum frame duration it can request from the HAL
12265device:</p>
12266<ol>
12267<li>Given the application's currently configured set of output
12268streams,<wbr/> <code>S</code>,<wbr/> divide them into three sets: streams in a JPEG format
12269<code>SJ</code>,<wbr/> streams in a raw sensor format <code>SR</code>,<wbr/> and the rest ('processed')
12270<code>SP</code>.<wbr/></li>
12271<li>For each subset of streams,<wbr/> find the largest resolution (by pixel
12272count) in the subset.<wbr/> This gives (at most) three resolutions <code>RJ</code>,<wbr/>
12273<code>RR</code>,<wbr/> and <code>RP</code>.<wbr/></li>
12274<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
12275no exact match for <code>RP == RJ</code> (in particular there isn't an available
12276processed resolution at the same size as <code>RJ</code>),<wbr/> then set <code>RP</code> equal
12277to the smallest processed resolution that is larger than <code>RJ</code>.<wbr/> If
12278there are no processed resolutions larger than <code>RJ</code>,<wbr/> then set <code>RJ</code> to
12279the processed resolution closest to <code>RJ</code>.<wbr/></li>
12280<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
12281no exact match for <code>RR == RP</code> (in particular there isn't an available
12282raw resolution at the same size as <code>RP</code>),<wbr/> then set <code>RR</code> equal to
12283or to the smallest raw resolution that is larger than <code>RP</code>.<wbr/> If
12284there are no raw resolutions larger than <code>RP</code>,<wbr/> then set <code>RR</code> to
12285the raw resolution closest to <code>RP</code>.<wbr/></li>
12286<li>Look up the matching minimum frame durations in the property lists
12287<a href="#static_android.scaler.availableJpegMinDurations">android.<wbr/>scaler.<wbr/>available<wbr/>Jpeg<wbr/>Min<wbr/>Durations</a>,<wbr/>
12288<a href="#static_android.scaler.availableRawMinDurations">android.<wbr/>scaler.<wbr/>available<wbr/>Raw<wbr/>Min<wbr/>Durations</a>,<wbr/> and
12289<a href="#static_android.scaler.availableProcessedMinDurations">android.<wbr/>scaler.<wbr/>available<wbr/>Processed<wbr/>Min<wbr/>Durations</a>.<wbr/> This gives three
12290minimum frame durations <code>FJ</code>,<wbr/> <code>FR</code>,<wbr/> and <code>FP</code>.<wbr/></li>
12291<li>If a stream of requests do not use a JPEG stream,<wbr/> then the minimum
12292supported frame duration for each request is <code>max(FR,<wbr/> FP)</code>.<wbr/></li>
12293<li>If a stream of requests all use the JPEG stream,<wbr/> then the minimum
12294supported frame duration for each request is <code>max(FR,<wbr/> FP,<wbr/> FJ)</code>.<wbr/></li>
12295<li>If a mix of JPEG-using and non-JPEG-using requests is submitted by
12296the application,<wbr/> then the HAL will have to delay JPEG-using requests
12297whenever the JPEG encoder is still busy processing an older capture.<wbr/>
12298This will happen whenever a JPEG-using request starts capture less
12299than <code>FJ</code> <em>ns</em> after a previous JPEG-using request.<wbr/> The minimum
12300supported frame duration will vary between the values calculated in
12301#6 and #7.<wbr/></li>
12302</ol>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012303 </td>
12304 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080012305
12306
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012307 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
12308 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012309
12310
12311 <tr class="entry" id="dynamic_android.sensor.sensitivity">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080012312 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080012313 android.<wbr/>sensor.<wbr/>sensitivity
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080012314 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012315 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080012316 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012317
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070012318 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012319
12320
12321 </td> <!-- entry_type -->
12322
12323 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080012324 <p>Gain applied to image data.<wbr/> Must be
Igor Murashkin8aa2a112013-12-09 12:06:17 -080012325implemented through analog gain only if set to values
Igor Murashkin0b080452013-12-27 15:30:25 -080012326below 'maximum analog sensitivity'.<wbr/></p>
12327<p>If the sensor can't apply this exact gain,<wbr/> it should lessen the
12328gain to the nearest possible value (rather than gain more).<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012329 </td>
12330
12331 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -080012332 ISO arithmetic units
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012333 </td>
12334
12335 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -080012336 <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 -080012337 </td>
12338
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012339 <td class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080012340 <ul class="entry_tags">
12341 <li><a href="#tag_V1">V1</a></li>
12342 </ul>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012343 </td>
12344
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012345 </tr>
12346 <tr class="entries_header">
12347 <th class="th_details" colspan="5">Details</th>
12348 </tr>
12349 <tr class="entry_cont">
12350 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -080012351 <p>ISO 12232:2006 REI method</p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012352 </td>
12353 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080012354
12355
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012356 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
12357 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012358
12359
12360 <tr class="entry" id="dynamic_android.sensor.timestamp">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080012361 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080012362 android.<wbr/>sensor.<wbr/>timestamp
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080012363 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012364 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080012365 <span class="entry_type_name">int64</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012366
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070012367 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012368
12369
12370 </td> <!-- entry_type -->
12371
12372 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080012373 <p>Time at start of exposure of first
12374row</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012375 </td>
12376
12377 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -080012378 nanoseconds
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012379 </td>
12380
12381 <td class="entry_range">
Igor Murashkin6cb7c2c2014-01-10 15:12:40 -080012382 <p>&gt; 0</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012383 </td>
12384
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012385 <td class="entry_tags">
12386 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080012387 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012388 </ul>
12389 </td>
12390
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012391 </tr>
12392 <tr class="entries_header">
12393 <th class="th_details" colspan="5">Details</th>
12394 </tr>
12395 <tr class="entry_cont">
12396 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -080012397 <p>Monotonic,<wbr/> should be synced to other timestamps in
12398system</p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012399 </td>
12400 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080012401
12402
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012403 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
12404 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012405
Igor Murashkin656aa5a2013-08-13 14:23:39 -070012406
12407 <tr class="entry" id="dynamic_android.sensor.temperature">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080012408 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -080012409 android.<wbr/>sensor.<wbr/>temperature
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080012410 </td>
Igor Murashkin656aa5a2013-08-13 14:23:39 -070012411 <td class="entry_type">
12412 <span class="entry_type_name">float</span>
12413
12414 <span class="entry_type_visibility"> [public]</span>
12415
12416
12417 </td> <!-- entry_type -->
12418
12419 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080012420 <p>The temperature of the sensor,<wbr/> sampled at the time
12421exposure began for this frame.<wbr/></p>
12422<p>The thermal diode being queried should be inside the sensor PCB,<wbr/> or
12423somewhere close to it.<wbr/></p>
Igor Murashkin656aa5a2013-08-13 14:23:39 -070012424 </td>
12425
12426 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -080012427 celsius
Igor Murashkin656aa5a2013-08-13 14:23:39 -070012428 </td>
12429
12430 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -080012431 <p>Optional.<wbr/> This value is missing if no temperature is available.<wbr/></p>
Igor Murashkin656aa5a2013-08-13 14:23:39 -070012432 </td>
12433
Igor Murashkin656aa5a2013-08-13 14:23:39 -070012434 <td class="entry_tags">
Alex Rayef40ad62013-10-01 17:52:33 -070012435 <ul class="entry_tags">
12436 <li><a href="#tag_FULL">FULL</a></li>
12437 </ul>
Igor Murashkin656aa5a2013-08-13 14:23:39 -070012438 </td>
12439
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012440 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080012441
12442
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012443 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
12444 <!-- end of entry -->
Igor Murashkin656aa5a2013-08-13 14:23:39 -070012445
Igor Murashkina46e02f2014-01-09 17:43:38 -080012446
Ruben Brunk7b9e9bc2014-02-06 18:37:48 -080012447 <tr class="entry" id="dynamic_android.sensor.neutralColorPoint">
12448 <td class="entry_name" rowspan="3">
12449 android.<wbr/>sensor.<wbr/>neutral<wbr/>Color<wbr/>Point
12450 </td>
12451 <td class="entry_type">
12452 <span class="entry_type_name">rational</span>
12453 <span class="entry_type_container">x</span>
12454
12455 <span class="entry_type_array">
12456 3
12457 </span>
12458 <span class="entry_type_visibility"> [public]</span>
12459
12460
12461 </td> <!-- entry_type -->
12462
12463 <td class="entry_description">
12464 <p>The estimated white balance at the time of capture.<wbr/></p>
12465 </td>
12466
12467 <td class="entry_units">
12468 </td>
12469
12470 <td class="entry_range">
12471 </td>
12472
12473 <td class="entry_tags">
12474 <ul class="entry_tags">
12475 <li><a href="#tag_DNG">DNG</a></li>
12476 </ul>
12477 </td>
12478
12479 </tr>
12480 <tr class="entries_header">
12481 <th class="th_details" colspan="5">Details</th>
12482 </tr>
12483 <tr class="entry_cont">
12484 <td class="entry_details" colspan="5">
12485 <p>The estimated white balance encoded as the RGB values of the
12486perfectly neutral color point in the linear native sensor color space.<wbr/>
12487The order of the values is R,<wbr/> G,<wbr/> B; where R is in the lowest index.<wbr/></p>
12488 </td>
12489 </tr>
12490
12491
12492 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
12493 <!-- end of entry -->
12494
12495
Igor Murashkina46e02f2014-01-09 17:43:38 -080012496 <tr class="entry" id="dynamic_android.sensor.testPatternMode">
12497 <td class="entry_name" rowspan="5">
12498 android.<wbr/>sensor.<wbr/>test<wbr/>Pattern<wbr/>Mode
12499 </td>
12500 <td class="entry_type">
12501 <span class="entry_type_name entry_type_name_enum">int32</span>
12502
12503 <span class="entry_type_visibility"> [public]</span>
12504
12505 <ul class="entry_type_enum">
12506 <li>
12507 <span class="entry_type_enum_name">OFF</span>
12508 <span class="entry_type_enum_notes"><p>Default.<wbr/> No test pattern mode is used,<wbr/> and the camera
12509device returns captures from the image sensor.<wbr/></p></span>
12510 </li>
12511 <li>
12512 <span class="entry_type_enum_name">SOLID_COLOR</span>
12513 <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
12514respective color channel provided in
12515<a href="#controls_android.sensor.testPatternData">android.<wbr/>sensor.<wbr/>test<wbr/>Pattern<wbr/>Data</a>.<wbr/></p>
12516<p>For example:</p>
12517<pre><code>android.<wbr/>testPatternData = [0,<wbr/> 0xFFFFFFFF,<wbr/> 0xFFFFFFFF,<wbr/> 0]
12518</code></pre>
12519<p>All green pixels are 100% green.<wbr/> All red/<wbr/>blue pixels are black.<wbr/></p>
12520<pre><code>android.<wbr/>testPatternData = [0xFFFFFFFF,<wbr/> 0,<wbr/> 0xFFFFFFFF,<wbr/> 0]
12521</code></pre>
12522<p>All red pixels are 100% red.<wbr/> Only the odd green pixels
12523are 100% green.<wbr/> All blue pixels are 100% black.<wbr/></p></span>
12524 </li>
12525 <li>
12526 <span class="entry_type_enum_name">COLOR_BARS</span>
12527 <span class="entry_type_enum_notes"><p>All pixel data is replaced with an 8-bar color pattern.<wbr/></p>
12528<p>The vertical bars (left-to-right) are as follows:</p>
12529<ul>
12530<li>100% white</li>
12531<li>yellow</li>
12532<li>cyan</li>
12533<li>green</li>
12534<li>magenta</li>
12535<li>red</li>
12536<li>blue</li>
12537<li>black</li>
12538</ul>
12539<p>In general the image would look like the following:</p>
12540<pre><code>W Y C G M R B K
12541W Y C G M R B K
12542W Y C G M R B K
12543W Y C G M R B K
12544W Y C G M R B K
12545.<wbr/> .<wbr/> .<wbr/> .<wbr/> .<wbr/> .<wbr/> .<wbr/> .<wbr/>
12546.<wbr/> .<wbr/> .<wbr/> .<wbr/> .<wbr/> .<wbr/> .<wbr/> .<wbr/>
12547.<wbr/> .<wbr/> .<wbr/> .<wbr/> .<wbr/> .<wbr/> .<wbr/> .<wbr/>
12548
12549(B = Blue,<wbr/> K = Black)
12550</code></pre>
12551<p>Each bar should take up 1/<wbr/>8 of the sensor pixel array width.<wbr/>
12552When this is not possible,<wbr/> the bar size should be rounded
12553down to the nearest integer and the pattern can repeat
12554on the right side.<wbr/></p>
12555<p>Each bar's height must always take up the full sensor
12556pixel array height.<wbr/></p>
12557<p>Each pixel in this test pattern must be set to either
125580% intensity or 100% intensity.<wbr/></p></span>
12559 </li>
12560 <li>
12561 <span class="entry_type_enum_name">COLOR_BARS_FADE_TO_GRAY</span>
12562 <span class="entry_type_enum_notes"><p>The test pattern is similar to COLOR_<wbr/>BARS,<wbr/> except that
12563each bar should start at its specified color at the top,<wbr/>
12564and fade to gray at the bottom.<wbr/></p>
12565<p>Furthermore each bar is further subdivided into a left and
12566right half.<wbr/> The left half should have a smooth gradient,<wbr/>
12567and the right half should have a quantized gradient.<wbr/></p>
12568<p>In particular,<wbr/> the right half's should consist of blocks of the
12569same color for 1/<wbr/>16th active sensor pixel array width.<wbr/></p>
12570<p>The least significant bits in the quantized gradient should
12571be copied from the most significant bits of the smooth gradient.<wbr/></p>
12572<p>The height of each bar should always be a multiple of 128.<wbr/>
12573When this is not the case,<wbr/> the pattern should repeat at the bottom
12574of the image.<wbr/></p></span>
12575 </li>
12576 <li>
12577 <span class="entry_type_enum_name">PN9</span>
12578 <span class="entry_type_enum_notes"><p>All pixel data is replaced by a pseudo-random sequence
12579generated from a PN9 512-bit sequence (typically implemented
12580in hardware with a linear feedback shift register).<wbr/></p>
12581<p>The generator should be reset at the beginning of each frame,<wbr/>
12582and thus each subsequent raw frame with this test pattern should
12583be exactly the same as the last.<wbr/></p></span>
12584 </li>
12585 <li>
12586 <span class="entry_type_enum_name">CUSTOM1</span>
12587 <span class="entry_type_enum_value">256</span>
12588 <span class="entry_type_enum_notes"><p>The first custom test pattern.<wbr/> All custom patterns that are
12589available only on this camera device are at least this numeric
12590value.<wbr/></p>
12591<p>All of the custom test patterns will be static
12592(that is the raw image must not vary from frame to frame).<wbr/></p></span>
12593 </li>
12594 </ul>
12595
12596 </td> <!-- entry_type -->
12597
12598 <td class="entry_description">
12599 <p>When enabled,<wbr/> the sensor sends a test pattern instead of
12600doing a real exposure from the camera.<wbr/></p>
12601 </td>
12602
12603 <td class="entry_units">
12604 </td>
12605
12606 <td class="entry_range">
12607 <p>Optional.<wbr/> Defaults to OFF.<wbr/> Value must be one of
12608<a href="#static_android.sensor.availableTestPatternModes">android.<wbr/>sensor.<wbr/>available<wbr/>Test<wbr/>Pattern<wbr/>Modes</a></p>
12609 </td>
12610
12611 <td class="entry_tags">
12612 </td>
12613
12614 </tr>
12615 <tr class="entries_header">
12616 <th class="th_details" colspan="5">Details</th>
12617 </tr>
12618 <tr class="entry_cont">
12619 <td class="entry_details" colspan="5">
12620 <p>When a test pattern is enabled,<wbr/> all manual sensor controls specified
12621by android.<wbr/>sensor.<wbr/>* should be ignored.<wbr/> All other controls should
12622work as normal.<wbr/></p>
12623<p>For example,<wbr/> if manual flash is enabled,<wbr/> flash firing should still
12624occur (and that the test pattern remain unmodified,<wbr/> since the flash
12625would not actually affect it).<wbr/></p>
12626 </td>
12627 </tr>
12628
12629 <tr class="entries_header">
12630 <th class="th_details" colspan="5">HAL Implementation Details</th>
12631 </tr>
12632 <tr class="entry_cont">
12633 <td class="entry_details" colspan="5">
12634 <p>All test patterns are specified in the Bayer domain.<wbr/></p>
12635<p>The HAL may choose to substitute test patterns from the sensor
12636with test patterns from on-device memory.<wbr/> In that case,<wbr/> it should be
12637indistinguishable to the ISP whether the data came from the
12638sensor interconnect bus (such as CSI2) or memory.<wbr/></p>
12639 </td>
12640 </tr>
12641
12642 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
12643 <!-- end of entry -->
12644
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012645
12646
12647 <!-- end of kind -->
12648 </tbody>
12649
12650 <!-- end of section -->
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012651 <tr><td colspan="6" id="section_shading" class="section">shading</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012652
12653
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012654 <tr><td colspan="6" class="kind">controls</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012655
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070012656 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012657 <tr>
12658 <th class="th_name">Property Name</th>
12659 <th class="th_type">Type</th>
12660 <th class="th_description">Description</th>
12661 <th class="th_units">Units</th>
12662 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012663 <th class="th_tags">Tags</th>
12664 </tr>
12665 </thead>
12666
12667 <tbody>
12668
12669
12670
12671
12672
12673
12674
12675
12676
12677
12678 <tr class="entry" id="controls_android.shading.mode">
Zhijun He2f86a212014-01-15 10:34:02 -080012679 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080012680 android.<wbr/>shading.<wbr/>mode
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080012681 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012682 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080012683 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012684
Zhijun He2f86a212014-01-15 10:34:02 -080012685 <span class="entry_type_visibility"> [hidden]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012686
12687 <ul class="entry_type_enum">
12688 <li>
12689 <span class="entry_type_enum_name">OFF</span>
Zhijun He2f86a212014-01-15 10:34:02 -080012690 <span class="entry_type_enum_notes"><p>No lens shading correction is applied</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012691 </li>
12692 <li>
12693 <span class="entry_type_enum_name">FAST</span>
Zhijun He2f86a212014-01-15 10:34:02 -080012694 <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 -080012695 </li>
12696 <li>
12697 <span class="entry_type_enum_name">HIGH_QUALITY</span>
Zhijun He2f86a212014-01-15 10:34:02 -080012698 <span class="entry_type_enum_notes"><p>Frame rate may be reduced by high quality</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012699 </li>
12700 </ul>
12701
12702 </td> <!-- entry_type -->
12703
12704 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080012705 <p>Quality of lens shading correction applied
Zhijun He2f86a212014-01-15 10:34:02 -080012706to the image data.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012707 </td>
12708
12709 <td class="entry_units">
12710 </td>
12711
12712 <td class="entry_range">
12713 </td>
12714
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012715 <td class="entry_tags">
12716 </td>
12717
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012718 </tr>
Zhijun He2f86a212014-01-15 10:34:02 -080012719 <tr class="entries_header">
12720 <th class="th_details" colspan="5">Details</th>
12721 </tr>
12722 <tr class="entry_cont">
12723 <td class="entry_details" colspan="5">
12724 <p>When set to OFF mode,<wbr/> no lens shading correction will be applied by the
12725camera device,<wbr/> and an identity lens shading map data will be provided
12726if <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
12727shading 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/>
12728the 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
12729shown below:</p>
12730<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/>
12731 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/>
12732 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/>
12733 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/>
12734 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 ]
12736</code></pre>
12737<p>When set to other modes,<wbr/> lens shading correction will be applied by the
12738camera device.<wbr/> Applications can request lens shading map data by setting
12739<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
12740lens shading map data in <a href="#dynamic_android.statistics.lensShadingMap">android.<wbr/>statistics.<wbr/>lens<wbr/>Shading<wbr/>Map</a>,<wbr/> with size specified
12741by <a href="#static_android.lens.info.shadingMapSize">android.<wbr/>lens.<wbr/>info.<wbr/>shading<wbr/>Map<wbr/>Size</a>.<wbr/></p>
12742 </td>
12743 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080012744
12745
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012746 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
12747 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012748
12749
12750 <tr class="entry" id="controls_android.shading.strength">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080012751 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -080012752 android.<wbr/>shading.<wbr/>strength
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080012753 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012754 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080012755 <span class="entry_type_name">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012756
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070012757 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012758
12759
12760 </td> <!-- entry_type -->
12761
12762 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080012763 <p>Control the amount of shading correction
12764applied to the images</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012765 </td>
12766
12767 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -080012768 unitless: 1-10; 10 is full shading
12769 compensation
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012770 </td>
12771
12772 <td class="entry_range">
12773 </td>
12774
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012775 <td class="entry_tags">
12776 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080012777 <li><a href="#tag_ADV">ADV</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012778 </ul>
12779 </td>
12780
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012781 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080012782
12783
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012784 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
12785 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012786
12787
12788
12789 <!-- end of kind -->
12790 </tbody>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012791 <tr><td colspan="6" class="kind">dynamic</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012792
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070012793 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012794 <tr>
12795 <th class="th_name">Property Name</th>
12796 <th class="th_type">Type</th>
12797 <th class="th_description">Description</th>
12798 <th class="th_units">Units</th>
12799 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012800 <th class="th_tags">Tags</th>
12801 </tr>
12802 </thead>
12803
12804 <tbody>
12805
12806
12807
12808
12809
12810
12811
12812
12813
12814
12815 <tr class="entry" id="dynamic_android.shading.mode">
Zhijun He2f86a212014-01-15 10:34:02 -080012816 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080012817 android.<wbr/>shading.<wbr/>mode
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080012818 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012819 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080012820 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012821
Zhijun He2f86a212014-01-15 10:34:02 -080012822 <span class="entry_type_visibility"> [hidden]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012823
12824 <ul class="entry_type_enum">
12825 <li>
12826 <span class="entry_type_enum_name">OFF</span>
Zhijun He2f86a212014-01-15 10:34:02 -080012827 <span class="entry_type_enum_notes"><p>No lens shading correction is applied</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012828 </li>
12829 <li>
12830 <span class="entry_type_enum_name">FAST</span>
Zhijun He2f86a212014-01-15 10:34:02 -080012831 <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 -080012832 </li>
12833 <li>
12834 <span class="entry_type_enum_name">HIGH_QUALITY</span>
Zhijun He2f86a212014-01-15 10:34:02 -080012835 <span class="entry_type_enum_notes"><p>Frame rate may be reduced by high quality</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012836 </li>
12837 </ul>
12838
12839 </td> <!-- entry_type -->
12840
12841 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080012842 <p>Quality of lens shading correction applied
Zhijun He2f86a212014-01-15 10:34:02 -080012843to the image data.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012844 </td>
12845
12846 <td class="entry_units">
12847 </td>
12848
12849 <td class="entry_range">
12850 </td>
12851
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012852 <td class="entry_tags">
12853 </td>
12854
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012855 </tr>
Zhijun He2f86a212014-01-15 10:34:02 -080012856 <tr class="entries_header">
12857 <th class="th_details" colspan="5">Details</th>
12858 </tr>
12859 <tr class="entry_cont">
12860 <td class="entry_details" colspan="5">
12861 <p>When set to OFF mode,<wbr/> no lens shading correction will be applied by the
12862camera device,<wbr/> and an identity lens shading map data will be provided
12863if <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
12864shading 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/>
12865the 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
12866shown below:</p>
12867<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/>
12868 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/>
12869 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/>
12870 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/>
12871 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/>
12872 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 ]
12873</code></pre>
12874<p>When set to other modes,<wbr/> lens shading correction will be applied by the
12875camera device.<wbr/> Applications can request lens shading map data by setting
12876<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
12877lens shading map data in <a href="#dynamic_android.statistics.lensShadingMap">android.<wbr/>statistics.<wbr/>lens<wbr/>Shading<wbr/>Map</a>,<wbr/> with size specified
12878by <a href="#static_android.lens.info.shadingMapSize">android.<wbr/>lens.<wbr/>info.<wbr/>shading<wbr/>Map<wbr/>Size</a>.<wbr/></p>
12879 </td>
12880 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080012881
12882
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012883 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
12884 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012885
12886
12887
12888 <!-- end of kind -->
12889 </tbody>
12890
12891 <!-- end of section -->
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012892 <tr><td colspan="6" id="section_statistics" class="section">statistics</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012893
12894
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012895 <tr><td colspan="6" class="kind">controls</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012896
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070012897 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012898 <tr>
12899 <th class="th_name">Property Name</th>
12900 <th class="th_type">Type</th>
12901 <th class="th_description">Description</th>
12902 <th class="th_units">Units</th>
12903 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012904 <th class="th_tags">Tags</th>
12905 </tr>
12906 </thead>
12907
12908 <tbody>
12909
12910
12911
12912
12913
12914
12915
12916
12917
12918
12919 <tr class="entry" id="controls_android.statistics.faceDetectMode">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080012920 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080012921 android.<wbr/>statistics.<wbr/>face<wbr/>Detect<wbr/>Mode
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080012922 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012923 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080012924 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012925
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070012926 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012927
12928 <ul class="entry_type_enum">
12929 <li>
12930 <span class="entry_type_enum_name">OFF</span>
12931 </li>
12932 <li>
12933 <span class="entry_type_enum_name">SIMPLE</span>
Igor Murashkina10351a2014-01-15 17:05:22 -080012934 <span class="entry_type_enum_notes"><p>Optional Return rectangle and confidence
12935only</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012936 </li>
12937 <li>
12938 <span class="entry_type_enum_name">FULL</span>
Igor Murashkina10351a2014-01-15 17:05:22 -080012939 <span class="entry_type_enum_notes"><p>Optional Return all face
12940metadata</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012941 </li>
12942 </ul>
12943
12944 </td> <!-- entry_type -->
12945
12946 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080012947 <p>State of the face detector
12948unit</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012949 </td>
12950
12951 <td class="entry_units">
12952 </td>
12953
12954 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -080012955 <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 -080012956 </td>
12957
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012958 <td class="entry_tags">
12959 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080012960 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012961 </ul>
12962 </td>
12963
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012964 </tr>
12965 <tr class="entries_header">
12966 <th class="th_details" colspan="5">Details</th>
12967 </tr>
12968 <tr class="entry_cont">
12969 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -080012970 <p>Whether face detection is enabled,<wbr/> and whether it
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012971should output just the basic fields or the full set of
Igor Murashkin0b080452013-12-27 15:30:25 -080012972fields.<wbr/> Value must be one of the
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -080012973<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 -080012974 </td>
12975 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080012976
12977
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012978 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
12979 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012980
12981
12982 <tr class="entry" id="controls_android.statistics.histogramMode">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080012983 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -080012984 android.<wbr/>statistics.<wbr/>histogram<wbr/>Mode
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080012985 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012986 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080012987 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012988
Igor Murashkinb8dc8812013-07-17 16:29:34 -070012989 <span class="entry_type_visibility"> [system as boolean]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012990
12991 <ul class="entry_type_enum">
12992 <li>
12993 <span class="entry_type_enum_name">OFF</span>
12994 </li>
12995 <li>
12996 <span class="entry_type_enum_name">ON</span>
12997 </li>
12998 </ul>
12999
13000 </td> <!-- entry_type -->
13001
13002 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080013003 <p>Operating mode for histogram
13004generation</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013005 </td>
13006
13007 <td class="entry_units">
13008 </td>
13009
13010 <td class="entry_range">
13011 </td>
13012
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013013 <td class="entry_tags">
13014 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080013015 <li><a href="#tag_V1">V1</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013016 </ul>
13017 </td>
13018
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013019 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013020
13021
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013022 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
13023 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013024
13025
13026 <tr class="entry" id="controls_android.statistics.sharpnessMapMode">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013027 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -080013028 android.<wbr/>statistics.<wbr/>sharpness<wbr/>Map<wbr/>Mode
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013029 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013030 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080013031 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013032
Igor Murashkinb8dc8812013-07-17 16:29:34 -070013033 <span class="entry_type_visibility"> [system as boolean]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013034
13035 <ul class="entry_type_enum">
13036 <li>
13037 <span class="entry_type_enum_name">OFF</span>
13038 </li>
13039 <li>
13040 <span class="entry_type_enum_name">ON</span>
13041 </li>
13042 </ul>
13043
13044 </td> <!-- entry_type -->
13045
13046 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080013047 <p>Operating mode for sharpness map
13048generation</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013049 </td>
13050
13051 <td class="entry_units">
13052 </td>
13053
13054 <td class="entry_range">
13055 </td>
13056
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013057 <td class="entry_tags">
13058 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080013059 <li><a href="#tag_V1">V1</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013060 </ul>
13061 </td>
13062
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013063 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013064
13065
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013066 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
13067 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013068
Zhijun He69fc0ea2013-07-17 09:42:58 -070013069
13070 <tr class="entry" id="controls_android.statistics.lensShadingMapMode">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013071 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080013072 android.<wbr/>statistics.<wbr/>lens<wbr/>Shading<wbr/>Map<wbr/>Mode
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013073 </td>
Zhijun He69fc0ea2013-07-17 09:42:58 -070013074 <td class="entry_type">
13075 <span class="entry_type_name entry_type_name_enum">byte</span>
13076
13077 <span class="entry_type_visibility"> [public]</span>
13078
13079 <ul class="entry_type_enum">
13080 <li>
13081 <span class="entry_type_enum_name">OFF</span>
13082 </li>
13083 <li>
13084 <span class="entry_type_enum_name">ON</span>
13085 </li>
13086 </ul>
13087
13088 </td> <!-- entry_type -->
13089
13090 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080013091 <p>Whether the HAL needs to output the lens
13092shading map in output result metadata</p>
Zhijun He69fc0ea2013-07-17 09:42:58 -070013093 </td>
13094
13095 <td class="entry_units">
13096 </td>
13097
13098 <td class="entry_range">
13099 </td>
13100
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013101 <td class="entry_tags">
13102 </td>
13103
13104 </tr>
13105 <tr class="entries_header">
13106 <th class="th_details" colspan="5">Details</th>
13107 </tr>
13108 <tr class="entry_cont">
13109 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -080013110 <p>When set to ON,<wbr/>
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -080013111<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 -080013112the output result metadata.<wbr/></p>
Zhijun He69fc0ea2013-07-17 09:42:58 -070013113 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013114 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013115
13116
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013117 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
13118 <!-- end of entry -->
Zhijun He69fc0ea2013-07-17 09:42:58 -070013119
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013120
13121
13122 <!-- end of kind -->
13123 </tbody>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013124 <tr><td colspan="6" class="kind">static</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013125
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070013126 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013127 <tr>
13128 <th class="th_name">Property Name</th>
13129 <th class="th_type">Type</th>
13130 <th class="th_description">Description</th>
13131 <th class="th_units">Units</th>
13132 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013133 <th class="th_tags">Tags</th>
13134 </tr>
13135 </thead>
13136
13137 <tbody>
13138
13139
13140
13141
13142
13143
13144
13145
13146
13147
13148
13149
13150 <tr class="entry" id="static_android.statistics.info.availableFaceDetectModes">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013151 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080013152 android.<wbr/>statistics.<wbr/>info.<wbr/>available<wbr/>Face<wbr/>Detect<wbr/>Modes
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013153 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013154 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080013155 <span class="entry_type_name">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013156 <span class="entry_type_container">x</span>
13157
13158 <span class="entry_type_array">
13159 n
13160 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070013161 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -080013162 <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 -080013163
13164
13165 </td> <!-- entry_type -->
13166
13167 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080013168 <p>Which face detection modes are available,<wbr/>
13169if any</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013170 </td>
13171
13172 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -080013173 List of enum:
Zhijun He69fc0ea2013-07-17 09:42:58 -070013174 OFF
13175 SIMPLE
Igor Murashkin0b080452013-12-27 15:30:25 -080013176 FULL
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013177 </td>
13178
13179 <td class="entry_range">
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013180 </td>
13181
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013182 <td class="entry_tags">
13183 </td>
13184
13185 </tr>
13186 <tr class="entries_header">
13187 <th class="th_details" colspan="5">Details</th>
13188 </tr>
13189 <tr class="entry_cont">
13190 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -080013191 <p>OFF means face detection is disabled,<wbr/> it must
13192be included in the list.<wbr/></p>
Igor Murashkin8aa2a112013-12-09 12:06:17 -080013193<p>SIMPLE means the device supports the
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -080013194<a href="#dynamic_android.statistics.faceRectangles">android.<wbr/>statistics.<wbr/>face<wbr/>Rectangles</a> and
13195<a href="#dynamic_android.statistics.faceScores">android.<wbr/>statistics.<wbr/>face<wbr/>Scores</a> outputs.<wbr/></p>
Igor Murashkin8aa2a112013-12-09 12:06:17 -080013196<p>FULL means the device additionally supports the
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -080013197<a href="#dynamic_android.statistics.faceIds">android.<wbr/>statistics.<wbr/>face<wbr/>Ids</a> and
13198<a href="#dynamic_android.statistics.faceLandmarks">android.<wbr/>statistics.<wbr/>face<wbr/>Landmarks</a> outputs.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013199 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013200 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013201
13202
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013203 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
13204 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013205
13206
13207 <tr class="entry" id="static_android.statistics.info.histogramBucketCount">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013208 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -080013209 android.<wbr/>statistics.<wbr/>info.<wbr/>histogram<wbr/>Bucket<wbr/>Count
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013210 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013211 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080013212 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013213
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070013214 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013215
13216
13217 </td> <!-- entry_type -->
13218
13219 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080013220 <p>Number of histogram buckets
13221supported</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013222 </td>
13223
13224 <td class="entry_units">
13225 </td>
13226
13227 <td class="entry_range">
Igor Murashkin6cb7c2c2014-01-10 15:12:40 -080013228 <p>&gt;= 64</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013229 </td>
13230
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013231 <td class="entry_tags">
13232 </td>
13233
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013234 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013235
13236
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013237 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
13238 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013239
13240
13241 <tr class="entry" id="static_android.statistics.info.maxFaceCount">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013242 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -080013243 android.<wbr/>statistics.<wbr/>info.<wbr/>max<wbr/>Face<wbr/>Count
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013244 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013245 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080013246 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013247
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070013248 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013249
13250
13251 </td> <!-- entry_type -->
13252
13253 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080013254 <p>Maximum number of simultaneously detectable
13255faces</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013256 </td>
13257
13258 <td class="entry_units">
13259 </td>
13260
13261 <td class="entry_range">
Igor Murashkin6cb7c2c2014-01-10 15:12:40 -080013262 <p>&gt;= 4 if availableFaceDetectionModes lists
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -080013263modes besides OFF,<wbr/> otherwise 0</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013264 </td>
13265
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013266 <td class="entry_tags">
13267 </td>
13268
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013269 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013270
13271
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013272 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
13273 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013274
13275
13276 <tr class="entry" id="static_android.statistics.info.maxHistogramCount">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013277 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -080013278 android.<wbr/>statistics.<wbr/>info.<wbr/>max<wbr/>Histogram<wbr/>Count
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013279 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013280 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080013281 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013282
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070013283 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013284
13285
13286 </td> <!-- entry_type -->
13287
13288 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080013289 <p>Maximum value possible for a histogram
13290bucket</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013291 </td>
13292
13293 <td class="entry_units">
13294 </td>
13295
13296 <td class="entry_range">
13297 </td>
13298
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013299 <td class="entry_tags">
13300 </td>
13301
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013302 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013303
13304
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013305 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
13306 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013307
13308
13309 <tr class="entry" id="static_android.statistics.info.maxSharpnessMapValue">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013310 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -080013311 android.<wbr/>statistics.<wbr/>info.<wbr/>max<wbr/>Sharpness<wbr/>Map<wbr/>Value
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013312 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013313 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080013314 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013315
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070013316 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013317
13318
13319 </td> <!-- entry_type -->
13320
13321 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080013322 <p>Maximum value possible for a sharpness map
13323region.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013324 </td>
13325
13326 <td class="entry_units">
13327 </td>
13328
13329 <td class="entry_range">
13330 </td>
13331
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013332 <td class="entry_tags">
13333 </td>
13334
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013335 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013336
13337
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013338 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
13339 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013340
13341
13342 <tr class="entry" id="static_android.statistics.info.sharpnessMapSize">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013343 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -080013344 android.<wbr/>statistics.<wbr/>info.<wbr/>sharpness<wbr/>Map<wbr/>Size
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013345 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013346 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080013347 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013348 <span class="entry_type_container">x</span>
13349
13350 <span class="entry_type_array">
13351 2
13352 </span>
Igor Murashkinb8dc8812013-07-17 16:29:34 -070013353 <span class="entry_type_visibility"> [system as size]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -080013354 <div class="entry_type_notes">width x height</div>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013355
13356
13357 </td> <!-- entry_type -->
13358
13359 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080013360 <p>Dimensions of the sharpness
13361map</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013362 </td>
13363
13364 <td class="entry_units">
13365 </td>
13366
13367 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -080013368 <p>Must be at least 32 x 32</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013369 </td>
13370
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013371 <td class="entry_tags">
13372 </td>
13373
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013374 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013375
13376
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013377 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
13378 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013379
13380
13381
13382
13383
13384
13385 <!-- end of kind -->
13386 </tbody>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013387 <tr><td colspan="6" class="kind">dynamic</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013388
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070013389 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013390 <tr>
13391 <th class="th_name">Property Name</th>
13392 <th class="th_type">Type</th>
13393 <th class="th_description">Description</th>
13394 <th class="th_units">Units</th>
13395 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013396 <th class="th_tags">Tags</th>
13397 </tr>
13398 </thead>
13399
13400 <tbody>
13401
13402
13403
13404
13405
13406
13407
13408
13409
13410
13411 <tr class="entry" id="dynamic_android.statistics.faceDetectMode">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013412 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080013413 android.<wbr/>statistics.<wbr/>face<wbr/>Detect<wbr/>Mode
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013414 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013415 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080013416 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013417
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070013418 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013419
13420 <ul class="entry_type_enum">
13421 <li>
13422 <span class="entry_type_enum_name">OFF</span>
13423 </li>
13424 <li>
13425 <span class="entry_type_enum_name">SIMPLE</span>
Igor Murashkina10351a2014-01-15 17:05:22 -080013426 <span class="entry_type_enum_notes"><p>Optional Return rectangle and confidence
13427only</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013428 </li>
13429 <li>
13430 <span class="entry_type_enum_name">FULL</span>
Igor Murashkina10351a2014-01-15 17:05:22 -080013431 <span class="entry_type_enum_notes"><p>Optional Return all face
13432metadata</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013433 </li>
13434 </ul>
13435
13436 </td> <!-- entry_type -->
13437
13438 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080013439 <p>State of the face detector
13440unit</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013441 </td>
13442
13443 <td class="entry_units">
13444 </td>
13445
13446 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -080013447 <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 -080013448 </td>
13449
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013450 <td class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080013451 <ul class="entry_tags">
13452 <li><a href="#tag_BC">BC</a></li>
13453 </ul>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013454 </td>
13455
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013456 </tr>
13457 <tr class="entries_header">
13458 <th class="th_details" colspan="5">Details</th>
13459 </tr>
13460 <tr class="entry_cont">
13461 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -080013462 <p>Whether face detection is enabled,<wbr/> and whether it
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013463should output just the basic fields or the full set of
Igor Murashkin0b080452013-12-27 15:30:25 -080013464fields.<wbr/> Value must be one of the
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -080013465<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 -080013466 </td>
13467 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013468
13469
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013470 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
13471 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013472
13473
13474 <tr class="entry" id="dynamic_android.statistics.faceIds">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013475 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080013476 android.<wbr/>statistics.<wbr/>face<wbr/>Ids
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013477 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013478 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080013479 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013480 <span class="entry_type_container">x</span>
13481
13482 <span class="entry_type_array">
13483 n
13484 </span>
Zhijun He3b4c2062013-10-07 11:23:30 -070013485 <span class="entry_type_visibility"> [hidden]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013486
13487
13488 </td> <!-- entry_type -->
13489
13490 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080013491 <p>List of unique IDs for detected
13492faces</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013493 </td>
13494
13495 <td class="entry_units">
13496 </td>
13497
13498 <td class="entry_range">
13499 </td>
13500
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013501 <td class="entry_tags">
13502 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080013503 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013504 </ul>
13505 </td>
13506
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013507 </tr>
13508 <tr class="entries_header">
13509 <th class="th_details" colspan="5">Details</th>
13510 </tr>
13511 <tr class="entry_cont">
13512 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -080013513 <p>Only available if faceDetectMode == FULL</p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013514 </td>
13515 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013516
13517
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013518 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
13519 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013520
13521
13522 <tr class="entry" id="dynamic_android.statistics.faceLandmarks">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013523 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080013524 android.<wbr/>statistics.<wbr/>face<wbr/>Landmarks
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013525 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013526 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080013527 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013528 <span class="entry_type_container">x</span>
13529
13530 <span class="entry_type_array">
13531 n x 6
13532 </span>
Zhijun He3b4c2062013-10-07 11:23:30 -070013533 <span class="entry_type_visibility"> [hidden]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -080013534 <div class="entry_type_notes">(leftEyeX,<wbr/> leftEyeY,<wbr/> rightEyeX,<wbr/> rightEyeY,<wbr/> mouthX,<wbr/> mouthY)</div>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013535
13536
13537 </td> <!-- entry_type -->
13538
13539 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080013540 <p>List of landmarks for detected
13541faces</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013542 </td>
13543
13544 <td class="entry_units">
13545 </td>
13546
13547 <td class="entry_range">
13548 </td>
13549
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013550 <td class="entry_tags">
13551 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080013552 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013553 </ul>
13554 </td>
13555
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013556 </tr>
13557 <tr class="entries_header">
13558 <th class="th_details" colspan="5">Details</th>
13559 </tr>
13560 <tr class="entry_cont">
13561 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -080013562 <p>Only available if faceDetectMode == FULL</p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013563 </td>
13564 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013565
13566
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013567 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
13568 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013569
13570
13571 <tr class="entry" id="dynamic_android.statistics.faceRectangles">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013572 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080013573 android.<wbr/>statistics.<wbr/>face<wbr/>Rectangles
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013574 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013575 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080013576 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013577 <span class="entry_type_container">x</span>
13578
13579 <span class="entry_type_array">
13580 n x 4
13581 </span>
Zhijun He3b4c2062013-10-07 11:23:30 -070013582 <span class="entry_type_visibility"> [hidden as rectangle]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -080013583 <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 -080013584
13585
13586 </td> <!-- entry_type -->
13587
13588 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080013589 <p>List of the bounding rectangles for detected
13590faces</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013591 </td>
13592
13593 <td class="entry_units">
13594 </td>
13595
13596 <td class="entry_range">
13597 </td>
13598
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013599 <td class="entry_tags">
13600 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080013601 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013602 </ul>
13603 </td>
13604
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013605 </tr>
13606 <tr class="entries_header">
13607 <th class="th_details" colspan="5">Details</th>
13608 </tr>
13609 <tr class="entry_cont">
13610 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -080013611 <p>Only available if faceDetectMode != OFF</p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013612 </td>
13613 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013614
13615
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013616 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
13617 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013618
13619
13620 <tr class="entry" id="dynamic_android.statistics.faceScores">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013621 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080013622 android.<wbr/>statistics.<wbr/>face<wbr/>Scores
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013623 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013624 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080013625 <span class="entry_type_name">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013626 <span class="entry_type_container">x</span>
13627
13628 <span class="entry_type_array">
13629 n
13630 </span>
Zhijun He3b4c2062013-10-07 11:23:30 -070013631 <span class="entry_type_visibility"> [hidden]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013632
13633
13634 </td> <!-- entry_type -->
13635
13636 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080013637 <p>List of the face confidence scores for
13638detected faces</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013639 </td>
13640
13641 <td class="entry_units">
13642 </td>
13643
13644 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -080013645 <p>1-100</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013646 </td>
13647
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013648 <td class="entry_tags">
13649 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080013650 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013651 </ul>
13652 </td>
13653
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013654 </tr>
13655 <tr class="entries_header">
13656 <th class="th_details" colspan="5">Details</th>
13657 </tr>
13658 <tr class="entry_cont">
13659 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -080013660 <p>Only available if faceDetectMode != OFF.<wbr/> The value should be
13661meaningful (for example,<wbr/> setting 100 at all times is illegal).<wbr/></p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013662 </td>
13663 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013664
13665
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013666 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
13667 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013668
13669
13670 <tr class="entry" id="dynamic_android.statistics.histogram">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013671 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080013672 android.<wbr/>statistics.<wbr/>histogram
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013673 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013674 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080013675 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013676 <span class="entry_type_container">x</span>
13677
13678 <span class="entry_type_array">
13679 n x 3
13680 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070013681 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -080013682 <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 -080013683
13684
13685 </td> <!-- entry_type -->
13686
13687 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080013688 <p>A 3-channel histogram based on the raw
13689sensor data</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013690 </td>
13691
13692 <td class="entry_units">
13693 </td>
13694
13695 <td class="entry_range">
13696 </td>
13697
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013698 <td class="entry_tags">
13699 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080013700 <li><a href="#tag_V1">V1</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013701 </ul>
13702 </td>
13703
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013704 </tr>
13705 <tr class="entries_header">
13706 <th class="th_details" colspan="5">Details</th>
13707 </tr>
13708 <tr class="entry_cont">
13709 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -080013710 <p>The k'th bucket (0-based) covers the input range
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -080013711(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 -080013712(k + 1) * w /<wbr/> N ).<wbr/> If only a monochrome sharpness map is
13713supported,<wbr/> all channels should have the same data</p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013714 </td>
13715 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013716
13717
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013718 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
13719 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013720
13721
13722 <tr class="entry" id="dynamic_android.statistics.histogramMode">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013723 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -080013724 android.<wbr/>statistics.<wbr/>histogram<wbr/>Mode
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013725 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013726 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080013727 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013728
Igor Murashkinb8dc8812013-07-17 16:29:34 -070013729 <span class="entry_type_visibility"> [system as boolean]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013730
13731 <ul class="entry_type_enum">
13732 <li>
13733 <span class="entry_type_enum_name">OFF</span>
13734 </li>
13735 <li>
13736 <span class="entry_type_enum_name">ON</span>
13737 </li>
13738 </ul>
13739
13740 </td> <!-- entry_type -->
13741
13742 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080013743 <p>Operating mode for histogram
13744generation</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013745 </td>
13746
13747 <td class="entry_units">
13748 </td>
13749
13750 <td class="entry_range">
13751 </td>
13752
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013753 <td class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080013754 <ul class="entry_tags">
13755 <li><a href="#tag_V1">V1</a></li>
13756 </ul>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013757 </td>
13758
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013759 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013760
13761
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013762 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
13763 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013764
13765
13766 <tr class="entry" id="dynamic_android.statistics.sharpnessMap">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013767 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080013768 android.<wbr/>statistics.<wbr/>sharpness<wbr/>Map
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013769 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013770 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080013771 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013772 <span class="entry_type_container">x</span>
13773
13774 <span class="entry_type_array">
13775 n x m x 3
13776 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070013777 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -080013778 <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 -080013779
13780
13781 </td> <!-- entry_type -->
13782
13783 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080013784 <p>A 3-channel sharpness map,<wbr/> based on the raw
13785sensor data</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013786 </td>
13787
13788 <td class="entry_units">
13789 </td>
13790
13791 <td class="entry_range">
13792 </td>
13793
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013794 <td class="entry_tags">
13795 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080013796 <li><a href="#tag_V1">V1</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013797 </ul>
13798 </td>
13799
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013800 </tr>
13801 <tr class="entries_header">
13802 <th class="th_details" colspan="5">Details</th>
13803 </tr>
13804 <tr class="entry_cont">
13805 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -080013806 <p>If only a monochrome sharpness map is supported,<wbr/>
13807all channels should have the same data</p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013808 </td>
13809 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013810
13811
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013812 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
13813 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013814
13815
13816 <tr class="entry" id="dynamic_android.statistics.sharpnessMapMode">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013817 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -080013818 android.<wbr/>statistics.<wbr/>sharpness<wbr/>Map<wbr/>Mode
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013819 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013820 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080013821 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013822
Igor Murashkinb8dc8812013-07-17 16:29:34 -070013823 <span class="entry_type_visibility"> [system as boolean]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013824
13825 <ul class="entry_type_enum">
13826 <li>
13827 <span class="entry_type_enum_name">OFF</span>
13828 </li>
13829 <li>
13830 <span class="entry_type_enum_name">ON</span>
13831 </li>
13832 </ul>
13833
13834 </td> <!-- entry_type -->
13835
13836 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080013837 <p>Operating mode for sharpness map
13838generation</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013839 </td>
13840
13841 <td class="entry_units">
13842 </td>
13843
13844 <td class="entry_range">
13845 </td>
13846
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013847 <td class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080013848 <ul class="entry_tags">
13849 <li><a href="#tag_V1">V1</a></li>
13850 </ul>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013851 </td>
13852
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013853 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013854
13855
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013856 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
13857 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013858
Zhijun He69fc0ea2013-07-17 09:42:58 -070013859
13860 <tr class="entry" id="dynamic_android.statistics.lensShadingMap">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013861 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080013862 android.<wbr/>statistics.<wbr/>lens<wbr/>Shading<wbr/>Map
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013863 </td>
Zhijun He69fc0ea2013-07-17 09:42:58 -070013864 <td class="entry_type">
13865 <span class="entry_type_name">float</span>
13866 <span class="entry_type_container">x</span>
13867
13868 <span class="entry_type_array">
13869 4 x n x m
13870 </span>
13871 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -080013872 <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 -070013873
13874
13875 </td> <!-- entry_type -->
13876
13877 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080013878 <p>The shading map is a low-resolution floating-point map
13879that lists the coefficients used to correct for vignetting,<wbr/> for each
13880Bayer color channel.<wbr/></p>
Zhijun He69fc0ea2013-07-17 09:42:58 -070013881 </td>
13882
13883 <td class="entry_units">
13884 </td>
13885
13886 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -080013887 <p>Each gain factor is &gt;= 1</p>
Zhijun He69fc0ea2013-07-17 09:42:58 -070013888 </td>
13889
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013890 <td class="entry_tags">
13891 </td>
13892
13893 </tr>
13894 <tr class="entries_header">
13895 <th class="th_details" colspan="5">Details</th>
13896 </tr>
13897 <tr class="entry_cont">
13898 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -080013899 <p>The least shaded section of the image should have a gain factor
13900of 1; all other sections should have gains above 1.<wbr/></p>
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -080013901<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 -080013902must take into account the colorCorrection settings.<wbr/></p>
13903<p>The shading map is for the entire active pixel array,<wbr/> and is not
13904affected by the crop region specified in the request.<wbr/> Each shading map
Igor Murashkin1dd4ecb2013-12-11 13:31:00 -080013905entry is the value of the shading compensation map over a specific
Igor Murashkin0b080452013-12-27 15:30:25 -080013906pixel on the sensor.<wbr/> Specifically,<wbr/> with a (N x M) resolution shading
13907map,<wbr/> and an active pixel array size (W x H),<wbr/> shading map entry
13908(x,<wbr/>y) ϵ (0 ...<wbr/> N-1,<wbr/> 0 ...<wbr/> M-1) is the value of the shading map at
13909pixel ( ((W-1)/<wbr/>(N-1)) * x,<wbr/> ((H-1)/<wbr/>(M-1)) * y) for the four color channels.<wbr/>
13910The map is assumed to be bilinearly interpolated between the sample points.<wbr/></p>
13911<p>The channel order is [R,<wbr/> Geven,<wbr/> Godd,<wbr/> B],<wbr/> where Geven is the green
13912channel for the even rows of a Bayer pattern,<wbr/> and Godd is the odd rows.<wbr/>
13913The shading map is stored in a fully interleaved format,<wbr/> and its size
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -080013914is 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 -080013915<p>The shading map should have on the order of 30-40 rows and columns,<wbr/>
13916and must be smaller than 64x64.<wbr/></p>
13917<p>As an example,<wbr/> given a very small map defined as:</p>
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -080013918<pre><code><a href="#static_android.lens.info.shadingMapSize">android.<wbr/>lens.<wbr/>info.<wbr/>shading<wbr/>Map<wbr/>Size</a> = [ 4,<wbr/> 3 ]
13919<a href="#dynamic_android.statistics.lensShadingMap">android.<wbr/>statistics.<wbr/>lens<wbr/>Shading<wbr/>Map</a> =
Igor Murashkin0b080452013-12-27 15:30:25 -080013920[ 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/>
13921 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/>
13922 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/>
13923 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/>
13924 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/>
13925 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 -080013926</code></pre>
13927<p>The low-resolution scaling map images for each channel are
13928(displayed using nearest-neighbor interpolation):</p>
13929<p><img alt="Red lens shading map" src="images/camera2/metadata/android.statistics.lensShadingMap/red_shading.png"/>
13930<img alt="Green (even rows) lens shading map" src="images/camera2/metadata/android.statistics.lensShadingMap/green_e_shading.png"/>
13931<img alt="Green (odd rows) lens shading map" src="images/camera2/metadata/android.statistics.lensShadingMap/green_o_shading.png"/>
13932<img alt="Blue lens shading map" src="images/camera2/metadata/android.statistics.lensShadingMap/blue_shading.png"/></p>
Igor Murashkin0b080452013-12-27 15:30:25 -080013933<p>As a visualization only,<wbr/> inverting the full-color map to recover an
Igor Murashkin1dd4ecb2013-12-11 13:31:00 -080013934image of a gray wall (using bicubic interpolation for visual quality) as captured by the sensor gives:</p>
Igor Murashkin0b080452013-12-27 15:30:25 -080013935<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 -070013936 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013937 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013938
13939
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013940 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
13941 <!-- end of entry -->
Zhijun He69fc0ea2013-07-17 09:42:58 -070013942
13943
13944 <tr class="entry" id="dynamic_android.statistics.predictedColorGains">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013945 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080013946 android.<wbr/>statistics.<wbr/>predicted<wbr/>Color<wbr/>Gains
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013947 </td>
Zhijun He69fc0ea2013-07-17 09:42:58 -070013948 <td class="entry_type">
13949 <span class="entry_type_name">float</span>
13950 <span class="entry_type_container">x</span>
13951
13952 <span class="entry_type_array">
13953 4
13954 </span>
Igor Murashkin0fe2f132014-01-13 16:59:47 -080013955 <span class="entry_type_visibility"> [hidden]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -080013956 <div class="entry_type_notes">A 1D array of floats for 4 color channel gains</div>
Zhijun He69fc0ea2013-07-17 09:42:58 -070013957
13958
13959 </td> <!-- entry_type -->
13960
13961 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080013962 <p>The best-fit color channel gains calculated
13963by the HAL's statistics units for the current output frame</p>
Zhijun He69fc0ea2013-07-17 09:42:58 -070013964 </td>
13965
13966 <td class="entry_units">
13967 </td>
13968
13969 <td class="entry_range">
Igor Murashkin0fe2f132014-01-13 16:59:47 -080013970 <p><strong>Deprecated</strong>.<wbr/> Do not use.<wbr/></p>
Zhijun He69fc0ea2013-07-17 09:42:58 -070013971 </td>
13972
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013973 <td class="entry_tags">
13974 </td>
13975
13976 </tr>
13977 <tr class="entries_header">
13978 <th class="th_details" colspan="5">Details</th>
13979 </tr>
13980 <tr class="entry_cont">
13981 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -080013982 <p>This may be different than the gains used for this frame,<wbr/>
Igor Murashkin8aa2a112013-12-09 12:06:17 -080013983since statistics processing on data from a new frame
13984typically completes after the transform has already been
Igor Murashkin0b080452013-12-27 15:30:25 -080013985applied to that frame.<wbr/></p>
13986<p>The 4 channel gains are defined in Bayer domain,<wbr/>
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -080013987see <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 -080013988<p>This value should always be calculated by the AWB block,<wbr/>
13989regardless of the android.<wbr/>control.<wbr/>* current values.<wbr/></p>
Zhijun He69fc0ea2013-07-17 09:42:58 -070013990 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013991 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013992
13993
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013994 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
13995 <!-- end of entry -->
Zhijun He69fc0ea2013-07-17 09:42:58 -070013996
13997
13998 <tr class="entry" id="dynamic_android.statistics.predictedColorTransform">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013999 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080014000 android.<wbr/>statistics.<wbr/>predicted<wbr/>Color<wbr/>Transform
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080014001 </td>
Zhijun He69fc0ea2013-07-17 09:42:58 -070014002 <td class="entry_type">
14003 <span class="entry_type_name">rational</span>
14004 <span class="entry_type_container">x</span>
14005
14006 <span class="entry_type_array">
14007 3 x 3
14008 </span>
Igor Murashkin0fe2f132014-01-13 16:59:47 -080014009 <span class="entry_type_visibility"> [hidden]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -080014010 <div class="entry_type_notes">3x3 rational matrix in row-major order</div>
Zhijun He69fc0ea2013-07-17 09:42:58 -070014011
14012
14013 </td> <!-- entry_type -->
14014
14015 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080014016 <p>The best-fit color transform matrix estimate
Igor Murashkin8aa2a112013-12-09 12:06:17 -080014017calculated by the HAL's statistics units for the current
Igor Murashkin0b080452013-12-27 15:30:25 -080014018output frame</p>
Zhijun He69fc0ea2013-07-17 09:42:58 -070014019 </td>
14020
14021 <td class="entry_units">
14022 </td>
14023
14024 <td class="entry_range">
Igor Murashkin0fe2f132014-01-13 16:59:47 -080014025 <p><strong>Deprecated</strong>.<wbr/> Do not use.<wbr/></p>
Zhijun He69fc0ea2013-07-17 09:42:58 -070014026 </td>
14027
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014028 <td class="entry_tags">
14029 </td>
14030
14031 </tr>
14032 <tr class="entries_header">
14033 <th class="th_details" colspan="5">Details</th>
14034 </tr>
14035 <tr class="entry_cont">
14036 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -080014037 <p>The HAL must provide the estimate from its
Igor Murashkin8aa2a112013-12-09 12:06:17 -080014038statistics unit on the white balance transforms to use
Igor Murashkin0b080452013-12-27 15:30:25 -080014039for the next frame.<wbr/> These are the values the HAL believes
14040are the best fit for the current output frame.<wbr/> This may
14041be different than the transform used for this frame,<wbr/> since
Igor Murashkin8aa2a112013-12-09 12:06:17 -080014042statistics processing on data from a new frame typically
14043completes after the transform has already been applied to
Igor Murashkin0b080452013-12-27 15:30:25 -080014044that frame.<wbr/></p>
14045<p>These estimates must be provided for all frames,<wbr/> even if
14046capture settings and color transforms are set by the application.<wbr/></p>
14047<p>This value should always be calculated by the AWB block,<wbr/>
14048regardless of the android.<wbr/>control.<wbr/>* current values.<wbr/></p>
Zhijun He69fc0ea2013-07-17 09:42:58 -070014049 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014050 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080014051
14052
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014053 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
14054 <!-- end of entry -->
Zhijun He69fc0ea2013-07-17 09:42:58 -070014055
14056
14057 <tr class="entry" id="dynamic_android.statistics.sceneFlicker">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080014058 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080014059 android.<wbr/>statistics.<wbr/>scene<wbr/>Flicker
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080014060 </td>
Zhijun He69fc0ea2013-07-17 09:42:58 -070014061 <td class="entry_type">
14062 <span class="entry_type_name entry_type_name_enum">byte</span>
14063
14064 <span class="entry_type_visibility"> [public]</span>
14065
14066 <ul class="entry_type_enum">
14067 <li>
14068 <span class="entry_type_enum_name">NONE</span>
14069 </li>
14070 <li>
14071 <span class="entry_type_enum_name">50HZ</span>
14072 </li>
14073 <li>
14074 <span class="entry_type_enum_name">60HZ</span>
14075 </li>
14076 </ul>
14077
14078 </td> <!-- entry_type -->
14079
14080 <td class="entry_description">
Zhijun Heb8512c52014-02-03 11:46:58 -080014081 <p>The camera device estimated scene illumination lighting
14082frequency.<wbr/></p>
Zhijun He69fc0ea2013-07-17 09:42:58 -070014083 </td>
14084
14085 <td class="entry_units">
14086 </td>
14087
14088 <td class="entry_range">
14089 </td>
14090
Zhijun He69fc0ea2013-07-17 09:42:58 -070014091 <td class="entry_tags">
14092 </td>
14093
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014094 </tr>
14095 <tr class="entries_header">
14096 <th class="th_details" colspan="5">Details</th>
14097 </tr>
14098 <tr class="entry_cont">
14099 <td class="entry_details" colspan="5">
Zhijun Heb8512c52014-02-03 11:46:58 -080014100 <p>Many light sources,<wbr/> such as most fluorescent lights,<wbr/> flicker at a rate
14101that depends on the local utility power standards.<wbr/> This flicker must be
14102accounted for by auto-exposure routines to avoid artifacts in captured images.<wbr/>
14103The camera device uses this entry to tell the application what the scene
14104illuminant frequency is.<wbr/></p>
14105<p>When manual exposure control is enabled
14106(<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/>
14107the <a href="#controls_android.control.aeAntibandingMode">android.<wbr/>control.<wbr/>ae<wbr/>Antibanding<wbr/>Mode</a> doesn't do the antibanding,<wbr/> and the
14108application can ensure it selects exposure times that do not cause banding
14109issues by looking into this metadata field.<wbr/> See android.<wbr/>control.<wbr/>ae<wbr/>Antibanding<wbr/>Mode
14110for more details.<wbr/></p>
14111<p>Report NONE if there doesn't appear to be flickering illumination.<wbr/></p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014112 </td>
14113 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080014114
14115
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014116 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
14117 <!-- end of entry -->
Zhijun He69fc0ea2013-07-17 09:42:58 -070014118
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014119
14120
14121 <!-- end of kind -->
14122 </tbody>
14123
14124 <!-- end of section -->
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014125 <tr><td colspan="6" id="section_tonemap" class="section">tonemap</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014126
14127
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014128 <tr><td colspan="6" class="kind">controls</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014129
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070014130 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014131 <tr>
14132 <th class="th_name">Property Name</th>
14133 <th class="th_type">Type</th>
14134 <th class="th_description">Description</th>
14135 <th class="th_units">Units</th>
14136 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014137 <th class="th_tags">Tags</th>
14138 </tr>
14139 </thead>
14140
14141 <tbody>
14142
14143
14144
14145
14146
14147
14148
14149
14150
14151
14152 <tr class="entry" id="controls_android.tonemap.curveBlue">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080014153 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080014154 android.<wbr/>tonemap.<wbr/>curve<wbr/>Blue
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080014155 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014156 <td class="entry_type">
Eino-Ville Talvala76548fe2013-01-11 13:57:19 -080014157 <span class="entry_type_name">float</span>
Zhijun He704d1282013-08-19 15:26:33 -070014158 <span class="entry_type_container">x</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014159
Zhijun He704d1282013-08-19 15:26:33 -070014160 <span class="entry_type_array">
14161 n x 2
14162 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070014163 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -080014164 <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 -080014165
14166
14167 </td> <!-- entry_type -->
14168
14169 <td class="entry_description">
Igor Murashkin94e06c42014-01-13 16:51:17 -080014170 <p>Tonemapping /<wbr/> contrast /<wbr/> gamma curve for the blue
14171channel,<wbr/> to use when <a href="#controls_android.tonemap.mode">android.<wbr/>tonemap.<wbr/>mode</a> is
14172CONTRAST_<wbr/>CURVE.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014173 </td>
14174
14175 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -080014176 same as android.<wbr/>tonemap.<wbr/>curve<wbr/>Red
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014177 </td>
14178
14179 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -080014180 <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 -080014181 </td>
14182
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014183 <td class="entry_tags">
14184 </td>
14185
14186 </tr>
14187 <tr class="entries_header">
14188 <th class="th_details" colspan="5">Details</th>
14189 </tr>
14190 <tr class="entry_cont">
14191 <td class="entry_details" colspan="5">
Igor Murashkin94e06c42014-01-13 16:51:17 -080014192 <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 -080014193 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014194 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080014195
14196
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014197 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
14198 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014199
14200
14201 <tr class="entry" id="controls_android.tonemap.curveGreen">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080014202 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080014203 android.<wbr/>tonemap.<wbr/>curve<wbr/>Green
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080014204 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014205 <td class="entry_type">
Eino-Ville Talvala76548fe2013-01-11 13:57:19 -080014206 <span class="entry_type_name">float</span>
Zhijun He704d1282013-08-19 15:26:33 -070014207 <span class="entry_type_container">x</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014208
Zhijun He704d1282013-08-19 15:26:33 -070014209 <span class="entry_type_array">
14210 n x 2
14211 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070014212 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -080014213 <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 -080014214
14215
14216 </td> <!-- entry_type -->
14217
14218 <td class="entry_description">
Igor Murashkin94e06c42014-01-13 16:51:17 -080014219 <p>Tonemapping /<wbr/> contrast /<wbr/> gamma curve for the green
14220channel,<wbr/> to use when <a href="#controls_android.tonemap.mode">android.<wbr/>tonemap.<wbr/>mode</a> is
14221CONTRAST_<wbr/>CURVE.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014222 </td>
14223
14224 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -080014225 same as android.<wbr/>tonemap.<wbr/>curve<wbr/>Red
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014226 </td>
14227
14228 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -080014229 <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 -080014230 </td>
14231
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014232 <td class="entry_tags">
14233 </td>
14234
14235 </tr>
14236 <tr class="entries_header">
14237 <th class="th_details" colspan="5">Details</th>
14238 </tr>
14239 <tr class="entry_cont">
14240 <td class="entry_details" colspan="5">
Igor Murashkin94e06c42014-01-13 16:51:17 -080014241 <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 -080014242 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014243 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080014244
14245
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014246 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
14247 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014248
14249
14250 <tr class="entry" id="controls_android.tonemap.curveRed">
Igor Murashkin94e06c42014-01-13 16:51:17 -080014251 <td class="entry_name" rowspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -080014252 android.<wbr/>tonemap.<wbr/>curve<wbr/>Red
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080014253 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014254 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080014255 <span class="entry_type_name">float</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014256 <span class="entry_type_container">x</span>
14257
14258 <span class="entry_type_array">
14259 n x 2
14260 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070014261 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -080014262 <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 -080014263
14264
14265 </td> <!-- entry_type -->
14266
14267 <td class="entry_description">
Igor Murashkin94e06c42014-01-13 16:51:17 -080014268 <p>Tonemapping /<wbr/> contrast /<wbr/> gamma curve for the red
14269channel,<wbr/> to use when <a href="#controls_android.tonemap.mode">android.<wbr/>tonemap.<wbr/>mode</a> is
14270CONTRAST_<wbr/>CURVE.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014271 </td>
14272
14273 <td class="entry_units">
14274 </td>
14275
14276 <td class="entry_range">
Igor Murashkin94e06c42014-01-13 16:51:17 -080014277 <p>0-1 on both input and output coordinates,<wbr/> normalized
14278as a floating-point value such that 0 == black and 1 == white.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014279 </td>
14280
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014281 <td class="entry_tags">
14282 <ul class="entry_tags">
14283 <li><a href="#tag_DNG">DNG</a></li>
14284 </ul>
14285 </td>
14286
14287 </tr>
14288 <tr class="entries_header">
14289 <th class="th_details" colspan="5">Details</th>
14290 </tr>
14291 <tr class="entry_cont">
14292 <td class="entry_details" colspan="5">
Igor Murashkin94e06c42014-01-13 16:51:17 -080014293 <p>Each channel's curve is defined by an array of control points:</p>
14294<pre><code><a href="#controls_android.tonemap.curveRed">android.<wbr/>tonemap.<wbr/>curve<wbr/>Red</a> =
14295 [ P0in,<wbr/> P0out,<wbr/> P1in,<wbr/> P1out,<wbr/> P2in,<wbr/> P2out,<wbr/> P3in,<wbr/> P3out,<wbr/> ...,<wbr/> PNin,<wbr/> PNout ]
142962 &lt;= N &lt;= <a href="#static_android.tonemap.maxCurvePoints">android.<wbr/>tonemap.<wbr/>max<wbr/>Curve<wbr/>Points</a></code></pre>
14297<p>These are sorted in order of increasing <code>Pin</code>; it is always
14298guaranteed that input values 0.<wbr/>0 and 1.<wbr/>0 are included in the list to
14299define a complete mapping.<wbr/> For input values between control points,<wbr/>
14300the camera device must linearly interpolate between the control
14301points.<wbr/></p>
14302<p>Each curve can have an independent number of points,<wbr/> and the number
14303of points can be less than max (that is,<wbr/> the request doesn't have to
14304always provide a curve with number of points equivalent to
14305<a href="#static_android.tonemap.maxCurvePoints">android.<wbr/>tonemap.<wbr/>max<wbr/>Curve<wbr/>Points</a>).<wbr/></p>
14306<p>A few examples,<wbr/> and their corresponding graphical mappings; these
14307only specify the red channel and the precision is limited to 4
14308digits,<wbr/> for conciseness.<wbr/></p>
14309<p>Linear mapping:</p>
14310<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 ]
14311</code></pre>
14312<p><img alt="Linear mapping curve" src="images/camera2/metadata/android.tonemap.curveRed/linear_tonemap.png"/></p>
14313<p>Invert mapping:</p>
14314<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 ]
14315</code></pre>
14316<p><img alt="Inverting mapping curve" src="images/camera2/metadata/android.tonemap.curveRed/inverse_tonemap.png"/></p>
14317<p>Gamma 1/<wbr/>2.<wbr/>2 mapping,<wbr/> with 16 control points:</p>
14318<pre><code><a href="#controls_android.tonemap.curveRed">android.<wbr/>tonemap.<wbr/>curve<wbr/>Red</a> = [
14319 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/>
14320 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/>
14321 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/>
14322 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 ]
14323</code></pre>
14324<p><img alt="Gamma = 1/2.2 tonemapping curve" src="images/camera2/metadata/android.tonemap.curveRed/gamma_tonemap.png"/></p>
14325<p>Standard sRGB gamma mapping,<wbr/> per IEC 61966-2-1:1999,<wbr/> with 16 control points:</p>
14326<pre><code><a href="#controls_android.tonemap.curveRed">android.<wbr/>tonemap.<wbr/>curve<wbr/>Red</a> = [
14327 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/>
14328 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/>
14329 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/>
14330 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 ]
14331</code></pre>
14332<p><img alt="sRGB tonemapping curve" src="images/camera2/metadata/android.tonemap.curveRed/srgb_tonemap.png"/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014333 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014334 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080014335
Igor Murashkin94e06c42014-01-13 16:51:17 -080014336 <tr class="entries_header">
14337 <th class="th_details" colspan="5">HAL Implementation Details</th>
14338 </tr>
14339 <tr class="entry_cont">
14340 <td class="entry_details" colspan="5">
14341 <p>For good quality of mapping,<wbr/> at least 128 control points are
14342preferred.<wbr/></p>
14343<p>A typical use case of this would be a gamma-1/<wbr/>2.<wbr/>2 curve,<wbr/> with as many
14344control points used as are available.<wbr/></p>
14345 </td>
14346 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080014347
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014348 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
14349 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014350
14351
14352 <tr class="entry" id="controls_android.tonemap.mode">
Igor Murashkin94e06c42014-01-13 16:51:17 -080014353 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080014354 android.<wbr/>tonemap.<wbr/>mode
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080014355 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014356 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080014357 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014358
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070014359 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014360
14361 <ul class="entry_type_enum">
14362 <li>
14363 <span class="entry_type_enum_name">CONTRAST_CURVE</span>
Igor Murashkina10351a2014-01-15 17:05:22 -080014364 <span class="entry_type_enum_notes"><p>Use the tone mapping curve specified in
Igor Murashkin94e06c42014-01-13 16:51:17 -080014365android.<wbr/>tonemap.<wbr/>curve.<wbr/></p>
14366<p>All color enhancement and tonemapping must be disabled,<wbr/> except
14367for applying the tonemapping curve specified by
14368<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
14369<a href="#controls_android.tonemap.curveGreen">android.<wbr/>tonemap.<wbr/>curve<wbr/>Green</a>.<wbr/></p>
14370<p>Must not slow down frame rate relative to raw
14371sensor output.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014372 </li>
14373 <li>
14374 <span class="entry_type_enum_name">FAST</span>
Igor Murashkin94e06c42014-01-13 16:51:17 -080014375 <span class="entry_type_enum_notes"><p>Advanced gamma mapping and color enhancement may be applied.<wbr/></p>
14376<p>Should not slow down frame rate relative to raw sensor output.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014377 </li>
14378 <li>
14379 <span class="entry_type_enum_name">HIGH_QUALITY</span>
Igor Murashkin94e06c42014-01-13 16:51:17 -080014380 <span class="entry_type_enum_notes"><p>Advanced gamma mapping and color enhancement may be applied.<wbr/></p>
14381<p>May slow down frame rate relative to raw sensor output.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014382 </li>
14383 </ul>
14384
14385 </td> <!-- entry_type -->
14386
14387 <td class="entry_description">
Igor Murashkin94e06c42014-01-13 16:51:17 -080014388 <p>High-level global contrast/<wbr/>gamma/<wbr/>tonemapping control.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014389 </td>
14390
14391 <td class="entry_units">
14392 </td>
14393
14394 <td class="entry_range">
14395 </td>
14396
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014397 <td class="entry_tags">
14398 </td>
14399
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014400 </tr>
Igor Murashkin94e06c42014-01-13 16:51:17 -080014401 <tr class="entries_header">
14402 <th class="th_details" colspan="5">Details</th>
14403 </tr>
14404 <tr class="entry_cont">
14405 <td class="entry_details" colspan="5">
14406 <p>When switching to an application-defined contrast curve by setting
14407<a href="#controls_android.tonemap.mode">android.<wbr/>tonemap.<wbr/>mode</a> to CONTRAST_<wbr/>CURVE,<wbr/> the curve is defined
14408per-channel with a set of <code>(in,<wbr/> out)</code> points that specify the
14409mapping from input high-bit-depth pixel value to the output
14410low-bit-depth value.<wbr/> Since the actual pixel ranges of both input
14411and output may change depending on the camera pipeline,<wbr/> the values
14412are specified by normalized floating-point numbers.<wbr/></p>
14413<p>More-complex color mapping operations such as 3D color look-up
14414tables,<wbr/> selective chroma enhancement,<wbr/> or other non-linear color
14415transforms will be disabled when <a href="#controls_android.tonemap.mode">android.<wbr/>tonemap.<wbr/>mode</a> is
14416CONTRAST_<wbr/>CURVE.<wbr/></p>
14417<p>When using either FAST or HIGH_<wbr/>QUALITY,<wbr/> the camera device will
14418emit its own tonemap curve in <a href="#controls_android.tonemap.curveRed">android.<wbr/>tonemap.<wbr/>curve<wbr/>Red</a>,<wbr/>
14419<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/>
14420These values are always available,<wbr/> and as close as possible to the
14421actually used nonlinear/<wbr/>nonglobal transforms.<wbr/></p>
14422<p>If a request is sent with TRANSFORM_<wbr/>MATRIX with the camera device's
14423provided curve in FAST or HIGH_<wbr/>QUALITY,<wbr/> the image's tonemap will be
14424roughly the same.<wbr/></p>
14425 </td>
14426 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080014427
14428
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014429 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
14430 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014431
14432
14433
14434 <!-- end of kind -->
14435 </tbody>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014436 <tr><td colspan="6" class="kind">static</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014437
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070014438 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014439 <tr>
14440 <th class="th_name">Property Name</th>
14441 <th class="th_type">Type</th>
14442 <th class="th_description">Description</th>
14443 <th class="th_units">Units</th>
14444 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014445 <th class="th_tags">Tags</th>
14446 </tr>
14447 </thead>
14448
14449 <tbody>
14450
14451
14452
14453
14454
14455
14456
14457
14458
14459
14460 <tr class="entry" id="static_android.tonemap.maxCurvePoints">
Igor Murashkin94e06c42014-01-13 16:51:17 -080014461 <td class="entry_name" rowspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -080014462 android.<wbr/>tonemap.<wbr/>max<wbr/>Curve<wbr/>Points
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080014463 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014464 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080014465 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014466
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070014467 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014468
14469
14470 </td> <!-- entry_type -->
14471
14472 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080014473 <p>Maximum number of supported points in the
Igor Murashkin94e06c42014-01-13 16:51:17 -080014474tonemap curve that can be used for <a href="#controls_android.tonemap.curveRed">android.<wbr/>tonemap.<wbr/>curve<wbr/>Red</a>,<wbr/> or
14475<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 -080014476 </td>
14477
14478 <td class="entry_units">
14479 </td>
14480
14481 <td class="entry_range">
Igor Murashkin94e06c42014-01-13 16:51:17 -080014482 <p>&gt;= 64</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014483 </td>
14484
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014485 <td class="entry_tags">
14486 </td>
14487
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014488 </tr>
Igor Murashkin94e06c42014-01-13 16:51:17 -080014489 <tr class="entries_header">
14490 <th class="th_details" colspan="5">Details</th>
14491 </tr>
14492 <tr class="entry_cont">
14493 <td class="entry_details" colspan="5">
14494 <p>If the actual number of points provided by the application (in
14495android.<wbr/>tonemap.<wbr/>curve*) is less than max,<wbr/> the camera device will
14496resample the curve to its internal representation,<wbr/> using linear
14497interpolation.<wbr/></p>
14498<p>The output curves in the result metadata may have a different number
14499of points than the input curves,<wbr/> and will represent the actual
14500hardware curves used as closely as possible when linearly interpolated.<wbr/></p>
14501 </td>
14502 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080014503
Igor Murashkin94e06c42014-01-13 16:51:17 -080014504 <tr class="entries_header">
14505 <th class="th_details" colspan="5">HAL Implementation Details</th>
14506 </tr>
14507 <tr class="entry_cont">
14508 <td class="entry_details" colspan="5">
14509 <p>This value must be at least 64.<wbr/> This should be at least 128.<wbr/></p>
14510 </td>
14511 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080014512
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014513 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
14514 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014515
14516
14517
14518 <!-- end of kind -->
14519 </tbody>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014520 <tr><td colspan="6" class="kind">dynamic</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014521
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070014522 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014523 <tr>
14524 <th class="th_name">Property Name</th>
14525 <th class="th_type">Type</th>
14526 <th class="th_description">Description</th>
14527 <th class="th_units">Units</th>
14528 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014529 <th class="th_tags">Tags</th>
14530 </tr>
14531 </thead>
14532
14533 <tbody>
14534
14535
14536
14537
14538
14539
14540
14541
14542
14543
14544 <tr class="entry" id="dynamic_android.tonemap.curveBlue">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080014545 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080014546 android.<wbr/>tonemap.<wbr/>curve<wbr/>Blue
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080014547 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014548 <td class="entry_type">
Eino-Ville Talvala76548fe2013-01-11 13:57:19 -080014549 <span class="entry_type_name">float</span>
Zhijun He704d1282013-08-19 15:26:33 -070014550 <span class="entry_type_container">x</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014551
Zhijun He704d1282013-08-19 15:26:33 -070014552 <span class="entry_type_array">
14553 n x 2
14554 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070014555 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -080014556 <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 -080014557
14558
14559 </td> <!-- entry_type -->
14560
14561 <td class="entry_description">
Igor Murashkin94e06c42014-01-13 16:51:17 -080014562 <p>Tonemapping /<wbr/> contrast /<wbr/> gamma curve for the blue
14563channel,<wbr/> to use when <a href="#controls_android.tonemap.mode">android.<wbr/>tonemap.<wbr/>mode</a> is
14564CONTRAST_<wbr/>CURVE.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014565 </td>
14566
14567 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -080014568 same as android.<wbr/>tonemap.<wbr/>curve<wbr/>Red
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014569 </td>
14570
14571 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -080014572 <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 -080014573 </td>
14574
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014575 <td class="entry_tags">
14576 </td>
14577
14578 </tr>
14579 <tr class="entries_header">
14580 <th class="th_details" colspan="5">Details</th>
14581 </tr>
14582 <tr class="entry_cont">
14583 <td class="entry_details" colspan="5">
Igor Murashkin94e06c42014-01-13 16:51:17 -080014584 <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 -080014585 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014586 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080014587
14588
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014589 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
14590 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014591
14592
14593 <tr class="entry" id="dynamic_android.tonemap.curveGreen">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080014594 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080014595 android.<wbr/>tonemap.<wbr/>curve<wbr/>Green
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080014596 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014597 <td class="entry_type">
Eino-Ville Talvala76548fe2013-01-11 13:57:19 -080014598 <span class="entry_type_name">float</span>
Zhijun He704d1282013-08-19 15:26:33 -070014599 <span class="entry_type_container">x</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014600
Zhijun He704d1282013-08-19 15:26:33 -070014601 <span class="entry_type_array">
14602 n x 2
14603 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070014604 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -080014605 <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 -080014606
14607
14608 </td> <!-- entry_type -->
14609
14610 <td class="entry_description">
Igor Murashkin94e06c42014-01-13 16:51:17 -080014611 <p>Tonemapping /<wbr/> contrast /<wbr/> gamma curve for the green
14612channel,<wbr/> to use when <a href="#controls_android.tonemap.mode">android.<wbr/>tonemap.<wbr/>mode</a> is
14613CONTRAST_<wbr/>CURVE.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014614 </td>
14615
14616 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -080014617 same as android.<wbr/>tonemap.<wbr/>curve<wbr/>Red
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014618 </td>
14619
14620 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -080014621 <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 -080014622 </td>
14623
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014624 <td class="entry_tags">
14625 </td>
14626
14627 </tr>
14628 <tr class="entries_header">
14629 <th class="th_details" colspan="5">Details</th>
14630 </tr>
14631 <tr class="entry_cont">
14632 <td class="entry_details" colspan="5">
Igor Murashkin94e06c42014-01-13 16:51:17 -080014633 <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 -080014634 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014635 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080014636
14637
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014638 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
14639 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014640
14641
14642 <tr class="entry" id="dynamic_android.tonemap.curveRed">
Igor Murashkin94e06c42014-01-13 16:51:17 -080014643 <td class="entry_name" rowspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -080014644 android.<wbr/>tonemap.<wbr/>curve<wbr/>Red
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080014645 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014646 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080014647 <span class="entry_type_name">float</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014648 <span class="entry_type_container">x</span>
14649
14650 <span class="entry_type_array">
14651 n x 2
14652 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070014653 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -080014654 <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 -080014655
14656
14657 </td> <!-- entry_type -->
14658
14659 <td class="entry_description">
Igor Murashkin94e06c42014-01-13 16:51:17 -080014660 <p>Tonemapping /<wbr/> contrast /<wbr/> gamma curve for the red
14661channel,<wbr/> to use when <a href="#controls_android.tonemap.mode">android.<wbr/>tonemap.<wbr/>mode</a> is
14662CONTRAST_<wbr/>CURVE.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014663 </td>
14664
14665 <td class="entry_units">
14666 </td>
14667
14668 <td class="entry_range">
Igor Murashkin94e06c42014-01-13 16:51:17 -080014669 <p>0-1 on both input and output coordinates,<wbr/> normalized
14670as a floating-point value such that 0 == black and 1 == white.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014671 </td>
14672
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014673 <td class="entry_tags">
14674 <ul class="entry_tags">
14675 <li><a href="#tag_DNG">DNG</a></li>
14676 </ul>
14677 </td>
14678
14679 </tr>
14680 <tr class="entries_header">
14681 <th class="th_details" colspan="5">Details</th>
14682 </tr>
14683 <tr class="entry_cont">
14684 <td class="entry_details" colspan="5">
Igor Murashkin94e06c42014-01-13 16:51:17 -080014685 <p>Each channel's curve is defined by an array of control points:</p>
14686<pre><code><a href="#controls_android.tonemap.curveRed">android.<wbr/>tonemap.<wbr/>curve<wbr/>Red</a> =
14687 [ P0in,<wbr/> P0out,<wbr/> P1in,<wbr/> P1out,<wbr/> P2in,<wbr/> P2out,<wbr/> P3in,<wbr/> P3out,<wbr/> ...,<wbr/> PNin,<wbr/> PNout ]
146882 &lt;= N &lt;= <a href="#static_android.tonemap.maxCurvePoints">android.<wbr/>tonemap.<wbr/>max<wbr/>Curve<wbr/>Points</a></code></pre>
14689<p>These are sorted in order of increasing <code>Pin</code>; it is always
14690guaranteed that input values 0.<wbr/>0 and 1.<wbr/>0 are included in the list to
14691define a complete mapping.<wbr/> For input values between control points,<wbr/>
14692the camera device must linearly interpolate between the control
14693points.<wbr/></p>
14694<p>Each curve can have an independent number of points,<wbr/> and the number
14695of points can be less than max (that is,<wbr/> the request doesn't have to
14696always provide a curve with number of points equivalent to
14697<a href="#static_android.tonemap.maxCurvePoints">android.<wbr/>tonemap.<wbr/>max<wbr/>Curve<wbr/>Points</a>).<wbr/></p>
14698<p>A few examples,<wbr/> and their corresponding graphical mappings; these
14699only specify the red channel and the precision is limited to 4
14700digits,<wbr/> for conciseness.<wbr/></p>
14701<p>Linear mapping:</p>
14702<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 ]
14703</code></pre>
14704<p><img alt="Linear mapping curve" src="images/camera2/metadata/android.tonemap.curveRed/linear_tonemap.png"/></p>
14705<p>Invert mapping:</p>
14706<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 ]
14707</code></pre>
14708<p><img alt="Inverting mapping curve" src="images/camera2/metadata/android.tonemap.curveRed/inverse_tonemap.png"/></p>
14709<p>Gamma 1/<wbr/>2.<wbr/>2 mapping,<wbr/> with 16 control points:</p>
14710<pre><code><a href="#controls_android.tonemap.curveRed">android.<wbr/>tonemap.<wbr/>curve<wbr/>Red</a> = [
14711 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/>
14712 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/>
14713 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/>
14714 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 ]
14715</code></pre>
14716<p><img alt="Gamma = 1/2.2 tonemapping curve" src="images/camera2/metadata/android.tonemap.curveRed/gamma_tonemap.png"/></p>
14717<p>Standard sRGB gamma mapping,<wbr/> per IEC 61966-2-1:1999,<wbr/> with 16 control points:</p>
14718<pre><code><a href="#controls_android.tonemap.curveRed">android.<wbr/>tonemap.<wbr/>curve<wbr/>Red</a> = [
14719 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/>
14720 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/>
14721 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/>
14722 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 ]
14723</code></pre>
14724<p><img alt="sRGB tonemapping curve" src="images/camera2/metadata/android.tonemap.curveRed/srgb_tonemap.png"/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014725 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014726 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080014727
Igor Murashkin94e06c42014-01-13 16:51:17 -080014728 <tr class="entries_header">
14729 <th class="th_details" colspan="5">HAL Implementation Details</th>
14730 </tr>
14731 <tr class="entry_cont">
14732 <td class="entry_details" colspan="5">
14733 <p>For good quality of mapping,<wbr/> at least 128 control points are
14734preferred.<wbr/></p>
14735<p>A typical use case of this would be a gamma-1/<wbr/>2.<wbr/>2 curve,<wbr/> with as many
14736control points used as are available.<wbr/></p>
14737 </td>
14738 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080014739
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014740 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
14741 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014742
14743
14744 <tr class="entry" id="dynamic_android.tonemap.mode">
Igor Murashkin94e06c42014-01-13 16:51:17 -080014745 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080014746 android.<wbr/>tonemap.<wbr/>mode
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080014747 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014748 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080014749 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014750
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070014751 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014752
14753 <ul class="entry_type_enum">
14754 <li>
14755 <span class="entry_type_enum_name">CONTRAST_CURVE</span>
Igor Murashkina10351a2014-01-15 17:05:22 -080014756 <span class="entry_type_enum_notes"><p>Use the tone mapping curve specified in
Igor Murashkin94e06c42014-01-13 16:51:17 -080014757android.<wbr/>tonemap.<wbr/>curve.<wbr/></p>
14758<p>All color enhancement and tonemapping must be disabled,<wbr/> except
14759for applying the tonemapping curve specified by
14760<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
14761<a href="#controls_android.tonemap.curveGreen">android.<wbr/>tonemap.<wbr/>curve<wbr/>Green</a>.<wbr/></p>
14762<p>Must not slow down frame rate relative to raw
14763sensor output.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014764 </li>
14765 <li>
14766 <span class="entry_type_enum_name">FAST</span>
Igor Murashkin94e06c42014-01-13 16:51:17 -080014767 <span class="entry_type_enum_notes"><p>Advanced gamma mapping and color enhancement may be applied.<wbr/></p>
14768<p>Should not slow down frame rate relative to raw sensor output.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014769 </li>
14770 <li>
14771 <span class="entry_type_enum_name">HIGH_QUALITY</span>
Igor Murashkin94e06c42014-01-13 16:51:17 -080014772 <span class="entry_type_enum_notes"><p>Advanced gamma mapping and color enhancement may be applied.<wbr/></p>
14773<p>May slow down frame rate relative to raw sensor output.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014774 </li>
14775 </ul>
14776
14777 </td> <!-- entry_type -->
14778
14779 <td class="entry_description">
Igor Murashkin94e06c42014-01-13 16:51:17 -080014780 <p>High-level global contrast/<wbr/>gamma/<wbr/>tonemapping control.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014781 </td>
14782
14783 <td class="entry_units">
14784 </td>
14785
14786 <td class="entry_range">
14787 </td>
14788
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014789 <td class="entry_tags">
14790 </td>
14791
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014792 </tr>
Igor Murashkin595f45b2014-01-17 17:27:15 -080014793 <tr class="entries_header">
14794 <th class="th_details" colspan="5">Details</th>
14795 </tr>
14796 <tr class="entry_cont">
14797 <td class="entry_details" colspan="5">
14798 <p>When switching to an application-defined contrast curve by setting
14799<a href="#controls_android.tonemap.mode">android.<wbr/>tonemap.<wbr/>mode</a> to CONTRAST_<wbr/>CURVE,<wbr/> the curve is defined
14800per-channel with a set of <code>(in,<wbr/> out)</code> points that specify the
14801mapping from input high-bit-depth pixel value to the output
14802low-bit-depth value.<wbr/> Since the actual pixel ranges of both input
14803and output may change depending on the camera pipeline,<wbr/> the values
14804are specified by normalized floating-point numbers.<wbr/></p>
14805<p>More-complex color mapping operations such as 3D color look-up
14806tables,<wbr/> selective chroma enhancement,<wbr/> or other non-linear color
14807transforms will be disabled when <a href="#controls_android.tonemap.mode">android.<wbr/>tonemap.<wbr/>mode</a> is
14808CONTRAST_<wbr/>CURVE.<wbr/></p>
14809<p>When using either FAST or HIGH_<wbr/>QUALITY,<wbr/> the camera device will
14810emit its own tonemap curve in <a href="#controls_android.tonemap.curveRed">android.<wbr/>tonemap.<wbr/>curve<wbr/>Red</a>,<wbr/>
14811<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/>
14812These values are always available,<wbr/> and as close as possible to the
14813actually used nonlinear/<wbr/>nonglobal transforms.<wbr/></p>
14814<p>If a request is sent with TRANSFORM_<wbr/>MATRIX with the camera device's
14815provided curve in FAST or HIGH_<wbr/>QUALITY,<wbr/> the image's tonemap will be
14816roughly the same.<wbr/></p>
14817 </td>
14818 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080014819
14820
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014821 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
14822 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014823
14824
14825
14826 <!-- end of kind -->
14827 </tbody>
14828
14829 <!-- end of section -->
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014830 <tr><td colspan="6" id="section_led" class="section">led</td></tr>
Igor Murashkinc469f7d2013-04-23 14:31:02 -070014831
14832
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014833 <tr><td colspan="6" class="kind">controls</td></tr>
Igor Murashkinc469f7d2013-04-23 14:31:02 -070014834
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070014835 <thead class="entries_header">
Igor Murashkinc469f7d2013-04-23 14:31:02 -070014836 <tr>
14837 <th class="th_name">Property Name</th>
14838 <th class="th_type">Type</th>
14839 <th class="th_description">Description</th>
14840 <th class="th_units">Units</th>
14841 <th class="th_range">Range</th>
Igor Murashkinc469f7d2013-04-23 14:31:02 -070014842 <th class="th_tags">Tags</th>
14843 </tr>
14844 </thead>
14845
14846 <tbody>
14847
14848
14849
14850
14851
14852
14853
14854
14855
14856
14857 <tr class="entry" id="controls_android.led.transmit">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080014858 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -080014859 android.<wbr/>led.<wbr/>transmit
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080014860 </td>
Igor Murashkinc469f7d2013-04-23 14:31:02 -070014861 <td class="entry_type">
14862 <span class="entry_type_name entry_type_name_enum">byte</span>
14863
Igor Murashkinb8dc8812013-07-17 16:29:34 -070014864 <span class="entry_type_visibility"> [hidden as boolean]</span>
Igor Murashkinc469f7d2013-04-23 14:31:02 -070014865
14866 <ul class="entry_type_enum">
14867 <li>
14868 <span class="entry_type_enum_name">OFF</span>
14869 </li>
14870 <li>
14871 <span class="entry_type_enum_name">ON</span>
14872 </li>
14873 </ul>
14874
14875 </td> <!-- entry_type -->
14876
14877 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080014878 <p>This LED is nominally used to indicate to the user
Igor Murashkin8aa2a112013-12-09 12:06:17 -080014879that the camera is powered on and may be streaming images back to the
Igor Murashkin0b080452013-12-27 15:30:25 -080014880Application Processor.<wbr/> In certain rare circumstances,<wbr/> the OS may
Igor Murashkin8aa2a112013-12-09 12:06:17 -080014881disable this when video is processed locally and not transmitted to
Igor Murashkin0b080452013-12-27 15:30:25 -080014882any untrusted applications.<wbr/></p>
14883<p>In particular,<wbr/> the LED <em>must</em> always be on when the data could be
14884transmitted off the device.<wbr/> The LED <em>should</em> always be on whenever
14885data is stored locally on the device.<wbr/></p>
Igor Murashkin8aa2a112013-12-09 12:06:17 -080014886<p>The LED <em>may</em> be off if a trusted application is using the data that
Igor Murashkin0b080452013-12-27 15:30:25 -080014887doesn't violate the above rules.<wbr/></p>
Igor Murashkinc469f7d2013-04-23 14:31:02 -070014888 </td>
14889
14890 <td class="entry_units">
14891 </td>
14892
14893 <td class="entry_range">
14894 </td>
14895
Igor Murashkinc469f7d2013-04-23 14:31:02 -070014896 <td class="entry_tags">
14897 </td>
14898
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014899 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080014900
14901
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014902 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
14903 <!-- end of entry -->
Igor Murashkinc469f7d2013-04-23 14:31:02 -070014904
14905
14906
14907 <!-- end of kind -->
14908 </tbody>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014909 <tr><td colspan="6" class="kind">dynamic</td></tr>
Igor Murashkinc469f7d2013-04-23 14:31:02 -070014910
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070014911 <thead class="entries_header">
Igor Murashkinc469f7d2013-04-23 14:31:02 -070014912 <tr>
14913 <th class="th_name">Property Name</th>
14914 <th class="th_type">Type</th>
14915 <th class="th_description">Description</th>
14916 <th class="th_units">Units</th>
14917 <th class="th_range">Range</th>
Igor Murashkinc469f7d2013-04-23 14:31:02 -070014918 <th class="th_tags">Tags</th>
14919 </tr>
14920 </thead>
14921
14922 <tbody>
14923
14924
14925
14926
14927
14928
14929
14930
14931
14932
14933 <tr class="entry" id="dynamic_android.led.transmit">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080014934 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -080014935 android.<wbr/>led.<wbr/>transmit
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080014936 </td>
Igor Murashkinc469f7d2013-04-23 14:31:02 -070014937 <td class="entry_type">
14938 <span class="entry_type_name entry_type_name_enum">byte</span>
14939
Igor Murashkinb8dc8812013-07-17 16:29:34 -070014940 <span class="entry_type_visibility"> [hidden as boolean]</span>
Igor Murashkinc469f7d2013-04-23 14:31:02 -070014941
14942 <ul class="entry_type_enum">
14943 <li>
14944 <span class="entry_type_enum_name">OFF</span>
14945 </li>
14946 <li>
14947 <span class="entry_type_enum_name">ON</span>
14948 </li>
14949 </ul>
14950
14951 </td> <!-- entry_type -->
14952
14953 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080014954 <p>This LED is nominally used to indicate to the user
Igor Murashkin8aa2a112013-12-09 12:06:17 -080014955that the camera is powered on and may be streaming images back to the
Igor Murashkin0b080452013-12-27 15:30:25 -080014956Application Processor.<wbr/> In certain rare circumstances,<wbr/> the OS may
Igor Murashkin8aa2a112013-12-09 12:06:17 -080014957disable this when video is processed locally and not transmitted to
Igor Murashkin0b080452013-12-27 15:30:25 -080014958any untrusted applications.<wbr/></p>
14959<p>In particular,<wbr/> the LED <em>must</em> always be on when the data could be
14960transmitted off the device.<wbr/> The LED <em>should</em> always be on whenever
14961data is stored locally on the device.<wbr/></p>
Igor Murashkin8aa2a112013-12-09 12:06:17 -080014962<p>The LED <em>may</em> be off if a trusted application is using the data that
Igor Murashkin0b080452013-12-27 15:30:25 -080014963doesn't violate the above rules.<wbr/></p>
Igor Murashkinc469f7d2013-04-23 14:31:02 -070014964 </td>
14965
14966 <td class="entry_units">
14967 </td>
14968
14969 <td class="entry_range">
14970 </td>
14971
Igor Murashkinc469f7d2013-04-23 14:31:02 -070014972 <td class="entry_tags">
14973 </td>
14974
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014975 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080014976
14977
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014978 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
14979 <!-- end of entry -->
Igor Murashkinc469f7d2013-04-23 14:31:02 -070014980
14981
14982
14983 <!-- end of kind -->
14984 </tbody>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014985 <tr><td colspan="6" class="kind">static</td></tr>
Igor Murashkinc469f7d2013-04-23 14:31:02 -070014986
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070014987 <thead class="entries_header">
Igor Murashkinc469f7d2013-04-23 14:31:02 -070014988 <tr>
14989 <th class="th_name">Property Name</th>
14990 <th class="th_type">Type</th>
14991 <th class="th_description">Description</th>
14992 <th class="th_units">Units</th>
14993 <th class="th_range">Range</th>
Igor Murashkinc469f7d2013-04-23 14:31:02 -070014994 <th class="th_tags">Tags</th>
14995 </tr>
14996 </thead>
14997
14998 <tbody>
14999
15000
15001
15002
15003
15004
15005
15006
15007
15008
15009 <tr class="entry" id="static_android.led.availableLeds">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080015010 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -080015011 android.<wbr/>led.<wbr/>available<wbr/>Leds
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080015012 </td>
Igor Murashkinc469f7d2013-04-23 14:31:02 -070015013 <td class="entry_type">
15014 <span class="entry_type_name entry_type_name_enum">byte</span>
15015 <span class="entry_type_container">x</span>
15016
15017 <span class="entry_type_array">
15018 n
15019 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070015020 <span class="entry_type_visibility"> [hidden]</span>
Igor Murashkinc469f7d2013-04-23 14:31:02 -070015021
15022 <ul class="entry_type_enum">
15023 <li>
15024 <span class="entry_type_enum_name">TRANSMIT</span>
Igor Murashkina10351a2014-01-15 17:05:22 -080015025 <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 -070015026 </li>
15027 </ul>
15028
15029 </td> <!-- entry_type -->
15030
15031 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080015032 <p>A list of camera LEDs that are available on this system.<wbr/></p>
Igor Murashkinc469f7d2013-04-23 14:31:02 -070015033 </td>
15034
15035 <td class="entry_units">
15036 </td>
15037
15038 <td class="entry_range">
15039 </td>
15040
Igor Murashkinc469f7d2013-04-23 14:31:02 -070015041 <td class="entry_tags">
15042 </td>
15043
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080015044 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080015045
15046
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080015047 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
15048 <!-- end of entry -->
Igor Murashkinc469f7d2013-04-23 14:31:02 -070015049
15050
15051
15052 <!-- end of kind -->
15053 </tbody>
15054
15055 <!-- end of section -->
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080015056 <tr><td colspan="6" id="section_info" class="section">info</td></tr>
Igor Murashkin38b8cae2013-05-23 16:38:59 -070015057
15058
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080015059 <tr><td colspan="6" class="kind">static</td></tr>
Igor Murashkin38b8cae2013-05-23 16:38:59 -070015060
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070015061 <thead class="entries_header">
Igor Murashkin38b8cae2013-05-23 16:38:59 -070015062 <tr>
15063 <th class="th_name">Property Name</th>
15064 <th class="th_type">Type</th>
15065 <th class="th_description">Description</th>
15066 <th class="th_units">Units</th>
15067 <th class="th_range">Range</th>
Igor Murashkin38b8cae2013-05-23 16:38:59 -070015068 <th class="th_tags">Tags</th>
15069 </tr>
15070 </thead>
15071
15072 <tbody>
15073
15074
15075
15076
15077
15078
15079
15080
15081
15082
15083 <tr class="entry" id="static_android.info.supportedHardwareLevel">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080015084 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -080015085 android.<wbr/>info.<wbr/>supported<wbr/>Hardware<wbr/>Level
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080015086 </td>
Igor Murashkin38b8cae2013-05-23 16:38:59 -070015087 <td class="entry_type">
15088 <span class="entry_type_name entry_type_name_enum">byte</span>
15089
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070015090 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin38b8cae2013-05-23 16:38:59 -070015091
15092 <ul class="entry_type_enum">
15093 <li>
15094 <span class="entry_type_enum_name">LIMITED</span>
15095 </li>
15096 <li>
15097 <span class="entry_type_enum_name">FULL</span>
15098 </li>
15099 </ul>
15100
15101 </td> <!-- entry_type -->
15102
15103 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080015104 <p>The camera 3 HAL device can implement one of two possible
15105operational modes; limited and full.<wbr/> Full support is
15106expected from new higher-end devices.<wbr/> Limited mode has
Igor Murashkin8aa2a112013-12-09 12:06:17 -080015107hardware requirements roughly in line with those for a
Igor Murashkin0b080452013-12-27 15:30:25 -080015108camera HAL device v1 implementation,<wbr/> and is expected from
15109older or inexpensive devices.<wbr/> Full is a strict superset of
15110limited,<wbr/> and they share the same essential operational flow.<wbr/></p>
15111<p>For full details refer to "S3.<wbr/> Operational Modes" in camera3.<wbr/>h</p>
Igor Murashkin38b8cae2013-05-23 16:38:59 -070015112 </td>
15113
15114 <td class="entry_units">
15115 </td>
15116
15117 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -080015118 <p>Optional.<wbr/> Default value is LIMITED.<wbr/></p>
Igor Murashkin38b8cae2013-05-23 16:38:59 -070015119 </td>
15120
Igor Murashkin38b8cae2013-05-23 16:38:59 -070015121 <td class="entry_tags">
15122 </td>
15123
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080015124 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080015125
15126
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080015127 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
15128 <!-- end of entry -->
Igor Murashkin38b8cae2013-05-23 16:38:59 -070015129
15130
15131
15132 <!-- end of kind -->
15133 </tbody>
15134
15135 <!-- end of section -->
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080015136 <tr><td colspan="6" id="section_blackLevel" class="section">blackLevel</td></tr>
Zhijun He69fc0ea2013-07-17 09:42:58 -070015137
15138
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080015139 <tr><td colspan="6" class="kind">controls</td></tr>
Zhijun He69fc0ea2013-07-17 09:42:58 -070015140
15141 <thead class="entries_header">
15142 <tr>
15143 <th class="th_name">Property Name</th>
15144 <th class="th_type">Type</th>
15145 <th class="th_description">Description</th>
15146 <th class="th_units">Units</th>
15147 <th class="th_range">Range</th>
Zhijun He69fc0ea2013-07-17 09:42:58 -070015148 <th class="th_tags">Tags</th>
15149 </tr>
15150 </thead>
15151
15152 <tbody>
15153
15154
15155
15156
15157
15158
15159
15160
15161
15162
15163 <tr class="entry" id="controls_android.blackLevel.lock">
Eino-Ville Talvala7796cfe2013-12-26 13:16:54 -080015164 <td class="entry_name" rowspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -080015165 android.<wbr/>black<wbr/>Level.<wbr/>lock
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080015166 </td>
Zhijun He69fc0ea2013-07-17 09:42:58 -070015167 <td class="entry_type">
15168 <span class="entry_type_name entry_type_name_enum">byte</span>
15169
Igor Murashkinb8dc8812013-07-17 16:29:34 -070015170 <span class="entry_type_visibility"> [public as boolean]</span>
Zhijun He69fc0ea2013-07-17 09:42:58 -070015171
15172 <ul class="entry_type_enum">
15173 <li>
15174 <span class="entry_type_enum_name">OFF</span>
15175 </li>
15176 <li>
15177 <span class="entry_type_enum_name">ON</span>
15178 </li>
15179 </ul>
15180
15181 </td> <!-- entry_type -->
15182
15183 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080015184 <p>Whether black-level compensation is locked
15185to its current values,<wbr/> or is free to vary.<wbr/></p>
Zhijun He69fc0ea2013-07-17 09:42:58 -070015186 </td>
15187
15188 <td class="entry_units">
15189 </td>
15190
15191 <td class="entry_range">
15192 </td>
15193
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080015194 <td class="entry_tags">
15195 <ul class="entry_tags">
15196 <li><a href="#tag_HAL2">HAL2</a></li>
15197 </ul>
15198 </td>
15199
15200 </tr>
15201 <tr class="entries_header">
15202 <th class="th_details" colspan="5">Details</th>
15203 </tr>
15204 <tr class="entry_cont">
15205 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -080015206 <p>When set to ON,<wbr/> the values used for black-level
Eino-Ville Talvala7796cfe2013-12-26 13:16:54 -080015207compensation will not change until the lock is set to
Igor Murashkin0b080452013-12-27 15:30:25 -080015208OFF.<wbr/></p>
Igor Murashkin8aa2a112013-12-09 12:06:17 -080015209<p>Since changes to certain capture parameters (such as
15210exposure time) may require resetting of black level
Igor Murashkin0b080452013-12-27 15:30:25 -080015211compensation,<wbr/> the camera device must report whether setting
Eino-Ville Talvala7796cfe2013-12-26 13:16:54 -080015212the black level lock was successful in the output result
Igor Murashkin0b080452013-12-27 15:30:25 -080015213metadata.<wbr/></p>
15214<p>For example,<wbr/> if a sequence of requests is as follows:</p>
Igor Murashkin8aa2a112013-12-09 12:06:17 -080015215<ul>
Igor Murashkin0b080452013-12-27 15:30:25 -080015216<li>Request 1: Exposure = 10ms,<wbr/> Black level lock = OFF</li>
15217<li>Request 2: Exposure = 10ms,<wbr/> Black level lock = ON</li>
15218<li>Request 3: Exposure = 10ms,<wbr/> Black level lock = ON</li>
15219<li>Request 4: Exposure = 20ms,<wbr/> Black level lock = ON</li>
15220<li>Request 5: Exposure = 20ms,<wbr/> Black level lock = ON</li>
15221<li>Request 6: Exposure = 20ms,<wbr/> Black level lock = ON</li>
Igor Murashkin8aa2a112013-12-09 12:06:17 -080015222</ul>
Eino-Ville Talvala7796cfe2013-12-26 13:16:54 -080015223<p>And the exposure change in Request 4 requires the camera
Igor Murashkin0b080452013-12-27 15:30:25 -080015224device to reset the black level offsets,<wbr/> then the output
Eino-Ville Talvala7796cfe2013-12-26 13:16:54 -080015225result metadata is expected to be:</p>
Igor Murashkin8aa2a112013-12-09 12:06:17 -080015226<ul>
Igor Murashkin0b080452013-12-27 15:30:25 -080015227<li>Result 1: Exposure = 10ms,<wbr/> Black level lock = OFF</li>
15228<li>Result 2: Exposure = 10ms,<wbr/> Black level lock = ON</li>
15229<li>Result 3: Exposure = 10ms,<wbr/> Black level lock = ON</li>
15230<li>Result 4: Exposure = 20ms,<wbr/> Black level lock = OFF</li>
15231<li>Result 5: Exposure = 20ms,<wbr/> Black level lock = ON</li>
15232<li>Result 6: Exposure = 20ms,<wbr/> Black level lock = ON</li>
Igor Murashkin8aa2a112013-12-09 12:06:17 -080015233</ul>
Igor Murashkin0b080452013-12-27 15:30:25 -080015234<p>This indicates to the application that on frame 4,<wbr/> black
15235levels were reset due to exposure value changes,<wbr/> and pixel
15236values may not be consistent across captures.<wbr/></p>
Eino-Ville Talvala7796cfe2013-12-26 13:16:54 -080015237<p>The camera device will maintain the lock to the extent
Igor Murashkin0b080452013-12-27 15:30:25 -080015238possible,<wbr/> only overriding the lock to OFF when changes to
Eino-Ville Talvala7796cfe2013-12-26 13:16:54 -080015239other request parameters require a black level recalculation
Igor Murashkin0b080452013-12-27 15:30:25 -080015240or reset.<wbr/></p>
Zhijun He69fc0ea2013-07-17 09:42:58 -070015241 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080015242 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080015243
Eino-Ville Talvala7796cfe2013-12-26 13:16:54 -080015244 <tr class="entries_header">
15245 <th class="th_details" colspan="5">HAL Implementation Details</th>
15246 </tr>
15247 <tr class="entry_cont">
15248 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -080015249 <p>If for some reason black level locking is no longer possible
15250(for example,<wbr/> the analog gain has changed,<wbr/> which forces
15251black level offsets to be recalculated),<wbr/> then the HAL must
Eino-Ville Talvala7796cfe2013-12-26 13:16:54 -080015252override this request (and it must report 'OFF' when this
15253does happen) until the next capture for which locking is
Igor Murashkin0b080452013-12-27 15:30:25 -080015254possible again.<wbr/></p>
Eino-Ville Talvala7796cfe2013-12-26 13:16:54 -080015255 </td>
15256 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080015257
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080015258 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
15259 <!-- end of entry -->
Zhijun He69fc0ea2013-07-17 09:42:58 -070015260
15261
15262
15263 <!-- end of kind -->
15264 </tbody>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080015265 <tr><td colspan="6" class="kind">dynamic</td></tr>
Zhijun He69fc0ea2013-07-17 09:42:58 -070015266
15267 <thead class="entries_header">
15268 <tr>
15269 <th class="th_name">Property Name</th>
15270 <th class="th_type">Type</th>
15271 <th class="th_description">Description</th>
15272 <th class="th_units">Units</th>
15273 <th class="th_range">Range</th>
Zhijun He69fc0ea2013-07-17 09:42:58 -070015274 <th class="th_tags">Tags</th>
15275 </tr>
15276 </thead>
15277
15278 <tbody>
15279
15280
15281
15282
15283
15284
15285
15286
15287
15288
15289 <tr class="entry" id="dynamic_android.blackLevel.lock">
Eino-Ville Talvala7796cfe2013-12-26 13:16:54 -080015290 <td class="entry_name" rowspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -080015291 android.<wbr/>black<wbr/>Level.<wbr/>lock
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080015292 </td>
Zhijun He69fc0ea2013-07-17 09:42:58 -070015293 <td class="entry_type">
15294 <span class="entry_type_name entry_type_name_enum">byte</span>
15295
Igor Murashkinb8dc8812013-07-17 16:29:34 -070015296 <span class="entry_type_visibility"> [public as boolean]</span>
Zhijun He69fc0ea2013-07-17 09:42:58 -070015297
15298 <ul class="entry_type_enum">
15299 <li>
15300 <span class="entry_type_enum_name">OFF</span>
15301 </li>
15302 <li>
15303 <span class="entry_type_enum_name">ON</span>
15304 </li>
15305 </ul>
15306
15307 </td> <!-- entry_type -->
15308
15309 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080015310 <p>Whether black-level compensation is locked
15311to its current values,<wbr/> or is free to vary.<wbr/></p>
Zhijun He69fc0ea2013-07-17 09:42:58 -070015312 </td>
15313
15314 <td class="entry_units">
15315 </td>
15316
15317 <td class="entry_range">
15318 </td>
15319
Zhijun He69fc0ea2013-07-17 09:42:58 -070015320 <td class="entry_tags">
15321 <ul class="entry_tags">
15322 <li><a href="#tag_HAL2">HAL2</a></li>
15323 </ul>
15324 </td>
15325
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080015326 </tr>
15327 <tr class="entries_header">
15328 <th class="th_details" colspan="5">Details</th>
15329 </tr>
15330 <tr class="entry_cont">
15331 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -080015332 <p>Whether the black level offset was locked for this frame.<wbr/> Should be
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -080015333ON 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 -080015334a change in other capture settings forced the camera device to
Igor Murashkin0b080452013-12-27 15:30:25 -080015335perform a black level reset.<wbr/></p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080015336 </td>
15337 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080015338
Eino-Ville Talvala7796cfe2013-12-26 13:16:54 -080015339 <tr class="entries_header">
15340 <th class="th_details" colspan="5">HAL Implementation Details</th>
15341 </tr>
15342 <tr class="entry_cont">
15343 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -080015344 <p>If for some reason black level locking is no longer possible
15345(for example,<wbr/> the analog gain has changed,<wbr/> which forces
15346black level offsets to be recalculated),<wbr/> then the HAL must
Eino-Ville Talvala7796cfe2013-12-26 13:16:54 -080015347override this request (and it must report 'OFF' when this
15348does happen) until the next capture for which locking is
Igor Murashkin0b080452013-12-27 15:30:25 -080015349possible again.<wbr/></p>
Eino-Ville Talvala7796cfe2013-12-26 13:16:54 -080015350 </td>
15351 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080015352
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080015353 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
15354 <!-- end of entry -->
Zhijun He69fc0ea2013-07-17 09:42:58 -070015355
15356
15357
15358 <!-- end of kind -->
15359 </tbody>
15360
15361 <!-- end of section -->
Igor Murashkin5c1fc682014-01-16 17:51:36 -080015362 <tr><td colspan="6" id="section_sync" class="section">sync</td></tr>
15363
15364
15365 <tr><td colspan="6" class="kind">dynamic</td></tr>
15366
15367 <thead class="entries_header">
15368 <tr>
15369 <th class="th_name">Property Name</th>
15370 <th class="th_type">Type</th>
15371 <th class="th_description">Description</th>
15372 <th class="th_units">Units</th>
15373 <th class="th_range">Range</th>
15374 <th class="th_tags">Tags</th>
15375 </tr>
15376 </thead>
15377
15378 <tbody>
15379
15380
15381
15382
15383
15384
15385
15386
15387
15388
15389 <tr class="entry" id="dynamic_android.sync.frameNumber">
15390 <td class="entry_name" rowspan="5">
15391 android.<wbr/>sync.<wbr/>frame<wbr/>Number
15392 </td>
15393 <td class="entry_type">
15394 <span class="entry_type_name entry_type_name_enum">int64</span>
15395
15396 <span class="entry_type_visibility"> [hidden]</span>
15397
15398 <ul class="entry_type_enum">
15399 <li>
15400 <span class="entry_type_enum_name">CONVERGING</span>
15401 <span class="entry_type_enum_value">-1</span>
15402 <span class="entry_type_enum_notes"><p>The current result is not yet fully synchronized to any request.<wbr/>
15403Synchronization is in progress,<wbr/> and reading metadata from this
15404result may include a mix of data that have taken effect since the
15405last synchronization time.<wbr/></p>
15406<p>In some future result,<wbr/> within <a href="#static_android.sync.maxLatency">android.<wbr/>sync.<wbr/>max<wbr/>Latency</a> frames,<wbr/>
15407this value will update to the actual frame number frame number
15408the result is guaranteed to be synchronized to (as long as the
15409request settings remain constant).<wbr/></p></span>
15410 </li>
15411 <li>
15412 <span class="entry_type_enum_name">UNKNOWN</span>
15413 <span class="entry_type_enum_value">-2</span>
15414 <span class="entry_type_enum_notes"><p>The current result's synchronization status is unknown.<wbr/> The
15415result may have already converged,<wbr/> or it may be in progress.<wbr/>
15416Reading from this result may include some mix of settings from
15417past requests.<wbr/></p>
15418<p>After a settings change,<wbr/> the new settings will eventually all
15419take effect for the output buffers and results.<wbr/> However,<wbr/> this
15420value will not change when that happens.<wbr/> Altering settings
15421rapidly may provide outcomes using mixes of settings from recent
15422requests.<wbr/></p>
15423<p>This value is intended primarily for backwards compatibility with
15424the older camera implementations (for android.<wbr/>hardware.<wbr/>Camera).<wbr/></p></span>
15425 </li>
15426 </ul>
15427
15428 </td> <!-- entry_type -->
15429
15430 <td class="entry_description">
15431 <p>The frame number corresponding to the last request
15432with which the output result (metadata + buffers) has been fully
15433synchronized.<wbr/></p>
15434 </td>
15435
15436 <td class="entry_units">
15437 </td>
15438
15439 <td class="entry_range">
15440 <p>Either a non-negative value corresponding to a
15441<code>frame_<wbr/>number</code>,<wbr/> or one of the two enums (CONVERGING /<wbr/> UNKNOWN).<wbr/></p>
15442 </td>
15443
15444 <td class="entry_tags">
15445 <ul class="entry_tags">
15446 <li><a href="#tag_LIMITED">LIMITED</a></li>
15447 </ul>
15448 </td>
15449
15450 </tr>
15451 <tr class="entries_header">
15452 <th class="th_details" colspan="5">Details</th>
15453 </tr>
15454 <tr class="entry_cont">
15455 <td class="entry_details" colspan="5">
15456 <p>When a request is submitted to the camera device,<wbr/> there is usually a
15457delay of several frames before the controls get applied.<wbr/> A camera
15458device may either choose to account for this delay by implementing a
15459pipeline and carefully submit well-timed atomic control updates,<wbr/> or
15460it may start streaming control changes that span over several frame
15461boundaries.<wbr/></p>
15462<p>In the latter case,<wbr/> whenever a request's settings change relative to
15463the previous submitted request,<wbr/> the full set of changes may take
15464multiple frame durations to fully take effect.<wbr/> Some settings may
15465take effect sooner (in less frame durations) than others.<wbr/></p>
15466<p>While a set of control changes are being propagated,<wbr/> this value
15467will be CONVERGING.<wbr/></p>
15468<p>Once it is fully known that a set of control changes have been
15469finished propagating,<wbr/> and the resulting updated control settings
15470have been read back by the camera device,<wbr/> this value will be set
15471to a non-negative frame number (corresponding to the request to
15472which the results have synchronized to).<wbr/></p>
15473<p>Older camera device implementations may not have a way to detect
15474when all camera controls have been applied,<wbr/> and will always set this
15475value to UNKNOWN.<wbr/></p>
15476<p>FULL capability devices will always have this value set to the
15477frame number of the request corresponding to this result.<wbr/></p>
15478<p><em>Further details</em>:</p>
15479<ul>
15480<li>Whenever a request differs from the last request,<wbr/> any future
15481results not yet returned may have this value set to CONVERGING (this
15482could include any in-progress captures not yet returned by the camera
15483device,<wbr/> for more details see pipeline considerations below).<wbr/></li>
15484<li>Submitting a series of multiple requests that differ from the
15485previous request (e.<wbr/>g.<wbr/> r1,<wbr/> r2,<wbr/> r3 s.<wbr/>t.<wbr/> r1 != r2 != r3)
15486moves the new synchronization frame to the last non-repeating
15487request (using the smallest frame number from the contiguous list of
15488repeating requests).<wbr/></li>
15489<li>Submitting the same request repeatedly will not change this value
15490to CONVERGING,<wbr/> if it was already a non-negative value.<wbr/></li>
15491<li>When this value changes to non-negative,<wbr/> that means that all of the
15492metadata controls from the request have been applied,<wbr/> all of the
15493metadata controls from the camera device have been read to the
15494updated values (into the result),<wbr/> and all of the graphics buffers
15495corresponding to this result are also synchronized to the request.<wbr/></li>
15496</ul>
15497<p><em>Pipeline considerations</em>:</p>
15498<p>Submitting a request with updated controls relative to the previously
15499submitted requests may also invalidate the synchronization state
15500of all the results corresponding to currently in-flight requests.<wbr/></p>
15501<p>In other words,<wbr/> results for this current request and up to
15502<a href="#static_android.request.pipelineMaxDepth">android.<wbr/>request.<wbr/>pipeline<wbr/>Max<wbr/>Depth</a> prior requests may have their
15503<a href="#dynamic_android.sync.frameNumber">android.<wbr/>sync.<wbr/>frame<wbr/>Number</a> change to CONVERGING.<wbr/></p>
15504 </td>
15505 </tr>
15506
15507 <tr class="entries_header">
15508 <th class="th_details" colspan="5">HAL Implementation Details</th>
15509 </tr>
15510 <tr class="entry_cont">
15511 <td class="entry_details" colspan="5">
15512 <p>Using UNKNOWN here is illegal unless android.<wbr/>sync.<wbr/>max<wbr/>Latency
15513is also UNKNOWN.<wbr/></p>
15514<p>FULL capability devices should simply set this value to the
15515<code>frame_<wbr/>number</code> of the request this result corresponds to.<wbr/></p>
15516 </td>
15517 </tr>
15518
15519 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
15520 <!-- end of entry -->
15521
15522
15523
15524 <!-- end of kind -->
15525 </tbody>
15526 <tr><td colspan="6" class="kind">static</td></tr>
15527
15528 <thead class="entries_header">
15529 <tr>
15530 <th class="th_name">Property Name</th>
15531 <th class="th_type">Type</th>
15532 <th class="th_description">Description</th>
15533 <th class="th_units">Units</th>
15534 <th class="th_range">Range</th>
15535 <th class="th_tags">Tags</th>
15536 </tr>
15537 </thead>
15538
15539 <tbody>
15540
15541
15542
15543
15544
15545
15546
15547
15548
15549
15550 <tr class="entry" id="static_android.sync.maxLatency">
15551 <td class="entry_name" rowspan="5">
15552 android.<wbr/>sync.<wbr/>max<wbr/>Latency
15553 </td>
15554 <td class="entry_type">
15555 <span class="entry_type_name entry_type_name_enum">int32</span>
15556
15557 <span class="entry_type_visibility"> [public]</span>
15558
15559 <ul class="entry_type_enum">
15560 <li>
15561 <span class="entry_type_enum_name">PER_FRAME_CONTROL</span>
15562 <span class="entry_type_enum_value">0</span>
15563 <span class="entry_type_enum_notes"><p>Every frame has the requests immediately applied.<wbr/>
15564(and furthermore for all results,<wbr/>
15565<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>
15566<p>Changing controls over multiple requests one after another will
15567produce results that have those controls applied atomically
15568each frame.<wbr/></p>
15569<p>All FULL capability devices will have this as their maxLatency.<wbr/></p></span>
15570 </li>
15571 <li>
15572 <span class="entry_type_enum_name">UNKNOWN</span>
15573 <span class="entry_type_enum_value">-1</span>
15574 <span class="entry_type_enum_notes"><p>Each new frame has some subset (potentially the entire set)
15575of the past requests applied to the camera settings.<wbr/></p>
15576<p>By submitting a series of identical requests,<wbr/> the camera device
15577will eventually have the camera settings applied,<wbr/> but it is
15578unknown when that exact point will be.<wbr/></p></span>
15579 </li>
15580 </ul>
15581
15582 </td> <!-- entry_type -->
15583
15584 <td class="entry_description">
15585 <p>The maximum number of frames that can occur after a request
15586(different than the previous) has been submitted,<wbr/> and before the
15587result's state becomes synchronized (by setting
15588<a href="#dynamic_android.sync.frameNumber">android.<wbr/>sync.<wbr/>frame<wbr/>Number</a> to a non-negative value).<wbr/></p>
15589 </td>
15590
15591 <td class="entry_units">
15592 number of processed requests
15593 </td>
15594
15595 <td class="entry_range">
15596 <p>&gt;= -1</p>
15597 </td>
15598
15599 <td class="entry_tags">
15600 <ul class="entry_tags">
15601 <li><a href="#tag_LIMITED">LIMITED</a></li>
15602 </ul>
15603 </td>
15604
15605 </tr>
15606 <tr class="entries_header">
15607 <th class="th_details" colspan="5">Details</th>
15608 </tr>
15609 <tr class="entry_cont">
15610 <td class="entry_details" colspan="5">
15611 <p>This defines the maximum distance (in number of metadata results),<wbr/>
15612between <a href="#dynamic_android.sync.frameNumber">android.<wbr/>sync.<wbr/>frame<wbr/>Number</a> and the equivalent
15613<a href="#controls_android.request.frameCount">android.<wbr/>request.<wbr/>frame<wbr/>Count</a>.<wbr/></p>
15614<p>In other words this acts as an upper boundary for how many frames
15615must occur before the camera device knows for a fact that the new
15616submitted camera settings have been applied in outgoing frames.<wbr/></p>
15617<p>For example if the distance was 2,<wbr/></p>
15618<pre><code>initial request = X (repeating)
15619request1 = X
15620request2 = Y
15621request3 = Y
15622request4 = Y
15623
15624where requestN has frameNumber N,<wbr/> and the first of the repeating
15625initial request's has frameNumber F (and F &lt; 1).<wbr/>
15626
15627initial result = X' + { <a href="#dynamic_android.sync.frameNumber">android.<wbr/>sync.<wbr/>frame<wbr/>Number</a> == F }
15628result1 = X' + { <a href="#dynamic_android.sync.frameNumber">android.<wbr/>sync.<wbr/>frame<wbr/>Number</a> == F }
15629result2 = X' + { <a href="#dynamic_android.sync.frameNumber">android.<wbr/>sync.<wbr/>frame<wbr/>Number</a> == CONVERGING }
15630result3 = X' + { <a href="#dynamic_android.sync.frameNumber">android.<wbr/>sync.<wbr/>frame<wbr/>Number</a> == CONVERGING }
15631result4 = X' + { <a href="#dynamic_android.sync.frameNumber">android.<wbr/>sync.<wbr/>frame<wbr/>Number</a> == 2 }
15632
15633where resultN has frameNumber N.<wbr/>
15634</code></pre>
15635<p>Since <code>result4</code> has a <code>frameNumber == 4</code> and
15636<code><a href="#dynamic_android.sync.frameNumber">android.<wbr/>sync.<wbr/>frame<wbr/>Number</a> == 2</code>,<wbr/> the distance is clearly
15637<code>4 - 2 = 2</code>.<wbr/></p>
15638 </td>
15639 </tr>
15640
15641 <tr class="entries_header">
15642 <th class="th_details" colspan="5">HAL Implementation Details</th>
15643 </tr>
15644 <tr class="entry_cont">
15645 <td class="entry_details" colspan="5">
15646 <p>Use <code>frame_<wbr/>count</code> from camera3_<wbr/>request_<wbr/>t instead of
15647<a href="#controls_android.request.frameCount">android.<wbr/>request.<wbr/>frame<wbr/>Count</a>.<wbr/></p>
15648<p>LIMITED devices are strongly encouraged to use a non-negative
15649value.<wbr/> If UNKNOWN is used here then app developers do not have a way
15650to know when sensor settings have been applied.<wbr/></p>
15651 </td>
15652 </tr>
15653
15654 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
15655 <!-- end of entry -->
15656
15657
15658
15659 <!-- end of kind -->
15660 </tbody>
15661
15662 <!-- end of section -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080015663<!-- </namespace> -->
15664 </table>
15665
15666 <div class="tags" id="tag_index">
15667 <h2>Tags</h2>
15668 <ul>
15669 <li id="tag_AWB">AWB -
15670 Needed for auto white balance
15671
15672 <ul class="tags_entries">
15673 <li><a href="#controls_android.control.awbMode">android.control.awbMode</a> (controls)</li>
15674 </ul>
15675 </li> <!-- tag_AWB -->
15676 <li id="tag_BC">BC -
15677 Needed for backwards compatibility with old Java API
15678
15679 <ul class="tags_entries">
Eino-Ville Talvala19ce2c12013-12-30 12:03:45 -080015680 <li><a href="#controls_android.control.aeAntibandingMode">android.control.aeAntibandingMode</a> (controls)</li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080015681 <li><a href="#controls_android.control.aeExposureCompensation">android.control.aeExposureCompensation</a> (controls)</li>
15682 <li><a href="#controls_android.control.aeLock">android.control.aeLock</a> (controls)</li>
15683 <li><a href="#controls_android.control.aeMode">android.control.aeMode</a> (controls)</li>
15684 <li><a href="#controls_android.control.aeRegions">android.control.aeRegions</a> (controls)</li>
15685 <li><a href="#controls_android.control.aeTargetFpsRange">android.control.aeTargetFpsRange</a> (controls)</li>
Eino-Ville Talvala3b4383a2013-03-18 09:42:48 -070015686 <li><a href="#controls_android.control.aePrecaptureTrigger">android.control.aePrecaptureTrigger</a> (controls)</li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080015687 <li><a href="#controls_android.control.afMode">android.control.afMode</a> (controls)</li>
15688 <li><a href="#controls_android.control.afRegions">android.control.afRegions</a> (controls)</li>
Eino-Ville Talvala3b4383a2013-03-18 09:42:48 -070015689 <li><a href="#controls_android.control.afTrigger">android.control.afTrigger</a> (controls)</li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080015690 <li><a href="#controls_android.control.awbLock">android.control.awbLock</a> (controls)</li>
15691 <li><a href="#controls_android.control.awbMode">android.control.awbMode</a> (controls)</li>
15692 <li><a href="#controls_android.control.awbRegions">android.control.awbRegions</a> (controls)</li>
15693 <li><a href="#controls_android.control.captureIntent">android.control.captureIntent</a> (controls)</li>
15694 <li><a href="#controls_android.control.effectMode">android.control.effectMode</a> (controls)</li>
15695 <li><a href="#controls_android.control.mode">android.control.mode</a> (controls)</li>
15696 <li><a href="#controls_android.control.sceneMode">android.control.sceneMode</a> (controls)</li>
15697 <li><a href="#controls_android.control.videoStabilizationMode">android.control.videoStabilizationMode</a> (controls)</li>
Eino-Ville Talvala9fa0d902014-01-08 16:16:53 -080015698 <li><a href="#static_android.control.aeAvailableModes">android.control.aeAvailableModes</a> (static)</li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080015699 <li><a href="#static_android.control.aeCompensationRange">android.control.aeCompensationRange</a> (static)</li>
15700 <li><a href="#static_android.control.aeCompensationStep">android.control.aeCompensationStep</a> (static)</li>
15701 <li><a href="#static_android.control.afAvailableModes">android.control.afAvailableModes</a> (static)</li>
15702 <li><a href="#static_android.control.availableEffects">android.control.availableEffects</a> (static)</li>
15703 <li><a href="#static_android.control.availableSceneModes">android.control.availableSceneModes</a> (static)</li>
15704 <li><a href="#static_android.control.availableVideoStabilizationModes">android.control.availableVideoStabilizationModes</a> (static)</li>
15705 <li><a href="#static_android.control.awbAvailableModes">android.control.awbAvailableModes</a> (static)</li>
15706 <li><a href="#static_android.control.maxRegions">android.control.maxRegions</a> (static)</li>
15707 <li><a href="#static_android.control.sceneModeOverrides">android.control.sceneModeOverrides</a> (static)</li>
15708 <li><a href="#controls_android.flash.mode">android.flash.mode</a> (controls)</li>
15709 <li><a href="#static_android.flash.info.available">android.flash.info.available</a> (static)</li>
15710 <li><a href="#controls_android.jpeg.gpsCoordinates">android.jpeg.gpsCoordinates</a> (controls)</li>
15711 <li><a href="#controls_android.jpeg.gpsProcessingMethod">android.jpeg.gpsProcessingMethod</a> (controls)</li>
15712 <li><a href="#controls_android.jpeg.gpsTimestamp">android.jpeg.gpsTimestamp</a> (controls)</li>
15713 <li><a href="#controls_android.jpeg.orientation">android.jpeg.orientation</a> (controls)</li>
15714 <li><a href="#controls_android.jpeg.quality">android.jpeg.quality</a> (controls)</li>
15715 <li><a href="#controls_android.jpeg.thumbnailQuality">android.jpeg.thumbnailQuality</a> (controls)</li>
15716 <li><a href="#controls_android.jpeg.thumbnailSize">android.jpeg.thumbnailSize</a> (controls)</li>
15717 <li><a href="#static_android.jpeg.availableThumbnailSizes">android.jpeg.availableThumbnailSizes</a> (static)</li>
15718 <li><a href="#controls_android.lens.focusDistance">android.lens.focusDistance</a> (controls)</li>
15719 <li><a href="#static_android.lens.info.availableFocalLengths">android.lens.info.availableFocalLengths</a> (static)</li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080015720 <li><a href="#dynamic_android.lens.focusRange">android.lens.focusRange</a> (dynamic)</li>
15721 <li><a href="#static_android.request.maxNumOutputStreams">android.request.maxNumOutputStreams</a> (static)</li>
15722 <li><a href="#controls_android.scaler.cropRegion">android.scaler.cropRegion</a> (controls)</li>
15723 <li><a href="#static_android.scaler.availableFormats">android.scaler.availableFormats</a> (static)</li>
15724 <li><a href="#static_android.scaler.availableJpegMinDurations">android.scaler.availableJpegMinDurations</a> (static)</li>
15725 <li><a href="#static_android.scaler.availableJpegSizes">android.scaler.availableJpegSizes</a> (static)</li>
Igor Murashkinf11a4df2013-05-07 10:00:46 -070015726 <li><a href="#static_android.scaler.availableMaxDigitalZoom">android.scaler.availableMaxDigitalZoom</a> (static)</li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080015727 <li><a href="#static_android.scaler.availableProcessedMinDurations">android.scaler.availableProcessedMinDurations</a> (static)</li>
15728 <li><a href="#static_android.scaler.availableProcessedSizes">android.scaler.availableProcessedSizes</a> (static)</li>
15729 <li><a href="#static_android.scaler.availableRawMinDurations">android.scaler.availableRawMinDurations</a> (static)</li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080015730 <li><a href="#controls_android.sensor.frameDuration">android.sensor.frameDuration</a> (controls)</li>
Zhijun He69fc0ea2013-07-17 09:42:58 -070015731 <li><a href="#static_android.sensor.info.sensitivityRange">android.sensor.info.sensitivityRange</a> (static)</li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080015732 <li><a href="#static_android.sensor.info.maxFrameDuration">android.sensor.info.maxFrameDuration</a> (static)</li>
15733 <li><a href="#static_android.sensor.info.physicalSize">android.sensor.info.physicalSize</a> (static)</li>
15734 <li><a href="#static_android.sensor.info.pixelArraySize">android.sensor.info.pixelArraySize</a> (static)</li>
15735 <li><a href="#static_android.sensor.orientation">android.sensor.orientation</a> (static)</li>
15736 <li><a href="#dynamic_android.sensor.timestamp">android.sensor.timestamp</a> (dynamic)</li>
15737 <li><a href="#controls_android.statistics.faceDetectMode">android.statistics.faceDetectMode</a> (controls)</li>
15738 <li><a href="#dynamic_android.statistics.faceIds">android.statistics.faceIds</a> (dynamic)</li>
15739 <li><a href="#dynamic_android.statistics.faceLandmarks">android.statistics.faceLandmarks</a> (dynamic)</li>
15740 <li><a href="#dynamic_android.statistics.faceRectangles">android.statistics.faceRectangles</a> (dynamic)</li>
15741 <li><a href="#dynamic_android.statistics.faceScores">android.statistics.faceScores</a> (dynamic)</li>
15742 <li><a href="#dynamic_android.lens.focalLength">android.lens.focalLength</a> (dynamic)</li>
15743 <li><a href="#dynamic_android.lens.focusDistance">android.lens.focusDistance</a> (dynamic)</li>
15744 </ul>
15745 </li> <!-- tag_BC -->
15746 <li id="tag_V1">V1 -
15747 New features for first camera 2 release (API1)
15748
15749 <ul class="tags_entries">
15750 <li><a href="#controls_android.demosaic.mode">android.demosaic.mode</a> (controls)</li>
15751 <li><a href="#controls_android.flash.firingPower">android.flash.firingPower</a> (controls)</li>
15752 <li><a href="#controls_android.flash.firingTime">android.flash.firingTime</a> (controls)</li>
15753 <li><a href="#static_android.flash.info.chargeDuration">android.flash.info.chargeDuration</a> (static)</li>
15754 <li><a href="#controls_android.hotPixel.mode">android.hotPixel.mode</a> (controls)</li>
15755 <li><a href="#controls_android.lens.aperture">android.lens.aperture</a> (controls)</li>
15756 <li><a href="#controls_android.lens.filterDensity">android.lens.filterDensity</a> (controls)</li>
15757 <li><a href="#controls_android.lens.focalLength">android.lens.focalLength</a> (controls)</li>
15758 <li><a href="#controls_android.lens.focusDistance">android.lens.focusDistance</a> (controls)</li>
15759 <li><a href="#controls_android.lens.opticalStabilizationMode">android.lens.opticalStabilizationMode</a> (controls)</li>
15760 <li><a href="#static_android.lens.info.availableApertures">android.lens.info.availableApertures</a> (static)</li>
15761 <li><a href="#static_android.lens.info.availableFilterDensities">android.lens.info.availableFilterDensities</a> (static)</li>
15762 <li><a href="#static_android.lens.info.availableFocalLengths">android.lens.info.availableFocalLengths</a> (static)</li>
15763 <li><a href="#static_android.lens.info.availableOpticalStabilization">android.lens.info.availableOpticalStabilization</a> (static)</li>
15764 <li><a href="#static_android.lens.info.geometricCorrectionMapSize">android.lens.info.geometricCorrectionMapSize</a> (static)</li>
15765 <li><a href="#static_android.lens.info.minimumFocusDistance">android.lens.info.minimumFocusDistance</a> (static)</li>
15766 <li><a href="#static_android.lens.info.shadingMapSize">android.lens.info.shadingMapSize</a> (static)</li>
Zhijun Hef92c76a2014-02-06 01:40:35 -080015767 <li><a href="#static_android.lens.info.focusDistanceCalibration">android.lens.info.focusDistanceCalibration</a> (static)</li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080015768 <li><a href="#static_android.lens.position">android.lens.position</a> (static)</li>
15769 <li><a href="#dynamic_android.lens.state">android.lens.state</a> (dynamic)</li>
15770 <li><a href="#controls_android.noiseReduction.mode">android.noiseReduction.mode</a> (controls)</li>
15771 <li><a href="#controls_android.request.id">android.request.id</a> (controls)</li>
15772 <li><a href="#controls_android.sensor.exposureTime">android.sensor.exposureTime</a> (controls)</li>
15773 <li><a href="#controls_android.sensor.frameDuration">android.sensor.frameDuration</a> (controls)</li>
15774 <li><a href="#controls_android.sensor.sensitivity">android.sensor.sensitivity</a> (controls)</li>
Zhijun He69fc0ea2013-07-17 09:42:58 -070015775 <li><a href="#static_android.sensor.info.sensitivityRange">android.sensor.info.sensitivityRange</a> (static)</li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080015776 <li><a href="#static_android.sensor.info.exposureTimeRange">android.sensor.info.exposureTimeRange</a> (static)</li>
15777 <li><a href="#static_android.sensor.info.maxFrameDuration">android.sensor.info.maxFrameDuration</a> (static)</li>
15778 <li><a href="#static_android.sensor.info.physicalSize">android.sensor.info.physicalSize</a> (static)</li>
15779 <li><a href="#static_android.sensor.baseGainFactor">android.sensor.baseGainFactor</a> (static)</li>
15780 <li><a href="#static_android.sensor.maxAnalogSensitivity">android.sensor.maxAnalogSensitivity</a> (static)</li>
15781 <li><a href="#static_android.sensor.noiseModelCoefficients">android.sensor.noiseModelCoefficients</a> (static)</li>
15782 <li><a href="#controls_android.statistics.histogramMode">android.statistics.histogramMode</a> (controls)</li>
15783 <li><a href="#controls_android.statistics.sharpnessMapMode">android.statistics.sharpnessMapMode</a> (controls)</li>
15784 <li><a href="#dynamic_android.statistics.histogram">android.statistics.histogram</a> (dynamic)</li>
15785 <li><a href="#dynamic_android.statistics.sharpnessMap">android.statistics.sharpnessMap</a> (dynamic)</li>
15786 <li><a href="#dynamic_android.hotPixel.mode">android.hotPixel.mode</a> (dynamic)</li>
15787 <li><a href="#dynamic_android.lens.aperture">android.lens.aperture</a> (dynamic)</li>
15788 <li><a href="#dynamic_android.lens.filterDensity">android.lens.filterDensity</a> (dynamic)</li>
15789 <li><a href="#dynamic_android.lens.opticalStabilizationMode">android.lens.opticalStabilizationMode</a> (dynamic)</li>
15790 </ul>
15791 </li> <!-- tag_V1 -->
15792 <li id="tag_ADV">ADV - None
15793 <ul class="tags_entries">
15794 <li><a href="#static_android.flash.colorTemperature">android.flash.colorTemperature</a> (static)</li>
15795 <li><a href="#static_android.flash.maxEnergy">android.flash.maxEnergy</a> (static)</li>
15796 <li><a href="#controls_android.geometric.strength">android.geometric.strength</a> (controls)</li>
15797 <li><a href="#static_android.hotPixel.info.map">android.hotPixel.info.map</a> (static)</li>
15798 <li><a href="#static_android.lens.opticalAxisAngle">android.lens.opticalAxisAngle</a> (static)</li>
15799 <li><a href="#controls_android.shading.strength">android.shading.strength</a> (controls)</li>
15800 </ul>
15801 </li> <!-- tag_ADV -->
15802 <li id="tag_DNG">DNG -
15803 Needed for DNG file support
15804
15805 <ul class="tags_entries">
15806 <li><a href="#static_android.lens.info.geometricCorrectionMap">android.lens.info.geometricCorrectionMap</a> (static)</li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080015807 <li><a href="#static_android.sensor.info.activeArraySize">android.sensor.info.activeArraySize</a> (static)</li>
15808 <li><a href="#static_android.sensor.info.colorFilterArrangement">android.sensor.info.colorFilterArrangement</a> (static)</li>
15809 <li><a href="#static_android.sensor.info.pixelArraySize">android.sensor.info.pixelArraySize</a> (static)</li>
15810 <li><a href="#static_android.sensor.info.whiteLevel">android.sensor.info.whiteLevel</a> (static)</li>
15811 <li><a href="#static_android.sensor.blackLevelPattern">android.sensor.blackLevelPattern</a> (static)</li>
15812 <li><a href="#static_android.sensor.calibrationTransform1">android.sensor.calibrationTransform1</a> (static)</li>
15813 <li><a href="#static_android.sensor.calibrationTransform2">android.sensor.calibrationTransform2</a> (static)</li>
15814 <li><a href="#static_android.sensor.colorTransform1">android.sensor.colorTransform1</a> (static)</li>
15815 <li><a href="#static_android.sensor.colorTransform2">android.sensor.colorTransform2</a> (static)</li>
15816 <li><a href="#static_android.sensor.forwardMatrix1">android.sensor.forwardMatrix1</a> (static)</li>
15817 <li><a href="#static_android.sensor.forwardMatrix2">android.sensor.forwardMatrix2</a> (static)</li>
15818 <li><a href="#static_android.sensor.referenceIlluminant1">android.sensor.referenceIlluminant1</a> (static)</li>
Ruben Brunk7b9e9bc2014-02-06 18:37:48 -080015819 <li><a href="#dynamic_android.sensor.neutralColorPoint">android.sensor.neutralColorPoint</a> (dynamic)</li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080015820 <li><a href="#controls_android.tonemap.curveRed">android.tonemap.curveRed</a> (controls)</li>
15821 </ul>
15822 </li> <!-- tag_DNG -->
15823 <li id="tag_EXIF">EXIF - None
15824 <ul class="tags_entries">
15825 <li><a href="#static_android.sensor.referenceIlluminant1">android.sensor.referenceIlluminant1</a> (static)</li>
15826 </ul>
15827 </li> <!-- tag_EXIF -->
Eino-Ville Talvalaf384f0a2013-07-12 17:02:27 -070015828 <li id="tag_HAL2">HAL2 -
Alex Rayef40ad62013-10-01 17:52:33 -070015829 Entry is only used by camera device HAL 2.x
Eino-Ville Talvalaf384f0a2013-07-12 17:02:27 -070015830
15831 <ul class="tags_entries">
15832 <li><a href="#controls_android.request.inputStreams">android.request.inputStreams</a> (controls)</li>
15833 <li><a href="#controls_android.request.outputStreams">android.request.outputStreams</a> (controls)</li>
15834 <li><a href="#controls_android.request.type">android.request.type</a> (controls)</li>
Zhijun He12744b22014-01-22 15:58:57 -080015835 <li><a href="#static_android.request.maxNumReprocessStreams">android.request.maxNumReprocessStreams</a> (static)</li>
Zhijun He69fc0ea2013-07-17 09:42:58 -070015836 <li><a href="#controls_android.blackLevel.lock">android.blackLevel.lock</a> (controls)</li>
Eino-Ville Talvalaf384f0a2013-07-12 17:02:27 -070015837 </ul>
15838 </li> <!-- tag_HAL2 -->
Alex Rayef40ad62013-10-01 17:52:33 -070015839 <li id="tag_FULL">FULL -
15840 Entry is required for full hardware level devices, and optional for other hardware levels
15841
15842 <ul class="tags_entries">
15843 <li><a href="#static_android.sensor.baseGainFactor">android.sensor.baseGainFactor</a> (static)</li>
15844 <li><a href="#static_android.sensor.maxAnalogSensitivity">android.sensor.maxAnalogSensitivity</a> (static)</li>
15845 <li><a href="#dynamic_android.sensor.temperature">android.sensor.temperature</a> (dynamic)</li>
15846 </ul>
15847 </li> <!-- tag_FULL -->
Igor Murashkin5c1fc682014-01-16 17:51:36 -080015848 <li id="tag_LIMITED">LIMITED -
15849 Entry assists with LIMITED device implementation. LIMITED devices
15850 must implement all entries with this tag. Optional for FULL devices.
15851
15852 <ul class="tags_entries">
15853 <li><a href="#dynamic_android.sync.frameNumber">android.sync.frameNumber</a> (dynamic)</li>
15854 <li><a href="#static_android.sync.maxLatency">android.sync.maxLatency</a> (static)</li>
15855 </ul>
15856 </li> <!-- tag_LIMITED -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080015857 </ul>
15858 </div>
15859
15860 [ <a href="#">top</a> ]
15861
15862</body>
15863</html>