blob: 105075e582679cd183a652b2cb0648e4fa8ca5db [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>
Igor Murashkin7f15ddd2014-02-04 18:02:27 -0800464 <li><a href="#static_android.scaler.availableInputOutputFormatsMap">android.scaler.availableInputOutputFormatsMap</a></li>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -0700465 </ul>
466 </li>
467 <li>
468 <span class="toc_kind_header">dynamic</span>
469 <ul class="toc_section">
470 <li><a href="#dynamic_android.scaler.cropRegion">android.scaler.cropRegion</a></li>
471 </ul>
472 </li>
473 </ul> <!-- toc_section -->
474 </li>
475 <li>
476 <span class="toc_section_header"><a href="#section_sensor">sensor</a></span>
477 <ul class="toc_section">
478 <li>
479 <span class="toc_kind_header">controls</span>
480 <ul class="toc_section">
481 <li><a href="#controls_android.sensor.exposureTime">android.sensor.exposureTime</a></li>
482 <li><a href="#controls_android.sensor.frameDuration">android.sensor.frameDuration</a></li>
483 <li><a href="#controls_android.sensor.sensitivity">android.sensor.sensitivity</a></li>
Igor Murashkina46e02f2014-01-09 17:43:38 -0800484 <li><a href="#controls_android.sensor.testPatternData">android.sensor.testPatternData</a></li>
485 <li><a href="#controls_android.sensor.testPatternMode">android.sensor.testPatternMode</a></li>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -0700486 </ul>
487 </li>
488 <li>
489 <span class="toc_kind_header">static</span>
490 <ul class="toc_section">
491
492 <li><a href="#static_android.sensor.info.activeArraySize">android.sensor.info.activeArraySize</a></li>
Zhijun He69fc0ea2013-07-17 09:42:58 -0700493 <li><a href="#static_android.sensor.info.sensitivityRange">android.sensor.info.sensitivityRange</a></li>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -0700494 <li><a href="#static_android.sensor.info.colorFilterArrangement">android.sensor.info.colorFilterArrangement</a></li>
495 <li><a href="#static_android.sensor.info.exposureTimeRange">android.sensor.info.exposureTimeRange</a></li>
496 <li><a href="#static_android.sensor.info.maxFrameDuration">android.sensor.info.maxFrameDuration</a></li>
497 <li><a href="#static_android.sensor.info.physicalSize">android.sensor.info.physicalSize</a></li>
498 <li><a href="#static_android.sensor.info.pixelArraySize">android.sensor.info.pixelArraySize</a></li>
499 <li><a href="#static_android.sensor.info.whiteLevel">android.sensor.info.whiteLevel</a></li>
500
501 <li><a href="#static_android.sensor.baseGainFactor">android.sensor.baseGainFactor</a></li>
502 <li><a href="#static_android.sensor.blackLevelPattern">android.sensor.blackLevelPattern</a></li>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -0700503 <li><a href="#static_android.sensor.maxAnalogSensitivity">android.sensor.maxAnalogSensitivity</a></li>
504 <li><a href="#static_android.sensor.noiseModelCoefficients">android.sensor.noiseModelCoefficients</a></li>
505 <li><a href="#static_android.sensor.orientation">android.sensor.orientation</a></li>
Ruben Brunk2bebe312014-02-06 13:04:38 -0800506 <li><a href="#static_android.sensor.profileHueSatMapDimensions">android.sensor.profileHueSatMapDimensions</a></li>
Igor Murashkina46e02f2014-01-09 17:43:38 -0800507 <li><a href="#static_android.sensor.availableTestPatternModes">android.sensor.availableTestPatternModes</a></li>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -0700508 </ul>
509 </li>
510 <li>
511 <span class="toc_kind_header">dynamic</span>
512 <ul class="toc_section">
513 <li><a href="#dynamic_android.sensor.exposureTime">android.sensor.exposureTime</a></li>
514 <li><a href="#dynamic_android.sensor.frameDuration">android.sensor.frameDuration</a></li>
515 <li><a href="#dynamic_android.sensor.sensitivity">android.sensor.sensitivity</a></li>
516 <li><a href="#dynamic_android.sensor.timestamp">android.sensor.timestamp</a></li>
Igor Murashkin656aa5a2013-08-13 14:23:39 -0700517 <li><a href="#dynamic_android.sensor.temperature">android.sensor.temperature</a></li>
Ruben Brunk7c63f0f2014-01-31 16:50:27 -0800518 <li><a href="#dynamic_android.sensor.referenceIlluminant">android.sensor.referenceIlluminant</a></li>
519 <li><a href="#dynamic_android.sensor.calibrationTransform">android.sensor.calibrationTransform</a></li>
520 <li><a href="#dynamic_android.sensor.colorTransform">android.sensor.colorTransform</a></li>
521 <li><a href="#dynamic_android.sensor.forwardMatrix">android.sensor.forwardMatrix</a></li>
Ruben Brunk7b9e9bc2014-02-06 18:37:48 -0800522 <li><a href="#dynamic_android.sensor.neutralColorPoint">android.sensor.neutralColorPoint</a></li>
Ruben Brunk2bebe312014-02-06 13:04:38 -0800523 <li><a href="#dynamic_android.sensor.profileHueSatMap">android.sensor.profileHueSatMap</a></li>
524 <li><a href="#dynamic_android.sensor.profileToneCurve">android.sensor.profileToneCurve</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
Zhijun He4412faa2014-02-06 00:28:22 -08001903algorithm must not update its parameters while the lock
1904is active.<wbr/></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
Zhijun He4412faa2014-02-06 00:28:22 -08001912latest calculated values.<wbr/></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
Zhijun He4412faa2014-02-06 00:28:22 -08001935setting.<wbr/></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>
Zhijun He4412faa2014-02-06 00:28:22 -08002354 <li>
2355 <span class="entry_type_enum_name">OFF_KEEP_STATE</span>
2356 <span class="entry_type_enum_notes"><p>Same as OFF mode,<wbr/> except that this capture will not be
2357used by camera device background auto-exposure,<wbr/> auto-white balance and
2358auto-focus algorithms to update their statistics.<wbr/></p></span>
2359 </li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002360 </ul>
2361
2362 </td> <!-- entry_type -->
2363
2364 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08002365 <p>Overall mode of 3A control
2366routines</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002367 </td>
2368
2369 <td class="entry_units">
2370 </td>
2371
2372 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08002373 <p>all must be supported</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002374 </td>
2375
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08002376 <td class="entry_tags">
2377 <ul class="entry_tags">
2378 <li><a href="#tag_BC">BC</a></li>
2379 </ul>
2380 </td>
2381
2382 </tr>
2383 <tr class="entries_header">
2384 <th class="th_details" colspan="5">Details</th>
2385 </tr>
2386 <tr class="entry_cont">
2387 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08002388 <p>High-level 3A control.<wbr/> When set to OFF,<wbr/> all 3A control
Zhijun Hef90eeaf2014-01-16 12:13:35 -08002389by the camera device is disabled.<wbr/> The application must set the fields for
Igor Murashkin0b080452013-12-27 15:30:25 -08002390capture parameters itself.<wbr/></p>
2391<p>When set to AUTO,<wbr/> the individual algorithm controls in
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08002392android.<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 -08002393<p>When set to USE_<wbr/>SCENE_<wbr/>MODE,<wbr/> the individual controls in
Zhijun Hef90eeaf2014-01-16 12:13:35 -08002394android.<wbr/>control.<wbr/>* are mostly disabled,<wbr/> and the camera device implements
Igor Murashkin0b080452013-12-27 15:30:25 -08002395one of the scene mode settings (such as ACTION,<wbr/> SUNSET,<wbr/> or PARTY)
Zhijun Hef90eeaf2014-01-16 12:13:35 -08002396as it wishes.<wbr/> The camera device scene mode 3A settings are provided by
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08002397<a href="#static_android.control.sceneModeOverrides">android.<wbr/>control.<wbr/>scene<wbr/>Mode<wbr/>Overrides</a>.<wbr/></p>
Zhijun He4412faa2014-02-06 00:28:22 -08002398<p>When set to OFF_<wbr/>KEEP_<wbr/>STATE,<wbr/> it is similar to OFF mode,<wbr/> the only difference
2399is that this frame will not be used by camera device background 3A statistics
2400update,<wbr/> as if this frame is never captured.<wbr/> This mode can be used in the scenario
2401where the application doesn't want a 3A manual control capture to affect
2402the subsequent auto 3A capture results.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002403 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08002404 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08002405
2406
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08002407 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
2408 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002409
2410
2411 <tr class="entry" id="controls_android.control.sceneMode">
Ruben Brunk9e28ea72014-01-14 18:55:29 -08002412 <td class="entry_name" rowspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08002413 android.<wbr/>control.<wbr/>scene<wbr/>Mode
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08002414 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002415 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08002416 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002417
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07002418 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002419
2420 <ul class="entry_type_enum">
2421 <li>
Ruben Brunk9e28ea72014-01-14 18:55:29 -08002422 <span class="entry_type_enum_name">DISABLED</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002423 <span class="entry_type_enum_value">0</span>
Ruben Brunk9e28ea72014-01-14 18:55:29 -08002424 <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 -08002425 </li>
2426 <li>
2427 <span class="entry_type_enum_name">FACE_PRIORITY</span>
Ruben Brunk9e28ea72014-01-14 18:55:29 -08002428 <span class="entry_type_enum_notes"><p>If face detection support exists,<wbr/> use face
2429detection data for auto-focus,<wbr/> auto-white balance,<wbr/> and
2430auto-exposure routines.<wbr/> If face detection statistics are
2431disabled (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/>
2432this should still operate correctly (but will not return
2433face detection statistics to the framework).<wbr/></p>
2434<p>Unlike the other scene modes,<wbr/> <a href="#controls_android.control.aeMode">android.<wbr/>control.<wbr/>ae<wbr/>Mode</a>,<wbr/>
2435<a href="#controls_android.control.awbMode">android.<wbr/>control.<wbr/>awb<wbr/>Mode</a>,<wbr/> and android.<wbr/>control.<wbr/>af<wbr/>Mode
2436remain active when FACE_<wbr/>PRIORITY is set.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002437 </li>
2438 <li>
2439 <span class="entry_type_enum_name">ACTION</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 quickly moving objects.<wbr/>
2442Similar to SPORTS.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002443 </li>
2444 <li>
2445 <span class="entry_type_enum_name">PORTRAIT</span>
2446 <span class="entry_type_enum_optional">optional</span>
Ruben Brunk9e28ea72014-01-14 18:55:29 -08002447 <span class="entry_type_enum_notes"><p>Optimized for still photos of people.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002448 </li>
2449 <li>
2450 <span class="entry_type_enum_name">LANDSCAPE</span>
2451 <span class="entry_type_enum_optional">optional</span>
Ruben Brunk9e28ea72014-01-14 18:55:29 -08002452 <span class="entry_type_enum_notes"><p>Optimized for photos of distant macroscopic objects.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002453 </li>
2454 <li>
2455 <span class="entry_type_enum_name">NIGHT</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 low-light settings.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002458 </li>
2459 <li>
2460 <span class="entry_type_enum_name">NIGHT_PORTRAIT</span>
2461 <span class="entry_type_enum_optional">optional</span>
Ruben Brunk9e28ea72014-01-14 18:55:29 -08002462 <span class="entry_type_enum_notes"><p>Optimized for still photos of people in low-light
2463settings.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002464 </li>
2465 <li>
2466 <span class="entry_type_enum_name">THEATRE</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 dim,<wbr/> indoor settings where flash must
2469remain off.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002470 </li>
2471 <li>
2472 <span class="entry_type_enum_name">BEACH</span>
2473 <span class="entry_type_enum_optional">optional</span>
Ruben Brunk9e28ea72014-01-14 18:55:29 -08002474 <span class="entry_type_enum_notes"><p>Optimized for bright,<wbr/> outdoor beach settings.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002475 </li>
2476 <li>
2477 <span class="entry_type_enum_name">SNOW</span>
2478 <span class="entry_type_enum_optional">optional</span>
Ruben Brunk9e28ea72014-01-14 18:55:29 -08002479 <span class="entry_type_enum_notes"><p>Optimized for bright,<wbr/> outdoor settings containing snow.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002480 </li>
2481 <li>
2482 <span class="entry_type_enum_name">SUNSET</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 scenes of the setting sun.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002485 </li>
2486 <li>
2487 <span class="entry_type_enum_name">STEADYPHOTO</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 to avoid blurry photos due to small amounts of
2490device motion (for example: due to hand shake).<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002491 </li>
2492 <li>
2493 <span class="entry_type_enum_name">FIREWORKS</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 nighttime photos of fireworks.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002496 </li>
2497 <li>
2498 <span class="entry_type_enum_name">SPORTS</span>
2499 <span class="entry_type_enum_optional">optional</span>
Ruben Brunk9e28ea72014-01-14 18:55:29 -08002500 <span class="entry_type_enum_notes"><p>Optimized for photos of quickly moving people.<wbr/>
2501Similar to ACTION.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002502 </li>
2503 <li>
2504 <span class="entry_type_enum_name">PARTY</span>
2505 <span class="entry_type_enum_optional">optional</span>
Ruben Brunk9e28ea72014-01-14 18:55:29 -08002506 <span class="entry_type_enum_notes"><p>Optimized for dim,<wbr/> indoor settings with multiple moving
2507people.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002508 </li>
2509 <li>
2510 <span class="entry_type_enum_name">CANDLELIGHT</span>
2511 <span class="entry_type_enum_optional">optional</span>
Ruben Brunk9e28ea72014-01-14 18:55:29 -08002512 <span class="entry_type_enum_notes"><p>Optimized for dim settings where the main light source
2513is a flame.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002514 </li>
2515 <li>
2516 <span class="entry_type_enum_name">BARCODE</span>
2517 <span class="entry_type_enum_optional">optional</span>
Ruben Brunk9e28ea72014-01-14 18:55:29 -08002518 <span class="entry_type_enum_notes"><p>Optimized for accurately capturing a photo of barcode
2519for use by camera applications that wish to read the
2520barcode value.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002521 </li>
2522 </ul>
2523
2524 </td> <!-- entry_type -->
2525
2526 <td class="entry_description">
Ruben Brunk9e28ea72014-01-14 18:55:29 -08002527 <p>A camera mode optimized for conditions typical in a particular
2528capture setting.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002529 </td>
2530
2531 <td class="entry_units">
2532 </td>
2533
2534 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08002535 <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 -08002536 </td>
2537
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002538 <td class="entry_tags">
2539 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08002540 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002541 </ul>
2542 </td>
2543
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08002544 </tr>
Ruben Brunk9e28ea72014-01-14 18:55:29 -08002545 <tr class="entries_header">
2546 <th class="th_details" colspan="5">Details</th>
2547 </tr>
2548 <tr class="entry_cont">
2549 <td class="entry_details" colspan="5">
2550 <p>This is the mode that that is active when
2551<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/>
2552these modes will disable <a href="#controls_android.control.aeMode">android.<wbr/>control.<wbr/>ae<wbr/>Mode</a>,<wbr/>
2553<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>
2554<p>The interpretation and implementation of these scene modes is left
2555to the implementor of the camera device.<wbr/> Their behavior will not be
2556consistent across all devices,<wbr/> and any given device may only implement
2557a subset of these modes.<wbr/></p>
2558 </td>
2559 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08002560
Ruben Brunk9e28ea72014-01-14 18:55:29 -08002561 <tr class="entries_header">
2562 <th class="th_details" colspan="5">HAL Implementation Details</th>
2563 </tr>
2564 <tr class="entry_cont">
2565 <td class="entry_details" colspan="5">
2566 <p>HAL implementations that include scene modes are expected to provide
2567the per-scene settings to use for <a href="#controls_android.control.aeMode">android.<wbr/>control.<wbr/>ae<wbr/>Mode</a>,<wbr/>
2568<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
2569<a href="#static_android.control.sceneModeOverrides">android.<wbr/>control.<wbr/>scene<wbr/>Mode<wbr/>Overrides</a>.<wbr/></p>
2570 </td>
2571 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08002572
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08002573 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
2574 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002575
2576
2577 <tr class="entry" id="controls_android.control.videoStabilizationMode">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08002578 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08002579 android.<wbr/>control.<wbr/>video<wbr/>Stabilization<wbr/>Mode
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08002580 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002581 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08002582 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002583
Igor Murashkinb8dc8812013-07-17 16:29:34 -07002584 <span class="entry_type_visibility"> [public as boolean]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002585
2586 <ul class="entry_type_enum">
2587 <li>
2588 <span class="entry_type_enum_name">OFF</span>
2589 </li>
2590 <li>
2591 <span class="entry_type_enum_name">ON</span>
2592 </li>
2593 </ul>
2594
2595 </td> <!-- entry_type -->
2596
2597 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08002598 <p>Whether video stabilization is
2599active</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002600 </td>
2601
2602 <td class="entry_units">
2603 </td>
2604
2605 <td class="entry_range">
2606 </td>
2607
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002608 <td class="entry_tags">
2609 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08002610 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002611 </ul>
2612 </td>
2613
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08002614 </tr>
2615 <tr class="entries_header">
2616 <th class="th_details" colspan="5">Details</th>
2617 </tr>
2618 <tr class="entry_cont">
2619 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08002620 <p>If enabled,<wbr/> video stabilization can modify the
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08002621<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 -08002622stabilized</p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08002623 </td>
2624 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08002625
2626
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08002627 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
2628 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002629
2630
2631
2632 <!-- end of kind -->
2633 </tbody>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08002634 <tr><td colspan="6" class="kind">static</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002635
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07002636 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002637 <tr>
2638 <th class="th_name">Property Name</th>
2639 <th class="th_type">Type</th>
2640 <th class="th_description">Description</th>
2641 <th class="th_units">Units</th>
2642 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002643 <th class="th_tags">Tags</th>
2644 </tr>
2645 </thead>
2646
2647 <tbody>
2648
2649
2650
2651
2652
2653
2654
2655
2656
2657
2658 <tr class="entry" id="static_android.control.aeAvailableAntibandingModes">
Eino-Ville Talvala19ce2c12013-12-30 12:03:45 -08002659 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08002660 android.<wbr/>control.<wbr/>ae<wbr/>Available<wbr/>Antibanding<wbr/>Modes
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08002661 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002662 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08002663 <span class="entry_type_name">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002664 <span class="entry_type_container">x</span>
2665
2666 <span class="entry_type_array">
2667 n
2668 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07002669 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -08002670 <div class="entry_type_notes">list of enums</div>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002671
2672
2673 </td> <!-- entry_type -->
2674
2675 <td class="entry_description">
Eino-Ville Talvala19ce2c12013-12-30 12:03:45 -08002676 <p>The set of auto-exposure antibanding modes that are
2677supported by this camera device.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002678 </td>
2679
2680 <td class="entry_units">
2681 </td>
2682
2683 <td class="entry_range">
2684 </td>
2685
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002686 <td class="entry_tags">
2687 </td>
2688
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08002689 </tr>
Eino-Ville Talvala19ce2c12013-12-30 12:03:45 -08002690 <tr class="entries_header">
2691 <th class="th_details" colspan="5">Details</th>
2692 </tr>
2693 <tr class="entry_cont">
2694 <td class="entry_details" colspan="5">
2695 <p>Not all of the auto-exposure anti-banding modes may be
2696supported by a given camera device.<wbr/> This field lists the
2697valid anti-banding modes that the application may request
2698for this camera device; they must include AUTO.<wbr/></p>
2699 </td>
2700 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08002701
2702
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08002703 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
2704 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002705
2706
2707 <tr class="entry" id="static_android.control.aeAvailableModes">
Eino-Ville Talvala9fa0d902014-01-08 16:16:53 -08002708 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08002709 android.<wbr/>control.<wbr/>ae<wbr/>Available<wbr/>Modes
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08002710 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002711 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08002712 <span class="entry_type_name">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002713 <span class="entry_type_container">x</span>
2714
2715 <span class="entry_type_array">
2716 n
2717 </span>
Eino-Ville Talvala9fa0d902014-01-08 16:16:53 -08002718 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -08002719 <div class="entry_type_notes">list of enums</div>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002720
2721
2722 </td> <!-- entry_type -->
2723
2724 <td class="entry_description">
Eino-Ville Talvala9fa0d902014-01-08 16:16:53 -08002725 <p>The set of auto-exposure modes that are supported by this
2726camera device.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002727 </td>
2728
2729 <td class="entry_units">
2730 </td>
2731
2732 <td class="entry_range">
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002733 </td>
2734
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002735 <td class="entry_tags">
Eino-Ville Talvala9fa0d902014-01-08 16:16:53 -08002736 <ul class="entry_tags">
2737 <li><a href="#tag_BC">BC</a></li>
2738 </ul>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002739 </td>
2740
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08002741 </tr>
Eino-Ville Talvala9fa0d902014-01-08 16:16:53 -08002742 <tr class="entries_header">
2743 <th class="th_details" colspan="5">Details</th>
2744 </tr>
2745 <tr class="entry_cont">
2746 <td class="entry_details" colspan="5">
2747 <p>Not all the auto-exposure modes may be supported by a
2748given camera device,<wbr/> especially if no flash unit is
2749available.<wbr/> This entry lists the valid modes for
2750<a href="#controls_android.control.aeMode">android.<wbr/>control.<wbr/>ae<wbr/>Mode</a> for this camera device.<wbr/></p>
2751<p>All camera devices support ON,<wbr/> and all camera devices with
2752flash units support ON_<wbr/>AUTO_<wbr/>FLASH and
2753ON_<wbr/>ALWAYS_<wbr/>FLASH.<wbr/></p>
2754<p>Full-capability camera devices always support OFF mode,<wbr/>
2755which enables application control of camera exposure time,<wbr/>
2756sensitivity,<wbr/> and frame duration.<wbr/></p>
2757 </td>
2758 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08002759
2760
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08002761 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
2762 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002763
2764
2765 <tr class="entry" id="static_android.control.aeAvailableTargetFpsRanges">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08002766 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -08002767 android.<wbr/>control.<wbr/>ae<wbr/>Available<wbr/>Target<wbr/>Fps<wbr/>Ranges
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08002768 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002769 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08002770 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002771 <span class="entry_type_container">x</span>
2772
2773 <span class="entry_type_array">
2774 2 x n
2775 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07002776 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -08002777 <div class="entry_type_notes">list of pairs of frame rates</div>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002778
2779
2780 </td> <!-- entry_type -->
2781
2782 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08002783 <p>List of frame rate ranges supported by the
2784AE algorithm/<wbr/>hardware</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002785 </td>
2786
2787 <td class="entry_units">
2788 </td>
2789
2790 <td class="entry_range">
2791 </td>
2792
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002793 <td class="entry_tags">
2794 </td>
2795
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08002796 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08002797
2798
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08002799 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
2800 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002801
2802
2803 <tr class="entry" id="static_android.control.aeCompensationRange">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08002804 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -08002805 android.<wbr/>control.<wbr/>ae<wbr/>Compensation<wbr/>Range
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08002806 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002807 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08002808 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002809 <span class="entry_type_container">x</span>
2810
2811 <span class="entry_type_array">
2812 2
2813 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07002814 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002815
2816
2817 </td> <!-- entry_type -->
2818
2819 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08002820 <p>Maximum and minimum exposure compensation
2821setting,<wbr/> in counts of
2822android.<wbr/>control.<wbr/>ae<wbr/>Compensation<wbr/>Step<wbr/>Size</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002823 </td>
2824
2825 <td class="entry_units">
2826 </td>
2827
2828 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08002829 <p>At least (-2,<wbr/>2)/<wbr/>(exp compensation step
2830size)</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002831 </td>
2832
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002833 <td class="entry_tags">
2834 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08002835 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002836 </ul>
2837 </td>
2838
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08002839 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08002840
2841
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08002842 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
2843 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002844
2845
2846 <tr class="entry" id="static_android.control.aeCompensationStep">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08002847 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -08002848 android.<wbr/>control.<wbr/>ae<wbr/>Compensation<wbr/>Step
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08002849 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002850 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08002851 <span class="entry_type_name">rational</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002852
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07002853 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002854
2855
2856 </td> <!-- entry_type -->
2857
2858 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08002859 <p>Smallest step by which exposure compensation
2860can be changed</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002861 </td>
2862
2863 <td class="entry_units">
2864 </td>
2865
2866 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08002867 <p>&lt;= 1/<wbr/>2</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002868 </td>
2869
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002870 <td class="entry_tags">
2871 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08002872 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002873 </ul>
2874 </td>
2875
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08002876 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08002877
2878
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08002879 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
2880 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002881
2882
2883 <tr class="entry" id="static_android.control.afAvailableModes">
Zhijun Hef163fa92014-01-14 09:59:04 -08002884 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08002885 android.<wbr/>control.<wbr/>af<wbr/>Available<wbr/>Modes
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08002886 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002887 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08002888 <span class="entry_type_name">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002889 <span class="entry_type_container">x</span>
2890
2891 <span class="entry_type_array">
2892 n
2893 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07002894 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -08002895 <div class="entry_type_notes">List of enums</div>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002896
2897
2898 </td> <!-- entry_type -->
2899
2900 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08002901 <p>List of AF modes that can be
Zhijun Hef163fa92014-01-14 09:59:04 -08002902selected with <a href="#controls_android.control.afMode">android.<wbr/>control.<wbr/>af<wbr/>Mode</a>.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002903 </td>
2904
2905 <td class="entry_units">
2906 </td>
2907
2908 <td class="entry_range">
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002909 </td>
2910
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002911 <td class="entry_tags">
2912 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08002913 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002914 </ul>
2915 </td>
2916
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08002917 </tr>
Zhijun Hef163fa92014-01-14 09:59:04 -08002918 <tr class="entries_header">
2919 <th class="th_details" colspan="5">Details</th>
2920 </tr>
2921 <tr class="entry_cont">
2922 <td class="entry_details" colspan="5">
2923 <p>Not all the auto-focus modes may be supported by a
2924given camera device.<wbr/> This entry lists the valid modes for
2925<a href="#controls_android.control.afMode">android.<wbr/>control.<wbr/>af<wbr/>Mode</a> for this camera device.<wbr/></p>
2926<p>All camera devices will support OFF mode,<wbr/> and all camera devices with
2927adjustable 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>)
2928will support AUTO mode.<wbr/></p>
2929 </td>
2930 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08002931
2932
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08002933 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
2934 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002935
2936
2937 <tr class="entry" id="static_android.control.availableEffects">
Ruben Brunkb28b35f2014-01-14 17:17:19 -08002938 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08002939 android.<wbr/>control.<wbr/>available<wbr/>Effects
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08002940 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002941 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08002942 <span class="entry_type_name">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002943 <span class="entry_type_container">x</span>
2944
2945 <span class="entry_type_array">
2946 n
2947 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07002948 <span class="entry_type_visibility"> [public]</span>
Ruben Brunkb28b35f2014-01-14 17:17:19 -08002949 <div class="entry_type_notes">List of enums (android.<wbr/>control.<wbr/>effect<wbr/>Mode).<wbr/></div>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002950
2951
2952 </td> <!-- entry_type -->
2953
2954 <td class="entry_description">
Ruben Brunkb28b35f2014-01-14 17:17:19 -08002955 <p>List containing the subset of color effects
2956specified in <a href="#controls_android.control.effectMode">android.<wbr/>control.<wbr/>effect<wbr/>Mode</a> that is supported by
2957this device.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002958 </td>
2959
2960 <td class="entry_units">
2961 </td>
2962
2963 <td class="entry_range">
Ruben Brunkb28b35f2014-01-14 17:17:19 -08002964 <p>Any subset of enums from those specified in
2965<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 -08002966 </td>
2967
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002968 <td class="entry_tags">
2969 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08002970 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002971 </ul>
2972 </td>
2973
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08002974 </tr>
Ruben Brunkb28b35f2014-01-14 17:17:19 -08002975 <tr class="entries_header">
2976 <th class="th_details" colspan="5">Details</th>
2977 </tr>
2978 <tr class="entry_cont">
2979 <td class="entry_details" colspan="5">
2980 <p>This list contains the color effect modes that can be applied to
2981images produced by the camera device.<wbr/> Only modes that have
2982been fully implemented for the current device may be included here.<wbr/>
2983Implementations are not expected to be consistent across all devices.<wbr/>
2984If no color effect modes are available for a device,<wbr/> this should
2985simply be set to OFF.<wbr/></p>
2986<p>A color effect will only be applied if
2987<a href="#controls_android.control.mode">android.<wbr/>control.<wbr/>mode</a> != OFF.<wbr/></p>
2988 </td>
2989 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08002990
2991
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08002992 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
2993 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08002994
2995
2996 <tr class="entry" id="static_android.control.availableSceneModes">
Ruben Brunkbf870fc2014-01-14 17:46:58 -08002997 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08002998 android.<wbr/>control.<wbr/>available<wbr/>Scene<wbr/>Modes
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08002999 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003000 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08003001 <span class="entry_type_name">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003002 <span class="entry_type_container">x</span>
3003
3004 <span class="entry_type_array">
3005 n
3006 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07003007 <span class="entry_type_visibility"> [public]</span>
Ruben Brunkbf870fc2014-01-14 17:46:58 -08003008 <div class="entry_type_notes">List of enums (android.<wbr/>control.<wbr/>scene<wbr/>Mode).<wbr/></div>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003009
3010
3011 </td> <!-- entry_type -->
3012
3013 <td class="entry_description">
Ruben Brunkbf870fc2014-01-14 17:46:58 -08003014 <p>List containing a subset of scene modes
3015specified in <a href="#controls_android.control.sceneMode">android.<wbr/>control.<wbr/>scene<wbr/>Mode</a>.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003016 </td>
3017
3018 <td class="entry_units">
3019 </td>
3020
3021 <td class="entry_range">
Ruben Brunkbf870fc2014-01-14 17:46:58 -08003022 <p>Any subset of the enums specified in android.<wbr/>control.<wbr/>scene<wbr/>Mode
3023not including DISABLED,<wbr/> or solely DISABLED if no
3024scene modes are available.<wbr/> FACE_<wbr/>PRIORITY must be included
3025if 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 -08003026 </td>
3027
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003028 <td class="entry_tags">
3029 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08003030 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003031 </ul>
3032 </td>
3033
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08003034 </tr>
Ruben Brunkbf870fc2014-01-14 17:46:58 -08003035 <tr class="entries_header">
3036 <th class="th_details" colspan="5">Details</th>
3037 </tr>
3038 <tr class="entry_cont">
3039 <td class="entry_details" colspan="5">
3040 <p>This list contains scene modes that can be set for the camera device.<wbr/>
3041Only scene modes that have been fully implemented for the
3042camera device may be included here.<wbr/> Implementations are not expected
3043to be consistent across all devices.<wbr/> If no scene modes are supported
3044by the camera device,<wbr/> this will be set to <code>[DISABLED]</code>.<wbr/></p>
3045 </td>
3046 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08003047
3048
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08003049 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
3050 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003051
3052
3053 <tr class="entry" id="static_android.control.availableVideoStabilizationModes">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08003054 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -08003055 android.<wbr/>control.<wbr/>available<wbr/>Video<wbr/>Stabilization<wbr/>Modes
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08003056 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003057 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08003058 <span class="entry_type_name">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003059 <span class="entry_type_container">x</span>
3060
3061 <span class="entry_type_array">
3062 n
3063 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07003064 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -08003065 <div class="entry_type_notes">List of enums.<wbr/></div>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003066
3067
3068 </td> <!-- entry_type -->
3069
3070 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08003071 <p>List of video stabilization modes that can
3072be supported</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003073 </td>
3074
3075 <td class="entry_units">
3076 </td>
3077
3078 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08003079 <p>OFF must be included</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003080 </td>
3081
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003082 <td class="entry_tags">
3083 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08003084 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003085 </ul>
3086 </td>
3087
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08003088 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08003089
3090
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08003091 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
3092 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003093
3094
3095 <tr class="entry" id="static_android.control.awbAvailableModes">
Zhijun He7787f7f2014-01-14 16:30:31 -08003096 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08003097 android.<wbr/>control.<wbr/>awb<wbr/>Available<wbr/>Modes
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08003098 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003099 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08003100 <span class="entry_type_name">byte</span>
Alex Raya4251d92013-04-30 16:43:44 -07003101 <span class="entry_type_container">x</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003102
Alex Raya4251d92013-04-30 16:43:44 -07003103 <span class="entry_type_array">
3104 n
3105 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07003106 <span class="entry_type_visibility"> [public]</span>
Zhijun He7787f7f2014-01-14 16:30:31 -08003107 <div class="entry_type_notes">List of enums</div>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003108
3109
3110 </td> <!-- entry_type -->
3111
3112 <td class="entry_description">
Zhijun He7787f7f2014-01-14 16:30:31 -08003113 <p>The set of auto-white-balance modes (<a href="#controls_android.control.awbMode">android.<wbr/>control.<wbr/>awb<wbr/>Mode</a>)
3114that are supported by this camera device.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003115 </td>
3116
3117 <td class="entry_units">
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003118 </td>
3119
3120 <td class="entry_range">
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003121 </td>
3122
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003123 <td class="entry_tags">
3124 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08003125 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003126 </ul>
3127 </td>
3128
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08003129 </tr>
Zhijun He7787f7f2014-01-14 16:30:31 -08003130 <tr class="entries_header">
3131 <th class="th_details" colspan="5">Details</th>
3132 </tr>
3133 <tr class="entry_cont">
3134 <td class="entry_details" colspan="5">
3135 <p>Not all the auto-white-balance modes may be supported by a
3136given camera device.<wbr/> This entry lists the valid modes for
3137<a href="#controls_android.control.awbMode">android.<wbr/>control.<wbr/>awb<wbr/>Mode</a> for this camera device.<wbr/></p>
3138<p>All camera devices will support ON mode.<wbr/></p>
3139<p>Full-capability camera devices will always support OFF mode,<wbr/>
3140which enables application control of white balance,<wbr/> by using
3141<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>
3142 </td>
3143 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08003144
3145
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08003146 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
3147 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003148
3149
3150 <tr class="entry" id="static_android.control.maxRegions">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08003151 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -08003152 android.<wbr/>control.<wbr/>max<wbr/>Regions
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08003153 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003154 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08003155 <span class="entry_type_name">int32</span>
Ruben Brunk120eea42014-01-15 15:55:08 -08003156 <span class="entry_type_container">x</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003157
Ruben Brunk120eea42014-01-15 15:55:08 -08003158 <span class="entry_type_array">
3159 3
3160 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07003161 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003162
3163
3164 </td> <!-- entry_type -->
3165
3166 <td class="entry_description">
Ruben Brunk120eea42014-01-15 15:55:08 -08003167 <p>List of the maximum number of regions that can be used for metering in
3168auto-exposure (AE),<wbr/> auto-white balance (AWB),<wbr/> and auto-focus (AF);
3169this corresponds to the the maximum number of elements in
3170<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/>
3171and <a href="#controls_android.control.afRegions">android.<wbr/>control.<wbr/>af<wbr/>Regions</a>.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003172 </td>
3173
3174 <td class="entry_units">
3175 </td>
3176
3177 <td class="entry_range">
Ruben Brunk120eea42014-01-15 15:55:08 -08003178 <p>Value must be &gt;= 0 for each element.<wbr/> For full-capability devices
3179this value must be &gt;= 1 for AE and AF.<wbr/> The order of the elements is:
3180<code>(AE,<wbr/> AWB,<wbr/> AF)</code>.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003181 </td>
3182
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003183 <td class="entry_tags">
3184 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08003185 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003186 </ul>
3187 </td>
3188
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08003189 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08003190
3191
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08003192 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
3193 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003194
3195
3196 <tr class="entry" id="static_android.control.sceneModeOverrides">
Ruben Brunkcf77fe92014-01-14 19:31:21 -08003197 <td class="entry_name" rowspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08003198 android.<wbr/>control.<wbr/>scene<wbr/>Mode<wbr/>Overrides
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08003199 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003200 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08003201 <span class="entry_type_name">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003202 <span class="entry_type_container">x</span>
3203
3204 <span class="entry_type_array">
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07003205 3 x length(availableSceneModes)
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003206 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07003207 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003208
3209
3210 </td> <!-- entry_type -->
3211
3212 <td class="entry_description">
Ruben Brunkcf77fe92014-01-14 19:31:21 -08003213 <p>Ordered list of auto-exposure,<wbr/> auto-white balance,<wbr/> and auto-focus
3214settings to use with each available scene mode.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003215 </td>
3216
3217 <td class="entry_units">
3218 </td>
3219
3220 <td class="entry_range">
Ruben Brunkcf77fe92014-01-14 19:31:21 -08003221 <p>For each available scene mode,<wbr/> the list must contain three
3222entries containing the <a href="#controls_android.control.aeMode">android.<wbr/>control.<wbr/>ae<wbr/>Mode</a>,<wbr/>
3223<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
3224by the camera device.<wbr/> The entry order is <code>(aeMode,<wbr/> awbMode,<wbr/> afMode)</code>
3225where aeMode has the lowest index position.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003226 </td>
3227
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08003228 <td class="entry_tags">
3229 <ul class="entry_tags">
3230 <li><a href="#tag_BC">BC</a></li>
3231 </ul>
3232 </td>
3233
3234 </tr>
3235 <tr class="entries_header">
3236 <th class="th_details" colspan="5">Details</th>
3237 </tr>
3238 <tr class="entry_cont">
3239 <td class="entry_details" colspan="5">
Ruben Brunkcf77fe92014-01-14 19:31:21 -08003240 <p>When a scene mode is enabled,<wbr/> the camera device is expected
3241to 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/>
3242and <a href="#controls_android.control.afMode">android.<wbr/>control.<wbr/>af<wbr/>Mode</a> with its preferred settings for
3243that scene mode.<wbr/></p>
3244<p>The order of this list matches that of availableSceneModes,<wbr/>
3245with 3 entries for each mode.<wbr/> The overrides listed
3246for FACE_<wbr/>PRIORITY are ignored,<wbr/> since for that
3247mode the application-set <a href="#controls_android.control.aeMode">android.<wbr/>control.<wbr/>ae<wbr/>Mode</a>,<wbr/>
3248<a href="#controls_android.control.awbMode">android.<wbr/>control.<wbr/>awb<wbr/>Mode</a>,<wbr/> and <a href="#controls_android.control.afMode">android.<wbr/>control.<wbr/>af<wbr/>Mode</a> values are
3249used instead,<wbr/> matching the behavior when android.<wbr/>control.<wbr/>mode
3250is set to AUTO.<wbr/> It is recommended that the FACE_<wbr/>PRIORITY
3251overrides should be set to 0.<wbr/></p>
3252<p>For example,<wbr/> if availableSceneModes contains
3253<code>(FACE_<wbr/>PRIORITY,<wbr/> ACTION,<wbr/> NIGHT)</code>,<wbr/> then the camera framework
3254expects sceneModeOverrides to have 9 entries formatted like:
3255<code>(0,<wbr/> 0,<wbr/> 0,<wbr/> ON_<wbr/>AUTO_<wbr/>FLASH,<wbr/> AUTO,<wbr/> CONTINUOUS_<wbr/>PICTURE,<wbr/>
3256ON_<wbr/>AUTO_<wbr/>FLASH,<wbr/> INCANDESCENT,<wbr/> AUTO)</code>.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003257 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08003258 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08003259
Ruben Brunkcf77fe92014-01-14 19:31:21 -08003260 <tr class="entries_header">
3261 <th class="th_details" colspan="5">HAL Implementation Details</th>
3262 </tr>
3263 <tr class="entry_cont">
3264 <td class="entry_details" colspan="5">
3265 <p>To maintain backward compatibility,<wbr/> this list will be made available
3266in the static metadata of the camera service.<wbr/> The camera service will
3267use these values to set <a href="#controls_android.control.aeMode">android.<wbr/>control.<wbr/>ae<wbr/>Mode</a>,<wbr/>
3268<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
3269mode other than FACE_<wbr/>PRIORITY.<wbr/></p>
3270 </td>
3271 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08003272
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08003273 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
3274 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003275
3276
3277
3278 <!-- end of kind -->
3279 </tbody>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08003280 <tr><td colspan="6" class="kind">dynamic</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003281
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07003282 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003283 <tr>
3284 <th class="th_name">Property Name</th>
3285 <th class="th_type">Type</th>
3286 <th class="th_description">Description</th>
3287 <th class="th_units">Units</th>
3288 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003289 <th class="th_tags">Tags</th>
3290 </tr>
3291 </thead>
3292
3293 <tbody>
3294
3295
3296
3297
3298
3299
3300
3301
3302
3303
3304 <tr class="entry" id="dynamic_android.control.aePrecaptureId">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08003305 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08003306 android.<wbr/>control.<wbr/>ae<wbr/>Precapture<wbr/>Id
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08003307 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003308 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08003309 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003310
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07003311 <span class="entry_type_visibility"> [hidden]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003312
3313
3314 </td> <!-- entry_type -->
3315
3316 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08003317 <p>The ID sent with the latest
3318CAMERA2_<wbr/>TRIGGER_<wbr/>PRECAPTURE_<wbr/>METERING call</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003319 </td>
3320
3321 <td class="entry_units">
3322 </td>
3323
3324 <td class="entry_range">
Zhijun He7391bb62014-02-05 00:09:04 -08003325 <p><strong>Deprecated</strong>.<wbr/> Do not use.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003326 </td>
3327
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08003328 <td class="entry_tags">
3329 </td>
3330
3331 </tr>
3332 <tr class="entries_header">
3333 <th class="th_details" colspan="5">Details</th>
3334 </tr>
3335 <tr class="entry_cont">
3336 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08003337 <p>Must be 0 if no
3338CAMERA2_<wbr/>TRIGGER_<wbr/>PRECAPTURE_<wbr/>METERING trigger received yet
3339by HAL.<wbr/> Always updated even if AE algorithm ignores the
3340trigger</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003341 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08003342 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08003343
3344
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08003345 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
3346 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003347
3348
Eino-Ville Talvala9fa0d902014-01-08 16:16:53 -08003349 <tr class="entry" id="dynamic_android.control.aeMode">
3350 <td class="entry_name" rowspan="3">
3351 android.<wbr/>control.<wbr/>ae<wbr/>Mode
3352 </td>
3353 <td class="entry_type">
3354 <span class="entry_type_name entry_type_name_enum">byte</span>
3355
3356 <span class="entry_type_visibility"> [public]</span>
3357
3358 <ul class="entry_type_enum">
3359 <li>
3360 <span class="entry_type_enum_name">OFF</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08003361 <span class="entry_type_enum_notes"><p>The camera device's autoexposure routine is disabled;
3362the application-selected <a href="#controls_android.sensor.exposureTime">android.<wbr/>sensor.<wbr/>exposure<wbr/>Time</a>,<wbr/>
3363<a href="#controls_android.sensor.sensitivity">android.<wbr/>sensor.<wbr/>sensitivity</a> and
3364<a href="#controls_android.sensor.frameDuration">android.<wbr/>sensor.<wbr/>frame<wbr/>Duration</a> are used by the camera
3365device,<wbr/> along with android.<wbr/>flash.<wbr/>* fields,<wbr/> if there's
3366a flash unit for this camera device.<wbr/></p></span>
Eino-Ville Talvala9fa0d902014-01-08 16:16:53 -08003367 </li>
3368 <li>
3369 <span class="entry_type_enum_name">ON</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08003370 <span class="entry_type_enum_notes"><p>The camera device's autoexposure routine is active,<wbr/>
3371with no flash control.<wbr/> The application's values for
3372<a href="#controls_android.sensor.exposureTime">android.<wbr/>sensor.<wbr/>exposure<wbr/>Time</a>,<wbr/>
3373<a href="#controls_android.sensor.sensitivity">android.<wbr/>sensor.<wbr/>sensitivity</a>,<wbr/> and
3374<a href="#controls_android.sensor.frameDuration">android.<wbr/>sensor.<wbr/>frame<wbr/>Duration</a> are ignored.<wbr/> The
3375application has control over the various
3376android.<wbr/>flash.<wbr/>* fields.<wbr/></p></span>
Eino-Ville Talvala9fa0d902014-01-08 16:16:53 -08003377 </li>
3378 <li>
3379 <span class="entry_type_enum_name">ON_AUTO_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/> firing it in low-light
3382conditions.<wbr/> The flash may be fired during a
3383precapture sequence (triggered by
3384<a href="#controls_android.control.aePrecaptureTrigger">android.<wbr/>control.<wbr/>ae<wbr/>Precapture<wbr/>Trigger</a>) and may be fired
3385for 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_ALWAYS_FLASH</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08003391 <span class="entry_type_enum_notes"><p>Like ON,<wbr/> except that the camera device also controls
3392the camera's flash unit,<wbr/> always firing it for still
3393captures.<wbr/> The flash may be fired during a precapture
3394sequence (triggered by
3395<a href="#controls_android.control.aePrecaptureTrigger">android.<wbr/>control.<wbr/>ae<wbr/>Precapture<wbr/>Trigger</a>) and will always
3396be fired for captures for which the
3397<a href="#controls_android.control.captureIntent">android.<wbr/>control.<wbr/>capture<wbr/>Intent</a> field is set to
3398STILL_<wbr/>CAPTURE</p></span>
Eino-Ville Talvala9fa0d902014-01-08 16:16:53 -08003399 </li>
3400 <li>
3401 <span class="entry_type_enum_name">ON_AUTO_FLASH_REDEYE</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08003402 <span class="entry_type_enum_notes"><p>Like ON_<wbr/>AUTO_<wbr/>FLASH,<wbr/> but with automatic red eye
3403reduction.<wbr/> If deemed necessary by the camera device,<wbr/>
3404a red eye reduction flash will fire during the
3405precapture sequence.<wbr/></p></span>
Eino-Ville Talvala9fa0d902014-01-08 16:16:53 -08003406 </li>
3407 </ul>
3408
3409 </td> <!-- entry_type -->
3410
3411 <td class="entry_description">
3412 <p>The desired mode for the camera device's
3413auto-exposure routine.<wbr/></p>
3414 </td>
3415
3416 <td class="entry_units">
3417 </td>
3418
3419 <td class="entry_range">
3420 <p><a href="#static_android.control.aeAvailableModes">android.<wbr/>control.<wbr/>ae<wbr/>Available<wbr/>Modes</a></p>
3421 </td>
3422
3423 <td class="entry_tags">
3424 <ul class="entry_tags">
3425 <li><a href="#tag_BC">BC</a></li>
3426 </ul>
3427 </td>
3428
3429 </tr>
3430 <tr class="entries_header">
3431 <th class="th_details" colspan="5">Details</th>
3432 </tr>
3433 <tr class="entry_cont">
3434 <td class="entry_details" colspan="5">
3435 <p>This control is only effective if <a href="#controls_android.control.mode">android.<wbr/>control.<wbr/>mode</a> is
3436AUTO.<wbr/></p>
3437<p>When set to any of the ON modes,<wbr/> the camera device's
3438auto-exposure routine is enabled,<wbr/> overriding the
3439application's selected exposure time,<wbr/> sensor sensitivity,<wbr/>
3440and frame duration (<a href="#controls_android.sensor.exposureTime">android.<wbr/>sensor.<wbr/>exposure<wbr/>Time</a>,<wbr/>
3441<a href="#controls_android.sensor.sensitivity">android.<wbr/>sensor.<wbr/>sensitivity</a>,<wbr/> and
3442<a href="#controls_android.sensor.frameDuration">android.<wbr/>sensor.<wbr/>frame<wbr/>Duration</a>).<wbr/> If one of the FLASH modes
3443is selected,<wbr/> the camera device's flash unit controls are
3444also overridden.<wbr/></p>
3445<p>The FLASH modes are only available if the camera device
3446has a flash unit (<a href="#static_android.flash.info.available">android.<wbr/>flash.<wbr/>info.<wbr/>available</a> is <code>true</code>).<wbr/></p>
3447<p>If flash TORCH mode is desired,<wbr/> this field must be set to
3448ON or OFF,<wbr/> and <a href="#controls_android.flash.mode">android.<wbr/>flash.<wbr/>mode</a> set to TORCH.<wbr/></p>
3449<p>When set to any of the ON modes,<wbr/> the values chosen by the
3450camera device auto-exposure routine for the overridden
3451fields for a given capture will be available in its
3452CaptureResult.<wbr/></p>
3453 </td>
3454 </tr>
3455
3456
3457 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
3458 <!-- end of entry -->
3459
3460
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003461 <tr class="entry" id="dynamic_android.control.aeRegions">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08003462 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08003463 android.<wbr/>control.<wbr/>ae<wbr/>Regions
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08003464 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003465 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08003466 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003467 <span class="entry_type_container">x</span>
3468
3469 <span class="entry_type_array">
3470 5 x area_count
3471 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07003472 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003473
3474
3475 </td> <!-- entry_type -->
3476
3477 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08003478 <p>List of areas to use for
Ruben Brunk76e4c7d2014-01-31 11:05:30 -08003479metering.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003480 </td>
3481
3482 <td class="entry_units">
3483 </td>
3484
3485 <td class="entry_range">
Ruben Brunk76e4c7d2014-01-31 11:05:30 -08003486 <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 -08003487 </td>
3488
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08003489 <td class="entry_tags">
3490 <ul class="entry_tags">
3491 <li><a href="#tag_BC">BC</a></li>
3492 </ul>
3493 </td>
3494
3495 </tr>
3496 <tr class="entries_header">
3497 <th class="th_details" colspan="5">Details</th>
3498 </tr>
3499 <tr class="entry_cont">
3500 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08003501 <p>Each area is a rectangle plus weight: xmin,<wbr/> ymin,<wbr/>
Ruben Brunk76e4c7d2014-01-31 11:05:30 -08003502xmax,<wbr/> ymax,<wbr/> weight.<wbr/> The rectangle is defined to be inclusive of the
Igor Murashkin0b080452013-12-27 15:30:25 -08003503specified coordinates.<wbr/></p>
3504<p>The coordinate system is based on the active pixel array,<wbr/>
3505with (0,<wbr/>0) being the top-left pixel in the active pixel array,<wbr/> and
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08003506(<a href="#static_android.sensor.info.activeArraySize">android.<wbr/>sensor.<wbr/>info.<wbr/>active<wbr/>Array<wbr/>Size</a>.<wbr/>width - 1,<wbr/>
3507<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 -08003508bottom-right pixel in the active pixel array.<wbr/> The weight
3509should be nonnegative.<wbr/></p>
3510<p>If all regions have 0 weight,<wbr/> then no specific metering area
3511needs to be used by the HAL.<wbr/> If the metering region is
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08003512outside 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 -08003513should ignore the sections outside the region and output the
Ruben Brunk76e4c7d2014-01-31 11:05:30 -08003514used sections in the frame metadata.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003515 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08003516 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08003517
3518
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08003519 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
3520 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003521
3522
3523 <tr class="entry" id="dynamic_android.control.aeState">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08003524 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08003525 android.<wbr/>control.<wbr/>ae<wbr/>State
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08003526 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003527 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08003528 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003529
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07003530 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003531
3532 <ul class="entry_type_enum">
3533 <li>
3534 <span class="entry_type_enum_name">INACTIVE</span>
Zhijun He92e698d2014-01-13 16:24:31 -08003535 <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 -08003536this state.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003537 </li>
3538 <li>
3539 <span class="entry_type_enum_name">SEARCHING</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08003540 <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 -08003541for the current scene.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003542 </li>
3543 <li>
3544 <span class="entry_type_enum_name">CONVERGED</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08003545 <span class="entry_type_enum_notes"><p>AE has a good set of control values for the
Zhijun He92e698d2014-01-13 16:24:31 -08003546current scene.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003547 </li>
3548 <li>
3549 <span class="entry_type_enum_name">LOCKED</span>
Zhijun He92e698d2014-01-13 16:24:31 -08003550 <span class="entry_type_enum_notes"><p>AE has been locked.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003551 </li>
3552 <li>
3553 <span class="entry_type_enum_name">FLASH_REQUIRED</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08003554 <span class="entry_type_enum_notes"><p>AE has a good set of control values,<wbr/> but flash
3555needs to be fired for good quality still
Zhijun He92e698d2014-01-13 16:24:31 -08003556capture.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003557 </li>
3558 <li>
3559 <span class="entry_type_enum_name">PRECAPTURE</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08003560 <span class="entry_type_enum_notes"><p>AE has been asked to do a precapture sequence
Zhijun He92e698d2014-01-13 16:24:31 -08003561(through the <a href="#controls_android.control.aePrecaptureTrigger">android.<wbr/>control.<wbr/>ae<wbr/>Precapture<wbr/>Trigger</a> START),<wbr/>
3562and is currently executing it.<wbr/> Once PRECAPTURE
Igor Murashkina10351a2014-01-15 17:05:22 -08003563completes,<wbr/> AE will transition to CONVERGED or
Zhijun He92e698d2014-01-13 16:24:31 -08003564FLASH_<wbr/>REQUIRED as appropriate.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003565 </li>
3566 </ul>
3567
3568 </td> <!-- entry_type -->
3569
3570 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08003571 <p>Current state of AE algorithm</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003572 </td>
3573
3574 <td class="entry_units">
3575 </td>
3576
3577 <td class="entry_range">
3578 </td>
3579
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08003580 <td class="entry_tags">
3581 </td>
3582
3583 </tr>
3584 <tr class="entries_header">
3585 <th class="th_details" colspan="5">Details</th>
3586 </tr>
3587 <tr class="entry_cont">
3588 <td class="entry_details" colspan="5">
Zhijun He92e698d2014-01-13 16:24:31 -08003589 <p>Switching between or enabling AE modes (<a href="#controls_android.control.aeMode">android.<wbr/>control.<wbr/>ae<wbr/>Mode</a>) always
3590resets the AE state to INACTIVE.<wbr/> Similarly,<wbr/> switching between <a href="#controls_android.control.mode">android.<wbr/>control.<wbr/>mode</a>,<wbr/>
3591or <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
3592the algorithm states to INACTIVE.<wbr/></p>
3593<p>The camera device can do several state transitions between two results,<wbr/> if it is
3594allowed by the state transition table.<wbr/> For example: INACTIVE may never actually be
3595seen in a result.<wbr/></p>
3596<p>The state in the result is the state for this image (in sync with this image): if
3597AE state becomes CONVERGED,<wbr/> then the image data associated with this result should
3598be good to use.<wbr/></p>
3599<p>Below are state transition tables for different AE modes.<wbr/></p>
3600<table>
3601<thead>
3602<tr>
3603<th align="center">State</th>
3604<th align="center">Transition Cause</th>
3605<th align="center">New State</th>
3606<th align="center">Notes</th>
3607</tr>
3608</thead>
3609<tbody>
3610<tr>
3611<td align="center">INACTIVE</td>
3612<td align="center"></td>
3613<td align="center">INACTIVE</td>
3614<td align="center">Camera device auto exposure algorithm is disabled</td>
3615</tr>
3616</tbody>
3617</table>
3618<p>When <a href="#controls_android.control.aeMode">android.<wbr/>control.<wbr/>ae<wbr/>Mode</a> is AE_<wbr/>MODE_<wbr/>ON_<wbr/>*:</p>
3619<table>
3620<thead>
3621<tr>
3622<th align="center">State</th>
3623<th align="center">Transition Cause</th>
3624<th align="center">New State</th>
3625<th align="center">Notes</th>
3626</tr>
3627</thead>
3628<tbody>
3629<tr>
3630<td align="center">INACTIVE</td>
3631<td align="center">Camera device initiates AE scan</td>
3632<td align="center">SEARCHING</td>
3633<td align="center">Values changing</td>
3634</tr>
3635<tr>
3636<td align="center">INACTIVE</td>
3637<td align="center"><a href="#controls_android.control.aeLock">android.<wbr/>control.<wbr/>ae<wbr/>Lock</a> is ON</td>
3638<td align="center">LOCKED</td>
3639<td align="center">Values locked</td>
3640</tr>
3641<tr>
3642<td align="center">SEARCHING</td>
3643<td align="center">Camera device finishes AE scan</td>
3644<td align="center">CONVERGED</td>
3645<td align="center">Good values,<wbr/> not changing</td>
3646</tr>
3647<tr>
3648<td align="center">SEARCHING</td>
3649<td align="center">Camera device finishes AE scan</td>
3650<td align="center">FLASH_<wbr/>REQUIRED</td>
3651<td align="center">Converged but too dark w/<wbr/>o flash</td>
3652</tr>
3653<tr>
3654<td align="center">SEARCHING</td>
3655<td align="center"><a href="#controls_android.control.aeLock">android.<wbr/>control.<wbr/>ae<wbr/>Lock</a> is ON</td>
3656<td align="center">LOCKED</td>
3657<td align="center">Values locked</td>
3658</tr>
3659<tr>
3660<td align="center">CONVERGED</td>
3661<td align="center">Camera device initiates AE scan</td>
3662<td align="center">SEARCHING</td>
3663<td align="center">Values changing</td>
3664</tr>
3665<tr>
3666<td align="center">CONVERGED</td>
3667<td align="center"><a href="#controls_android.control.aeLock">android.<wbr/>control.<wbr/>ae<wbr/>Lock</a> is ON</td>
3668<td align="center">LOCKED</td>
3669<td align="center">Values locked</td>
3670</tr>
3671<tr>
3672<td align="center">FLASH_<wbr/>REQUIRED</td>
3673<td align="center">Camera device initiates AE scan</td>
3674<td align="center">SEARCHING</td>
3675<td align="center">Values changing</td>
3676</tr>
3677<tr>
3678<td align="center">FLASH_<wbr/>REQUIRED</td>
3679<td align="center"><a href="#controls_android.control.aeLock">android.<wbr/>control.<wbr/>ae<wbr/>Lock</a> is ON</td>
3680<td align="center">LOCKED</td>
3681<td align="center">Values locked</td>
3682</tr>
3683<tr>
3684<td align="center">LOCKED</td>
3685<td align="center"><a href="#controls_android.control.aeLock">android.<wbr/>control.<wbr/>ae<wbr/>Lock</a> is OFF</td>
3686<td align="center">SEARCHING</td>
3687<td align="center">Values not good after unlock</td>
3688</tr>
3689<tr>
3690<td align="center">LOCKED</td>
3691<td align="center"><a href="#controls_android.control.aeLock">android.<wbr/>control.<wbr/>ae<wbr/>Lock</a> is OFF</td>
3692<td align="center">CONVERGED</td>
3693<td align="center">Values good after unlock</td>
3694</tr>
3695<tr>
3696<td align="center">LOCKED</td>
3697<td align="center"><a href="#controls_android.control.aeLock">android.<wbr/>control.<wbr/>ae<wbr/>Lock</a> is OFF</td>
3698<td align="center">FLASH_<wbr/>REQUIRED</td>
3699<td align="center">Exposure good,<wbr/> but too dark</td>
3700</tr>
3701<tr>
3702<td align="center">PRECAPTURE</td>
3703<td align="center">Sequence done.<wbr/> <a href="#controls_android.control.aeLock">android.<wbr/>control.<wbr/>ae<wbr/>Lock</a> is OFF</td>
3704<td align="center">CONVERGED</td>
3705<td align="center">Ready for high-quality capture</td>
3706</tr>
3707<tr>
3708<td align="center">PRECAPTURE</td>
3709<td align="center">Sequence done.<wbr/> <a href="#controls_android.control.aeLock">android.<wbr/>control.<wbr/>ae<wbr/>Lock</a> is ON</td>
3710<td align="center">LOCKED</td>
3711<td align="center">Ready for high-quality capture</td>
3712</tr>
3713<tr>
3714<td align="center">Any state</td>
3715<td align="center"><a href="#controls_android.control.aePrecaptureTrigger">android.<wbr/>control.<wbr/>ae<wbr/>Precapture<wbr/>Trigger</a> is START</td>
3716<td align="center">PRECAPTURE</td>
3717<td align="center">Start AE precapture metering sequence</td>
3718</tr>
3719</tbody>
3720</table>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003721 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08003722 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08003723
3724
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08003725 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
3726 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003727
3728
3729 <tr class="entry" id="dynamic_android.control.afMode">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08003730 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08003731 android.<wbr/>control.<wbr/>af<wbr/>Mode
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08003732 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003733 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08003734 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003735
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07003736 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003737
3738 <ul class="entry_type_enum">
3739 <li>
3740 <span class="entry_type_enum_name">OFF</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08003741 <span class="entry_type_enum_notes"><p>The auto-focus routine does not control the lens;
3742<a href="#controls_android.lens.focusDistance">android.<wbr/>lens.<wbr/>focus<wbr/>Distance</a> is controlled by the
3743application</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003744 </li>
3745 <li>
3746 <span class="entry_type_enum_name">AUTO</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08003747 <span class="entry_type_enum_notes"><p>If lens is not fixed focus.<wbr/></p>
3748<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
3749is fixed-focus.<wbr/> In this mode,<wbr/> the lens does not move unless
3750the autofocus trigger action is called.<wbr/> When that trigger
3751is activated,<wbr/> AF must transition to ACTIVE_<wbr/>SCAN,<wbr/> then to
3752the outcome of the scan (FOCUSED or NOT_<wbr/>FOCUSED).<wbr/></p>
3753<p>Triggering AF_<wbr/>CANCEL resets the lens position to default,<wbr/>
3754and sets the AF state to INACTIVE.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003755 </li>
3756 <li>
3757 <span class="entry_type_enum_name">MACRO</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08003758 <span class="entry_type_enum_notes"><p>In this mode,<wbr/> the lens does not move unless the
3759autofocus trigger action is called.<wbr/></p>
3760<p>When that trigger is activated,<wbr/> AF must transition to
3761ACTIVE_<wbr/>SCAN,<wbr/> then to the outcome of the scan (FOCUSED or
3762NOT_<wbr/>FOCUSED).<wbr/> Triggering cancel AF resets the lens
3763position to default,<wbr/> and sets the AF state to
3764INACTIVE.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003765 </li>
3766 <li>
3767 <span class="entry_type_enum_name">CONTINUOUS_VIDEO</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08003768 <span class="entry_type_enum_notes"><p>In this mode,<wbr/> the AF algorithm modifies the lens
3769position continually to attempt to provide a
3770constantly-in-focus image stream.<wbr/></p>
3771<p>The focusing behavior should be suitable for good quality
3772video recording; typically this means slower focus
3773movement and no overshoots.<wbr/> When the AF trigger is not
3774involved,<wbr/> the AF algorithm should start in INACTIVE state,<wbr/>
3775and then transition into PASSIVE_<wbr/>SCAN and PASSIVE_<wbr/>FOCUSED
3776states as appropriate.<wbr/> When the AF trigger is activated,<wbr/>
3777the algorithm should immediately transition into
3778AF_<wbr/>FOCUSED or AF_<wbr/>NOT_<wbr/>FOCUSED as appropriate,<wbr/> and lock the
3779lens position until a cancel AF trigger is received.<wbr/></p>
3780<p>Once cancel is received,<wbr/> the algorithm should transition
3781back to INACTIVE and resume passive scan.<wbr/> Note that this
3782behavior is not identical to CONTINUOUS_<wbr/>PICTURE,<wbr/> since an
3783ongoing PASSIVE_<wbr/>SCAN must immediately be
3784canceled.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003785 </li>
3786 <li>
3787 <span class="entry_type_enum_name">CONTINUOUS_PICTURE</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08003788 <span class="entry_type_enum_notes"><p>In this mode,<wbr/> the AF algorithm modifies the lens
3789position continually to attempt to provide a
3790constantly-in-focus image stream.<wbr/></p>
3791<p>The focusing behavior should be suitable for still image
3792capture; typically this means focusing as fast as
3793possible.<wbr/> When the AF trigger is not involved,<wbr/> the AF
3794algorithm should start in INACTIVE state,<wbr/> and then
3795transition into PASSIVE_<wbr/>SCAN and PASSIVE_<wbr/>FOCUSED states as
3796appropriate as it attempts to maintain focus.<wbr/> When the AF
3797trigger is activated,<wbr/> the algorithm should finish its
3798PASSIVE_<wbr/>SCAN if active,<wbr/> and then transition into
3799AF_<wbr/>FOCUSED or AF_<wbr/>NOT_<wbr/>FOCUSED as appropriate,<wbr/> and lock the
3800lens position until a cancel AF trigger is received.<wbr/></p>
3801<p>When the AF cancel trigger is activated,<wbr/> the algorithm
3802should transition back to INACTIVE and then act as if it
3803has just been started.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003804 </li>
3805 <li>
3806 <span class="entry_type_enum_name">EDOF</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08003807 <span class="entry_type_enum_notes"><p>Extended depth of field (digital focus).<wbr/> AF
3808trigger is ignored,<wbr/> AF state should always be
3809INACTIVE.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003810 </li>
3811 </ul>
3812
3813 </td> <!-- entry_type -->
3814
3815 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08003816 <p>Whether AF is currently enabled,<wbr/> and what
3817mode it is set to</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003818 </td>
3819
3820 <td class="entry_units">
3821 </td>
3822
3823 <td class="entry_range">
Zhijun He7787f7f2014-01-14 16:30:31 -08003824 <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 -08003825 </td>
3826
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003827 <td class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08003828 <ul class="entry_tags">
3829 <li><a href="#tag_BC">BC</a></li>
3830 </ul>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003831 </td>
3832
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08003833 </tr>
3834 <tr class="entries_header">
3835 <th class="th_details" colspan="5">Details</th>
3836 </tr>
3837 <tr class="entry_cont">
3838 <td class="entry_details" colspan="5">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08003839 <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 -08003840<p>If the lens is controlled by the camera device auto-focus algorithm,<wbr/>
3841the camera device will report the current AF status in android.<wbr/>control.<wbr/>af<wbr/>State
3842in result metadata.<wbr/></p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08003843 </td>
3844 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08003845
3846
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08003847 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
3848 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003849
3850
3851 <tr class="entry" id="dynamic_android.control.afRegions">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08003852 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08003853 android.<wbr/>control.<wbr/>af<wbr/>Regions
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08003854 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003855 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08003856 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003857 <span class="entry_type_container">x</span>
3858
3859 <span class="entry_type_array">
3860 5 x area_count
3861 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07003862 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003863
3864
3865 </td> <!-- entry_type -->
3866
3867 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08003868 <p>List of areas to use for focus
Ruben Brunk76e4c7d2014-01-31 11:05:30 -08003869estimation.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003870 </td>
3871
3872 <td class="entry_units">
3873 </td>
3874
3875 <td class="entry_range">
Ruben Brunk76e4c7d2014-01-31 11:05:30 -08003876 <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 -08003877 </td>
3878
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08003879 <td class="entry_tags">
3880 <ul class="entry_tags">
3881 <li><a href="#tag_BC">BC</a></li>
3882 </ul>
3883 </td>
3884
3885 </tr>
3886 <tr class="entries_header">
3887 <th class="th_details" colspan="5">Details</th>
3888 </tr>
3889 <tr class="entry_cont">
3890 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08003891 <p>Each area is a rectangle plus weight: xmin,<wbr/> ymin,<wbr/>
Ruben Brunk76e4c7d2014-01-31 11:05:30 -08003892xmax,<wbr/> ymax,<wbr/> weight.<wbr/> The rectangle is defined to be inclusive of the
Igor Murashkin0b080452013-12-27 15:30:25 -08003893specified coordinates.<wbr/></p>
3894<p>The coordinate system is based on the active pixel array,<wbr/>
3895with (0,<wbr/>0) being the top-left pixel in the active pixel array,<wbr/> and
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08003896(<a href="#static_android.sensor.info.activeArraySize">android.<wbr/>sensor.<wbr/>info.<wbr/>active<wbr/>Array<wbr/>Size</a>.<wbr/>width - 1,<wbr/>
3897<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 -08003898bottom-right pixel in the active pixel array.<wbr/> The weight
3899should be nonnegative.<wbr/></p>
3900<p>If all regions have 0 weight,<wbr/> then no specific focus area
3901needs to be used by the HAL.<wbr/> If the focusing region is
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08003902outside 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 -08003903should ignore the sections outside the region and output the
Ruben Brunk76e4c7d2014-01-31 11:05:30 -08003904used sections in the frame metadata.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003905 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08003906 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08003907
3908
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08003909 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
3910 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003911
3912
3913 <tr class="entry" id="dynamic_android.control.afState">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08003914 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08003915 android.<wbr/>control.<wbr/>af<wbr/>State
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08003916 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003917 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08003918 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003919
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07003920 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003921
3922 <ul class="entry_type_enum">
3923 <li>
3924 <span class="entry_type_enum_name">INACTIVE</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08003925 <span class="entry_type_enum_notes"><p>AF off or has not yet tried to scan/<wbr/>been asked
3926to scan.<wbr/> When a camera device is opened,<wbr/> it starts in
3927this state.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003928 </li>
3929 <li>
3930 <span class="entry_type_enum_name">PASSIVE_SCAN</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08003931 <span class="entry_type_enum_notes"><p>if CONTINUOUS_<wbr/>* modes are supported.<wbr/> AF is
3932currently doing an AF scan initiated by a continuous
3933autofocus mode</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003934 </li>
3935 <li>
3936 <span class="entry_type_enum_name">PASSIVE_FOCUSED</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08003937 <span class="entry_type_enum_notes"><p>if CONTINUOUS_<wbr/>* modes are supported.<wbr/> AF currently
3938believes it is in focus,<wbr/> but may restart scanning at
3939any time.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003940 </li>
3941 <li>
3942 <span class="entry_type_enum_name">ACTIVE_SCAN</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08003943 <span class="entry_type_enum_notes"><p>if AUTO or MACRO modes are supported.<wbr/> AF is doing
3944an AF scan because it was triggered by AF
3945trigger</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003946 </li>
3947 <li>
3948 <span class="entry_type_enum_name">FOCUSED_LOCKED</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08003949 <span class="entry_type_enum_notes"><p>if any AF mode besides OFF is supported.<wbr/> AF
3950believes it is focused correctly and is
3951locked</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003952 </li>
3953 <li>
3954 <span class="entry_type_enum_name">NOT_FOCUSED_LOCKED</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08003955 <span class="entry_type_enum_notes"><p>if any AF mode besides OFF is supported.<wbr/> AF has
3956failed to focus successfully and is
3957locked</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003958 </li>
Eino-Ville Talvala492ba7c2013-09-20 17:24:00 -07003959 <li>
3960 <span class="entry_type_enum_name">PASSIVE_UNFOCUSED</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08003961 <span class="entry_type_enum_notes"><p>if CONTINUOUS_<wbr/>* modes are supported.<wbr/> AF finished a
3962passive scan without finding focus,<wbr/> and may restart
3963scanning at any time.<wbr/></p></span>
Eino-Ville Talvala492ba7c2013-09-20 17:24:00 -07003964 </li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003965 </ul>
3966
3967 </td> <!-- entry_type -->
3968
3969 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08003970 <p>Current state of AF algorithm</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08003971 </td>
3972
3973 <td class="entry_units">
3974 </td>
3975
3976 <td class="entry_range">
3977 </td>
3978
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08003979 <td class="entry_tags">
3980 </td>
3981
3982 </tr>
3983 <tr class="entries_header">
3984 <th class="th_details" colspan="5">Details</th>
3985 </tr>
3986 <tr class="entry_cont">
3987 <td class="entry_details" colspan="5">
Zhijun He92e698d2014-01-13 16:24:31 -08003988 <p>Switching between or enabling AF modes (<a href="#controls_android.control.afMode">android.<wbr/>control.<wbr/>af<wbr/>Mode</a>) always
3989resets the AF state to INACTIVE.<wbr/> Similarly,<wbr/> switching between <a href="#controls_android.control.mode">android.<wbr/>control.<wbr/>mode</a>,<wbr/>
3990or <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
3991the algorithm states to INACTIVE.<wbr/></p>
3992<p>The camera device can do several state transitions between two results,<wbr/> if it is
3993allowed by the state transition table.<wbr/> For example: INACTIVE may never actually be
3994seen in a result.<wbr/></p>
3995<p>The state in the result is the state for this image (in sync with this image): if
3996AF state becomes FOCUSED,<wbr/> then the image data associated with this result should
3997be sharp.<wbr/></p>
3998<p>Below are state transition tables for different AF modes.<wbr/></p>
3999<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>
4000<table>
4001<thead>
4002<tr>
4003<th align="center">State</th>
4004<th align="center">Transition Cause</th>
4005<th align="center">New State</th>
4006<th align="center">Notes</th>
4007</tr>
4008</thead>
4009<tbody>
4010<tr>
4011<td align="center">INACTIVE</td>
4012<td align="center"></td>
4013<td align="center">INACTIVE</td>
4014<td align="center">Never changes</td>
4015</tr>
4016</tbody>
4017</table>
4018<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>
4019<table>
4020<thead>
4021<tr>
4022<th align="center">State</th>
4023<th align="center">Transition Cause</th>
4024<th align="center">New State</th>
4025<th align="center">Notes</th>
4026</tr>
4027</thead>
4028<tbody>
4029<tr>
4030<td align="center">INACTIVE</td>
4031<td align="center">AF_<wbr/>TRIGGER</td>
4032<td align="center">ACTIVE_<wbr/>SCAN</td>
4033<td align="center">Start AF sweep,<wbr/> Lens now moving</td>
4034</tr>
4035<tr>
4036<td align="center">ACTIVE_<wbr/>SCAN</td>
4037<td align="center">AF sweep done</td>
4038<td align="center">FOCUSED_<wbr/>LOCKED</td>
4039<td align="center">Focused,<wbr/> Lens now locked</td>
4040</tr>
4041<tr>
4042<td align="center">ACTIVE_<wbr/>SCAN</td>
4043<td align="center">AF sweep done</td>
4044<td align="center">NOT_<wbr/>FOCUSED_<wbr/>LOCKED</td>
4045<td align="center">Not focused,<wbr/> Lens now locked</td>
4046</tr>
4047<tr>
4048<td align="center">ACTIVE_<wbr/>SCAN</td>
4049<td align="center">AF_<wbr/>CANCEL</td>
4050<td align="center">INACTIVE</td>
4051<td align="center">Cancel/<wbr/>reset AF,<wbr/> Lens now locked</td>
4052</tr>
4053<tr>
4054<td align="center">FOCUSED_<wbr/>LOCKED</td>
4055<td align="center">AF_<wbr/>CANCEL</td>
4056<td align="center">INACTIVE</td>
4057<td align="center">Cancel/<wbr/>reset AF</td>
4058</tr>
4059<tr>
4060<td align="center">FOCUSED_<wbr/>LOCKED</td>
4061<td align="center">AF_<wbr/>TRIGGER</td>
4062<td align="center">ACTIVE_<wbr/>SCAN</td>
4063<td align="center">Start new sweep,<wbr/> Lens now moving</td>
4064</tr>
4065<tr>
4066<td align="center">NOT_<wbr/>FOCUSED_<wbr/>LOCKED</td>
4067<td align="center">AF_<wbr/>CANCEL</td>
4068<td align="center">INACTIVE</td>
4069<td align="center">Cancel/<wbr/>reset AF</td>
4070</tr>
4071<tr>
4072<td align="center">NOT_<wbr/>FOCUSED_<wbr/>LOCKED</td>
4073<td align="center">AF_<wbr/>TRIGGER</td>
4074<td align="center">ACTIVE_<wbr/>SCAN</td>
4075<td align="center">Start new sweep,<wbr/> Lens now moving</td>
4076</tr>
4077<tr>
4078<td align="center">Any state</td>
4079<td align="center">Mode change</td>
4080<td align="center">INACTIVE</td>
4081<td align="center"></td>
4082</tr>
4083</tbody>
4084</table>
4085<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>
4086<table>
4087<thead>
4088<tr>
4089<th align="center">State</th>
4090<th align="center">Transition Cause</th>
4091<th align="center">New State</th>
4092<th align="center">Notes</th>
4093</tr>
4094</thead>
4095<tbody>
4096<tr>
4097<td align="center">INACTIVE</td>
4098<td align="center">Camera device initiates new scan</td>
4099<td align="center">PASSIVE_<wbr/>SCAN</td>
4100<td align="center">Start AF scan,<wbr/> Lens now moving</td>
4101</tr>
4102<tr>
4103<td align="center">INACTIVE</td>
4104<td align="center">AF_<wbr/>TRIGGER</td>
4105<td align="center">NOT_<wbr/>FOCUSED_<wbr/>LOCKED</td>
4106<td align="center">AF state query,<wbr/> Lens now locked</td>
4107</tr>
4108<tr>
4109<td align="center">PASSIVE_<wbr/>SCAN</td>
4110<td align="center">Camera device completes current scan</td>
4111<td align="center">PASSIVE_<wbr/>FOCUSED</td>
4112<td align="center">End AF scan,<wbr/> Lens now locked</td>
4113</tr>
4114<tr>
4115<td align="center">PASSIVE_<wbr/>SCAN</td>
4116<td align="center">Camera device fails current scan</td>
4117<td align="center">PASSIVE_<wbr/>UNFOCUSED</td>
4118<td align="center">End AF scan,<wbr/> Lens now locked</td>
4119</tr>
4120<tr>
4121<td align="center">PASSIVE_<wbr/>SCAN</td>
4122<td align="center">AF_<wbr/>TRIGGER</td>
4123<td align="center">FOCUSED_<wbr/>LOCKED</td>
4124<td align="center">Immediate trans.<wbr/> If focus is good,<wbr/> Lens now locked</td>
4125</tr>
4126<tr>
4127<td align="center">PASSIVE_<wbr/>SCAN</td>
4128<td align="center">AF_<wbr/>TRIGGER</td>
4129<td align="center">NOT_<wbr/>FOCUSED_<wbr/>LOCKED</td>
4130<td align="center">Immediate trans.<wbr/> if focus is bad,<wbr/> Lens now locked</td>
4131</tr>
4132<tr>
4133<td align="center">PASSIVE_<wbr/>SCAN</td>
4134<td align="center">AF_<wbr/>CANCEL</td>
4135<td align="center">INACTIVE</td>
4136<td align="center">Reset lens position,<wbr/> Lens now locked</td>
4137</tr>
4138<tr>
4139<td align="center">PASSIVE_<wbr/>FOCUSED</td>
4140<td align="center">Camera device initiates new scan</td>
4141<td align="center">PASSIVE_<wbr/>SCAN</td>
4142<td align="center">Start AF scan,<wbr/> Lens now moving</td>
4143</tr>
4144<tr>
4145<td align="center">PASSIVE_<wbr/>UNFOCUSED</td>
4146<td align="center">Camera device initiates new scan</td>
4147<td align="center">PASSIVE_<wbr/>SCAN</td>
4148<td align="center">Start AF scan,<wbr/> Lens now moving</td>
4149</tr>
4150<tr>
4151<td align="center">PASSIVE_<wbr/>FOCUSED</td>
4152<td align="center">AF_<wbr/>TRIGGER</td>
4153<td align="center">FOCUSED_<wbr/>LOCKED</td>
4154<td align="center">Immediate trans.<wbr/> Lens now locked</td>
4155</tr>
4156<tr>
4157<td align="center">PASSIVE_<wbr/>UNFOCUSED</td>
4158<td align="center">AF_<wbr/>TRIGGER</td>
4159<td align="center">NOT_<wbr/>FOCUSED_<wbr/>LOCKED</td>
4160<td align="center">Immediate trans.<wbr/> Lens now locked</td>
4161</tr>
4162<tr>
4163<td align="center">FOCUSED_<wbr/>LOCKED</td>
4164<td align="center">AF_<wbr/>TRIGGER</td>
4165<td align="center">FOCUSED_<wbr/>LOCKED</td>
4166<td align="center">No effect</td>
4167</tr>
4168<tr>
4169<td align="center">FOCUSED_<wbr/>LOCKED</td>
4170<td align="center">AF_<wbr/>CANCEL</td>
4171<td align="center">INACTIVE</td>
4172<td align="center">Restart AF scan</td>
4173</tr>
4174<tr>
4175<td align="center">NOT_<wbr/>FOCUSED_<wbr/>LOCKED</td>
4176<td align="center">AF_<wbr/>TRIGGER</td>
4177<td align="center">NOT_<wbr/>FOCUSED_<wbr/>LOCKED</td>
4178<td align="center">No effect</td>
4179</tr>
4180<tr>
4181<td align="center">NOT_<wbr/>FOCUSED_<wbr/>LOCKED</td>
4182<td align="center">AF_<wbr/>CANCEL</td>
4183<td align="center">INACTIVE</td>
4184<td align="center">Restart AF scan</td>
4185</tr>
4186</tbody>
4187</table>
4188<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>
4189<table>
4190<thead>
4191<tr>
4192<th align="center">State</th>
4193<th align="center">Transition Cause</th>
4194<th align="center">New State</th>
4195<th align="center">Notes</th>
4196</tr>
4197</thead>
4198<tbody>
4199<tr>
4200<td align="center">INACTIVE</td>
4201<td align="center">Camera device initiates new scan</td>
4202<td align="center">PASSIVE_<wbr/>SCAN</td>
4203<td align="center">Start AF scan,<wbr/> Lens now moving</td>
4204</tr>
4205<tr>
4206<td align="center">INACTIVE</td>
4207<td align="center">AF_<wbr/>TRIGGER</td>
4208<td align="center">NOT_<wbr/>FOCUSED_<wbr/>LOCKED</td>
4209<td align="center">AF state query,<wbr/> Lens now locked</td>
4210</tr>
4211<tr>
4212<td align="center">PASSIVE_<wbr/>SCAN</td>
4213<td align="center">Camera device completes current scan</td>
4214<td align="center">PASSIVE_<wbr/>FOCUSED</td>
4215<td align="center">End AF scan,<wbr/> Lens now locked</td>
4216</tr>
4217<tr>
4218<td align="center">PASSIVE_<wbr/>SCAN</td>
4219<td align="center">Camera device fails current scan</td>
4220<td align="center">PASSIVE_<wbr/>UNFOCUSED</td>
4221<td align="center">End AF scan,<wbr/> Lens now locked</td>
4222</tr>
4223<tr>
4224<td align="center">PASSIVE_<wbr/>SCAN</td>
4225<td align="center">AF_<wbr/>TRIGGER</td>
4226<td align="center">FOCUSED_<wbr/>LOCKED</td>
4227<td align="center">Eventual trans.<wbr/> once focus good,<wbr/> Lens now locked</td>
4228</tr>
4229<tr>
4230<td align="center">PASSIVE_<wbr/>SCAN</td>
4231<td align="center">AF_<wbr/>TRIGGER</td>
4232<td align="center">NOT_<wbr/>FOCUSED_<wbr/>LOCKED</td>
4233<td align="center">Eventual trans.<wbr/> if cannot focus,<wbr/> Lens now locked</td>
4234</tr>
4235<tr>
4236<td align="center">PASSIVE_<wbr/>SCAN</td>
4237<td align="center">AF_<wbr/>CANCEL</td>
4238<td align="center">INACTIVE</td>
4239<td align="center">Reset lens position,<wbr/> Lens now locked</td>
4240</tr>
4241<tr>
4242<td align="center">PASSIVE_<wbr/>FOCUSED</td>
4243<td align="center">Camera device initiates new scan</td>
4244<td align="center">PASSIVE_<wbr/>SCAN</td>
4245<td align="center">Start AF scan,<wbr/> Lens now moving</td>
4246</tr>
4247<tr>
4248<td align="center">PASSIVE_<wbr/>UNFOCUSED</td>
4249<td align="center">Camera device initiates new scan</td>
4250<td align="center">PASSIVE_<wbr/>SCAN</td>
4251<td align="center">Start AF scan,<wbr/> Lens now moving</td>
4252</tr>
4253<tr>
4254<td align="center">PASSIVE_<wbr/>FOCUSED</td>
4255<td align="center">AF_<wbr/>TRIGGER</td>
4256<td align="center">FOCUSED_<wbr/>LOCKED</td>
4257<td align="center">Immediate trans.<wbr/> Lens now locked</td>
4258</tr>
4259<tr>
4260<td align="center">PASSIVE_<wbr/>UNFOCUSED</td>
4261<td align="center">AF_<wbr/>TRIGGER</td>
4262<td align="center">NOT_<wbr/>FOCUSED_<wbr/>LOCKED</td>
4263<td align="center">Immediate trans.<wbr/> Lens now locked</td>
4264</tr>
4265<tr>
4266<td align="center">FOCUSED_<wbr/>LOCKED</td>
4267<td align="center">AF_<wbr/>TRIGGER</td>
4268<td align="center">FOCUSED_<wbr/>LOCKED</td>
4269<td align="center">No effect</td>
4270</tr>
4271<tr>
4272<td align="center">FOCUSED_<wbr/>LOCKED</td>
4273<td align="center">AF_<wbr/>CANCEL</td>
4274<td align="center">INACTIVE</td>
4275<td align="center">Restart AF scan</td>
4276</tr>
4277<tr>
4278<td align="center">NOT_<wbr/>FOCUSED_<wbr/>LOCKED</td>
4279<td align="center">AF_<wbr/>TRIGGER</td>
4280<td align="center">NOT_<wbr/>FOCUSED_<wbr/>LOCKED</td>
4281<td align="center">No effect</td>
4282</tr>
4283<tr>
4284<td align="center">NOT_<wbr/>FOCUSED_<wbr/>LOCKED</td>
4285<td align="center">AF_<wbr/>CANCEL</td>
4286<td align="center">INACTIVE</td>
4287<td align="center">Restart AF scan</td>
4288</tr>
4289</tbody>
4290</table>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004291 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08004292 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08004293
4294
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08004295 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
4296 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004297
4298
4299 <tr class="entry" id="dynamic_android.control.afTriggerId">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08004300 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08004301 android.<wbr/>control.<wbr/>af<wbr/>Trigger<wbr/>Id
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08004302 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004303 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08004304 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004305
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07004306 <span class="entry_type_visibility"> [hidden]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004307
4308
4309 </td> <!-- entry_type -->
4310
4311 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08004312 <p>The ID sent with the latest
4313CAMERA2_<wbr/>TRIGGER_<wbr/>AUTOFOCUS call</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004314 </td>
4315
4316 <td class="entry_units">
4317 </td>
4318
4319 <td class="entry_range">
Zhijun He7391bb62014-02-05 00:09:04 -08004320 <p><strong>Deprecated</strong>.<wbr/> Do not use.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004321 </td>
4322
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08004323 <td class="entry_tags">
4324 </td>
4325
4326 </tr>
4327 <tr class="entries_header">
4328 <th class="th_details" colspan="5">Details</th>
4329 </tr>
4330 <tr class="entry_cont">
4331 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08004332 <p>Must be 0 if no CAMERA2_<wbr/>TRIGGER_<wbr/>AUTOFOCUS trigger
4333received yet by HAL.<wbr/> Always updated even if AF algorithm
4334ignores the trigger</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004335 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08004336 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08004337
4338
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08004339 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
4340 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004341
4342
4343 <tr class="entry" id="dynamic_android.control.awbMode">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08004344 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08004345 android.<wbr/>control.<wbr/>awb<wbr/>Mode
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08004346 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004347 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08004348 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004349
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07004350 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004351
4352 <ul class="entry_type_enum">
4353 <li>
4354 <span class="entry_type_enum_name">OFF</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08004355 <span class="entry_type_enum_notes"><p>The camera device's auto white balance routine is disabled;
4356the application-selected color transform matrix
4357(<a href="#controls_android.colorCorrection.transform">android.<wbr/>color<wbr/>Correction.<wbr/>transform</a>) and gains
4358(<a href="#controls_android.colorCorrection.gains">android.<wbr/>color<wbr/>Correction.<wbr/>gains</a>) are used by the camera
4359device for manual white balance control.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004360 </li>
4361 <li>
4362 <span class="entry_type_enum_name">AUTO</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08004363 <span class="entry_type_enum_notes"><p>The camera device's auto white balance routine is active;
4364the application's values for android.<wbr/>color<wbr/>Correction.<wbr/>transform
4365and <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 -08004366 </li>
4367 <li>
4368 <span class="entry_type_enum_name">INCANDESCENT</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08004369 <span class="entry_type_enum_notes"><p>The camera device's auto white balance routine is disabled;
4370the camera device uses incandescent light as the assumed scene
4371illumination for white balance.<wbr/> While the exact white balance
4372transforms are up to the camera device,<wbr/> they will approximately
4373match the CIE standard illuminant A.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004374 </li>
4375 <li>
4376 <span class="entry_type_enum_name">FLUORESCENT</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08004377 <span class="entry_type_enum_notes"><p>The camera device's auto white balance routine is disabled;
4378the camera device uses fluorescent light as the assumed scene
4379illumination for white balance.<wbr/> While the exact white balance
4380transforms are up to the camera device,<wbr/> they will approximately
4381match the CIE standard illuminant F2.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004382 </li>
4383 <li>
4384 <span class="entry_type_enum_name">WARM_FLUORESCENT</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08004385 <span class="entry_type_enum_notes"><p>The camera device's auto white balance routine is disabled;
4386the camera device uses warm fluorescent light as the assumed scene
4387illumination for white balance.<wbr/> While the exact white balance
4388transforms are up to the camera device,<wbr/> they will approximately
4389match the CIE standard illuminant F4.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004390 </li>
4391 <li>
4392 <span class="entry_type_enum_name">DAYLIGHT</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08004393 <span class="entry_type_enum_notes"><p>The camera device's auto white balance routine is disabled;
4394the camera device uses daylight light as the assumed scene
4395illumination for white balance.<wbr/> While the exact white balance
4396transforms are up to the camera device,<wbr/> they will approximately
4397match the CIE standard illuminant D65.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004398 </li>
4399 <li>
4400 <span class="entry_type_enum_name">CLOUDY_DAYLIGHT</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08004401 <span class="entry_type_enum_notes"><p>The camera device's auto white balance routine is disabled;
4402the camera device uses cloudy daylight light as the assumed scene
4403illumination for white balance.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004404 </li>
4405 <li>
4406 <span class="entry_type_enum_name">TWILIGHT</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08004407 <span class="entry_type_enum_notes"><p>The camera device's auto white balance routine is disabled;
4408the camera device uses twilight light as the assumed scene
4409illumination for white balance.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004410 </li>
4411 <li>
4412 <span class="entry_type_enum_name">SHADE</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08004413 <span class="entry_type_enum_notes"><p>The camera device's auto white balance routine is disabled;
4414the camera device uses shade light as the assumed scene
4415illumination for white balance.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004416 </li>
4417 </ul>
4418
4419 </td> <!-- entry_type -->
4420
4421 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08004422 <p>Whether AWB is currently setting the color
4423transform fields,<wbr/> and what its illumination target
4424is</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004425 </td>
4426
4427 <td class="entry_units">
4428 </td>
4429
4430 <td class="entry_range">
Zhijun He7787f7f2014-01-14 16:30:31 -08004431 <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 -08004432 </td>
4433
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004434 <td class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08004435 <ul class="entry_tags">
4436 <li><a href="#tag_BC">BC</a></li>
4437 <li><a href="#tag_AWB">AWB</a></li>
4438 </ul>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004439 </td>
4440
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08004441 </tr>
4442 <tr class="entries_header">
4443 <th class="th_details" colspan="5">Details</th>
4444 </tr>
4445 <tr class="entry_cont">
4446 <td class="entry_details" colspan="5">
Zhijun He7787f7f2014-01-14 16:30:31 -08004447 <p>This control is only effective if <a href="#controls_android.control.mode">android.<wbr/>control.<wbr/>mode</a> is AUTO.<wbr/></p>
4448<p>When set to the ON mode,<wbr/> the camera device's auto white balance
4449routine is enabled,<wbr/> overriding the application's selected
4450<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
4451<a href="#controls_android.colorCorrection.mode">android.<wbr/>color<wbr/>Correction.<wbr/>mode</a>.<wbr/></p>
4452<p>When set to the OFF mode,<wbr/> the camera device's auto white balance
4453routine is disabled.<wbr/> The applicantion manually controls the white
4454balance by <a href="#controls_android.colorCorrection.transform">android.<wbr/>color<wbr/>Correction.<wbr/>transform</a>,<wbr/> android.<wbr/>color<wbr/>Correction.<wbr/>gains
4455and <a href="#controls_android.colorCorrection.mode">android.<wbr/>color<wbr/>Correction.<wbr/>mode</a>.<wbr/></p>
4456<p>When set to any other modes,<wbr/> the camera device's auto white balance
4457routine is disabled.<wbr/> The camera device uses each particular illumination
4458target for white balance adjustment.<wbr/></p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08004459 </td>
4460 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08004461
4462
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08004463 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
4464 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004465
4466
4467 <tr class="entry" id="dynamic_android.control.awbRegions">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08004468 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08004469 android.<wbr/>control.<wbr/>awb<wbr/>Regions
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08004470 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004471 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08004472 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004473 <span class="entry_type_container">x</span>
4474
4475 <span class="entry_type_array">
4476 5 x area_count
4477 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07004478 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004479
4480
4481 </td> <!-- entry_type -->
4482
4483 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08004484 <p>List of areas to use for illuminant
Ruben Brunk76e4c7d2014-01-31 11:05:30 -08004485estimation.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004486 </td>
4487
4488 <td class="entry_units">
4489 </td>
4490
4491 <td class="entry_range">
Ruben Brunk76e4c7d2014-01-31 11:05:30 -08004492 <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 -08004493 </td>
4494
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08004495 <td class="entry_tags">
4496 <ul class="entry_tags">
4497 <li><a href="#tag_BC">BC</a></li>
4498 </ul>
4499 </td>
4500
4501 </tr>
4502 <tr class="entries_header">
4503 <th class="th_details" colspan="5">Details</th>
4504 </tr>
4505 <tr class="entry_cont">
4506 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08004507 <p>Only used in AUTO mode.<wbr/></p>
4508<p>Each area is a rectangle plus weight: xmin,<wbr/> ymin,<wbr/>
Ruben Brunk76e4c7d2014-01-31 11:05:30 -08004509xmax,<wbr/> ymax,<wbr/> weight.<wbr/> The rectangle is defined to be inclusive of the
Igor Murashkin0b080452013-12-27 15:30:25 -08004510specified coordinates.<wbr/></p>
4511<p>The coordinate system is based on the active pixel array,<wbr/>
4512with (0,<wbr/>0) being the top-left pixel in the active pixel array,<wbr/> and
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08004513(<a href="#static_android.sensor.info.activeArraySize">android.<wbr/>sensor.<wbr/>info.<wbr/>active<wbr/>Array<wbr/>Size</a>.<wbr/>width - 1,<wbr/>
4514<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 -08004515bottom-right pixel in the active pixel array.<wbr/> The weight
4516should be nonnegative.<wbr/></p>
4517<p>If all regions have 0 weight,<wbr/> then no specific metering area
4518needs to be used by the HAL.<wbr/> If the metering region is
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08004519outside 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 -08004520should ignore the sections outside the region and output the
Ruben Brunk76e4c7d2014-01-31 11:05:30 -08004521used sections in the frame metadata.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004522 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08004523 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08004524
4525
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08004526 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
4527 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004528
4529
4530 <tr class="entry" id="dynamic_android.control.awbState">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08004531 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08004532 android.<wbr/>control.<wbr/>awb<wbr/>State
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08004533 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004534 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08004535 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004536
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07004537 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004538
4539 <ul class="entry_type_enum">
4540 <li>
4541 <span class="entry_type_enum_name">INACTIVE</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08004542 <span class="entry_type_enum_notes"><p>AWB is not in auto mode.<wbr/> When a camera device is opened,<wbr/> it
4543starts in this state.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004544 </li>
4545 <li>
4546 <span class="entry_type_enum_name">SEARCHING</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08004547 <span class="entry_type_enum_notes"><p>AWB doesn't yet have a good set of control
Zhijun He92e698d2014-01-13 16:24:31 -08004548values for the current scene.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004549 </li>
4550 <li>
4551 <span class="entry_type_enum_name">CONVERGED</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08004552 <span class="entry_type_enum_notes"><p>AWB has a good set of control values for the
Zhijun He92e698d2014-01-13 16:24:31 -08004553current scene.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004554 </li>
4555 <li>
4556 <span class="entry_type_enum_name">LOCKED</span>
Zhijun He92e698d2014-01-13 16:24:31 -08004557 <span class="entry_type_enum_notes"><p>AWB has been locked.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004558 </li>
4559 </ul>
4560
4561 </td> <!-- entry_type -->
4562
4563 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08004564 <p>Current state of AWB algorithm</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004565 </td>
4566
4567 <td class="entry_units">
4568 </td>
4569
4570 <td class="entry_range">
4571 </td>
4572
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08004573 <td class="entry_tags">
4574 </td>
4575
4576 </tr>
4577 <tr class="entries_header">
4578 <th class="th_details" colspan="5">Details</th>
4579 </tr>
4580 <tr class="entry_cont">
4581 <td class="entry_details" colspan="5">
Zhijun He92e698d2014-01-13 16:24:31 -08004582 <p>Switching between or enabling AWB modes (<a href="#controls_android.control.awbMode">android.<wbr/>control.<wbr/>awb<wbr/>Mode</a>) always
4583resets the AWB state to INACTIVE.<wbr/> Similarly,<wbr/> switching between <a href="#controls_android.control.mode">android.<wbr/>control.<wbr/>mode</a>,<wbr/>
4584or <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
4585the algorithm states to INACTIVE.<wbr/></p>
4586<p>The camera device can do several state transitions between two results,<wbr/> if it is
4587allowed by the state transition table.<wbr/> So INACTIVE may never actually be seen in
4588a result.<wbr/></p>
4589<p>The state in the result is the state for this image (in sync with this image): if
4590AWB state becomes CONVERGED,<wbr/> then the image data associated with this result should
4591be good to use.<wbr/></p>
4592<p>Below are state transition tables for different AWB modes.<wbr/></p>
4593<p>When <code><a href="#controls_android.control.awbMode">android.<wbr/>control.<wbr/>awb<wbr/>Mode</a> != AWB_<wbr/>MODE_<wbr/>AUTO</code>:</p>
4594<table>
4595<thead>
4596<tr>
4597<th align="center">State</th>
4598<th align="center">Transition Cause</th>
4599<th align="center">New State</th>
4600<th align="center">Notes</th>
4601</tr>
4602</thead>
4603<tbody>
4604<tr>
4605<td align="center">INACTIVE</td>
4606<td align="center"></td>
4607<td align="center">INACTIVE</td>
4608<td align="center">Camera device auto white balance algorithm is disabled</td>
4609</tr>
4610</tbody>
4611</table>
4612<p>When <a href="#controls_android.control.awbMode">android.<wbr/>control.<wbr/>awb<wbr/>Mode</a> is AWB_<wbr/>MODE_<wbr/>AUTO:</p>
4613<table>
4614<thead>
4615<tr>
4616<th align="center">State</th>
4617<th align="center">Transition Cause</th>
4618<th align="center">New State</th>
4619<th align="center">Notes</th>
4620</tr>
4621</thead>
4622<tbody>
4623<tr>
4624<td align="center">INACTIVE</td>
4625<td align="center">Camera device initiates AWB scan</td>
4626<td align="center">SEARCHING</td>
4627<td align="center">Values changing</td>
4628</tr>
4629<tr>
4630<td align="center">INACTIVE</td>
4631<td align="center"><a href="#controls_android.control.awbLock">android.<wbr/>control.<wbr/>awb<wbr/>Lock</a> is ON</td>
4632<td align="center">LOCKED</td>
4633<td align="center">Values locked</td>
4634</tr>
4635<tr>
4636<td align="center">SEARCHING</td>
4637<td align="center">Camera device finishes AWB scan</td>
4638<td align="center">CONVERGED</td>
4639<td align="center">Good values,<wbr/> not changing</td>
4640</tr>
4641<tr>
4642<td align="center">SEARCHING</td>
4643<td align="center"><a href="#controls_android.control.awbLock">android.<wbr/>control.<wbr/>awb<wbr/>Lock</a> is ON</td>
4644<td align="center">LOCKED</td>
4645<td align="center">Values locked</td>
4646</tr>
4647<tr>
4648<td align="center">CONVERGED</td>
4649<td align="center">Camera device initiates AWB scan</td>
4650<td align="center">SEARCHING</td>
4651<td align="center">Values changing</td>
4652</tr>
4653<tr>
4654<td align="center">CONVERGED</td>
4655<td align="center"><a href="#controls_android.control.awbLock">android.<wbr/>control.<wbr/>awb<wbr/>Lock</a> is ON</td>
4656<td align="center">LOCKED</td>
4657<td align="center">Values locked</td>
4658</tr>
4659<tr>
4660<td align="center">LOCKED</td>
4661<td align="center"><a href="#controls_android.control.awbLock">android.<wbr/>control.<wbr/>awb<wbr/>Lock</a> is OFF</td>
4662<td align="center">SEARCHING</td>
4663<td align="center">Values not good after unlock</td>
4664</tr>
4665<tr>
4666<td align="center">LOCKED</td>
4667<td align="center"><a href="#controls_android.control.awbLock">android.<wbr/>control.<wbr/>awb<wbr/>Lock</a> is OFF</td>
4668<td align="center">CONVERGED</td>
4669<td align="center">Values good after unlock</td>
4670</tr>
4671</tbody>
4672</table>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004673 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08004674 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08004675
4676
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08004677 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
4678 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004679
4680
4681 <tr class="entry" id="dynamic_android.control.mode">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08004682 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08004683 android.<wbr/>control.<wbr/>mode
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08004684 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004685 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08004686 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004687
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07004688 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004689
4690 <ul class="entry_type_enum">
4691 <li>
4692 <span class="entry_type_enum_name">OFF</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08004693 <span class="entry_type_enum_notes"><p>Full application control of pipeline.<wbr/> All 3A
4694routines are disabled,<wbr/> no other settings in
4695android.<wbr/>control.<wbr/>* have any effect</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004696 </li>
4697 <li>
4698 <span class="entry_type_enum_name">AUTO</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08004699 <span class="entry_type_enum_notes"><p>Use settings for each individual 3A routine.<wbr/>
4700Manual control of capture parameters is disabled.<wbr/> All
4701controls in android.<wbr/>control.<wbr/>* besides sceneMode take
4702effect</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004703 </li>
4704 <li>
4705 <span class="entry_type_enum_name">USE_SCENE_MODE</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08004706 <span class="entry_type_enum_notes"><p>Use specific scene mode.<wbr/> Enabling this disables
4707control.<wbr/>aeMode,<wbr/> control.<wbr/>awbMode and control.<wbr/>afMode
4708controls; the HAL must ignore those settings while
4709USE_<wbr/>SCENE_<wbr/>MODE is active (except for FACE_<wbr/>PRIORITY
4710scene mode).<wbr/> Other control entries are still active.<wbr/>
4711This setting can only be used if availableSceneModes !=
4712UNSUPPORTED</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004713 </li>
Zhijun He4412faa2014-02-06 00:28:22 -08004714 <li>
4715 <span class="entry_type_enum_name">OFF_KEEP_STATE</span>
4716 <span class="entry_type_enum_notes"><p>Same as OFF mode,<wbr/> except that this capture will not be
4717used by camera device background auto-exposure,<wbr/> auto-white balance and
4718auto-focus algorithms to update their statistics.<wbr/></p></span>
4719 </li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004720 </ul>
4721
4722 </td> <!-- entry_type -->
4723
4724 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08004725 <p>Overall mode of 3A control
4726routines</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004727 </td>
4728
4729 <td class="entry_units">
4730 </td>
4731
4732 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08004733 <p>all must be supported</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004734 </td>
4735
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08004736 <td class="entry_tags">
4737 <ul class="entry_tags">
4738 <li><a href="#tag_BC">BC</a></li>
4739 </ul>
4740 </td>
4741
4742 </tr>
4743 <tr class="entries_header">
4744 <th class="th_details" colspan="5">Details</th>
4745 </tr>
4746 <tr class="entry_cont">
4747 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08004748 <p>High-level 3A control.<wbr/> When set to OFF,<wbr/> all 3A control
Zhijun Hef90eeaf2014-01-16 12:13:35 -08004749by the camera device is disabled.<wbr/> The application must set the fields for
Igor Murashkin0b080452013-12-27 15:30:25 -08004750capture parameters itself.<wbr/></p>
4751<p>When set to AUTO,<wbr/> the individual algorithm controls in
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08004752android.<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 -08004753<p>When set to USE_<wbr/>SCENE_<wbr/>MODE,<wbr/> the individual controls in
Zhijun Hef90eeaf2014-01-16 12:13:35 -08004754android.<wbr/>control.<wbr/>* are mostly disabled,<wbr/> and the camera device implements
Igor Murashkin0b080452013-12-27 15:30:25 -08004755one of the scene mode settings (such as ACTION,<wbr/> SUNSET,<wbr/> or PARTY)
Zhijun Hef90eeaf2014-01-16 12:13:35 -08004756as it wishes.<wbr/> The camera device scene mode 3A settings are provided by
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08004757<a href="#static_android.control.sceneModeOverrides">android.<wbr/>control.<wbr/>scene<wbr/>Mode<wbr/>Overrides</a>.<wbr/></p>
Zhijun He4412faa2014-02-06 00:28:22 -08004758<p>When set to OFF_<wbr/>KEEP_<wbr/>STATE,<wbr/> it is similar to OFF mode,<wbr/> the only difference
4759is that this frame will not be used by camera device background 3A statistics
4760update,<wbr/> as if this frame is never captured.<wbr/> This mode can be used in the scenario
4761where the application doesn't want a 3A manual control capture to affect
4762the subsequent auto 3A capture results.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004763 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08004764 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08004765
4766
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08004767 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
4768 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004769
4770
4771
4772 <!-- end of kind -->
4773 </tbody>
4774
4775 <!-- end of section -->
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08004776 <tr><td colspan="6" id="section_demosaic" class="section">demosaic</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004777
4778
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08004779 <tr><td colspan="6" class="kind">controls</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004780
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07004781 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004782 <tr>
4783 <th class="th_name">Property Name</th>
4784 <th class="th_type">Type</th>
4785 <th class="th_description">Description</th>
4786 <th class="th_units">Units</th>
4787 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004788 <th class="th_tags">Tags</th>
4789 </tr>
4790 </thead>
4791
4792 <tbody>
4793
4794
4795
4796
4797
4798
4799
4800
4801
4802
4803 <tr class="entry" id="controls_android.demosaic.mode">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08004804 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -08004805 android.<wbr/>demosaic.<wbr/>mode
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08004806 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004807 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08004808 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004809
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07004810 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004811
4812 <ul class="entry_type_enum">
4813 <li>
4814 <span class="entry_type_enum_name">FAST</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08004815 <span class="entry_type_enum_notes"><p>Minimal or no slowdown of frame rate compared to
4816Bayer RAW output</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004817 </li>
4818 <li>
4819 <span class="entry_type_enum_name">HIGH_QUALITY</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08004820 <span class="entry_type_enum_notes"><p>High-quality may reduce output frame
4821rate</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004822 </li>
4823 </ul>
4824
4825 </td> <!-- entry_type -->
4826
4827 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08004828 <p>Controls the quality of the demosaicing
4829processing</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004830 </td>
4831
4832 <td class="entry_units">
4833 </td>
4834
4835 <td class="entry_range">
4836 </td>
4837
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004838 <td class="entry_tags">
4839 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08004840 <li><a href="#tag_V1">V1</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004841 </ul>
4842 </td>
4843
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08004844 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08004845
4846
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08004847 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
4848 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004849
4850
4851
4852 <!-- end of kind -->
4853 </tbody>
4854
4855 <!-- end of section -->
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08004856 <tr><td colspan="6" id="section_edge" class="section">edge</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004857
4858
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08004859 <tr><td colspan="6" class="kind">controls</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004860
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07004861 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004862 <tr>
4863 <th class="th_name">Property Name</th>
4864 <th class="th_type">Type</th>
4865 <th class="th_description">Description</th>
4866 <th class="th_units">Units</th>
4867 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004868 <th class="th_tags">Tags</th>
4869 </tr>
4870 </thead>
4871
4872 <tbody>
4873
4874
4875
4876
4877
4878
4879
4880
4881
4882
4883 <tr class="entry" id="controls_android.edge.mode">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08004884 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08004885 android.<wbr/>edge.<wbr/>mode
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08004886 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004887 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08004888 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004889
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07004890 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004891
4892 <ul class="entry_type_enum">
4893 <li>
4894 <span class="entry_type_enum_name">OFF</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08004895 <span class="entry_type_enum_notes"><p>No edge enhancement is applied</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004896 </li>
4897 <li>
4898 <span class="entry_type_enum_name">FAST</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08004899 <span class="entry_type_enum_notes"><p>Must not slow down frame rate relative to sensor
4900output</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004901 </li>
4902 <li>
4903 <span class="entry_type_enum_name">HIGH_QUALITY</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08004904 <span class="entry_type_enum_notes"><p>Frame rate may be reduced by high
4905quality</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004906 </li>
4907 </ul>
4908
4909 </td> <!-- entry_type -->
4910
4911 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08004912 <p>Operation mode for edge
4913enhancement</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004914 </td>
4915
4916 <td class="entry_units">
4917 </td>
4918
4919 <td class="entry_range">
4920 </td>
4921
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08004922 <td class="entry_tags">
4923 </td>
4924
4925 </tr>
4926 <tr class="entries_header">
4927 <th class="th_details" colspan="5">Details</th>
4928 </tr>
4929 <tr class="entry_cont">
4930 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08004931 <p>Edge/<wbr/>sharpness/<wbr/>detail enhancement.<wbr/> OFF means no
4932enhancement will be applied by the HAL.<wbr/></p>
Zhijun Hef90eeaf2014-01-16 12:13:35 -08004933<p>FAST/<wbr/>HIGH_<wbr/>QUALITY both mean camera device determined enhancement
Igor Murashkin0b080452013-12-27 15:30:25 -08004934will be applied.<wbr/> HIGH_<wbr/>QUALITY mode indicates that the
Zhijun Hef90eeaf2014-01-16 12:13:35 -08004935camera device will use the highest-quality enhancement algorithms,<wbr/>
4936even if it slows down capture rate.<wbr/> FAST means the camera device will
Igor Murashkin0b080452013-12-27 15:30:25 -08004937not slow down capture rate when applying edge enhancement.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004938 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08004939 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08004940
4941
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08004942 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
4943 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004944
4945
4946 <tr class="entry" id="controls_android.edge.strength">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08004947 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -08004948 android.<wbr/>edge.<wbr/>strength
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08004949 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004950 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08004951 <span class="entry_type_name">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004952
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07004953 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004954
4955
4956 </td> <!-- entry_type -->
4957
4958 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08004959 <p>Control the amount of edge enhancement
4960applied to the images</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004961 </td>
4962
4963 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -08004964 1-10; 10 is maximum sharpening
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004965 </td>
4966
4967 <td class="entry_range">
4968 </td>
4969
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004970 <td class="entry_tags">
4971 </td>
4972
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08004973 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08004974
4975
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08004976 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
4977 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004978
4979
4980
4981 <!-- end of kind -->
4982 </tbody>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08004983 <tr><td colspan="6" class="kind">dynamic</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004984
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07004985 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004986 <tr>
4987 <th class="th_name">Property Name</th>
4988 <th class="th_type">Type</th>
4989 <th class="th_description">Description</th>
4990 <th class="th_units">Units</th>
4991 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08004992 <th class="th_tags">Tags</th>
4993 </tr>
4994 </thead>
4995
4996 <tbody>
4997
4998
4999
5000
5001
5002
5003
5004
5005
5006
5007 <tr class="entry" id="dynamic_android.edge.mode">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005008 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08005009 android.<wbr/>edge.<wbr/>mode
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005010 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005011 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08005012 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005013
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07005014 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005015
5016 <ul class="entry_type_enum">
5017 <li>
5018 <span class="entry_type_enum_name">OFF</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08005019 <span class="entry_type_enum_notes"><p>No edge enhancement is applied</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005020 </li>
5021 <li>
5022 <span class="entry_type_enum_name">FAST</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08005023 <span class="entry_type_enum_notes"><p>Must not slow down frame rate relative to sensor
5024output</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005025 </li>
5026 <li>
5027 <span class="entry_type_enum_name">HIGH_QUALITY</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08005028 <span class="entry_type_enum_notes"><p>Frame rate may be reduced by high
5029quality</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005030 </li>
5031 </ul>
5032
5033 </td> <!-- entry_type -->
5034
5035 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08005036 <p>Operation mode for edge
5037enhancement</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005038 </td>
5039
5040 <td class="entry_units">
5041 </td>
5042
5043 <td class="entry_range">
5044 </td>
5045
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005046 <td class="entry_tags">
5047 </td>
5048
5049 </tr>
5050 <tr class="entries_header">
5051 <th class="th_details" colspan="5">Details</th>
5052 </tr>
5053 <tr class="entry_cont">
5054 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08005055 <p>Edge/<wbr/>sharpness/<wbr/>detail enhancement.<wbr/> OFF means no
5056enhancement will be applied by the HAL.<wbr/></p>
Zhijun Hef90eeaf2014-01-16 12:13:35 -08005057<p>FAST/<wbr/>HIGH_<wbr/>QUALITY both mean camera device determined enhancement
Igor Murashkin0b080452013-12-27 15:30:25 -08005058will be applied.<wbr/> HIGH_<wbr/>QUALITY mode indicates that the
Zhijun Hef90eeaf2014-01-16 12:13:35 -08005059camera device will use the highest-quality enhancement algorithms,<wbr/>
5060even if it slows down capture rate.<wbr/> FAST means the camera device will
Igor Murashkin0b080452013-12-27 15:30:25 -08005061not slow down capture rate when applying edge enhancement.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005062 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005063 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005064
5065
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005066 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
5067 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005068
5069
5070
5071 <!-- end of kind -->
5072 </tbody>
5073
5074 <!-- end of section -->
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005075 <tr><td colspan="6" id="section_flash" class="section">flash</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005076
5077
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005078 <tr><td colspan="6" class="kind">controls</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005079
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07005080 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005081 <tr>
5082 <th class="th_name">Property Name</th>
5083 <th class="th_type">Type</th>
5084 <th class="th_description">Description</th>
5085 <th class="th_units">Units</th>
5086 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005087 <th class="th_tags">Tags</th>
5088 </tr>
5089 </thead>
5090
5091 <tbody>
5092
5093
5094
5095
5096
5097
5098
5099
5100
5101
5102 <tr class="entry" id="controls_android.flash.firingPower">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005103 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08005104 android.<wbr/>flash.<wbr/>firing<wbr/>Power
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005105 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005106 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08005107 <span class="entry_type_name">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005108
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07005109 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005110
5111
5112 </td> <!-- entry_type -->
5113
5114 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08005115 <p>Power for flash firing/<wbr/>torch</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005116 </td>
5117
5118 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -08005119 10 is max power; 0 is no flash.<wbr/> Linear
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005120 </td>
5121
5122 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08005123 <p>0 - 10</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005124 </td>
5125
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005126 <td class="entry_tags">
5127 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08005128 <li><a href="#tag_V1">V1</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005129 </ul>
5130 </td>
5131
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005132 </tr>
5133 <tr class="entries_header">
5134 <th class="th_details" colspan="5">Details</th>
5135 </tr>
5136 <tr class="entry_cont">
5137 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08005138 <p>Power for snapshot may use a different scale than
5139for torch mode.<wbr/> Only one entry for torch mode will be
5140used</p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005141 </td>
5142 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005143
5144
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005145 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
5146 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005147
5148
5149 <tr class="entry" id="controls_android.flash.firingTime">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005150 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08005151 android.<wbr/>flash.<wbr/>firing<wbr/>Time
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005152 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005153 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08005154 <span class="entry_type_name">int64</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005155
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07005156 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005157
5158
5159 </td> <!-- entry_type -->
5160
5161 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08005162 <p>Firing time of flash relative to start of
5163exposure</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005164 </td>
5165
5166 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -08005167 nanoseconds
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005168 </td>
5169
5170 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08005171 <p>0-(exposure time-flash duration)</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005172 </td>
5173
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005174 <td class="entry_tags">
5175 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08005176 <li><a href="#tag_V1">V1</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005177 </ul>
5178 </td>
5179
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005180 </tr>
5181 <tr class="entries_header">
5182 <th class="th_details" colspan="5">Details</th>
5183 </tr>
5184 <tr class="entry_cont">
5185 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08005186 <p>Clamped to (0,<wbr/> exposure time - flash
5187duration).<wbr/></p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005188 </td>
5189 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005190
5191
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005192 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
5193 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005194
5195
5196 <tr class="entry" id="controls_android.flash.mode">
Zhijun Heea27bc32014-01-15 13:47:59 -08005197 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08005198 android.<wbr/>flash.<wbr/>mode
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005199 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005200 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08005201 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005202
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07005203 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005204
5205 <ul class="entry_type_enum">
5206 <li>
5207 <span class="entry_type_enum_name">OFF</span>
Zhijun Heea27bc32014-01-15 13:47:59 -08005208 <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 -08005209 </li>
5210 <li>
5211 <span class="entry_type_enum_name">SINGLE</span>
Zhijun Heea27bc32014-01-15 13:47:59 -08005212 <span class="entry_type_enum_notes"><p>If the flash is available and charged,<wbr/> fire flash
5213for this capture based on <a href="#controls_android.flash.firingPower">android.<wbr/>flash.<wbr/>firing<wbr/>Power</a> and
5214<a href="#controls_android.flash.firingTime">android.<wbr/>flash.<wbr/>firing<wbr/>Time</a>.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005215 </li>
5216 <li>
5217 <span class="entry_type_enum_name">TORCH</span>
Zhijun Heea27bc32014-01-15 13:47:59 -08005218 <span class="entry_type_enum_notes"><p>Transition flash to continuously on.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005219 </li>
5220 </ul>
5221
5222 </td> <!-- entry_type -->
5223
5224 <td class="entry_description">
Zhijun Heea27bc32014-01-15 13:47:59 -08005225 <p>The desired mode for for the camera device's flash control.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005226 </td>
5227
5228 <td class="entry_units">
5229 </td>
5230
5231 <td class="entry_range">
5232 </td>
5233
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005234 <td class="entry_tags">
5235 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08005236 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005237 </ul>
5238 </td>
5239
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005240 </tr>
Zhijun Heea27bc32014-01-15 13:47:59 -08005241 <tr class="entries_header">
5242 <th class="th_details" colspan="5">Details</th>
5243 </tr>
5244 <tr class="entry_cont">
5245 <td class="entry_details" colspan="5">
5246 <p>This control is only effective when flash unit is available
Zhijun Hebdc94c42014-01-21 18:28:30 -08005247(<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 -08005248<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/>
5249Otherwise,<wbr/> the camera device auto-exposure related flash control (ON_<wbr/>AUTO_<wbr/>FLASH,<wbr/>
5250ON_<wbr/>ALWAYS_<wbr/>FLASH,<wbr/> or ON_<wbr/>AUTO_<wbr/>FLASH_<wbr/>REDEYE) will override this control.<wbr/></p>
5251<p>When set to OFF,<wbr/> the camera device will not fire flash for this capture.<wbr/></p>
5252<p>When set to SINGLE,<wbr/> the camera device will fire flash regardless of the camera
5253device's auto-exposure routine's result.<wbr/> When used in still capture case,<wbr/> this
5254control should be used along with AE precapture metering sequence
5255(<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>
5256<p>When set to TORCH,<wbr/> the flash will be on continuously.<wbr/> This mode can be used
5257for 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 -08005258<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 -08005259 </td>
5260 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005261
5262
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005263 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
5264 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005265
5266
5267
5268 <!-- end of kind -->
5269 </tbody>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005270 <tr><td colspan="6" class="kind">static</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005271
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07005272 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005273 <tr>
5274 <th class="th_name">Property Name</th>
5275 <th class="th_type">Type</th>
5276 <th class="th_description">Description</th>
5277 <th class="th_units">Units</th>
5278 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005279 <th class="th_tags">Tags</th>
5280 </tr>
5281 </thead>
5282
5283 <tbody>
5284
5285
5286
5287
5288
5289
5290
5291
5292
5293
5294
5295
5296 <tr class="entry" id="static_android.flash.info.available">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005297 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08005298 android.<wbr/>flash.<wbr/>info.<wbr/>available
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005299 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005300 <td class="entry_type">
Zhijun He5169ce12014-01-24 16:48:25 -08005301 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005302
Zhijun He5169ce12014-01-24 16:48:25 -08005303 <span class="entry_type_visibility"> [public as boolean]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005304
Zhijun He5169ce12014-01-24 16:48:25 -08005305 <ul class="entry_type_enum">
5306 <li>
5307 <span class="entry_type_enum_name">FALSE</span>
5308 </li>
5309 <li>
5310 <span class="entry_type_enum_name">TRUE</span>
5311 </li>
5312 </ul>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005313
5314 </td> <!-- entry_type -->
5315
5316 <td class="entry_description">
Zhijun He5169ce12014-01-24 16:48:25 -08005317 <p>Whether this camera device has a
5318flash.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005319 </td>
5320
5321 <td class="entry_units">
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005322 </td>
5323
5324 <td class="entry_range">
5325 </td>
5326
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005327 <td class="entry_tags">
5328 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08005329 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005330 </ul>
5331 </td>
5332
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005333 </tr>
5334 <tr class="entries_header">
5335 <th class="th_details" colspan="5">Details</th>
5336 </tr>
5337 <tr class="entry_cont">
5338 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08005339 <p>If no flash,<wbr/> none of the flash controls do
Zhijun He5169ce12014-01-24 16:48:25 -08005340anything.<wbr/> All other metadata should return 0.<wbr/></p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005341 </td>
5342 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005343
5344
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005345 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
5346 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005347
5348
5349 <tr class="entry" id="static_android.flash.info.chargeDuration">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005350 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08005351 android.<wbr/>flash.<wbr/>info.<wbr/>charge<wbr/>Duration
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005352 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005353 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08005354 <span class="entry_type_name">int64</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005355
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07005356 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005357
5358
5359 </td> <!-- entry_type -->
5360
5361 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08005362 <p>Time taken before flash can fire
5363again</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005364 </td>
5365
5366 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -08005367 nanoseconds
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005368 </td>
5369
5370 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08005371 <p>0-1e9</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005372 </td>
5373
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005374 <td class="entry_tags">
5375 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08005376 <li><a href="#tag_V1">V1</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005377 </ul>
5378 </td>
5379
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005380 </tr>
5381 <tr class="entries_header">
5382 <th class="th_details" colspan="5">Details</th>
5383 </tr>
5384 <tr class="entry_cont">
5385 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08005386 <p>1 second too long/<wbr/>too short for recharge? Should
5387this be power-dependent?</p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005388 </td>
5389 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005390
5391
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005392 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
5393 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005394
5395
5396
5397
5398
5399 <tr class="entry" id="static_android.flash.colorTemperature">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005400 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -08005401 android.<wbr/>flash.<wbr/>color<wbr/>Temperature
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005402 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005403 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08005404 <span class="entry_type_name">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005405
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07005406 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005407
5408
5409 </td> <!-- entry_type -->
5410
5411 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08005412 <p>The x,<wbr/>y whitepoint of the
5413flash</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005414 </td>
5415
5416 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -08005417 pair of floats
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005418 </td>
5419
5420 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08005421 <p>0-1 for both</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005422 </td>
5423
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005424 <td class="entry_tags">
5425 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08005426 <li><a href="#tag_ADV">ADV</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005427 </ul>
5428 </td>
5429
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005430 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005431
5432
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005433 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
5434 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005435
5436
5437 <tr class="entry" id="static_android.flash.maxEnergy">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005438 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -08005439 android.<wbr/>flash.<wbr/>max<wbr/>Energy
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005440 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005441 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08005442 <span class="entry_type_name">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005443
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07005444 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005445
5446
5447 </td> <!-- entry_type -->
5448
5449 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08005450 <p>Max energy output of the flash for a full
5451power single flash</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005452 </td>
5453
5454 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -08005455 lumen-seconds
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005456 </td>
5457
5458 <td class="entry_range">
Igor Murashkin6cb7c2c2014-01-10 15:12:40 -08005459 <p>&gt;= 0</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005460 </td>
5461
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005462 <td class="entry_tags">
5463 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08005464 <li><a href="#tag_ADV">ADV</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005465 </ul>
5466 </td>
5467
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005468 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005469
5470
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005471 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
5472 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005473
5474
5475
5476 <!-- end of kind -->
5477 </tbody>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005478 <tr><td colspan="6" class="kind">dynamic</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005479
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07005480 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005481 <tr>
5482 <th class="th_name">Property Name</th>
5483 <th class="th_type">Type</th>
5484 <th class="th_description">Description</th>
5485 <th class="th_units">Units</th>
5486 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005487 <th class="th_tags">Tags</th>
5488 </tr>
5489 </thead>
5490
5491 <tbody>
5492
5493
5494
5495
5496
5497
5498
5499
5500
5501
5502 <tr class="entry" id="dynamic_android.flash.firingPower">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005503 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08005504 android.<wbr/>flash.<wbr/>firing<wbr/>Power
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005505 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005506 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08005507 <span class="entry_type_name">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005508
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07005509 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005510
5511
5512 </td> <!-- entry_type -->
5513
5514 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08005515 <p>Power for flash firing/<wbr/>torch</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005516 </td>
5517
5518 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -08005519 10 is max power; 0 is no flash.<wbr/> Linear
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005520 </td>
5521
5522 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08005523 <p>0 - 10</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005524 </td>
5525
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005526 <td class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08005527 <ul class="entry_tags">
5528 <li><a href="#tag_V1">V1</a></li>
5529 </ul>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005530 </td>
5531
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005532 </tr>
5533 <tr class="entries_header">
5534 <th class="th_details" colspan="5">Details</th>
5535 </tr>
5536 <tr class="entry_cont">
5537 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08005538 <p>Power for snapshot may use a different scale than
5539for torch mode.<wbr/> Only one entry for torch mode will be
5540used</p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005541 </td>
5542 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005543
5544
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005545 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
5546 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005547
5548
5549 <tr class="entry" id="dynamic_android.flash.firingTime">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005550 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08005551 android.<wbr/>flash.<wbr/>firing<wbr/>Time
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005552 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005553 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08005554 <span class="entry_type_name">int64</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005555
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07005556 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005557
5558
5559 </td> <!-- entry_type -->
5560
5561 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08005562 <p>Firing time of flash relative to start of
5563exposure</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005564 </td>
5565
5566 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -08005567 nanoseconds
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005568 </td>
5569
5570 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08005571 <p>0-(exposure time-flash duration)</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005572 </td>
5573
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005574 <td class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08005575 <ul class="entry_tags">
5576 <li><a href="#tag_V1">V1</a></li>
5577 </ul>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005578 </td>
5579
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005580 </tr>
5581 <tr class="entries_header">
5582 <th class="th_details" colspan="5">Details</th>
5583 </tr>
5584 <tr class="entry_cont">
5585 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08005586 <p>Clamped to (0,<wbr/> exposure time - flash
5587duration).<wbr/></p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005588 </td>
5589 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005590
5591
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005592 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
5593 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005594
5595
5596 <tr class="entry" id="dynamic_android.flash.mode">
Zhijun Heea27bc32014-01-15 13:47:59 -08005597 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08005598 android.<wbr/>flash.<wbr/>mode
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005599 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005600 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08005601 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005602
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07005603 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005604
5605 <ul class="entry_type_enum">
5606 <li>
5607 <span class="entry_type_enum_name">OFF</span>
Zhijun Heea27bc32014-01-15 13:47:59 -08005608 <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 -08005609 </li>
5610 <li>
5611 <span class="entry_type_enum_name">SINGLE</span>
Zhijun Heea27bc32014-01-15 13:47:59 -08005612 <span class="entry_type_enum_notes"><p>If the flash is available and charged,<wbr/> fire flash
5613for this capture based on <a href="#controls_android.flash.firingPower">android.<wbr/>flash.<wbr/>firing<wbr/>Power</a> and
5614<a href="#controls_android.flash.firingTime">android.<wbr/>flash.<wbr/>firing<wbr/>Time</a>.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005615 </li>
5616 <li>
5617 <span class="entry_type_enum_name">TORCH</span>
Zhijun Heea27bc32014-01-15 13:47:59 -08005618 <span class="entry_type_enum_notes"><p>Transition flash to continuously on.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005619 </li>
5620 </ul>
5621
5622 </td> <!-- entry_type -->
5623
5624 <td class="entry_description">
Zhijun Heea27bc32014-01-15 13:47:59 -08005625 <p>The desired mode for for the camera device's flash control.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005626 </td>
5627
5628 <td class="entry_units">
5629 </td>
5630
5631 <td class="entry_range">
5632 </td>
5633
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005634 <td class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08005635 <ul class="entry_tags">
5636 <li><a href="#tag_BC">BC</a></li>
5637 </ul>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005638 </td>
5639
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005640 </tr>
Zhijun Heea27bc32014-01-15 13:47:59 -08005641 <tr class="entries_header">
5642 <th class="th_details" colspan="5">Details</th>
5643 </tr>
5644 <tr class="entry_cont">
5645 <td class="entry_details" colspan="5">
5646 <p>This control is only effective when flash unit is available
Zhijun Hebdc94c42014-01-21 18:28:30 -08005647(<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 -08005648<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/>
5649Otherwise,<wbr/> the camera device auto-exposure related flash control (ON_<wbr/>AUTO_<wbr/>FLASH,<wbr/>
5650ON_<wbr/>ALWAYS_<wbr/>FLASH,<wbr/> or ON_<wbr/>AUTO_<wbr/>FLASH_<wbr/>REDEYE) will override this control.<wbr/></p>
5651<p>When set to OFF,<wbr/> the camera device will not fire flash for this capture.<wbr/></p>
5652<p>When set to SINGLE,<wbr/> the camera device will fire flash regardless of the camera
5653device's auto-exposure routine's result.<wbr/> When used in still capture case,<wbr/> this
5654control should be used along with AE precapture metering sequence
5655(<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>
5656<p>When set to TORCH,<wbr/> the flash will be on continuously.<wbr/> This mode can be used
5657for 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 -08005658<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 -08005659 </td>
5660 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005661
5662
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005663 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
5664 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005665
5666
5667 <tr class="entry" id="dynamic_android.flash.state">
Zhijun He5169ce12014-01-24 16:48:25 -08005668 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08005669 android.<wbr/>flash.<wbr/>state
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005670 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005671 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08005672 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005673
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07005674 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005675
5676 <ul class="entry_type_enum">
5677 <li>
5678 <span class="entry_type_enum_name">UNAVAILABLE</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08005679 <span class="entry_type_enum_notes"><p>No flash on camera</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005680 </li>
5681 <li>
5682 <span class="entry_type_enum_name">CHARGING</span>
Zhijun He5169ce12014-01-24 16:48:25 -08005683 <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 -08005684charging and cannot be fired</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005685 </li>
5686 <li>
5687 <span class="entry_type_enum_name">READY</span>
Zhijun He5169ce12014-01-24 16:48:25 -08005688 <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 -08005689ready to fire</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005690 </li>
5691 <li>
5692 <span class="entry_type_enum_name">FIRED</span>
Zhijun He5169ce12014-01-24 16:48:25 -08005693 <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 -08005694for this capture</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005695 </li>
5696 </ul>
5697
5698 </td> <!-- entry_type -->
5699
5700 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08005701 <p>Current state of the flash
Zhijun He5169ce12014-01-24 16:48:25 -08005702unit.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005703 </td>
5704
5705 <td class="entry_units">
5706 </td>
5707
5708 <td class="entry_range">
5709 </td>
5710
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005711 <td class="entry_tags">
5712 </td>
5713
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005714 </tr>
Zhijun He5169ce12014-01-24 16:48:25 -08005715 <tr class="entries_header">
5716 <th class="th_details" colspan="5">Details</th>
5717 </tr>
5718 <tr class="entry_cont">
5719 <td class="entry_details" colspan="5">
5720 <p>When the camera device doesn't have flash unit
5721(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/>
5722Other states indicate the current flash status.<wbr/></p>
5723 </td>
5724 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005725
5726
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005727 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
5728 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005729
5730
5731
5732 <!-- end of kind -->
5733 </tbody>
5734
5735 <!-- end of section -->
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005736 <tr><td colspan="6" id="section_geometric" class="section">geometric</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005737
5738
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005739 <tr><td colspan="6" class="kind">controls</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005740
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07005741 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005742 <tr>
5743 <th class="th_name">Property Name</th>
5744 <th class="th_type">Type</th>
5745 <th class="th_description">Description</th>
5746 <th class="th_units">Units</th>
5747 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005748 <th class="th_tags">Tags</th>
5749 </tr>
5750 </thead>
5751
5752 <tbody>
5753
5754
5755
5756
5757
5758
5759
5760
5761
5762
5763 <tr class="entry" id="controls_android.geometric.mode">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005764 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -08005765 android.<wbr/>geometric.<wbr/>mode
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005766 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005767 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08005768 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005769
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07005770 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005771
5772 <ul class="entry_type_enum">
5773 <li>
5774 <span class="entry_type_enum_name">OFF</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08005775 <span class="entry_type_enum_notes"><p>No geometric correction is
5776applied</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005777 </li>
5778 <li>
5779 <span class="entry_type_enum_name">FAST</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08005780 <span class="entry_type_enum_notes"><p>Must not slow down frame rate relative to raw
5781bayer output</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005782 </li>
5783 <li>
5784 <span class="entry_type_enum_name">HIGH_QUALITY</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08005785 <span class="entry_type_enum_notes"><p>Frame rate may be reduced by high
5786quality</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005787 </li>
5788 </ul>
5789
5790 </td> <!-- entry_type -->
5791
5792 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08005793 <p>Operating mode of geometric
5794correction</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005795 </td>
5796
5797 <td class="entry_units">
5798 </td>
5799
5800 <td class="entry_range">
5801 </td>
5802
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005803 <td class="entry_tags">
5804 </td>
5805
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005806 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005807
5808
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005809 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
5810 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005811
5812
5813 <tr class="entry" id="controls_android.geometric.strength">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005814 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -08005815 android.<wbr/>geometric.<wbr/>strength
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005816 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005817 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08005818 <span class="entry_type_name">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005819
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07005820 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005821
5822
5823 </td> <!-- entry_type -->
5824
5825 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08005826 <p>Control the amount of shading correction
5827applied to the images</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005828 </td>
5829
5830 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -08005831 unitless: 1-10; 10 is full shading
5832 compensation
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005833 </td>
5834
5835 <td class="entry_range">
5836 </td>
5837
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005838 <td class="entry_tags">
5839 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08005840 <li><a href="#tag_ADV">ADV</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005841 </ul>
5842 </td>
5843
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005844 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005845
5846
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005847 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
5848 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005849
5850
5851
5852 <!-- end of kind -->
5853 </tbody>
5854
5855 <!-- end of section -->
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005856 <tr><td colspan="6" id="section_hotPixel" class="section">hotPixel</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005857
5858
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005859 <tr><td colspan="6" class="kind">controls</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005860
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07005861 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005862 <tr>
5863 <th class="th_name">Property Name</th>
5864 <th class="th_type">Type</th>
5865 <th class="th_description">Description</th>
5866 <th class="th_units">Units</th>
5867 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005868 <th class="th_tags">Tags</th>
5869 </tr>
5870 </thead>
5871
5872 <tbody>
5873
5874
5875
5876
5877
5878
5879
5880
5881
5882
5883 <tr class="entry" id="controls_android.hotPixel.mode">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005884 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -08005885 android.<wbr/>hot<wbr/>Pixel.<wbr/>mode
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005886 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005887 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08005888 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005889
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07005890 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005891
5892 <ul class="entry_type_enum">
5893 <li>
5894 <span class="entry_type_enum_name">OFF</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08005895 <span class="entry_type_enum_notes"><p>No hot pixel correction can be
5896applied</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005897 </li>
5898 <li>
5899 <span class="entry_type_enum_name">FAST</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08005900 <span class="entry_type_enum_notes"><p>Frame rate must not be reduced compared to raw
5901Bayer output</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005902 </li>
5903 <li>
5904 <span class="entry_type_enum_name">HIGH_QUALITY</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08005905 <span class="entry_type_enum_notes"><p>Frame rate may be reduced by high
5906quality</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005907 </li>
5908 </ul>
5909
5910 </td> <!-- entry_type -->
5911
5912 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08005913 <p>Set operational mode for hot pixel
5914correction</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005915 </td>
5916
5917 <td class="entry_units">
5918 </td>
5919
5920 <td class="entry_range">
5921 </td>
5922
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005923 <td class="entry_tags">
5924 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08005925 <li><a href="#tag_V1">V1</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005926 </ul>
5927 </td>
5928
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005929 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005930
5931
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005932 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
5933 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005934
5935
5936
5937 <!-- end of kind -->
5938 </tbody>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005939 <tr><td colspan="6" class="kind">static</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005940
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07005941 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005942 <tr>
5943 <th class="th_name">Property Name</th>
5944 <th class="th_type">Type</th>
5945 <th class="th_description">Description</th>
5946 <th class="th_units">Units</th>
5947 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005948 <th class="th_tags">Tags</th>
5949 </tr>
5950 </thead>
5951
5952 <tbody>
5953
5954
5955
5956
5957
5958
5959
5960
5961
5962
5963
5964
5965 <tr class="entry" id="static_android.hotPixel.info.map">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005966 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -08005967 android.<wbr/>hot<wbr/>Pixel.<wbr/>info.<wbr/>map
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08005968 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005969 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08005970 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005971 <span class="entry_type_container">x</span>
5972
5973 <span class="entry_type_array">
5974 2 x n
5975 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07005976 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -08005977 <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 -08005978
5979
5980 </td> <!-- entry_type -->
5981
5982 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08005983 <p>Location of hot/<wbr/>defective pixels on
5984sensor</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005985 </td>
5986
5987 <td class="entry_units">
5988 </td>
5989
5990 <td class="entry_range">
5991 </td>
5992
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005993 <td class="entry_tags">
5994 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08005995 <li><a href="#tag_ADV">ADV</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08005996 </ul>
5997 </td>
5998
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08005999 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006000
6001
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006002 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
6003 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006004
6005
6006
6007
6008
6009
6010 <!-- end of kind -->
6011 </tbody>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006012 <tr><td colspan="6" class="kind">dynamic</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006013
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07006014 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006015 <tr>
6016 <th class="th_name">Property Name</th>
6017 <th class="th_type">Type</th>
6018 <th class="th_description">Description</th>
6019 <th class="th_units">Units</th>
6020 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006021 <th class="th_tags">Tags</th>
6022 </tr>
6023 </thead>
6024
6025 <tbody>
6026
6027
6028
6029
6030
6031
6032
6033
6034
6035
6036 <tr class="entry" id="dynamic_android.hotPixel.mode">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006037 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -08006038 android.<wbr/>hot<wbr/>Pixel.<wbr/>mode
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006039 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006040 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08006041 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006042
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07006043 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006044
6045 <ul class="entry_type_enum">
6046 <li>
6047 <span class="entry_type_enum_name">OFF</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08006048 <span class="entry_type_enum_notes"><p>No hot pixel correction can be
6049applied</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006050 </li>
6051 <li>
6052 <span class="entry_type_enum_name">FAST</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08006053 <span class="entry_type_enum_notes"><p>Frame rate must not be reduced compared to raw
6054Bayer output</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006055 </li>
6056 <li>
6057 <span class="entry_type_enum_name">HIGH_QUALITY</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08006058 <span class="entry_type_enum_notes"><p>Frame rate may be reduced by high
6059quality</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006060 </li>
6061 </ul>
6062
6063 </td> <!-- entry_type -->
6064
6065 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08006066 <p>Set operational mode for hot pixel
6067correction</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006068 </td>
6069
6070 <td class="entry_units">
6071 </td>
6072
6073 <td class="entry_range">
6074 </td>
6075
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006076 <td class="entry_tags">
6077 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08006078 <li><a href="#tag_V1">V1</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006079 </ul>
6080 </td>
6081
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006082 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006083
6084
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006085 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
6086 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006087
6088
6089
6090 <!-- end of kind -->
6091 </tbody>
6092
6093 <!-- end of section -->
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006094 <tr><td colspan="6" id="section_jpeg" class="section">jpeg</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006095
6096
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006097 <tr><td colspan="6" class="kind">controls</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006098
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07006099 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006100 <tr>
6101 <th class="th_name">Property Name</th>
6102 <th class="th_type">Type</th>
6103 <th class="th_description">Description</th>
6104 <th class="th_units">Units</th>
6105 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006106 <th class="th_tags">Tags</th>
6107 </tr>
6108 </thead>
6109
6110 <tbody>
6111
6112
6113
6114
6115
6116
6117
6118
6119
6120
6121 <tr class="entry" id="controls_android.jpeg.gpsCoordinates">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006122 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -08006123 android.<wbr/>jpeg.<wbr/>gps<wbr/>Coordinates
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006124 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006125 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08006126 <span class="entry_type_name">double</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006127 <span class="entry_type_container">x</span>
6128
6129 <span class="entry_type_array">
6130 3
6131 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07006132 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -08006133 <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 -08006134
6135
6136 </td> <!-- entry_type -->
6137
6138 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08006139 <p>GPS coordinates to include in output JPEG
6140EXIF</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006141 </td>
6142
6143 <td class="entry_units">
6144 </td>
6145
6146 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08006147 <p>(-180 - 180],<wbr/> [-90,<wbr/>90],<wbr/> [-inf,<wbr/> inf]</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006148 </td>
6149
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006150 <td class="entry_tags">
6151 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08006152 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006153 </ul>
6154 </td>
6155
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006156 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006157
6158
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006159 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
6160 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006161
6162
6163 <tr class="entry" id="controls_android.jpeg.gpsProcessingMethod">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006164 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -08006165 android.<wbr/>jpeg.<wbr/>gps<wbr/>Processing<wbr/>Method
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006166 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006167 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08006168 <span class="entry_type_name">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006169
Igor Murashkinb8dc8812013-07-17 16:29:34 -07006170 <span class="entry_type_visibility"> [public as string]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006171
6172
6173 </td> <!-- entry_type -->
6174
6175 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08006176 <p>32 characters describing GPS algorithm to
6177include in EXIF</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006178 </td>
6179
6180 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -08006181 UTF-8 null-terminated string
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006182 </td>
6183
6184 <td class="entry_range">
6185 </td>
6186
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006187 <td class="entry_tags">
6188 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08006189 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006190 </ul>
6191 </td>
6192
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006193 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006194
6195
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006196 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
6197 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006198
6199
6200 <tr class="entry" id="controls_android.jpeg.gpsTimestamp">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006201 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -08006202 android.<wbr/>jpeg.<wbr/>gps<wbr/>Timestamp
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006203 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006204 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08006205 <span class="entry_type_name">int64</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006206
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07006207 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006208
6209
6210 </td> <!-- entry_type -->
6211
6212 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08006213 <p>Time GPS fix was made to include in
6214EXIF</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006215 </td>
6216
6217 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -08006218 UTC in seconds since January 1,<wbr/> 1970
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006219 </td>
6220
6221 <td class="entry_range">
6222 </td>
6223
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006224 <td class="entry_tags">
6225 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08006226 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006227 </ul>
6228 </td>
6229
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006230 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006231
6232
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006233 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
6234 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006235
6236
6237 <tr class="entry" id="controls_android.jpeg.orientation">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006238 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -08006239 android.<wbr/>jpeg.<wbr/>orientation
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006240 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006241 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08006242 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006243
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07006244 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006245
6246
6247 </td> <!-- entry_type -->
6248
6249 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08006250 <p>Orientation of JPEG image to
6251write</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006252 </td>
6253
6254 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -08006255 Degrees in multiples of 90
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006256 </td>
6257
6258 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08006259 <p>0,<wbr/> 90,<wbr/> 180,<wbr/> 270</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006260 </td>
6261
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006262 <td class="entry_tags">
6263 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08006264 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006265 </ul>
6266 </td>
6267
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006268 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006269
6270
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006271 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
6272 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006273
6274
6275 <tr class="entry" id="controls_android.jpeg.quality">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006276 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08006277 android.<wbr/>jpeg.<wbr/>quality
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006278 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006279 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08006280 <span class="entry_type_name">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006281
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07006282 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006283
6284
6285 </td> <!-- entry_type -->
6286
6287 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08006288 <p>Compression quality of the final JPEG
6289image</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006290 </td>
6291
6292 <td class="entry_units">
6293 </td>
6294
6295 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08006296 <p>1-100; larger is higher quality</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006297 </td>
6298
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006299 <td class="entry_tags">
6300 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08006301 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006302 </ul>
6303 </td>
6304
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006305 </tr>
6306 <tr class="entries_header">
6307 <th class="th_details" colspan="5">Details</th>
6308 </tr>
6309 <tr class="entry_cont">
6310 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08006311 <p>85-95 is typical usage range</p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006312 </td>
6313 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006314
6315
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006316 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
6317 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006318
6319
6320 <tr class="entry" id="controls_android.jpeg.thumbnailQuality">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006321 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -08006322 android.<wbr/>jpeg.<wbr/>thumbnail<wbr/>Quality
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006323 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006324 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08006325 <span class="entry_type_name">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006326
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07006327 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006328
6329
6330 </td> <!-- entry_type -->
6331
6332 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08006333 <p>Compression quality of JPEG
6334thumbnail</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006335 </td>
6336
6337 <td class="entry_units">
6338 </td>
6339
6340 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08006341 <p>1-100; larger is higher quality</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006342 </td>
6343
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006344 <td class="entry_tags">
6345 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08006346 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006347 </ul>
6348 </td>
6349
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006350 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006351
6352
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006353 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
6354 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006355
6356
6357 <tr class="entry" id="controls_android.jpeg.thumbnailSize">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006358 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08006359 android.<wbr/>jpeg.<wbr/>thumbnail<wbr/>Size
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006360 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006361 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08006362 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006363 <span class="entry_type_container">x</span>
6364
6365 <span class="entry_type_array">
6366 2
6367 </span>
Igor Murashkinb8dc8812013-07-17 16:29:34 -07006368 <span class="entry_type_visibility"> [public as size]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006369
6370
6371 </td> <!-- entry_type -->
6372
6373 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08006374 <p>Resolution of embedded JPEG thumbnail</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006375 </td>
6376
6377 <td class="entry_units">
6378 </td>
6379
6380 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08006381 <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 -08006382 </td>
6383
6384 <td class="entry_tags">
6385 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08006386 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006387 </ul>
6388 </td>
6389
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006390 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006391 <tr class="entries_header">
6392 <th class="th_details" colspan="5">Details</th>
6393 </tr>
6394 <tr class="entry_cont">
6395 <td class="entry_details" colspan="5">
Zhijun Hef90eeaf2014-01-16 12:13:35 -08006396 <p>When set to (0,<wbr/> 0) value,<wbr/> the JPEG EXIF will not contain thumbnail,<wbr/>
6397but the captured JPEG will still be a valid image.<wbr/></p>
Igor Murashkin0b080452013-12-27 15:30:25 -08006398<p>When a jpeg image capture is issued,<wbr/> the thumbnail size selected should have
6399the same aspect ratio as the jpeg image.<wbr/></p>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006400 </td>
6401 </tr>
6402
6403
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006404 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
6405 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006406
6407
6408
6409 <!-- end of kind -->
6410 </tbody>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006411 <tr><td colspan="6" class="kind">static</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006412
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07006413 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006414 <tr>
6415 <th class="th_name">Property Name</th>
6416 <th class="th_type">Type</th>
6417 <th class="th_description">Description</th>
6418 <th class="th_units">Units</th>
6419 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006420 <th class="th_tags">Tags</th>
6421 </tr>
6422 </thead>
6423
6424 <tbody>
6425
6426
6427
6428
6429
6430
6431
6432
6433
6434
6435 <tr class="entry" id="static_android.jpeg.availableThumbnailSizes">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006436 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08006437 android.<wbr/>jpeg.<wbr/>available<wbr/>Thumbnail<wbr/>Sizes
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006438 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006439 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08006440 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006441 <span class="entry_type_container">x</span>
6442
6443 <span class="entry_type_array">
6444 2 x n
6445 </span>
Igor Murashkinb8dc8812013-07-17 16:29:34 -07006446 <span class="entry_type_visibility"> [public as size]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006447
6448
6449 </td> <!-- entry_type -->
6450
6451 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08006452 <p>Supported resolutions for the JPEG thumbnail</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006453 </td>
6454
6455 <td class="entry_units">
6456 </td>
6457
6458 <td class="entry_range">
Zhijun Hef90eeaf2014-01-16 12:13:35 -08006459 <p>Will include at least one valid resolution,<wbr/> plus
6460(0,<wbr/>0) for no thumbnail generation,<wbr/> and each size will be distinct.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006461 </td>
6462
6463 <td class="entry_tags">
6464 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08006465 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006466 </ul>
6467 </td>
6468
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006469 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006470 <tr class="entries_header">
6471 <th class="th_details" colspan="5">Details</th>
6472 </tr>
6473 <tr class="entry_cont">
6474 <td class="entry_details" colspan="5">
Zhijun Hef90eeaf2014-01-16 12:13:35 -08006475 <p>Below condiditions will be satisfied for this size list:</p>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006476<ul>
Zhijun Hef90eeaf2014-01-16 12:13:35 -08006477<li>The sizes will be sorted by increasing pixel area (width x height).<wbr/>
6478If several resolutions have the same area,<wbr/> they will be sorted by increasing width.<wbr/></li>
6479<li>The aspect ratio of the largest thumbnail size will be same as the
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08006480aspect 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 -08006481The largest size is defined as the size that has the largest pixel area
Igor Murashkin0b080452013-12-27 15:30:25 -08006482in a given size list.<wbr/></li>
Zhijun Hef90eeaf2014-01-16 12:13:35 -08006483<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 -08006484one corresponding size that has the same aspect ratio in availableThumbnailSizes,<wbr/>
6485and vice versa.<wbr/></li>
Zhijun Hef90eeaf2014-01-16 12:13:35 -08006486<li>All non (0,<wbr/> 0) sizes will have non-zero widths and heights.<wbr/></li>
Igor Murashkin0b080452013-12-27 15:30:25 -08006487</ul>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006488 </td>
6489 </tr>
6490
6491
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006492 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
6493 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006494
6495
6496 <tr class="entry" id="static_android.jpeg.maxSize">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006497 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08006498 android.<wbr/>jpeg.<wbr/>max<wbr/>Size
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006499 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006500 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08006501 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006502
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07006503 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006504
6505
6506 </td> <!-- entry_type -->
6507
6508 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08006509 <p>Maximum size in bytes for the compressed
6510JPEG buffer</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006511 </td>
6512
6513 <td class="entry_units">
6514 </td>
6515
6516 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08006517 <p>Must be large enough to fit any JPEG produced by
6518the camera</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006519 </td>
6520
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006521 <td class="entry_tags">
6522 </td>
6523
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006524 </tr>
6525 <tr class="entries_header">
6526 <th class="th_details" colspan="5">Details</th>
6527 </tr>
6528 <tr class="entry_cont">
6529 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08006530 <p>This is used for sizing the gralloc buffers for
6531JPEG</p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006532 </td>
6533 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006534
6535
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006536 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
6537 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006538
6539
6540
6541 <!-- end of kind -->
6542 </tbody>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006543 <tr><td colspan="6" class="kind">dynamic</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006544
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07006545 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006546 <tr>
6547 <th class="th_name">Property Name</th>
6548 <th class="th_type">Type</th>
6549 <th class="th_description">Description</th>
6550 <th class="th_units">Units</th>
6551 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006552 <th class="th_tags">Tags</th>
6553 </tr>
6554 </thead>
6555
6556 <tbody>
6557
6558
6559
6560
6561
6562
6563
6564
6565
6566
6567 <tr class="entry" id="dynamic_android.jpeg.gpsCoordinates">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006568 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -08006569 android.<wbr/>jpeg.<wbr/>gps<wbr/>Coordinates
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006570 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006571 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08006572 <span class="entry_type_name">double</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006573 <span class="entry_type_container">x</span>
6574
6575 <span class="entry_type_array">
6576 3
6577 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07006578 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -08006579 <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 -08006580
6581
6582 </td> <!-- entry_type -->
6583
6584 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08006585 <p>GPS coordinates to include in output JPEG
6586EXIF</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006587 </td>
6588
6589 <td class="entry_units">
6590 </td>
6591
6592 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08006593 <p>(-180 - 180],<wbr/> [-90,<wbr/>90],<wbr/> [-inf,<wbr/> inf]</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006594 </td>
6595
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006596 <td class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08006597 <ul class="entry_tags">
6598 <li><a href="#tag_BC">BC</a></li>
6599 </ul>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006600 </td>
6601
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006602 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006603
6604
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006605 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
6606 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006607
6608
6609 <tr class="entry" id="dynamic_android.jpeg.gpsProcessingMethod">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006610 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -08006611 android.<wbr/>jpeg.<wbr/>gps<wbr/>Processing<wbr/>Method
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006612 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006613 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08006614 <span class="entry_type_name">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006615
Igor Murashkinb8dc8812013-07-17 16:29:34 -07006616 <span class="entry_type_visibility"> [public as string]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006617
6618
6619 </td> <!-- entry_type -->
6620
6621 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08006622 <p>32 characters describing GPS algorithm to
6623include in EXIF</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006624 </td>
6625
6626 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -08006627 UTF-8 null-terminated string
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006628 </td>
6629
6630 <td class="entry_range">
6631 </td>
6632
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006633 <td class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08006634 <ul class="entry_tags">
6635 <li><a href="#tag_BC">BC</a></li>
6636 </ul>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006637 </td>
6638
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006639 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006640
6641
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006642 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
6643 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006644
6645
6646 <tr class="entry" id="dynamic_android.jpeg.gpsTimestamp">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006647 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -08006648 android.<wbr/>jpeg.<wbr/>gps<wbr/>Timestamp
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006649 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006650 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08006651 <span class="entry_type_name">int64</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006652
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07006653 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006654
6655
6656 </td> <!-- entry_type -->
6657
6658 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08006659 <p>Time GPS fix was made to include in
6660EXIF</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006661 </td>
6662
6663 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -08006664 UTC in seconds since January 1,<wbr/> 1970
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006665 </td>
6666
6667 <td class="entry_range">
6668 </td>
6669
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006670 <td class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08006671 <ul class="entry_tags">
6672 <li><a href="#tag_BC">BC</a></li>
6673 </ul>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006674 </td>
6675
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006676 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006677
6678
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006679 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
6680 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006681
6682
6683 <tr class="entry" id="dynamic_android.jpeg.orientation">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006684 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -08006685 android.<wbr/>jpeg.<wbr/>orientation
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006686 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006687 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08006688 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006689
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07006690 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006691
6692
6693 </td> <!-- entry_type -->
6694
6695 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08006696 <p>Orientation of JPEG image to
6697write</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006698 </td>
6699
6700 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -08006701 Degrees in multiples of 90
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006702 </td>
6703
6704 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08006705 <p>0,<wbr/> 90,<wbr/> 180,<wbr/> 270</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006706 </td>
6707
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006708 <td class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08006709 <ul class="entry_tags">
6710 <li><a href="#tag_BC">BC</a></li>
6711 </ul>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006712 </td>
6713
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006714 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006715
6716
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006717 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
6718 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006719
6720
6721 <tr class="entry" id="dynamic_android.jpeg.quality">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006722 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08006723 android.<wbr/>jpeg.<wbr/>quality
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006724 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006725 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08006726 <span class="entry_type_name">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006727
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07006728 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006729
6730
6731 </td> <!-- entry_type -->
6732
6733 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08006734 <p>Compression quality of the final JPEG
6735image</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006736 </td>
6737
6738 <td class="entry_units">
6739 </td>
6740
6741 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08006742 <p>1-100; larger is higher quality</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006743 </td>
6744
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006745 <td class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08006746 <ul class="entry_tags">
6747 <li><a href="#tag_BC">BC</a></li>
6748 </ul>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006749 </td>
6750
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006751 </tr>
6752 <tr class="entries_header">
6753 <th class="th_details" colspan="5">Details</th>
6754 </tr>
6755 <tr class="entry_cont">
6756 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08006757 <p>85-95 is typical usage range</p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006758 </td>
6759 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006760
6761
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006762 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
6763 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006764
6765
6766 <tr class="entry" id="dynamic_android.jpeg.size">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006767 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08006768 android.<wbr/>jpeg.<wbr/>size
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006769 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006770 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08006771 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006772
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07006773 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006774
6775
6776 </td> <!-- entry_type -->
6777
6778 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08006779 <p>The size of the compressed JPEG image,<wbr/> in
6780bytes</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006781 </td>
6782
6783 <td class="entry_units">
6784 </td>
6785
6786 <td class="entry_range">
Igor Murashkin6cb7c2c2014-01-10 15:12:40 -08006787 <p>&gt;= 0</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006788 </td>
6789
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006790 <td class="entry_tags">
6791 </td>
6792
6793 </tr>
6794 <tr class="entries_header">
6795 <th class="th_details" colspan="5">Details</th>
6796 </tr>
6797 <tr class="entry_cont">
6798 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08006799 <p>If no JPEG output is produced for the request,<wbr/>
6800this must be 0.<wbr/></p>
6801<p>Otherwise,<wbr/> this describes the real size of the compressed
6802JPEG image placed in the output stream.<wbr/> More specifically,<wbr/>
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08006803if <a href="#static_android.jpeg.maxSize">android.<wbr/>jpeg.<wbr/>max<wbr/>Size</a> = 1000000,<wbr/> and a specific capture
6804has <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 -08006805the JPEG stream will be 1000000 bytes,<wbr/> of which the first
6806500000 make up the real data.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006807 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006808 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006809
6810
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006811 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
6812 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006813
6814
6815 <tr class="entry" id="dynamic_android.jpeg.thumbnailQuality">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006816 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -08006817 android.<wbr/>jpeg.<wbr/>thumbnail<wbr/>Quality
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006818 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006819 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08006820 <span class="entry_type_name">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006821
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07006822 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006823
6824
6825 </td> <!-- entry_type -->
6826
6827 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08006828 <p>Compression quality of JPEG
6829thumbnail</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006830 </td>
6831
6832 <td class="entry_units">
6833 </td>
6834
6835 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08006836 <p>1-100; larger is higher quality</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006837 </td>
6838
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006839 <td class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08006840 <ul class="entry_tags">
6841 <li><a href="#tag_BC">BC</a></li>
6842 </ul>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006843 </td>
6844
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006845 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006846
6847
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006848 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
6849 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006850
6851
6852 <tr class="entry" id="dynamic_android.jpeg.thumbnailSize">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006853 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08006854 android.<wbr/>jpeg.<wbr/>thumbnail<wbr/>Size
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006855 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006856 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08006857 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006858 <span class="entry_type_container">x</span>
6859
6860 <span class="entry_type_array">
6861 2
6862 </span>
Igor Murashkinb8dc8812013-07-17 16:29:34 -07006863 <span class="entry_type_visibility"> [public as size]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006864
6865
6866 </td> <!-- entry_type -->
6867
6868 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08006869 <p>Resolution of embedded JPEG thumbnail</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006870 </td>
6871
6872 <td class="entry_units">
6873 </td>
6874
6875 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08006876 <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 -08006877 </td>
6878
6879 <td class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08006880 <ul class="entry_tags">
6881 <li><a href="#tag_BC">BC</a></li>
6882 </ul>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006883 </td>
6884
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006885 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006886 <tr class="entries_header">
6887 <th class="th_details" colspan="5">Details</th>
6888 </tr>
6889 <tr class="entry_cont">
6890 <td class="entry_details" colspan="5">
Zhijun Hef90eeaf2014-01-16 12:13:35 -08006891 <p>When set to (0,<wbr/> 0) value,<wbr/> the JPEG EXIF will not contain thumbnail,<wbr/>
6892but the captured JPEG will still be a valid image.<wbr/></p>
Igor Murashkin0b080452013-12-27 15:30:25 -08006893<p>When a jpeg image capture is issued,<wbr/> the thumbnail size selected should have
6894the same aspect ratio as the jpeg image.<wbr/></p>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006895 </td>
6896 </tr>
6897
6898
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006899 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
6900 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006901
6902
6903
6904 <!-- end of kind -->
6905 </tbody>
6906
6907 <!-- end of section -->
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006908 <tr><td colspan="6" id="section_lens" class="section">lens</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006909
6910
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006911 <tr><td colspan="6" class="kind">controls</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006912
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07006913 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006914 <tr>
6915 <th class="th_name">Property Name</th>
6916 <th class="th_type">Type</th>
6917 <th class="th_description">Description</th>
6918 <th class="th_units">Units</th>
6919 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006920 <th class="th_tags">Tags</th>
6921 </tr>
6922 </thead>
6923
6924 <tbody>
6925
6926
6927
6928
6929
6930
6931
6932
6933
6934
6935 <tr class="entry" id="controls_android.lens.aperture">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006936 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08006937 android.<wbr/>lens.<wbr/>aperture
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006938 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006939 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08006940 <span class="entry_type_name">float</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006941
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07006942 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006943
6944
6945 </td> <!-- entry_type -->
6946
6947 <td class="entry_description">
Zhijun He1b58d382014-01-10 10:22:53 -08006948 <p>The ratio of lens focal length to the effective
6949aperture diameter.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006950 </td>
6951
6952 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -08006953 f-number (f/<wbr/>NNN)
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006954 </td>
6955
6956 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08006957 <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 -08006958 </td>
6959
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006960 <td class="entry_tags">
6961 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08006962 <li><a href="#tag_V1">V1</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006963 </ul>
6964 </td>
6965
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006966 </tr>
6967 <tr class="entries_header">
6968 <th class="th_details" colspan="5">Details</th>
6969 </tr>
6970 <tr class="entry_cont">
6971 <td class="entry_details" colspan="5">
Zhijun He1b58d382014-01-10 10:22:53 -08006972 <p>This will only be supported on the camera devices that
6973have variable aperture lens.<wbr/> The aperture value can only be
6974one of the values listed in <a href="#static_android.lens.info.availableApertures">android.<wbr/>lens.<wbr/>info.<wbr/>available<wbr/>Apertures</a>.<wbr/></p>
6975<p>When this is supported and <a href="#controls_android.control.aeMode">android.<wbr/>control.<wbr/>ae<wbr/>Mode</a> is OFF,<wbr/>
6976this can be set along with <a href="#controls_android.sensor.exposureTime">android.<wbr/>sensor.<wbr/>exposure<wbr/>Time</a>,<wbr/>
6977<a href="#controls_android.sensor.sensitivity">android.<wbr/>sensor.<wbr/>sensitivity</a>,<wbr/> and android.<wbr/>sensor.<wbr/>frame<wbr/>Duration
6978to achieve manual exposure control.<wbr/></p>
6979<p>The requested aperture value may take several frames to reach the
6980requested value; the camera device will report the current (intermediate)
Zhijun He5169ce12014-01-24 16:48:25 -08006981aperture size in capture result metadata while the aperture is changing.<wbr/>
6982While 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 -08006983<p>When this is supported and <a href="#controls_android.control.aeMode">android.<wbr/>control.<wbr/>ae<wbr/>Mode</a> is one of
6984the ON modes,<wbr/> this will be overridden by the camera device
6985auto-exposure algorithm,<wbr/> the overridden values are then provided
6986back to the user in the corresponding result.<wbr/></p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006987 </td>
6988 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006989
6990
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08006991 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
6992 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006993
6994
6995 <tr class="entry" id="controls_android.lens.filterDensity">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006996 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08006997 android.<wbr/>lens.<wbr/>filter<wbr/>Density
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08006998 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08006999 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08007000 <span class="entry_type_name">float</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007001
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07007002 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007003
7004
7005 </td> <!-- entry_type -->
7006
7007 <td class="entry_description">
Ruben Brunk83eb3032014-01-15 16:12:07 -08007008 <p>State of lens neutral density filter(s).<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007009 </td>
7010
7011 <td class="entry_units">
Ruben Brunk83eb3032014-01-15 16:12:07 -08007012 Steps of Exposure Value (EV).<wbr/>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007013 </td>
7014
7015 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08007016 <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 -08007017 </td>
7018
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007019 <td class="entry_tags">
7020 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08007021 <li><a href="#tag_V1">V1</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007022 </ul>
7023 </td>
7024
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007025 </tr>
7026 <tr class="entries_header">
7027 <th class="th_details" colspan="5">Details</th>
7028 </tr>
7029 <tr class="entry_cont">
7030 <td class="entry_details" colspan="5">
Ruben Brunk83eb3032014-01-15 16:12:07 -08007031 <p>This will not be supported on most camera devices.<wbr/> On devices
7032where this is supported,<wbr/> this may only be set to one of the
7033values included in <a href="#static_android.lens.info.availableFilterDensities">android.<wbr/>lens.<wbr/>info.<wbr/>available<wbr/>Filter<wbr/>Densities</a>.<wbr/></p>
7034<p>Lens filters are typically used to lower the amount of light the
7035sensor is exposed to (measured in steps of EV).<wbr/> As used here,<wbr/> an EV
7036step is the standard logarithmic representation,<wbr/> which are
7037non-negative,<wbr/> and inversely proportional to the amount of light
7038hitting the sensor.<wbr/> For example,<wbr/> setting this to 0 would result
7039in no reduction of the incoming light,<wbr/> and setting this to 2 would
7040mean that the filter is set to reduce incoming light by two stops
7041(allowing 1/<wbr/>4 of the prior amount of light to the sensor).<wbr/></p>
Zhijun He5169ce12014-01-24 16:48:25 -08007042<p>It may take several frames before the lens filter density changes
7043to the requested value.<wbr/> While the filter density is still changing,<wbr/>
7044<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 -08007045 </td>
7046 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007047
7048
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007049 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
7050 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007051
7052
7053 <tr class="entry" id="controls_android.lens.focalLength">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007054 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08007055 android.<wbr/>lens.<wbr/>focal<wbr/>Length
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007056 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007057 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08007058 <span class="entry_type_name">float</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007059
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07007060 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007061
7062
7063 </td> <!-- entry_type -->
7064
7065 <td class="entry_description">
Ruben Brunkac9bbb92014-01-15 18:39:35 -08007066 <p>The current lens focal length; used for optical zoom.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007067 </td>
7068
7069 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -08007070 focal length in mm
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007071 </td>
7072
7073 <td class="entry_range">
Ruben Brunkac9bbb92014-01-15 18:39:35 -08007074 <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 -08007075 </td>
7076
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007077 <td class="entry_tags">
7078 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08007079 <li><a href="#tag_V1">V1</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007080 </ul>
7081 </td>
7082
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007083 </tr>
7084 <tr class="entries_header">
7085 <th class="th_details" colspan="5">Details</th>
7086 </tr>
7087 <tr class="entry_cont">
7088 <td class="entry_details" colspan="5">
Ruben Brunkac9bbb92014-01-15 18:39:35 -08007089 <p>This setting controls the physical focal length of the camera
7090device's lens.<wbr/> Changing the focal length changes the field of
7091view of the camera device,<wbr/> and is usually used for optical zoom.<wbr/></p>
7092<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
7093setting won't be applied instantaneously,<wbr/> and it may take several
Zhijun He5169ce12014-01-24 16:48:25 -08007094frames before the lens can change to the requested focal length.<wbr/>
Ruben Brunkac9bbb92014-01-15 18:39:35 -08007095While the focal length is still changing,<wbr/> <a href="#dynamic_android.lens.state">android.<wbr/>lens.<wbr/>state</a> will
7096be set to MOVING.<wbr/></p>
7097<p>This is expected not to be supported on most devices.<wbr/></p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007098 </td>
7099 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007100
7101
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007102 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
7103 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007104
7105
7106 <tr class="entry" id="controls_android.lens.focusDistance">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007107 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08007108 android.<wbr/>lens.<wbr/>focus<wbr/>Distance
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007109 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007110 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08007111 <span class="entry_type_name">float</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007112
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07007113 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007114
7115
7116 </td> <!-- entry_type -->
7117
7118 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08007119 <p>Distance to plane of sharpest focus,<wbr/>
7120measured from frontmost surface of the lens</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007121 </td>
7122
7123 <td class="entry_units">
Zhijun Hef92c76a2014-02-06 01:40:35 -08007124 See android.<wbr/>lens.<wbr/>info.<wbr/>focus<wbr/>Distance<wbr/>Calibration for details.<wbr/>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007125 </td>
7126
7127 <td class="entry_range">
Igor Murashkin6cb7c2c2014-01-10 15:12:40 -08007128 <p>&gt;= 0</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007129 </td>
7130
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007131 <td class="entry_tags">
7132 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08007133 <li><a href="#tag_BC">BC</a></li>
7134 <li><a href="#tag_V1">V1</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007135 </ul>
7136 </td>
7137
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007138 </tr>
7139 <tr class="entries_header">
7140 <th class="th_details" colspan="5">Details</th>
7141 </tr>
7142 <tr class="entry_cont">
7143 <td class="entry_details" colspan="5">
Zhijun He5169ce12014-01-24 16:48:25 -08007144 <p>0 means infinity focus.<wbr/> Used value will be clamped
7145to [0,<wbr/> <a href="#static_android.lens.info.minimumFocusDistance">android.<wbr/>lens.<wbr/>info.<wbr/>minimum<wbr/>Focus<wbr/>Distance</a>].<wbr/></p>
7146<p>Like <a href="#controls_android.lens.focalLength">android.<wbr/>lens.<wbr/>focal<wbr/>Length</a>,<wbr/> this setting won't be applied
7147instantaneously,<wbr/> and it may take several frames before the lens
7148can move to the requested focus distance.<wbr/> While the lens is still moving,<wbr/>
7149<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 -08007150 </td>
7151 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007152
7153
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007154 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
7155 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007156
7157
7158 <tr class="entry" id="controls_android.lens.opticalStabilizationMode">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007159 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08007160 android.<wbr/>lens.<wbr/>optical<wbr/>Stabilization<wbr/>Mode
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007161 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007162 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08007163 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007164
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07007165 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007166
7167 <ul class="entry_type_enum">
7168 <li>
7169 <span class="entry_type_enum_name">OFF</span>
Ruben Brunk218639c2014-01-15 18:09:41 -08007170 <span class="entry_type_enum_notes"><p>Optical stabilization is unavailable.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007171 </li>
7172 <li>
7173 <span class="entry_type_enum_name">ON</span>
7174 <span class="entry_type_enum_optional">optional</span>
Ruben Brunk218639c2014-01-15 18:09:41 -08007175 <span class="entry_type_enum_notes"><p>Optical stabilization is enabled.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007176 </li>
7177 </ul>
7178
7179 </td> <!-- entry_type -->
7180
7181 <td class="entry_description">
Ruben Brunk218639c2014-01-15 18:09:41 -08007182 <p>Sets whether the camera device uses optical image stabilization (OIS)
7183when capturing images.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007184 </td>
7185
7186 <td class="entry_units">
7187 </td>
7188
7189 <td class="entry_range">
Ruben Brunk218639c2014-01-15 18:09:41 -08007190 <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 -08007191 </td>
7192
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007193 <td class="entry_tags">
7194 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08007195 <li><a href="#tag_V1">V1</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007196 </ul>
7197 </td>
7198
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007199 </tr>
7200 <tr class="entries_header">
7201 <th class="th_details" colspan="5">Details</th>
7202 </tr>
7203 <tr class="entry_cont">
7204 <td class="entry_details" colspan="5">
Ruben Brunk218639c2014-01-15 18:09:41 -08007205 <p>OIS is used to compensate for motion blur due to small movements of
7206the camera during capture.<wbr/> Unlike digital image stabilization,<wbr/> OIS makes
7207use of mechanical elements to stabilize the camera sensor,<wbr/> and thus
7208allows for longer exposure times before camera shake becomes
7209apparent.<wbr/></p>
7210<p>This is not expected to be supported on most devices.<wbr/></p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007211 </td>
7212 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007213
7214
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007215 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
7216 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007217
7218
7219
7220 <!-- end of kind -->
7221 </tbody>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007222 <tr><td colspan="6" class="kind">static</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007223
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07007224 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007225 <tr>
7226 <th class="th_name">Property Name</th>
7227 <th class="th_type">Type</th>
7228 <th class="th_description">Description</th>
7229 <th class="th_units">Units</th>
7230 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007231 <th class="th_tags">Tags</th>
7232 </tr>
7233 </thead>
7234
7235 <tbody>
7236
7237
7238
7239
7240
7241
7242
7243
7244
7245
7246
7247
7248 <tr class="entry" id="static_android.lens.info.availableApertures">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007249 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08007250 android.<wbr/>lens.<wbr/>info.<wbr/>available<wbr/>Apertures
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007251 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007252 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08007253 <span class="entry_type_name">float</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007254 <span class="entry_type_container">x</span>
7255
7256 <span class="entry_type_array">
7257 n
7258 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07007259 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007260
7261
7262 </td> <!-- entry_type -->
7263
7264 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08007265 <p>List of supported aperture
Zhijun He1b58d382014-01-10 10:22:53 -08007266values.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007267 </td>
7268
7269 <td class="entry_units">
7270 </td>
7271
7272 <td class="entry_range">
Zhijun He5169ce12014-01-24 16:48:25 -08007273 <p>one entry required,<wbr/> &gt; 0</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007274 </td>
7275
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007276 <td class="entry_tags">
7277 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08007278 <li><a href="#tag_V1">V1</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007279 </ul>
7280 </td>
7281
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007282 </tr>
7283 <tr class="entries_header">
7284 <th class="th_details" colspan="5">Details</th>
7285 </tr>
7286 <tr class="entry_cont">
7287 <td class="entry_details" colspan="5">
Zhijun He1b58d382014-01-10 10:22:53 -08007288 <p>If the camera device doesn't support variable apertures,<wbr/>
7289listed value will be the fixed aperture.<wbr/></p>
7290<p>If the camera device supports variable apertures,<wbr/> the aperture value
7291in this list will be sorted in ascending order.<wbr/></p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007292 </td>
7293 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007294
7295
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007296 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
7297 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007298
7299
7300 <tr class="entry" id="static_android.lens.info.availableFilterDensities">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007301 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08007302 android.<wbr/>lens.<wbr/>info.<wbr/>available<wbr/>Filter<wbr/>Densities
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007303 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007304 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08007305 <span class="entry_type_name">float</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007306 <span class="entry_type_container">x</span>
7307
7308 <span class="entry_type_array">
7309 n
7310 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07007311 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007312
7313
7314 </td> <!-- entry_type -->
7315
7316 <td class="entry_description">
Ruben Brunk83eb3032014-01-15 16:12:07 -08007317 <p>List of supported neutral density filter values for
7318<a href="#controls_android.lens.filterDensity">android.<wbr/>lens.<wbr/>filter<wbr/>Density</a>.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007319 </td>
7320
7321 <td class="entry_units">
7322 </td>
7323
7324 <td class="entry_range">
Ruben Brunk83eb3032014-01-15 16:12:07 -08007325 <p>At least one value is required.<wbr/> Values must be &gt;= 0.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007326 </td>
7327
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007328 <td class="entry_tags">
7329 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08007330 <li><a href="#tag_V1">V1</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007331 </ul>
7332 </td>
7333
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007334 </tr>
7335 <tr class="entries_header">
7336 <th class="th_details" colspan="5">Details</th>
7337 </tr>
7338 <tr class="entry_cont">
7339 <td class="entry_details" colspan="5">
Ruben Brunk83eb3032014-01-15 16:12:07 -08007340 <p>If changing <a href="#controls_android.lens.filterDensity">android.<wbr/>lens.<wbr/>filter<wbr/>Density</a> is not supported,<wbr/>
7341availableFilterDensities must contain only 0.<wbr/> Otherwise,<wbr/> this
7342list contains only the exact filter density values available on
7343this camera device.<wbr/></p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007344 </td>
7345 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007346
7347
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007348 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
7349 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007350
7351
7352 <tr class="entry" id="static_android.lens.info.availableFocalLengths">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007353 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08007354 android.<wbr/>lens.<wbr/>info.<wbr/>available<wbr/>Focal<wbr/>Lengths
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007355 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007356 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08007357 <span class="entry_type_name">float</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007358 <span class="entry_type_container">x</span>
7359
7360 <span class="entry_type_array">
7361 n
7362 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07007363 <span class="entry_type_visibility"> [public]</span>
Ruben Brunkac9bbb92014-01-15 18:39:35 -08007364 <div class="entry_type_notes">The list of available focal lengths</div>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007365
7366
7367 </td> <!-- entry_type -->
7368
7369 <td class="entry_description">
Ruben Brunkac9bbb92014-01-15 18:39:35 -08007370 <p>The available focal lengths for this device for use with
7371<a href="#controls_android.lens.focalLength">android.<wbr/>lens.<wbr/>focal<wbr/>Length</a>.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007372 </td>
7373
7374 <td class="entry_units">
7375 </td>
7376
7377 <td class="entry_range">
Ruben Brunkac9bbb92014-01-15 18:39:35 -08007378 <p>Each value in this list must be &gt; 0.<wbr/> This list must
7379contain at least one value.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007380 </td>
7381
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007382 <td class="entry_tags">
7383 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08007384 <li><a href="#tag_BC">BC</a></li>
7385 <li><a href="#tag_V1">V1</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007386 </ul>
7387 </td>
7388
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007389 </tr>
7390 <tr class="entries_header">
7391 <th class="th_details" colspan="5">Details</th>
7392 </tr>
7393 <tr class="entry_cont">
7394 <td class="entry_details" colspan="5">
Ruben Brunkac9bbb92014-01-15 18:39:35 -08007395 <p>If optical zoom is not supported,<wbr/> this will only report
7396a single value corresponding to the static focal length of the
7397device.<wbr/> Otherwise,<wbr/> this will report every focal length supported
7398by the device.<wbr/></p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007399 </td>
7400 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007401
7402
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007403 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
7404 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007405
7406
7407 <tr class="entry" id="static_android.lens.info.availableOpticalStabilization">
Ruben Brunk218639c2014-01-15 18:09:41 -08007408 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08007409 android.<wbr/>lens.<wbr/>info.<wbr/>available<wbr/>Optical<wbr/>Stabilization
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007410 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007411 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08007412 <span class="entry_type_name">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007413 <span class="entry_type_container">x</span>
7414
7415 <span class="entry_type_array">
7416 n
7417 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07007418 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -08007419 <div class="entry_type_notes">list of enums</div>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007420
7421
7422 </td> <!-- entry_type -->
7423
7424 <td class="entry_description">
Ruben Brunk218639c2014-01-15 18:09:41 -08007425 <p>List containing a subset of the optical image
7426stabilization (OIS) modes specified in
7427<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 -08007428 </td>
7429
7430 <td class="entry_units">
7431 </td>
7432
7433 <td class="entry_range">
7434 </td>
7435
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007436 <td class="entry_tags">
7437 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08007438 <li><a href="#tag_V1">V1</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007439 </ul>
7440 </td>
7441
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007442 </tr>
Ruben Brunk218639c2014-01-15 18:09:41 -08007443 <tr class="entries_header">
7444 <th class="th_details" colspan="5">Details</th>
7445 </tr>
7446 <tr class="entry_cont">
7447 <td class="entry_details" colspan="5">
7448 <p>If OIS is not implemented for a given camera device,<wbr/> this should
7449contain only OFF.<wbr/></p>
7450 </td>
7451 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007452
7453
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007454 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
7455 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007456
7457
7458 <tr class="entry" id="static_android.lens.info.geometricCorrectionMap">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007459 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08007460 android.<wbr/>lens.<wbr/>info.<wbr/>geometric<wbr/>Correction<wbr/>Map
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007461 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007462 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08007463 <span class="entry_type_name">float</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007464 <span class="entry_type_container">x</span>
7465
7466 <span class="entry_type_array">
7467 2 x 3 x n x m
7468 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07007469 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -08007470 <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 -08007471
7472
7473 </td> <!-- entry_type -->
7474
7475 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08007476 <p>A low-resolution map for correction of
7477geometric distortions and chromatic aberrations,<wbr/> per
7478color channel</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007479 </td>
7480
7481 <td class="entry_units">
7482 </td>
7483
7484 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08007485 <p>N,<wbr/> M &gt;= 2</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007486 </td>
7487
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007488 <td class="entry_tags">
7489 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08007490 <li><a href="#tag_DNG">DNG</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007491 </ul>
7492 </td>
7493
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007494 </tr>
7495 <tr class="entries_header">
7496 <th class="th_details" colspan="5">Details</th>
7497 </tr>
7498 <tr class="entry_cont">
7499 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08007500 <p>[DNG wants a function instead].<wbr/> What's easiest
7501for implementers? With an array size (M,<wbr/> N),<wbr/> entry (i,<wbr/>
7502j) provides the destination for pixel (i/<wbr/>(M-1) * width,<wbr/>
7503j/<wbr/>(N-1) * height).<wbr/> Data is row-major,<wbr/> with each array
7504entry 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 -08007505 </td>
7506 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007507
7508
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007509 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
7510 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007511
7512
7513 <tr class="entry" id="static_android.lens.info.geometricCorrectionMapSize">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007514 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -08007515 android.<wbr/>lens.<wbr/>info.<wbr/>geometric<wbr/>Correction<wbr/>Map<wbr/>Size
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007516 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007517 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08007518 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007519 <span class="entry_type_container">x</span>
7520
7521 <span class="entry_type_array">
7522 2
7523 </span>
Igor Murashkinb8dc8812013-07-17 16:29:34 -07007524 <span class="entry_type_visibility"> [system as size]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -08007525 <div class="entry_type_notes">width and height of geometric correction map</div>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007526
7527
7528 </td> <!-- entry_type -->
7529
7530 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08007531 <p>Dimensions of geometric correction
7532map</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007533 </td>
7534
7535 <td class="entry_units">
7536 </td>
7537
7538 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08007539 <p>Both values &gt;= 2</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007540 </td>
7541
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007542 <td class="entry_tags">
7543 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08007544 <li><a href="#tag_V1">V1</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007545 </ul>
7546 </td>
7547
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007548 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007549
7550
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007551 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
7552 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007553
7554
7555 <tr class="entry" id="static_android.lens.info.hyperfocalDistance">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007556 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08007557 android.<wbr/>lens.<wbr/>info.<wbr/>hyperfocal<wbr/>Distance
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007558 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007559 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08007560 <span class="entry_type_name">float</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007561
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07007562 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007563
7564
7565 </td> <!-- entry_type -->
7566
7567 <td class="entry_description">
Zhijun Hef92c76a2014-02-06 01:40:35 -08007568 <p>Optional.<wbr/> Hyperfocal distance for this lens.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007569 </td>
7570
7571 <td class="entry_units">
Zhijun Hef92c76a2014-02-06 01:40:35 -08007572 See android.<wbr/>lens.<wbr/>info.<wbr/>focus<wbr/>Distance<wbr/>Calibration for details.<wbr/>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007573 </td>
7574
7575 <td class="entry_range">
Igor Murashkin6cb7c2c2014-01-10 15:12:40 -08007576 <p>&gt;= 0</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007577 </td>
7578
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007579 <td class="entry_tags">
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007580 </td>
7581
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007582 </tr>
7583 <tr class="entries_header">
7584 <th class="th_details" colspan="5">Details</th>
7585 </tr>
7586 <tr class="entry_cont">
7587 <td class="entry_details" colspan="5">
Zhijun Hef92c76a2014-02-06 01:40:35 -08007588 <p>If the lens is fixed focus,<wbr/> the camera device will report 0.<wbr/></p>
7589<p>If the lens is not fixed focus,<wbr/> the camera device will report this
7590field 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 -08007591 </td>
7592 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007593
7594
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007595 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
7596 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007597
7598
7599 <tr class="entry" id="static_android.lens.info.minimumFocusDistance">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007600 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08007601 android.<wbr/>lens.<wbr/>info.<wbr/>minimum<wbr/>Focus<wbr/>Distance
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007602 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007603 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08007604 <span class="entry_type_name">float</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007605
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07007606 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007607
7608
7609 </td> <!-- entry_type -->
7610
7611 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08007612 <p>Shortest distance from frontmost surface
Zhijun Hef92c76a2014-02-06 01:40:35 -08007613of the lens that can be focused correctly.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007614 </td>
7615
7616 <td class="entry_units">
Zhijun Hef92c76a2014-02-06 01:40:35 -08007617 See android.<wbr/>lens.<wbr/>info.<wbr/>focus<wbr/>Distance<wbr/>Calibration for details.<wbr/>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007618 </td>
7619
7620 <td class="entry_range">
Igor Murashkin6cb7c2c2014-01-10 15:12:40 -08007621 <p>&gt;= 0</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007622 </td>
7623
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007624 <td class="entry_tags">
7625 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08007626 <li><a href="#tag_V1">V1</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007627 </ul>
7628 </td>
7629
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007630 </tr>
7631 <tr class="entries_header">
7632 <th class="th_details" colspan="5">Details</th>
7633 </tr>
7634 <tr class="entry_cont">
7635 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08007636 <p>If the lens is fixed-focus,<wbr/> this should be
Zhijun Hef92c76a2014-02-06 01:40:35 -080076370.<wbr/></p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007638 </td>
7639 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007640
7641
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007642 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
7643 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007644
7645
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007646 <tr class="entry" id="static_android.lens.info.shadingMapSize">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007647 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08007648 android.<wbr/>lens.<wbr/>info.<wbr/>shading<wbr/>Map<wbr/>Size
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007649 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007650 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08007651 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007652 <span class="entry_type_container">x</span>
7653
7654 <span class="entry_type_array">
7655 2
7656 </span>
Igor Murashkinb8dc8812013-07-17 16:29:34 -07007657 <span class="entry_type_visibility"> [public as size]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -08007658 <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 -08007659
7660
7661 </td> <!-- entry_type -->
7662
7663 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08007664 <p>Dimensions of lens shading map.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007665 </td>
7666
7667 <td class="entry_units">
7668 </td>
7669
7670 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08007671 <p>Both values &gt;= 1</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007672 </td>
7673
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007674 <td class="entry_tags">
7675 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08007676 <li><a href="#tag_V1">V1</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007677 </ul>
7678 </td>
7679
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007680 </tr>
7681 <tr class="entries_header">
7682 <th class="th_details" colspan="5">Details</th>
7683 </tr>
7684 <tr class="entry_cont">
7685 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08007686 <p>The map should be on the order of 30-40 rows and columns,<wbr/> and
7687must be smaller than 64x64.<wbr/></p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007688 </td>
7689 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007690
7691
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007692 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
7693 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007694
Zhijun Hef92c76a2014-02-06 01:40:35 -08007695
7696 <tr class="entry" id="static_android.lens.info.focusDistanceCalibration">
7697 <td class="entry_name" rowspan="3">
7698 android.<wbr/>lens.<wbr/>info.<wbr/>focus<wbr/>Distance<wbr/>Calibration
7699 </td>
7700 <td class="entry_type">
7701 <span class="entry_type_name entry_type_name_enum">byte</span>
7702
7703 <span class="entry_type_visibility"> [public]</span>
7704
7705 <ul class="entry_type_enum">
7706 <li>
7707 <span class="entry_type_enum_name">UNCALIBRATED</span>
7708 <span class="entry_type_enum_notes"><p>The lens focus distance is not accurate,<wbr/> and the units used for
7709<a href="#controls_android.lens.focusDistance">android.<wbr/>lens.<wbr/>focus<wbr/>Distance</a> do not correspond to any physical units.<wbr/>
7710Setting the lens to the same focus distance on separate occasions may
7711result in a different real focus distance,<wbr/> depending on factors such
7712as the orientation of the device,<wbr/> the age of the focusing mechanism,<wbr/>
7713and the device temperature.<wbr/> The focus distance value will still be
7714in 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
7715represents the farthest focus.<wbr/></p></span>
7716 </li>
7717 <li>
7718 <span class="entry_type_enum_name">APPROXIMATE</span>
7719 <span class="entry_type_enum_notes"><p>The lens focus distance is measured in diopters.<wbr/> However,<wbr/> setting the lens
7720to the same focus distance on separate occasions may result in a
7721different real focus distance,<wbr/> depending on factors such as the
7722orientation of the device,<wbr/> the age of the focusing mechanism,<wbr/> and
7723the device temperature.<wbr/></p></span>
7724 </li>
7725 <li>
7726 <span class="entry_type_enum_name">CALIBRATED</span>
7727 <span class="entry_type_enum_notes"><p>The lens focus distance is measured in diopters.<wbr/> The lens mechanism is
7728calibrated so that setting the same focus distance is repeatable on
7729multiple occasions with good accuracy,<wbr/> and the focus distance corresponds
7730to the real physical distance to the plane of best focus.<wbr/></p></span>
7731 </li>
7732 </ul>
7733
7734 </td> <!-- entry_type -->
7735
7736 <td class="entry_description">
7737 <p>The lens focus distance calibration quality.<wbr/></p>
7738 </td>
7739
7740 <td class="entry_units">
7741 </td>
7742
7743 <td class="entry_range">
7744 </td>
7745
7746 <td class="entry_tags">
7747 <ul class="entry_tags">
7748 <li><a href="#tag_V1">V1</a></li>
7749 </ul>
7750 </td>
7751
7752 </tr>
7753 <tr class="entries_header">
7754 <th class="th_details" colspan="5">Details</th>
7755 </tr>
7756 <tr class="entry_cont">
7757 <td class="entry_details" colspan="5">
7758 <p>The lens focus distance calibration quality determines the reliability of
7759focus related metadata entries,<wbr/> i.<wbr/>e.<wbr/> <a href="#controls_android.lens.focusDistance">android.<wbr/>lens.<wbr/>focus<wbr/>Distance</a>,<wbr/>
7760<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
7761<a href="#static_android.lens.info.minimumFocusDistance">android.<wbr/>lens.<wbr/>info.<wbr/>minimum<wbr/>Focus<wbr/>Distance</a>.<wbr/></p>
7762 </td>
7763 </tr>
7764
7765
7766 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
7767 <!-- end of entry -->
7768
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007769
7770
7771
7772
7773 <tr class="entry" id="static_android.lens.facing">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007774 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -08007775 android.<wbr/>lens.<wbr/>facing
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007776 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007777 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08007778 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007779
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07007780 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007781
7782 <ul class="entry_type_enum">
7783 <li>
7784 <span class="entry_type_enum_name">FRONT</span>
7785 </li>
7786 <li>
7787 <span class="entry_type_enum_name">BACK</span>
7788 </li>
7789 </ul>
7790
7791 </td> <!-- entry_type -->
7792
7793 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08007794 <p>Direction the camera faces relative to
7795device screen</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007796 </td>
7797
7798 <td class="entry_units">
7799 </td>
7800
7801 <td class="entry_range">
7802 </td>
7803
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007804 <td class="entry_tags">
7805 </td>
7806
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007807 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007808
7809
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007810 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
7811 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007812
7813
7814 <tr class="entry" id="static_android.lens.opticalAxisAngle">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007815 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08007816 android.<wbr/>lens.<wbr/>optical<wbr/>Axis<wbr/>Angle
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007817 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007818 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08007819 <span class="entry_type_name">float</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007820 <span class="entry_type_container">x</span>
7821
7822 <span class="entry_type_array">
7823 2
7824 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07007825 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -08007826 <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 -08007827
7828
7829 </td> <!-- entry_type -->
7830
7831 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08007832 <p>Relative angle of camera optical axis to the
7833perpendicular axis from the display</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007834 </td>
7835
7836 <td class="entry_units">
7837 </td>
7838
7839 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08007840 <p>[0-90) for first angle,<wbr/> [0-360) for second</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007841 </td>
7842
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007843 <td class="entry_tags">
7844 <ul class="entry_tags">
7845 <li><a href="#tag_ADV">ADV</a></li>
7846 </ul>
7847 </td>
7848
7849 </tr>
7850 <tr class="entries_header">
7851 <th class="th_details" colspan="5">Details</th>
7852 </tr>
7853 <tr class="entry_cont">
7854 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08007855 <p>Examples:</p>
7856<p>(0,<wbr/>0) means that the camera optical axis
Igor Murashkin8aa2a112013-12-09 12:06:17 -08007857is perpendicular to the display surface;</p>
Igor Murashkin0b080452013-12-27 15:30:25 -08007858<p>(45,<wbr/>0) means that the camera points 45 degrees up when
Igor Murashkin8aa2a112013-12-09 12:06:17 -08007859device is held upright;</p>
Igor Murashkin0b080452013-12-27 15:30:25 -08007860<p>(45,<wbr/>90) means the camera points 45 degrees to the right when
7861the device is held upright.<wbr/></p>
Igor Murashkin8aa2a112013-12-09 12:06:17 -08007862<p>Use FACING field to determine perpendicular outgoing
Igor Murashkin0b080452013-12-27 15:30:25 -08007863direction</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007864 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007865 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007866
7867
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007868 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
7869 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007870
7871
7872 <tr class="entry" id="static_android.lens.position">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007873 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -08007874 android.<wbr/>lens.<wbr/>position
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007875 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007876 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08007877 <span class="entry_type_name">float</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007878 <span class="entry_type_container">x</span>
7879
7880 <span class="entry_type_array">
7881 3, location in mm, in the sensor coordinate
7882 system
7883 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07007884 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007885
7886
7887 </td> <!-- entry_type -->
7888
7889 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08007890 <p>Coordinates of camera optical axis on
7891device</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007892 </td>
7893
7894 <td class="entry_units">
7895 </td>
7896
7897 <td class="entry_range">
7898 </td>
7899
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007900 <td class="entry_tags">
7901 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08007902 <li><a href="#tag_V1">V1</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007903 </ul>
7904 </td>
7905
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007906 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007907
7908
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007909 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
7910 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007911
7912
7913
7914 <!-- end of kind -->
7915 </tbody>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007916 <tr><td colspan="6" class="kind">dynamic</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007917
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07007918 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007919 <tr>
7920 <th class="th_name">Property Name</th>
7921 <th class="th_type">Type</th>
7922 <th class="th_description">Description</th>
7923 <th class="th_units">Units</th>
7924 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007925 <th class="th_tags">Tags</th>
7926 </tr>
7927 </thead>
7928
7929 <tbody>
7930
7931
7932
7933
7934
7935
7936
7937
7938
7939
7940 <tr class="entry" id="dynamic_android.lens.aperture">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007941 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08007942 android.<wbr/>lens.<wbr/>aperture
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007943 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007944 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08007945 <span class="entry_type_name">float</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007946
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07007947 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007948
7949
7950 </td> <!-- entry_type -->
7951
7952 <td class="entry_description">
Zhijun He1b58d382014-01-10 10:22:53 -08007953 <p>The ratio of lens focal length to the effective
7954aperture diameter.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007955 </td>
7956
7957 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -08007958 f-number (f/<wbr/>NNN)
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007959 </td>
7960
7961 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08007962 <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 -08007963 </td>
7964
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007965 <td class="entry_tags">
7966 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08007967 <li><a href="#tag_V1">V1</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007968 </ul>
7969 </td>
7970
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007971 </tr>
7972 <tr class="entries_header">
7973 <th class="th_details" colspan="5">Details</th>
7974 </tr>
7975 <tr class="entry_cont">
7976 <td class="entry_details" colspan="5">
Zhijun He1b58d382014-01-10 10:22:53 -08007977 <p>This will only be supported on the camera devices that
7978have variable aperture lens.<wbr/> The aperture value can only be
7979one of the values listed in <a href="#static_android.lens.info.availableApertures">android.<wbr/>lens.<wbr/>info.<wbr/>available<wbr/>Apertures</a>.<wbr/></p>
7980<p>When this is supported and <a href="#controls_android.control.aeMode">android.<wbr/>control.<wbr/>ae<wbr/>Mode</a> is OFF,<wbr/>
7981this can be set along with <a href="#controls_android.sensor.exposureTime">android.<wbr/>sensor.<wbr/>exposure<wbr/>Time</a>,<wbr/>
7982<a href="#controls_android.sensor.sensitivity">android.<wbr/>sensor.<wbr/>sensitivity</a>,<wbr/> and android.<wbr/>sensor.<wbr/>frame<wbr/>Duration
7983to achieve manual exposure control.<wbr/></p>
7984<p>The requested aperture value may take several frames to reach the
7985requested value; the camera device will report the current (intermediate)
Zhijun He5169ce12014-01-24 16:48:25 -08007986aperture size in capture result metadata while the aperture is changing.<wbr/>
7987While 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 -08007988<p>When this is supported and <a href="#controls_android.control.aeMode">android.<wbr/>control.<wbr/>ae<wbr/>Mode</a> is one of
7989the ON modes,<wbr/> this will be overridden by the camera device
7990auto-exposure algorithm,<wbr/> the overridden values are then provided
7991back to the user in the corresponding result.<wbr/></p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007992 </td>
7993 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08007994
7995
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08007996 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
7997 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08007998
7999
8000 <tr class="entry" id="dynamic_android.lens.filterDensity">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008001 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08008002 android.<wbr/>lens.<wbr/>filter<wbr/>Density
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008003 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008004 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08008005 <span class="entry_type_name">float</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008006
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07008007 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008008
8009
8010 </td> <!-- entry_type -->
8011
8012 <td class="entry_description">
Ruben Brunk83eb3032014-01-15 16:12:07 -08008013 <p>State of lens neutral density filter(s).<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008014 </td>
8015
8016 <td class="entry_units">
Ruben Brunk83eb3032014-01-15 16:12:07 -08008017 Steps of Exposure Value (EV).<wbr/>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008018 </td>
8019
8020 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08008021 <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 -08008022 </td>
8023
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008024 <td class="entry_tags">
8025 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08008026 <li><a href="#tag_V1">V1</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008027 </ul>
8028 </td>
8029
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008030 </tr>
8031 <tr class="entries_header">
8032 <th class="th_details" colspan="5">Details</th>
8033 </tr>
8034 <tr class="entry_cont">
8035 <td class="entry_details" colspan="5">
Ruben Brunk83eb3032014-01-15 16:12:07 -08008036 <p>This will not be supported on most camera devices.<wbr/> On devices
8037where this is supported,<wbr/> this may only be set to one of the
8038values included in <a href="#static_android.lens.info.availableFilterDensities">android.<wbr/>lens.<wbr/>info.<wbr/>available<wbr/>Filter<wbr/>Densities</a>.<wbr/></p>
8039<p>Lens filters are typically used to lower the amount of light the
8040sensor is exposed to (measured in steps of EV).<wbr/> As used here,<wbr/> an EV
8041step is the standard logarithmic representation,<wbr/> which are
8042non-negative,<wbr/> and inversely proportional to the amount of light
8043hitting the sensor.<wbr/> For example,<wbr/> setting this to 0 would result
8044in no reduction of the incoming light,<wbr/> and setting this to 2 would
8045mean that the filter is set to reduce incoming light by two stops
8046(allowing 1/<wbr/>4 of the prior amount of light to the sensor).<wbr/></p>
Zhijun He5169ce12014-01-24 16:48:25 -08008047<p>It may take several frames before the lens filter density changes
8048to the requested value.<wbr/> While the filter density is still changing,<wbr/>
8049<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 -08008050 </td>
8051 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008052
8053
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008054 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
8055 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008056
8057
8058 <tr class="entry" id="dynamic_android.lens.focalLength">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008059 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08008060 android.<wbr/>lens.<wbr/>focal<wbr/>Length
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008061 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008062 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08008063 <span class="entry_type_name">float</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008064
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07008065 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008066
8067
8068 </td> <!-- entry_type -->
8069
8070 <td class="entry_description">
Ruben Brunkac9bbb92014-01-15 18:39:35 -08008071 <p>The current lens focal length; used for optical zoom.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008072 </td>
8073
8074 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -08008075 focal length in mm
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008076 </td>
8077
8078 <td class="entry_range">
Ruben Brunkac9bbb92014-01-15 18:39:35 -08008079 <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 -08008080 </td>
8081
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008082 <td class="entry_tags">
8083 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08008084 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008085 </ul>
8086 </td>
8087
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008088 </tr>
8089 <tr class="entries_header">
8090 <th class="th_details" colspan="5">Details</th>
8091 </tr>
8092 <tr class="entry_cont">
8093 <td class="entry_details" colspan="5">
Ruben Brunkac9bbb92014-01-15 18:39:35 -08008094 <p>This setting controls the physical focal length of the camera
8095device's lens.<wbr/> Changing the focal length changes the field of
8096view of the camera device,<wbr/> and is usually used for optical zoom.<wbr/></p>
8097<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
8098setting won't be applied instantaneously,<wbr/> and it may take several
Zhijun He5169ce12014-01-24 16:48:25 -08008099frames before the lens can change to the requested focal length.<wbr/>
Ruben Brunkac9bbb92014-01-15 18:39:35 -08008100While the focal length is still changing,<wbr/> <a href="#dynamic_android.lens.state">android.<wbr/>lens.<wbr/>state</a> will
8101be set to MOVING.<wbr/></p>
8102<p>This is expected not to be supported on most devices.<wbr/></p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008103 </td>
8104 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008105
8106
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008107 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
8108 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008109
8110
8111 <tr class="entry" id="dynamic_android.lens.focusDistance">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008112 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08008113 android.<wbr/>lens.<wbr/>focus<wbr/>Distance
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008114 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008115 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08008116 <span class="entry_type_name">float</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008117
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07008118 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008119
8120
8121 </td> <!-- entry_type -->
8122
8123 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08008124 <p>Distance to plane of sharpest focus,<wbr/>
8125measured from frontmost surface of the lens</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008126 </td>
8127
8128 <td class="entry_units">
Zhijun Hef92c76a2014-02-06 01:40:35 -08008129 See android.<wbr/>lens.<wbr/>info.<wbr/>focus<wbr/>Distance<wbr/>Calibration for details.<wbr/>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008130 </td>
8131
8132 <td class="entry_range">
Igor Murashkin6cb7c2c2014-01-10 15:12:40 -08008133 <p>&gt;= 0</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008134 </td>
8135
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008136 <td class="entry_tags">
8137 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08008138 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008139 </ul>
8140 </td>
8141
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008142 </tr>
8143 <tr class="entries_header">
8144 <th class="th_details" colspan="5">Details</th>
8145 </tr>
8146 <tr class="entry_cont">
8147 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08008148 <p>Should be zero for fixed-focus cameras</p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008149 </td>
8150 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008151
8152
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008153 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
8154 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008155
8156
8157 <tr class="entry" id="dynamic_android.lens.focusRange">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008158 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08008159 android.<wbr/>lens.<wbr/>focus<wbr/>Range
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008160 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008161 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08008162 <span class="entry_type_name">float</span>
Zhijun He50451ad2013-09-26 10:27:47 -07008163 <span class="entry_type_container">x</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008164
Zhijun He50451ad2013-09-26 10:27:47 -07008165 <span class="entry_type_array">
8166 2
8167 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07008168 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -08008169 <div class="entry_type_notes">Range of scene distances that are in focus</div>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008170
8171
8172 </td> <!-- entry_type -->
8173
8174 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08008175 <p>The range of scene distances that are in
8176sharp focus (depth of field)</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008177 </td>
8178
8179 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -08008180 pair of focus distances in diopters: (near,<wbr/>
Zhijun Hef92c76a2014-02-06 01:40:35 -08008181 far),<wbr/> see android.<wbr/>lens.<wbr/>info.<wbr/>focus<wbr/>Distance<wbr/>Calibration for details.<wbr/>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008182 </td>
8183
8184 <td class="entry_range">
Igor Murashkin6cb7c2c2014-01-10 15:12:40 -08008185 <p>&gt;=0</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008186 </td>
8187
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008188 <td class="entry_tags">
8189 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08008190 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008191 </ul>
8192 </td>
8193
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008194 </tr>
8195 <tr class="entries_header">
8196 <th class="th_details" colspan="5">Details</th>
8197 </tr>
8198 <tr class="entry_cont">
8199 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08008200 <p>If variable focus not supported,<wbr/> can still report
8201fixed depth of field range</p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008202 </td>
8203 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008204
8205
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008206 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
8207 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008208
8209
8210 <tr class="entry" id="dynamic_android.lens.opticalStabilizationMode">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008211 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08008212 android.<wbr/>lens.<wbr/>optical<wbr/>Stabilization<wbr/>Mode
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008213 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008214 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08008215 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008216
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07008217 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008218
8219 <ul class="entry_type_enum">
8220 <li>
8221 <span class="entry_type_enum_name">OFF</span>
Ruben Brunk218639c2014-01-15 18:09:41 -08008222 <span class="entry_type_enum_notes"><p>Optical stabilization is unavailable.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008223 </li>
8224 <li>
8225 <span class="entry_type_enum_name">ON</span>
8226 <span class="entry_type_enum_optional">optional</span>
Ruben Brunk218639c2014-01-15 18:09:41 -08008227 <span class="entry_type_enum_notes"><p>Optical stabilization is enabled.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008228 </li>
8229 </ul>
8230
8231 </td> <!-- entry_type -->
8232
8233 <td class="entry_description">
Ruben Brunk218639c2014-01-15 18:09:41 -08008234 <p>Sets whether the camera device uses optical image stabilization (OIS)
8235when capturing images.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008236 </td>
8237
8238 <td class="entry_units">
8239 </td>
8240
8241 <td class="entry_range">
Ruben Brunk218639c2014-01-15 18:09:41 -08008242 <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 -08008243 </td>
8244
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008245 <td class="entry_tags">
8246 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08008247 <li><a href="#tag_V1">V1</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008248 </ul>
8249 </td>
8250
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008251 </tr>
8252 <tr class="entries_header">
8253 <th class="th_details" colspan="5">Details</th>
8254 </tr>
8255 <tr class="entry_cont">
8256 <td class="entry_details" colspan="5">
Ruben Brunk218639c2014-01-15 18:09:41 -08008257 <p>OIS is used to compensate for motion blur due to small movements of
8258the camera during capture.<wbr/> Unlike digital image stabilization,<wbr/> OIS makes
8259use of mechanical elements to stabilize the camera sensor,<wbr/> and thus
8260allows for longer exposure times before camera shake becomes
8261apparent.<wbr/></p>
8262<p>This is not expected to be supported on most devices.<wbr/></p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008263 </td>
8264 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008265
8266
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008267 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
8268 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008269
8270
8271 <tr class="entry" id="dynamic_android.lens.state">
Zhijun He5169ce12014-01-24 16:48:25 -08008272 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08008273 android.<wbr/>lens.<wbr/>state
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008274 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008275 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08008276 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008277
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07008278 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008279
8280 <ul class="entry_type_enum">
8281 <li>
8282 <span class="entry_type_enum_name">STATIONARY</span>
Zhijun He5169ce12014-01-24 16:48:25 -08008283 <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
8284android.<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 -08008285 </li>
Igor Murashkin0e323a12013-09-06 11:50:48 -07008286 <li>
8287 <span class="entry_type_enum_name">MOVING</span>
Zhijun He5169ce12014-01-24 16:48:25 -08008288 <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
8289android.<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 -07008290 </li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008291 </ul>
8292
8293 </td> <!-- entry_type -->
8294
8295 <td class="entry_description">
Zhijun He5169ce12014-01-24 16:48:25 -08008296 <p>Current lens status.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008297 </td>
8298
8299 <td class="entry_units">
8300 </td>
8301
8302 <td class="entry_range">
8303 </td>
8304
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008305 <td class="entry_tags">
8306 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08008307 <li><a href="#tag_V1">V1</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008308 </ul>
8309 </td>
8310
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008311 </tr>
Zhijun He5169ce12014-01-24 16:48:25 -08008312 <tr class="entries_header">
8313 <th class="th_details" colspan="5">Details</th>
8314 </tr>
8315 <tr class="entry_cont">
8316 <td class="entry_details" colspan="5">
8317 <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/>
8318<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/>
8319they may take several frames to reach the requested values.<wbr/> This state indicates
8320the current status of the lens parameters.<wbr/></p>
8321<p>When the state is STATIONARY,<wbr/> the lens parameters are not changing.<wbr/> This could be
8322either because the parameters are all fixed,<wbr/> or because the lens has had enough
8323time to reach the most recently-requested values.<wbr/>
8324If all these lens parameters are not changable for a camera device,<wbr/> as listed below:</p>
8325<ul>
8326<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
8327<a href="#controls_android.lens.focusDistance">android.<wbr/>lens.<wbr/>focus<wbr/>Distance</a> parameter will always be 0.<wbr/></li>
8328<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/>
8329which means the optical zoom is not supported.<wbr/></li>
8330<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>
8331<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>
8332</ul>
8333<p>Then this state will always be STATIONARY.<wbr/></p>
8334<p>When the state is MOVING,<wbr/> it indicates that at least one of the lens parameters
8335is changing.<wbr/></p>
8336 </td>
8337 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008338
8339
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008340 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
8341 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008342
8343
8344
8345 <!-- end of kind -->
8346 </tbody>
8347
8348 <!-- end of section -->
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008349 <tr><td colspan="6" id="section_noiseReduction" class="section">noiseReduction</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008350
8351
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008352 <tr><td colspan="6" class="kind">controls</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008353
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07008354 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008355 <tr>
8356 <th class="th_name">Property Name</th>
8357 <th class="th_type">Type</th>
8358 <th class="th_description">Description</th>
8359 <th class="th_units">Units</th>
8360 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008361 <th class="th_tags">Tags</th>
8362 </tr>
8363 </thead>
8364
8365 <tbody>
8366
8367
8368
8369
8370
8371
8372
8373
8374
8375
8376 <tr class="entry" id="controls_android.noiseReduction.mode">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008377 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08008378 android.<wbr/>noise<wbr/>Reduction.<wbr/>mode
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008379 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008380 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08008381 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008382
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07008383 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008384
8385 <ul class="entry_type_enum">
8386 <li>
8387 <span class="entry_type_enum_name">OFF</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08008388 <span class="entry_type_enum_notes"><p>No noise reduction is applied</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008389 </li>
8390 <li>
8391 <span class="entry_type_enum_name">FAST</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08008392 <span class="entry_type_enum_notes"><p>Must not slow down frame rate relative to sensor
8393output</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008394 </li>
8395 <li>
8396 <span class="entry_type_enum_name">HIGH_QUALITY</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08008397 <span class="entry_type_enum_notes"><p>May slow down frame rate to provide highest
8398quality</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008399 </li>
8400 </ul>
8401
8402 </td> <!-- entry_type -->
8403
8404 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08008405 <p>Mode of operation for the noise reduction
8406algorithm</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008407 </td>
8408
8409 <td class="entry_units">
8410 </td>
8411
8412 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08008413 <p>android.<wbr/>noise<wbr/>Reduction.<wbr/>available<wbr/>Modes</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008414 </td>
8415
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008416 <td class="entry_tags">
8417 <ul class="entry_tags">
8418 <li><a href="#tag_V1">V1</a></li>
8419 </ul>
8420 </td>
8421
8422 </tr>
8423 <tr class="entries_header">
8424 <th class="th_details" colspan="5">Details</th>
8425 </tr>
8426 <tr class="entry_cont">
8427 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08008428 <p>Noise filtering control.<wbr/> OFF means no noise reduction
8429will be applied by the HAL.<wbr/></p>
Zhijun Hef90eeaf2014-01-16 12:13:35 -08008430<p>FAST/<wbr/>HIGH_<wbr/>QUALITY both mean camera device determined noise filtering
8431will be applied.<wbr/> HIGH_<wbr/>QUALITY mode indicates that the camera device
8432will use the highest-quality noise filtering algorithms,<wbr/>
8433even if it slows down capture rate.<wbr/> FAST means the camera device should not
Igor Murashkin0b080452013-12-27 15:30:25 -08008434slow down capture rate when applying noise filtering.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008435 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008436 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008437
8438
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008439 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
8440 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008441
8442
8443 <tr class="entry" id="controls_android.noiseReduction.strength">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008444 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -08008445 android.<wbr/>noise<wbr/>Reduction.<wbr/>strength
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008446 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008447 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08008448 <span class="entry_type_name">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008449
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07008450 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008451
8452
8453 </td> <!-- entry_type -->
8454
8455 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08008456 <p>Control the amount of noise reduction
8457applied to the images</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008458 </td>
8459
8460 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -08008461 1-10; 10 is max noise reduction
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008462 </td>
8463
8464 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08008465 <p>1 - 10</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008466 </td>
8467
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008468 <td class="entry_tags">
8469 </td>
8470
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008471 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008472
8473
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008474 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
8475 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008476
8477
8478
8479 <!-- end of kind -->
8480 </tbody>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008481 <tr><td colspan="6" class="kind">dynamic</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008482
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07008483 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008484 <tr>
8485 <th class="th_name">Property Name</th>
8486 <th class="th_type">Type</th>
8487 <th class="th_description">Description</th>
8488 <th class="th_units">Units</th>
8489 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008490 <th class="th_tags">Tags</th>
8491 </tr>
8492 </thead>
8493
8494 <tbody>
8495
8496
8497
8498
8499
8500
8501
8502
8503
8504
8505 <tr class="entry" id="dynamic_android.noiseReduction.mode">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008506 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08008507 android.<wbr/>noise<wbr/>Reduction.<wbr/>mode
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008508 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008509 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08008510 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008511
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07008512 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008513
8514 <ul class="entry_type_enum">
8515 <li>
8516 <span class="entry_type_enum_name">OFF</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08008517 <span class="entry_type_enum_notes"><p>No noise reduction is applied</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008518 </li>
8519 <li>
8520 <span class="entry_type_enum_name">FAST</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08008521 <span class="entry_type_enum_notes"><p>Must not slow down frame rate relative to sensor
8522output</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008523 </li>
8524 <li>
8525 <span class="entry_type_enum_name">HIGH_QUALITY</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08008526 <span class="entry_type_enum_notes"><p>May slow down frame rate to provide highest
8527quality</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008528 </li>
8529 </ul>
8530
8531 </td> <!-- entry_type -->
8532
8533 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08008534 <p>Mode of operation for the noise reduction
8535algorithm</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008536 </td>
8537
8538 <td class="entry_units">
8539 </td>
8540
8541 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08008542 <p>android.<wbr/>noise<wbr/>Reduction.<wbr/>available<wbr/>Modes</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008543 </td>
8544
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008545 <td class="entry_tags">
8546 <ul class="entry_tags">
8547 <li><a href="#tag_V1">V1</a></li>
8548 </ul>
8549 </td>
8550
8551 </tr>
8552 <tr class="entries_header">
8553 <th class="th_details" colspan="5">Details</th>
8554 </tr>
8555 <tr class="entry_cont">
8556 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08008557 <p>Noise filtering control.<wbr/> OFF means no noise reduction
8558will be applied by the HAL.<wbr/></p>
Zhijun Hef90eeaf2014-01-16 12:13:35 -08008559<p>FAST/<wbr/>HIGH_<wbr/>QUALITY both mean camera device determined noise filtering
8560will be applied.<wbr/> HIGH_<wbr/>QUALITY mode indicates that the camera device
8561will use the highest-quality noise filtering algorithms,<wbr/>
8562even if it slows down capture rate.<wbr/> FAST means the camera device should not
Igor Murashkin0b080452013-12-27 15:30:25 -08008563slow down capture rate when applying noise filtering.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008564 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008565 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008566
8567
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008568 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
8569 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008570
8571
8572
8573 <!-- end of kind -->
8574 </tbody>
8575
8576 <!-- end of section -->
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008577 <tr><td colspan="6" id="section_quirks" class="section">quirks</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008578
8579
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008580 <tr><td colspan="6" class="kind">static</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008581
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07008582 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008583 <tr>
8584 <th class="th_name">Property Name</th>
8585 <th class="th_type">Type</th>
8586 <th class="th_description">Description</th>
8587 <th class="th_units">Units</th>
8588 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008589 <th class="th_tags">Tags</th>
8590 </tr>
8591 </thead>
8592
8593 <tbody>
8594
8595
8596
8597
8598
8599
8600
8601
8602
8603
8604 <tr class="entry" id="static_android.quirks.meteringCropRegion">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008605 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08008606 android.<wbr/>quirks.<wbr/>metering<wbr/>Crop<wbr/>Region
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008607 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008608 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08008609 <span class="entry_type_name">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008610
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07008611 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008612
8613
8614 </td> <!-- entry_type -->
8615
8616 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08008617 <p>If set to 1,<wbr/> the camera service does not
Igor Murashkin8aa2a112013-12-09 12:06:17 -08008618scale 'normalized' coordinates with respect to the crop
Igor Murashkin0b080452013-12-27 15:30:25 -08008619region.<wbr/> This applies to metering input (a{e,<wbr/>f,<wbr/>wb}Region
8620and output (face rectangles).<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008621 </td>
8622
8623 <td class="entry_units">
8624 </td>
8625
8626 <td class="entry_range">
Zhijun Hefb4701f2014-02-04 11:32:24 -08008627 <p><strong>Deprecated</strong>.<wbr/> Do not use.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008628 </td>
8629
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008630 <td class="entry_tags">
8631 </td>
8632
8633 </tr>
8634 <tr class="entries_header">
8635 <th class="th_details" colspan="5">Details</th>
8636 </tr>
8637 <tr class="entry_cont">
8638 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08008639 <p>Normalized coordinates refer to those in the
8640(-1000,<wbr/>1000) range mentioned in the
8641android.<wbr/>hardware.<wbr/>Camera API.<wbr/></p>
Igor Murashkin8aa2a112013-12-09 12:06:17 -08008642<p>HAL implementations should instead always use and emit
Igor Murashkin0b080452013-12-27 15:30:25 -08008643sensor array-relative coordinates for all region data.<wbr/> Does
8644not need to be listed in static metadata.<wbr/> Support will be
8645removed in future versions of camera service.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008646 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008647 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008648
8649
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008650 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
8651 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008652
8653
8654 <tr class="entry" id="static_android.quirks.triggerAfWithAuto">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008655 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08008656 android.<wbr/>quirks.<wbr/>trigger<wbr/>Af<wbr/>With<wbr/>Auto
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008657 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008658 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08008659 <span class="entry_type_name">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008660
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07008661 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008662
8663
8664 </td> <!-- entry_type -->
8665
8666 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08008667 <p>If set to 1,<wbr/> then the camera service always
8668switches to FOCUS_<wbr/>MODE_<wbr/>AUTO before issuing a AF
8669trigger.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008670 </td>
8671
8672 <td class="entry_units">
8673 </td>
8674
8675 <td class="entry_range">
Zhijun Hefb4701f2014-02-04 11:32:24 -08008676 <p><strong>Deprecated</strong>.<wbr/> Do not use.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008677 </td>
8678
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008679 <td class="entry_tags">
8680 </td>
8681
8682 </tr>
8683 <tr class="entries_header">
8684 <th class="th_details" colspan="5">Details</th>
8685 </tr>
8686 <tr class="entry_cont">
8687 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08008688 <p>HAL implementations should implement AF trigger
8689modes for AUTO,<wbr/> MACRO,<wbr/> CONTINUOUS_<wbr/>FOCUS,<wbr/> and
8690CONTINUOUS_<wbr/>PICTURE modes instead of using this flag.<wbr/> Does
8691not need to be listed in static metadata.<wbr/> Support will be
8692removed in future versions of camera service</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008693 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008694 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008695
8696
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008697 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
8698 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008699
8700
8701 <tr class="entry" id="static_android.quirks.useZslFormat">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008702 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08008703 android.<wbr/>quirks.<wbr/>use<wbr/>Zsl<wbr/>Format
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008704 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008705 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08008706 <span class="entry_type_name">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008707
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07008708 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008709
8710
8711 </td> <!-- entry_type -->
8712
8713 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08008714 <p>If set to 1,<wbr/> the camera service uses
8715CAMERA2_<wbr/>PIXEL_<wbr/>FORMAT_<wbr/>ZSL instead of
8716HAL_<wbr/>PIXEL_<wbr/>FORMAT_<wbr/>IMPLEMENTATION_<wbr/>DEFINED for the zero
8717shutter lag stream</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008718 </td>
8719
8720 <td class="entry_units">
8721 </td>
8722
8723 <td class="entry_range">
Zhijun Hefb4701f2014-02-04 11:32:24 -08008724 <p><strong>Deprecated</strong>.<wbr/> Do not use.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008725 </td>
8726
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008727 <td class="entry_tags">
8728 </td>
8729
8730 </tr>
8731 <tr class="entries_header">
8732 <th class="th_details" colspan="5">Details</th>
8733 </tr>
8734 <tr class="entry_cont">
8735 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08008736 <p>HAL implementations should use gralloc usage flags
Igor Murashkin8aa2a112013-12-09 12:06:17 -08008737to determine that a stream will be used for
Igor Murashkin0b080452013-12-27 15:30:25 -08008738zero-shutter-lag,<wbr/> instead of relying on an explicit
8739format setting.<wbr/> Does not need to be listed in static
8740metadata.<wbr/> Support will be removed in future versions of
8741camera service.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008742 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008743 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008744
8745
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008746 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
8747 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008748
Eino-Ville Talvala82ce3312013-10-09 18:21:30 -07008749
8750 <tr class="entry" id="static_android.quirks.usePartialResult">
Igor Murashkin7761a222014-01-27 16:06:38 -08008751 <td class="entry_name" rowspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08008752 android.<wbr/>quirks.<wbr/>use<wbr/>Partial<wbr/>Result
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008753 </td>
Eino-Ville Talvala82ce3312013-10-09 18:21:30 -07008754 <td class="entry_type">
8755 <span class="entry_type_name">byte</span>
8756
Eino-Ville Talvala52a64a52013-11-07 14:43:43 -08008757 <span class="entry_type_visibility"> [hidden]</span>
Eino-Ville Talvala82ce3312013-10-09 18:21:30 -07008758
8759
8760 </td> <!-- entry_type -->
8761
8762 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08008763 <p>If set to 1,<wbr/> the HAL will always split result
8764metadata for a single capture into multiple buffers,<wbr/>
8765returned using multiple process_<wbr/>capture_<wbr/>result calls.<wbr/></p>
Eino-Ville Talvala82ce3312013-10-09 18:21:30 -07008766 </td>
8767
8768 <td class="entry_units">
8769 </td>
8770
8771 <td class="entry_range">
Igor Murashkin7761a222014-01-27 16:06:38 -08008772 <p><strong>Deprecated</strong>.<wbr/> Do not use.<wbr/></p>
Eino-Ville Talvala82ce3312013-10-09 18:21:30 -07008773 </td>
8774
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008775 <td class="entry_tags">
8776 </td>
8777
8778 </tr>
8779 <tr class="entries_header">
8780 <th class="th_details" colspan="5">Details</th>
8781 </tr>
8782 <tr class="entry_cont">
8783 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08008784 <p>Does not need to be listed in static
8785metadata.<wbr/> Support for partial results will be reworked in
8786future versions of camera service.<wbr/> This quirk will stop
Igor Murashkin8aa2a112013-12-09 12:06:17 -08008787working at that point; DO NOT USE without careful
Igor Murashkin0b080452013-12-27 15:30:25 -08008788consideration of future support.<wbr/></p>
Eino-Ville Talvala82ce3312013-10-09 18:21:30 -07008789 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008790 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008791
Igor Murashkin7761a222014-01-27 16:06:38 -08008792 <tr class="entries_header">
8793 <th class="th_details" colspan="5">HAL Implementation Details</th>
8794 </tr>
8795 <tr class="entry_cont">
8796 <td class="entry_details" colspan="5">
8797 <p>Refer to <code>camera3_<wbr/>capture_<wbr/>result::partial_<wbr/>result</code>
8798for information on how to implement partial results.<wbr/></p>
8799 </td>
8800 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008801
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008802 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
8803 <!-- end of entry -->
Eino-Ville Talvala82ce3312013-10-09 18:21:30 -07008804
8805
8806
8807 <!-- end of kind -->
8808 </tbody>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008809 <tr><td colspan="6" class="kind">dynamic</td></tr>
Eino-Ville Talvala82ce3312013-10-09 18:21:30 -07008810
8811 <thead class="entries_header">
8812 <tr>
8813 <th class="th_name">Property Name</th>
8814 <th class="th_type">Type</th>
8815 <th class="th_description">Description</th>
8816 <th class="th_units">Units</th>
8817 <th class="th_range">Range</th>
Eino-Ville Talvala82ce3312013-10-09 18:21:30 -07008818 <th class="th_tags">Tags</th>
8819 </tr>
8820 </thead>
8821
8822 <tbody>
8823
8824
8825
8826
8827
8828
8829
8830
8831
8832
8833 <tr class="entry" id="dynamic_android.quirks.partialResult">
Igor Murashkin7761a222014-01-27 16:06:38 -08008834 <td class="entry_name" rowspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08008835 android.<wbr/>quirks.<wbr/>partial<wbr/>Result
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008836 </td>
Eino-Ville Talvala82ce3312013-10-09 18:21:30 -07008837 <td class="entry_type">
8838 <span class="entry_type_name entry_type_name_enum">byte</span>
8839
Eino-Ville Talvala52a64a52013-11-07 14:43:43 -08008840 <span class="entry_type_visibility"> [hidden as boolean]</span>
Eino-Ville Talvala82ce3312013-10-09 18:21:30 -07008841
8842 <ul class="entry_type_enum">
8843 <li>
8844 <span class="entry_type_enum_name">FINAL</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08008845 <span class="entry_type_enum_notes"><p>The last or only metadata result buffer
8846for this capture.<wbr/></p></span>
Eino-Ville Talvala82ce3312013-10-09 18:21:30 -07008847 </li>
8848 <li>
8849 <span class="entry_type_enum_name">PARTIAL</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08008850 <span class="entry_type_enum_notes"><p>A partial buffer of result metadata for this
8851capture.<wbr/> More result buffers for this capture will be sent
8852by the HAL,<wbr/> the last of which will be marked
8853FINAL.<wbr/></p></span>
Eino-Ville Talvala82ce3312013-10-09 18:21:30 -07008854 </li>
8855 </ul>
8856
8857 </td> <!-- entry_type -->
8858
8859 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08008860 <p>Whether a result given to the framework is the
8861final one for the capture,<wbr/> or only a partial that contains a
Igor Murashkin8aa2a112013-12-09 12:06:17 -08008862subset of the full set of dynamic metadata
Igor Murashkin0b080452013-12-27 15:30:25 -08008863values.<wbr/></p>
Eino-Ville Talvala82ce3312013-10-09 18:21:30 -07008864 </td>
8865
8866 <td class="entry_units">
8867 </td>
8868
8869 <td class="entry_range">
Igor Murashkin7761a222014-01-27 16:06:38 -08008870 <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 -07008871 </td>
8872
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008873 <td class="entry_tags">
8874 </td>
8875
8876 </tr>
8877 <tr class="entries_header">
8878 <th class="th_details" colspan="5">Details</th>
8879 </tr>
8880 <tr class="entry_cont">
8881 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08008882 <p>The entries in the result metadata buffers for a
8883single capture may not overlap,<wbr/> except for this entry.<wbr/> The
Igor Murashkin8aa2a112013-12-09 12:06:17 -08008884FINAL buffers must retain FIFO ordering relative to the
Igor Murashkin0b080452013-12-27 15:30:25 -08008885requests that generate them,<wbr/> so the FINAL buffer for frame 3 must
8886always be sent to the framework after the FINAL buffer for frame 2,<wbr/> and
8887before the FINAL buffer for frame 4.<wbr/> PARTIAL buffers may be returned
8888in any order relative to other frames,<wbr/> but all PARTIAL buffers for a given
8889capture must arrive before the FINAL buffer for that capture.<wbr/> This entry may
8890only be used by the HAL if quirks.<wbr/>usePartialResult is set to 1.<wbr/></p>
Eino-Ville Talvala82ce3312013-10-09 18:21:30 -07008891 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008892 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008893
Igor Murashkin7761a222014-01-27 16:06:38 -08008894 <tr class="entries_header">
8895 <th class="th_details" colspan="5">HAL Implementation Details</th>
8896 </tr>
8897 <tr class="entry_cont">
8898 <td class="entry_details" colspan="5">
8899 <p>Refer to <code>camera3_<wbr/>capture_<wbr/>result::partial_<wbr/>result</code>
8900for information on how to implement partial results.<wbr/></p>
8901 </td>
8902 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008903
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008904 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
8905 <!-- end of entry -->
Eino-Ville Talvala82ce3312013-10-09 18:21:30 -07008906
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008907
8908
8909 <!-- end of kind -->
8910 </tbody>
8911
8912 <!-- end of section -->
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008913 <tr><td colspan="6" id="section_request" class="section">request</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008914
8915
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008916 <tr><td colspan="6" class="kind">controls</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008917
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07008918 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008919 <tr>
8920 <th class="th_name">Property Name</th>
8921 <th class="th_type">Type</th>
8922 <th class="th_description">Description</th>
8923 <th class="th_units">Units</th>
8924 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008925 <th class="th_tags">Tags</th>
8926 </tr>
8927 </thead>
8928
8929 <tbody>
8930
8931
8932
8933
8934
8935
8936
8937
8938
8939
8940 <tr class="entry" id="controls_android.request.frameCount">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008941 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -08008942 android.<wbr/>request.<wbr/>frame<wbr/>Count
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008943 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008944 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08008945 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008946
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07008947 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008948
8949
8950 </td> <!-- entry_type -->
8951
8952 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08008953 <p>A frame counter set by the framework.<wbr/> Must
8954be maintained unchanged in output frame.<wbr/> This value monotonically
8955increases with every new result (that is,<wbr/> each new result has a unique
8956frameCount value).<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008957 </td>
8958
8959 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -08008960 incrementing integer
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008961 </td>
8962
8963 <td class="entry_range">
Zhijun Hefb4701f2014-02-04 11:32:24 -08008964 <p><strong>Deprecated</strong>.<wbr/> Do not use.<wbr/> Any int.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008965 </td>
8966
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008967 <td class="entry_tags">
8968 </td>
8969
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008970 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008971
8972
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08008973 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
8974 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008975
8976
8977 <tr class="entry" id="controls_android.request.id">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008978 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -08008979 android.<wbr/>request.<wbr/>id
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08008980 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008981 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08008982 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008983
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07008984 <span class="entry_type_visibility"> [hidden]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008985
8986
8987 </td> <!-- entry_type -->
8988
8989 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08008990 <p>An application-specified ID for the current
8991request.<wbr/> Must be maintained unchanged in output
8992frame</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008993 </td>
8994
8995 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -08008996 arbitrary integer assigned by application
Igor Murashkin08b8aad2012-11-29 15:23:03 -08008997 </td>
8998
8999 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08009000 <p>Any int</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009001 </td>
9002
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009003 <td class="entry_tags">
9004 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08009005 <li><a href="#tag_V1">V1</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009006 </ul>
9007 </td>
9008
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08009009 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08009010
9011
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08009012 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
9013 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009014
9015
9016 <tr class="entry" id="controls_android.request.inputStreams">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08009017 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08009018 android.<wbr/>request.<wbr/>input<wbr/>Streams
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08009019 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009020 <td class="entry_type">
Zhijun Hee36cdbe2013-09-06 14:28:37 -07009021 <span class="entry_type_name">int32</span>
Eino-Ville Talvalaf384f0a2013-07-12 17:02:27 -07009022 <span class="entry_type_container">x</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009023
Eino-Ville Talvalaf384f0a2013-07-12 17:02:27 -07009024 <span class="entry_type_array">
9025 n
9026 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07009027 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009028
9029
9030 </td> <!-- entry_type -->
9031
9032 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08009033 <p>List which camera reprocess stream is used
9034for the source of reprocessing data.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009035 </td>
9036
9037 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -08009038 List of camera reprocess stream IDs
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009039 </td>
9040
9041 <td class="entry_range">
Zhijun Hefb4701f2014-02-04 11:32:24 -08009042 <p><strong>Deprecated</strong>.<wbr/> Do not use.<wbr/></p>
9043<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 -08009044<p>If android.<wbr/>jpeg.<wbr/>needs<wbr/>Thumbnail is set,<wbr/> then multiple
9045reprocess streams may be included in a single request; they
9046must be different scaled versions of the same image.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009047 </td>
9048
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009049 <td class="entry_tags">
Eino-Ville Talvalaf384f0a2013-07-12 17:02:27 -07009050 <ul class="entry_tags">
9051 <li><a href="#tag_HAL2">HAL2</a></li>
9052 </ul>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009053 </td>
9054
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08009055 </tr>
9056 <tr class="entries_header">
9057 <th class="th_details" colspan="5">Details</th>
9058 </tr>
9059 <tr class="entry_cont">
9060 <td class="entry_details" colspan="5">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08009061 <p>Only meaningful when <a href="#controls_android.request.type">android.<wbr/>request.<wbr/>type</a> ==
Igor Murashkin0b080452013-12-27 15:30:25 -08009062REPROCESS.<wbr/> Ignored otherwise</p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08009063 </td>
9064 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08009065
9066
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08009067 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
9068 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009069
9070
9071 <tr class="entry" id="controls_android.request.metadataMode">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08009072 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -08009073 android.<wbr/>request.<wbr/>metadata<wbr/>Mode
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08009074 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009075 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08009076 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009077
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07009078 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009079
9080 <ul class="entry_type_enum">
9081 <li>
9082 <span class="entry_type_enum_name">NONE</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08009083 <span class="entry_type_enum_notes"><p>No metadata should be produced on output,<wbr/> except
9084for application-bound buffer data.<wbr/> If no
9085application-bound streams exist,<wbr/> no frame should be
9086placed in the output frame queue.<wbr/> If such streams
9087exist,<wbr/> a frame should be placed on the output queue
9088with null metadata but with the necessary output buffer
9089information.<wbr/> Timestamp information should still be
9090included with any output stream buffers</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009091 </li>
9092 <li>
9093 <span class="entry_type_enum_name">FULL</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08009094 <span class="entry_type_enum_notes"><p>All metadata should be produced.<wbr/> Statistics will
9095only be produced if they are separately
9096enabled</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009097 </li>
9098 </ul>
9099
9100 </td> <!-- entry_type -->
9101
9102 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08009103 <p>How much metadata to produce on
9104output</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009105 </td>
9106
9107 <td class="entry_units">
9108 </td>
9109
9110 <td class="entry_range">
9111 </td>
9112
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009113 <td class="entry_tags">
9114 </td>
9115
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08009116 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08009117
9118
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08009119 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
9120 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009121
9122
9123 <tr class="entry" id="controls_android.request.outputStreams">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08009124 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08009125 android.<wbr/>request.<wbr/>output<wbr/>Streams
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08009126 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009127 <td class="entry_type">
Zhijun Hee36cdbe2013-09-06 14:28:37 -07009128 <span class="entry_type_name">int32</span>
Eino-Ville Talvalaf384f0a2013-07-12 17:02:27 -07009129 <span class="entry_type_container">x</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009130
Eino-Ville Talvalaf384f0a2013-07-12 17:02:27 -07009131 <span class="entry_type_array">
9132 n
9133 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07009134 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009135
9136
9137 </td> <!-- entry_type -->
9138
9139 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08009140 <p>Lists which camera output streams image data
9141from this capture must be sent to</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009142 </td>
9143
9144 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -08009145 List of camera stream IDs
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009146 </td>
9147
9148 <td class="entry_range">
Zhijun Hefb4701f2014-02-04 11:32:24 -08009149 <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 -08009150created</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009151 </td>
9152
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009153 <td class="entry_tags">
Eino-Ville Talvalaf384f0a2013-07-12 17:02:27 -07009154 <ul class="entry_tags">
9155 <li><a href="#tag_HAL2">HAL2</a></li>
9156 </ul>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009157 </td>
9158
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08009159 </tr>
9160 <tr class="entries_header">
9161 <th class="th_details" colspan="5">Details</th>
9162 </tr>
9163 <tr class="entry_cont">
9164 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08009165 <p>If no output streams are listed,<wbr/> then the image
9166data should simply be discarded.<wbr/> The image data must
9167still be captured for metadata and statistics production,<wbr/>
9168and the lens and flash must operate as requested.<wbr/></p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08009169 </td>
9170 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08009171
9172
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08009173 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
9174 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009175
9176
9177 <tr class="entry" id="controls_android.request.type">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08009178 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -08009179 android.<wbr/>request.<wbr/>type
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08009180 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009181 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08009182 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009183
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07009184 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009185
9186 <ul class="entry_type_enum">
9187 <li>
9188 <span class="entry_type_enum_name">CAPTURE</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08009189 <span class="entry_type_enum_notes"><p>Capture a new image from the imaging hardware,<wbr/>
9190and process it according to the
9191settings</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009192 </li>
9193 <li>
9194 <span class="entry_type_enum_name">REPROCESS</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08009195 <span class="entry_type_enum_notes"><p>Process previously captured data; the
9196android.<wbr/>request.<wbr/>input<wbr/>Stream parameter determines the
9197source reprocessing stream.<wbr/> TODO: Mark dynamic metadata
9198needed for reprocessing with [RP]</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009199 </li>
9200 </ul>
9201
9202 </td> <!-- entry_type -->
9203
9204 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08009205 <p>The type of the request; either CAPTURE or
9206REPROCESS.<wbr/> For HAL3,<wbr/> this tag is redundant.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009207 </td>
9208
9209 <td class="entry_units">
9210 </td>
9211
9212 <td class="entry_range">
9213 </td>
9214
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009215 <td class="entry_tags">
Eino-Ville Talvalaf384f0a2013-07-12 17:02:27 -07009216 <ul class="entry_tags">
9217 <li><a href="#tag_HAL2">HAL2</a></li>
9218 </ul>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009219 </td>
9220
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08009221 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08009222
9223
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08009224 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
9225 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009226
9227
9228
9229 <!-- end of kind -->
9230 </tbody>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08009231 <tr><td colspan="6" class="kind">static</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009232
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07009233 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009234 <tr>
9235 <th class="th_name">Property Name</th>
9236 <th class="th_type">Type</th>
9237 <th class="th_description">Description</th>
9238 <th class="th_units">Units</th>
9239 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009240 <th class="th_tags">Tags</th>
9241 </tr>
9242 </thead>
9243
9244 <tbody>
9245
9246
9247
9248
9249
9250
9251
9252
9253
9254
9255 <tr class="entry" id="static_android.request.maxNumOutputStreams">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08009256 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08009257 android.<wbr/>request.<wbr/>max<wbr/>Num<wbr/>Output<wbr/>Streams
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08009258 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009259 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08009260 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009261 <span class="entry_type_container">x</span>
9262
9263 <span class="entry_type_array">
9264 3
9265 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07009266 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009267
9268
9269 </td> <!-- entry_type -->
9270
9271 <td class="entry_description">
Zhijun He12744b22014-01-22 15:58:57 -08009272 <p>The maximum numbers of different types of output streams
9273that can be configured and used simultaneously by a camera device.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009274 </td>
9275
9276 <td class="entry_units">
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009277 </td>
9278
9279 <td class="entry_range">
Zhijun He12744b22014-01-22 15:58:57 -08009280 <p>&gt;= 1 for JPEG-compressed format streams.<wbr/></p>
9281<p>&gt;= 0 for Raw format streams.<wbr/></p>
9282<p>&gt;= 3 for processed,<wbr/> uncompressed format streams.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009283 </td>
9284
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009285 <td class="entry_tags">
9286 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08009287 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009288 </ul>
9289 </td>
9290
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08009291 </tr>
9292 <tr class="entries_header">
9293 <th class="th_details" colspan="5">Details</th>
9294 </tr>
9295 <tr class="entry_cont">
9296 <td class="entry_details" colspan="5">
Zhijun He12744b22014-01-22 15:58:57 -08009297 <p>This is a 3 element tuple that contains the max number of output simultaneous
9298streams for raw sensor,<wbr/> processed (and uncompressed),<wbr/> and JPEG formats respectively.<wbr/>
9299For example,<wbr/> if max raw sensor format output stream number is 1,<wbr/> max YUV streams
9300number 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>
9301<p>This lists the upper bound of the number of output streams supported by
9302the camera device.<wbr/> Using more streams simultaneously may require more hardware and
9303CPU resources that will consume more power.<wbr/> The image format for a output stream can
9304be any supported format provided by <a href="#static_android.scaler.availableFormats">android.<wbr/>scaler.<wbr/>available<wbr/>Formats</a>.<wbr/> The formats
9305defined in <a href="#static_android.scaler.availableFormats">android.<wbr/>scaler.<wbr/>available<wbr/>Formats</a> can be catergorized into the 3 stream types
9306as below:</p>
9307<ul>
9308<li>JPEG-compressed format: BLOB.<wbr/></li>
9309<li>Raw formats: RAW_<wbr/>SENSOR and RAW_<wbr/>OPAQUE.<wbr/></li>
9310<li>processed,<wbr/> uncompressed formats: YCb<wbr/>Cr_<wbr/>420_<wbr/>888,<wbr/> YCr<wbr/>Cb_<wbr/>420_<wbr/>SP,<wbr/> YV12.<wbr/></li>
9311</ul>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08009312 </td>
9313 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08009314
9315
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08009316 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
9317 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009318
9319
9320 <tr class="entry" id="static_android.request.maxNumReprocessStreams">
Zhijun He12744b22014-01-22 15:58:57 -08009321 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08009322 android.<wbr/>request.<wbr/>max<wbr/>Num<wbr/>Reprocess<wbr/>Streams
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08009323 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009324 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08009325 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009326 <span class="entry_type_container">x</span>
9327
9328 <span class="entry_type_array">
9329 1
9330 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07009331 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009332
9333
9334 </td> <!-- entry_type -->
9335
9336 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08009337 <p>How many reprocessing streams of any type
Zhijun He12744b22014-01-22 15:58:57 -08009338can be allocated at the same time.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009339 </td>
9340
9341 <td class="entry_units">
9342 </td>
9343
9344 <td class="entry_range">
Zhijun He12744b22014-01-22 15:58:57 -08009345 <p>&gt;= 0</p>
9346 </td>
9347
9348 <td class="entry_tags">
9349 <ul class="entry_tags">
9350 <li><a href="#tag_HAL2">HAL2</a></li>
9351 </ul>
9352 </td>
9353
9354 </tr>
9355 <tr class="entries_header">
9356 <th class="th_details" colspan="5">Details</th>
9357 </tr>
9358 <tr class="entry_cont">
9359 <td class="entry_details" colspan="5">
9360 <p><strong>Deprecated</strong>.<wbr/> Only used by HAL2.<wbr/>x.<wbr/></p>
9361<p>When set to 0,<wbr/> it means no reprocess stream is supported.<wbr/></p>
9362 </td>
9363 </tr>
9364
9365
9366 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
9367 <!-- end of entry -->
9368
9369
9370 <tr class="entry" id="static_android.request.maxNumInputStreams">
9371 <td class="entry_name" rowspan="3">
9372 android.<wbr/>request.<wbr/>max<wbr/>Num<wbr/>Input<wbr/>Streams
9373 </td>
9374 <td class="entry_type">
9375 <span class="entry_type_name">int32</span>
9376
9377 <span class="entry_type_visibility"> [public]</span>
9378
9379
9380 </td> <!-- entry_type -->
9381
9382 <td class="entry_description">
9383 <p>The maximum numbers of any type of input streams
9384that can be configured and used simultaneously by a camera device.<wbr/></p>
9385 </td>
9386
9387 <td class="entry_units">
9388 </td>
9389
9390 <td class="entry_range">
9391 <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/>
9392&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 -08009393 </td>
9394
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009395 <td class="entry_tags">
9396 </td>
9397
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08009398 </tr>
Zhijun He12744b22014-01-22 15:58:57 -08009399 <tr class="entries_header">
9400 <th class="th_details" colspan="5">Details</th>
9401 </tr>
9402 <tr class="entry_cont">
9403 <td class="entry_details" colspan="5">
9404 <p>When set to 0,<wbr/> it means no input stream is supported.<wbr/></p>
9405<p>The image format for a input stream can be any supported format provided
9406by android.<wbr/>scaler.<wbr/>available<wbr/>Input<wbr/>Formats.<wbr/> When using an input stream,<wbr/> there must be
9407at least one output stream configured to to receive the reprocessed images.<wbr/></p>
9408<p>For example,<wbr/> for Zero Shutter Lag (ZSL) still capture use case,<wbr/> the input
9409stream image format will be RAW_<wbr/>OPAQUE,<wbr/> the associated output stream image format
9410should be JPEG.<wbr/></p>
9411 </td>
9412 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08009413
9414
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08009415 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
9416 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009417
Igor Murashkina46e02f2014-01-09 17:43:38 -08009418
9419 <tr class="entry" id="static_android.request.pipelineMaxDepth">
9420 <td class="entry_name" rowspan="5">
9421 android.<wbr/>request.<wbr/>pipeline<wbr/>Max<wbr/>Depth
9422 </td>
9423 <td class="entry_type">
9424 <span class="entry_type_name">byte</span>
9425
9426 <span class="entry_type_visibility"> [public]</span>
9427
9428
9429 </td> <!-- entry_type -->
9430
9431 <td class="entry_description">
9432 <p>Specifies the number of maximum pipeline stages a frame
9433has to go through from when it's exposed to when it's available
9434to the framework.<wbr/></p>
9435 </td>
9436
9437 <td class="entry_units">
9438 </td>
9439
9440 <td class="entry_range">
9441 </td>
9442
9443 <td class="entry_tags">
9444 </td>
9445
9446 </tr>
9447 <tr class="entries_header">
9448 <th class="th_details" colspan="5">Details</th>
9449 </tr>
9450 <tr class="entry_cont">
9451 <td class="entry_details" colspan="5">
9452 <p>A typical minimum value for this is 2 (one stage to expose,<wbr/>
9453one stage to readout) from the sensor.<wbr/> The ISP then usually adds
9454its own stages to do custom HW processing.<wbr/> Further stages may be
9455added by SW processing.<wbr/></p>
9456<p>Depending on what settings are used (e.<wbr/>g.<wbr/> YUV,<wbr/> JPEG) and what
9457processing is enabled (e.<wbr/>g.<wbr/> face detection),<wbr/> the actual pipeline
9458depth (specified by <a href="#dynamic_android.request.pipelineDepth">android.<wbr/>request.<wbr/>pipeline<wbr/>Depth</a>) may be less than
9459the max pipeline depth.<wbr/></p>
9460<p>A pipeline depth of X stages is equivalent to a pipeline latency of
9461X frame intervals.<wbr/></p>
9462<p>This value will be 8 or less.<wbr/></p>
9463 </td>
9464 </tr>
9465
9466 <tr class="entries_header">
9467 <th class="th_details" colspan="5">HAL Implementation Details</th>
9468 </tr>
9469 <tr class="entry_cont">
9470 <td class="entry_details" colspan="5">
9471 <p>This value should be 4 or less.<wbr/></p>
9472 </td>
9473 </tr>
9474
9475 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
9476 <!-- end of entry -->
9477
Igor Murashkin2e291102014-01-10 14:18:30 -08009478
9479 <tr class="entry" id="static_android.request.partialResultCount">
9480 <td class="entry_name" rowspan="3">
9481 android.<wbr/>request.<wbr/>partial<wbr/>Result<wbr/>Count
9482 </td>
9483 <td class="entry_type">
9484 <span class="entry_type_name">int32</span>
9485
9486 <span class="entry_type_visibility"> [public]</span>
9487
9488
9489 </td> <!-- entry_type -->
9490
9491 <td class="entry_description">
9492 <p>Optional.<wbr/> Defaults to 1.<wbr/> Defines how many sub-components
9493a result will be composed of.<wbr/></p>
9494 </td>
9495
9496 <td class="entry_units">
9497 </td>
9498
9499 <td class="entry_range">
9500 <p>&gt;= 1</p>
9501 </td>
9502
9503 <td class="entry_tags">
9504 </td>
9505
9506 </tr>
9507 <tr class="entries_header">
9508 <th class="th_details" colspan="5">Details</th>
9509 </tr>
9510 <tr class="entry_cont">
9511 <td class="entry_details" colspan="5">
9512 <p>In order to combat the pipeline latency,<wbr/> partial results
9513may be delivered to the application layer from the camera device as
9514soon as they are available.<wbr/></p>
9515<p>A value of 1 means that partial results are not supported.<wbr/></p>
9516<p>A typical use case for this might be: after requesting an AF lock the
9517new AF state might be available 50% of the way through the pipeline.<wbr/>
9518The camera device could then immediately dispatch this state via a
9519partial result to the framework/<wbr/>application layer,<wbr/> and the rest of
9520the metadata via later partial results.<wbr/></p>
9521 </td>
9522 </tr>
9523
9524
9525 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
9526 <!-- end of entry -->
9527
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009528
9529
9530 <!-- end of kind -->
9531 </tbody>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08009532 <tr><td colspan="6" class="kind">dynamic</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009533
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07009534 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009535 <tr>
9536 <th class="th_name">Property Name</th>
9537 <th class="th_type">Type</th>
9538 <th class="th_description">Description</th>
9539 <th class="th_units">Units</th>
9540 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009541 <th class="th_tags">Tags</th>
9542 </tr>
9543 </thead>
9544
9545 <tbody>
9546
9547
9548
9549
9550
9551
9552
9553
9554
9555
9556 <tr class="entry" id="dynamic_android.request.frameCount">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08009557 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08009558 android.<wbr/>request.<wbr/>frame<wbr/>Count
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08009559 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009560 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08009561 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009562
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07009563 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009564
9565
9566 </td> <!-- entry_type -->
9567
9568 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08009569 <p>A frame counter set by the framework.<wbr/> This value monotonically
9570increases with every new result (that is,<wbr/> each new result has a unique
9571frameCount value).<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009572 </td>
9573
9574 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -08009575 count of frames
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009576 </td>
9577
9578 <td class="entry_range">
Igor Murashkin6cb7c2c2014-01-10 15:12:40 -08009579 <p>&gt; 0</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009580 </td>
9581
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009582 <td class="entry_tags">
9583 </td>
9584
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08009585 </tr>
9586 <tr class="entries_header">
9587 <th class="th_details" colspan="5">Details</th>
9588 </tr>
9589 <tr class="entry_cont">
9590 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08009591 <p>Reset on release()</p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08009592 </td>
9593 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08009594
9595
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08009596 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
9597 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009598
9599
9600 <tr class="entry" id="dynamic_android.request.id">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08009601 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -08009602 android.<wbr/>request.<wbr/>id
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08009603 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009604 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08009605 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009606
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07009607 <span class="entry_type_visibility"> [hidden]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009608
9609
9610 </td> <!-- entry_type -->
9611
9612 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08009613 <p>An application-specified ID for the current
9614request.<wbr/> Must be maintained unchanged in output
9615frame</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009616 </td>
9617
9618 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -08009619 arbitrary integer assigned by application
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009620 </td>
9621
9622 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -08009623 <p>Any int</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009624 </td>
9625
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009626 <td class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -08009627 <ul class="entry_tags">
9628 <li><a href="#tag_V1">V1</a></li>
9629 </ul>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009630 </td>
9631
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08009632 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08009633
9634
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08009635 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
9636 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009637
9638
9639 <tr class="entry" id="dynamic_android.request.metadataMode">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08009640 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -08009641 android.<wbr/>request.<wbr/>metadata<wbr/>Mode
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08009642 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009643 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08009644 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009645
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07009646 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009647
9648 <ul class="entry_type_enum">
9649 <li>
9650 <span class="entry_type_enum_name">NONE</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08009651 <span class="entry_type_enum_notes"><p>No metadata should be produced on output,<wbr/> except
9652for application-bound buffer data.<wbr/> If no
9653application-bound streams exist,<wbr/> no frame should be
9654placed in the output frame queue.<wbr/> If such streams
9655exist,<wbr/> a frame should be placed on the output queue
9656with null metadata but with the necessary output buffer
9657information.<wbr/> Timestamp information should still be
9658included with any output stream buffers</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009659 </li>
9660 <li>
9661 <span class="entry_type_enum_name">FULL</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08009662 <span class="entry_type_enum_notes"><p>All metadata should be produced.<wbr/> Statistics will
9663only be produced if they are separately
9664enabled</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009665 </li>
9666 </ul>
9667
9668 </td> <!-- entry_type -->
9669
9670 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08009671 <p>How much metadata to produce on
9672output</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009673 </td>
9674
9675 <td class="entry_units">
9676 </td>
9677
9678 <td class="entry_range">
9679 </td>
9680
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009681 <td class="entry_tags">
9682 </td>
9683
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08009684 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08009685
9686
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08009687 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
9688 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009689
9690
9691 <tr class="entry" id="dynamic_android.request.outputStreams">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08009692 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08009693 android.<wbr/>request.<wbr/>output<wbr/>Streams
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08009694 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009695 <td class="entry_type">
Zhijun Hee36cdbe2013-09-06 14:28:37 -07009696 <span class="entry_type_name">int32</span>
Eino-Ville Talvalaf384f0a2013-07-12 17:02:27 -07009697 <span class="entry_type_container">x</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009698
Eino-Ville Talvalaf384f0a2013-07-12 17:02:27 -07009699 <span class="entry_type_array">
9700 n
9701 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07009702 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009703
9704
9705 </td> <!-- entry_type -->
9706
9707 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08009708 <p>Lists which camera output streams image data
9709from this capture must be sent to</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009710 </td>
9711
9712 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -08009713 List of camera stream IDs
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009714 </td>
9715
9716 <td class="entry_range">
Zhijun Hefb4701f2014-02-04 11:32:24 -08009717 <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 -08009718created</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009719 </td>
9720
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009721 <td class="entry_tags">
Eino-Ville Talvalaf384f0a2013-07-12 17:02:27 -07009722 <ul class="entry_tags">
9723 <li><a href="#tag_HAL2">HAL2</a></li>
9724 </ul>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009725 </td>
9726
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08009727 </tr>
9728 <tr class="entries_header">
9729 <th class="th_details" colspan="5">Details</th>
9730 </tr>
9731 <tr class="entry_cont">
9732 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08009733 <p>If no output streams are listed,<wbr/> then the image
9734data should simply be discarded.<wbr/> The image data must
9735still be captured for metadata and statistics production,<wbr/>
9736and the lens and flash must operate as requested.<wbr/></p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08009737 </td>
9738 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08009739
9740
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08009741 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
9742 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009743
Igor Murashkina46e02f2014-01-09 17:43:38 -08009744
9745 <tr class="entry" id="dynamic_android.request.pipelineDepth">
9746 <td class="entry_name" rowspan="5">
9747 android.<wbr/>request.<wbr/>pipeline<wbr/>Depth
9748 </td>
9749 <td class="entry_type">
9750 <span class="entry_type_name">byte</span>
9751
9752 <span class="entry_type_visibility"> [public]</span>
9753
9754
9755 </td> <!-- entry_type -->
9756
9757 <td class="entry_description">
9758 <p>Specifies the number of pipeline stages the frame went
9759through from when it was exposed to when the final completed result
9760was available to the framework.<wbr/></p>
9761 </td>
9762
9763 <td class="entry_units">
9764 </td>
9765
9766 <td class="entry_range">
9767 <p>&lt;= <a href="#static_android.request.pipelineMaxDepth">android.<wbr/>request.<wbr/>pipeline<wbr/>Max<wbr/>Depth</a></p>
9768 </td>
9769
9770 <td class="entry_tags">
9771 </td>
9772
9773 </tr>
9774 <tr class="entries_header">
9775 <th class="th_details" colspan="5">Details</th>
9776 </tr>
9777 <tr class="entry_cont">
9778 <td class="entry_details" colspan="5">
9779 <p>Depending on what settings are used in the request,<wbr/> and
9780what streams are configured,<wbr/> the data may undergo less processing,<wbr/>
9781and some pipeline stages skipped.<wbr/></p>
9782<p>See <a href="#static_android.request.pipelineMaxDepth">android.<wbr/>request.<wbr/>pipeline<wbr/>Max<wbr/>Depth</a> for more details.<wbr/></p>
9783 </td>
9784 </tr>
9785
9786 <tr class="entries_header">
9787 <th class="th_details" colspan="5">HAL Implementation Details</th>
9788 </tr>
9789 <tr class="entry_cont">
9790 <td class="entry_details" colspan="5">
9791 <p>This value must always represent the accurate count of how many
9792pipeline stages were actually used.<wbr/></p>
9793 </td>
9794 </tr>
9795
9796 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
9797 <!-- end of entry -->
9798
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009799
9800
9801 <!-- end of kind -->
9802 </tbody>
9803
9804 <!-- end of section -->
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08009805 <tr><td colspan="6" id="section_scaler" class="section">scaler</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009806
9807
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08009808 <tr><td colspan="6" class="kind">controls</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009809
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07009810 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009811 <tr>
9812 <th class="th_name">Property Name</th>
9813 <th class="th_type">Type</th>
9814 <th class="th_description">Description</th>
9815 <th class="th_units">Units</th>
9816 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009817 <th class="th_tags">Tags</th>
9818 </tr>
9819 </thead>
9820
9821 <tbody>
9822
9823
9824
9825
9826
9827
9828
9829
9830
9831
9832 <tr class="entry" id="controls_android.scaler.cropRegion">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08009833 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -08009834 android.<wbr/>scaler.<wbr/>crop<wbr/>Region
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08009835 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009836 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08009837 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009838 <span class="entry_type_container">x</span>
9839
9840 <span class="entry_type_array">
Eino-Ville Talvalae04ec6e2013-04-16 15:35:18 -07009841 4
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009842 </span>
Igor Murashkinb8dc8812013-07-17 16:29:34 -07009843 <span class="entry_type_visibility"> [public as rectangle]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009844
9845
9846 </td> <!-- entry_type -->
9847
9848 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -08009849 <p>(x,<wbr/> y,<wbr/> width,<wbr/> height).<wbr/></p>
9850<p>A rectangle with the top-level corner of (x,<wbr/>y) and size
9851(width,<wbr/> height).<wbr/> The region of the sensor that is used for
9852output.<wbr/> Each stream must use this rectangle to produce its
9853output,<wbr/> cropping to a smaller region if necessary to
9854maintain the stream's aspect ratio.<wbr/></p>
9855<p>HAL2.<wbr/>x uses only (x,<wbr/> y,<wbr/> width)</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009856 </td>
9857
9858 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -08009859 (x,<wbr/>y) of top-left corner,<wbr/> width and height of region
9860 in pixels; (0,<wbr/>0) is top-left corner of
9861 android.<wbr/>sensor.<wbr/>active<wbr/>Array<wbr/>Size
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009862 </td>
9863
9864 <td class="entry_range">
9865 </td>
9866
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08009867 <td class="entry_tags">
9868 <ul class="entry_tags">
9869 <li><a href="#tag_BC">BC</a></li>
9870 </ul>
9871 </td>
9872
9873 </tr>
9874 <tr class="entries_header">
9875 <th class="th_details" colspan="5">Details</th>
9876 </tr>
9877 <tr class="entry_cont">
9878 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08009879 <p>Any additional per-stream cropping must be done to
9880maximize the final pixel area of the stream.<wbr/></p>
9881<p>For example,<wbr/> if the crop region is set to a 4:3 aspect
9882ratio,<wbr/> then 4:3 streams should use the exact crop
9883region.<wbr/> 16:9 streams should further crop vertically
9884(letterbox).<wbr/></p>
9885<p>Conversely,<wbr/> if the crop region is set to a 16:9,<wbr/> then 4:3
9886outputs should crop horizontally (pillarbox),<wbr/> and 16:9
9887streams should match exactly.<wbr/> These additional crops must
9888be centered within the crop region.<wbr/></p>
Igor Murashkin8aa2a112013-12-09 12:06:17 -08009889<p>The output streams must maintain square pixels at all
Igor Murashkin0b080452013-12-27 15:30:25 -08009890times,<wbr/> no matter what the relative aspect ratios of the
9891crop region and the stream are.<wbr/> Negative values for
Igor Murashkin8aa2a112013-12-09 12:06:17 -08009892corner are allowed for raw output if full pixel array is
Igor Murashkin0b080452013-12-27 15:30:25 -08009893larger than active pixel array.<wbr/> Width and height may be
9894rounded to nearest larger supportable width,<wbr/> especially
9895for raw output,<wbr/> where only a few fixed scales may be
9896possible.<wbr/> The width and height of the crop region cannot
9897be set to be smaller than floor( activeArraySize.<wbr/>width /<wbr/>
9898android.<wbr/>scaler.<wbr/>max<wbr/>Digital<wbr/>Zoom ) and floor(
9899activeArraySize.<wbr/>height /<wbr/> android.<wbr/>scaler.<wbr/>max<wbr/>Digital<wbr/>Zoom),<wbr/>
9900respectively.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009901 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08009902 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08009903
9904
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08009905 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
9906 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009907
9908
9909
9910 <!-- end of kind -->
9911 </tbody>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -08009912 <tr><td colspan="6" class="kind">static</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009913
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -07009914 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009915 <tr>
9916 <th class="th_name">Property Name</th>
9917 <th class="th_type">Type</th>
9918 <th class="th_description">Description</th>
9919 <th class="th_units">Units</th>
9920 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009921 <th class="th_tags">Tags</th>
9922 </tr>
9923 </thead>
9924
9925 <tbody>
9926
9927
9928
9929
9930
9931
9932
9933
9934
9935
9936 <tr class="entry" id="static_android.scaler.availableFormats">
Zhijun Heb8317e22014-01-16 09:47:07 -08009937 <td class="entry_name" rowspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -08009938 android.<wbr/>scaler.<wbr/>available<wbr/>Formats
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -08009939 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009940 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -08009941 <span class="entry_type_name entry_type_name_enum">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009942 <span class="entry_type_container">x</span>
9943
9944 <span class="entry_type_array">
9945 n
9946 </span>
Eino-Ville Talvalad4e240a2013-08-08 12:56:37 -07009947 <span class="entry_type_visibility"> [public as imageFormat]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009948
9949 <ul class="entry_type_enum">
9950 <li>
Ruben Brunk8f48c182014-02-04 18:27:20 -08009951 <span class="entry_type_enum_name">RAW16</span>
Zhijun Heb8317e22014-01-16 09:47:07 -08009952 <span class="entry_type_enum_optional">optional</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009953 <span class="entry_type_enum_value">0x20</span>
Ruben Brunk8f48c182014-02-04 18:27:20 -08009954 <span class="entry_type_enum_notes"><p>RAW16 is a standard,<wbr/> cross-platform format for raw image
9955buffers with 16-bit pixels.<wbr/> Buffers of this format are typically
9956expected to have a Bayer Color Filter Array (CFA) layout,<wbr/> which
9957is given in <a href="#static_android.sensor.info.colorFilterArrangement">android.<wbr/>sensor.<wbr/>info.<wbr/>color<wbr/>Filter<wbr/>Arrangement</a>.<wbr/> Sensors
9958with CFAs that are not representable by a format in
9959<a href="#static_android.sensor.info.colorFilterArrangement">android.<wbr/>sensor.<wbr/>info.<wbr/>color<wbr/>Filter<wbr/>Arrangement</a> should not use this
9960format.<wbr/></p>
9961<p>Buffers of this format will also follow the constraints given for
9962RAW_<wbr/>OPAQUE buffers,<wbr/> but with relaxed performance constraints.<wbr/></p>
9963<p>See android.<wbr/>scaler.<wbr/>available<wbr/>Input<wbr/>Formats for the full set of
9964performance guarantees.<wbr/></p></span>
9965 </li>
9966 <li>
9967 <span class="entry_type_enum_name">RAW_OPAQUE</span>
9968 <span class="entry_type_enum_optional">optional</span>
9969 <span class="entry_type_enum_value">0x24</span>
9970 <span class="entry_type_enum_notes"><p>RAW_<wbr/>OPAQUE is a format for raw image buffers coming from an
9971image sensor.<wbr/> The actual structure of buffers of this format is
9972platform-specific,<wbr/> but must follow several constraints:</p>
9973<ol>
9974<li>No image post-processing operations may have been applied to
9975buffers of this type.<wbr/> These buffers contain raw image data coming
9976directly from the image sensor.<wbr/></li>
9977<li>If a buffer of this format is passed to the camera device for
9978reprocessing,<wbr/> the resulting images will be identical to the images
9979produced if the buffer had come directly from the sensor and was
9980processed with the same settings.<wbr/></li>
9981</ol>
9982<p>The intended use for this format is to allow access to the native
9983raw format buffers coming directly from the camera sensor without
9984any additional conversions or decrease in framerate.<wbr/></p>
9985<p>See android.<wbr/>scaler.<wbr/>available<wbr/>Input<wbr/>Formats for the full set of
9986performance guarantees.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009987 </li>
9988 <li>
9989 <span class="entry_type_enum_name">YV12</span>
Zhijun Heb8317e22014-01-16 09:47:07 -08009990 <span class="entry_type_enum_optional">optional</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009991 <span class="entry_type_enum_value">0x32315659</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08009992 <span class="entry_type_enum_notes"><p>YCrCb 4:2:0 Planar</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009993 </li>
9994 <li>
Zhijun Hec2eebff2013-05-16 17:49:35 -07009995 <span class="entry_type_enum_name">YCrCb_420_SP</span>
Zhijun Heb8317e22014-01-16 09:47:07 -08009996 <span class="entry_type_enum_optional">optional</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009997 <span class="entry_type_enum_value">0x11</span>
Igor Murashkina10351a2014-01-15 17:05:22 -08009998 <span class="entry_type_enum_notes"><p>NV21</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -08009999 </li>
10000 <li>
Zhijun Hec2eebff2013-05-16 17:49:35 -070010001 <span class="entry_type_enum_name">IMPLEMENTATION_DEFINED</span>
10002 <span class="entry_type_enum_value">0x22</span>
Zhijun Heb8317e22014-01-16 09:47:07 -080010003 <span class="entry_type_enum_notes"><p>System internal format,<wbr/> not application-accessible</p></span>
Zhijun Hec2eebff2013-05-16 17:49:35 -070010004 </li>
10005 <li>
10006 <span class="entry_type_enum_name">YCbCr_420_888</span>
10007 <span class="entry_type_enum_value">0x23</span>
Igor Murashkina10351a2014-01-15 17:05:22 -080010008 <span class="entry_type_enum_notes"><p>Flexible YUV420 Format</p></span>
Zhijun Hec2eebff2013-05-16 17:49:35 -070010009 </li>
10010 <li>
10011 <span class="entry_type_enum_name">BLOB</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010012 <span class="entry_type_enum_value">0x21</span>
Zhijun Heb8317e22014-01-16 09:47:07 -080010013 <span class="entry_type_enum_notes"><p>JPEG format</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010014 </li>
10015 </ul>
10016
10017 </td> <!-- entry_type -->
10018
10019 <td class="entry_description">
Zhijun Heb8317e22014-01-16 09:47:07 -080010020 <p>The list of image formats that are supported by this
Igor Murashkin7f15ddd2014-02-04 18:02:27 -080010021camera device for output streams.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010022 </td>
10023
10024 <td class="entry_units">
10025 </td>
10026
10027 <td class="entry_range">
10028 </td>
10029
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010030 <td class="entry_tags">
10031 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080010032 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010033 </ul>
10034 </td>
10035
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080010036 </tr>
Zhijun Heb8317e22014-01-16 09:47:07 -080010037 <tr class="entries_header">
10038 <th class="th_details" colspan="5">Details</th>
10039 </tr>
10040 <tr class="entry_cont">
10041 <td class="entry_details" colspan="5">
10042 <p>All camera devices will support JPEG and YUV_<wbr/>420_<wbr/>888 formats.<wbr/></p>
10043<p>When set to YUV_<wbr/>420_<wbr/>888,<wbr/> application can access the YUV420 data directly.<wbr/></p>
10044 </td>
10045 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080010046
Zhijun Heb8317e22014-01-16 09:47:07 -080010047 <tr class="entries_header">
10048 <th class="th_details" colspan="5">HAL Implementation Details</th>
10049 </tr>
10050 <tr class="entry_cont">
10051 <td class="entry_details" colspan="5">
10052 <p>These format values are from HAL_<wbr/>PIXEL_<wbr/>FORMAT_<wbr/>* in
10053system/<wbr/>core/<wbr/>include/<wbr/>system/<wbr/>graphics.<wbr/>h.<wbr/></p>
10054<p>When IMPLEMENTATION_<wbr/>DEFINED is used,<wbr/> the platform
10055gralloc module will select a format based on the usage flags provided
10056by the camera HAL device and the other endpoint of the stream.<wbr/> It is
10057usually used by preview and recording streams,<wbr/> where the application doesn't
10058need access the image data.<wbr/></p>
10059<p>YCb<wbr/>Cr_<wbr/>420_<wbr/>888 format must be supported by the HAL.<wbr/> When an image stream
10060needs CPU/<wbr/>application direct access,<wbr/> this format will be used.<wbr/></p>
10061<p>The BLOB format must be supported by the HAL.<wbr/> This is used for the JPEG stream.<wbr/></p>
Ruben Brunk8f48c182014-02-04 18:27:20 -080010062<p>A RAW_<wbr/>OPAQUE buffer should contain only pixel data.<wbr/> It is strongly
10063recommended that any information used by the camera device when
10064processing images is fully expressed by the result metadata
10065for that image buffer.<wbr/></p>
Zhijun Heb8317e22014-01-16 09:47:07 -080010066 </td>
10067 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080010068
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080010069 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
10070 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010071
10072
10073 <tr class="entry" id="static_android.scaler.availableJpegMinDurations">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080010074 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080010075 android.<wbr/>scaler.<wbr/>available<wbr/>Jpeg<wbr/>Min<wbr/>Durations
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080010076 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010077 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080010078 <span class="entry_type_name">int64</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010079 <span class="entry_type_container">x</span>
10080
10081 <span class="entry_type_array">
10082 n
10083 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070010084 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010085
10086
10087 </td> <!-- entry_type -->
10088
10089 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080010090 <p>The minimum frame duration that is supported
Igor Murashkin10f4e0f2014-01-13 17:22:58 -080010091for 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 -080010092 </td>
10093
10094 <td class="entry_units">
Igor Murashkin10f4e0f2014-01-13 17:22:58 -080010095 ns
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010096 </td>
10097
10098 <td class="entry_range">
10099 </td>
10100
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010101 <td class="entry_tags">
10102 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080010103 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010104 </ul>
10105 </td>
10106
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080010107 </tr>
10108 <tr class="entries_header">
10109 <th class="th_details" colspan="5">Details</th>
10110 </tr>
10111 <tr class="entry_cont">
10112 <td class="entry_details" colspan="5">
Igor Murashkin10f4e0f2014-01-13 17:22:58 -080010113 <p>This corresponds to the minimum steady-state frame duration when only
10114that JPEG stream is active and captured in a burst,<wbr/> with all
10115processing (typically in android.<wbr/>*.<wbr/>mode) set to FAST.<wbr/></p>
10116<p>When multiple streams are configured,<wbr/> the minimum
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080010117frame duration will be &gt;= max(individual stream min
Igor Murashkin0b080452013-12-27 15:30:25 -080010118durations)</p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080010119 </td>
10120 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080010121
10122
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080010123 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
10124 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010125
10126
10127 <tr class="entry" id="static_android.scaler.availableJpegSizes">
Zhijun Heb8317e22014-01-16 09:47:07 -080010128 <td class="entry_name" rowspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -080010129 android.<wbr/>scaler.<wbr/>available<wbr/>Jpeg<wbr/>Sizes
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080010130 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010131 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080010132 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010133 <span class="entry_type_container">x</span>
10134
10135 <span class="entry_type_array">
10136 n x 2
10137 </span>
Igor Murashkinb8dc8812013-07-17 16:29:34 -070010138 <span class="entry_type_visibility"> [public as size]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010139
10140
10141 </td> <!-- entry_type -->
10142
10143 <td class="entry_description">
Zhijun Heb8317e22014-01-16 09:47:07 -080010144 <p>The JPEG resolutions that are supported by this camera device.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010145 </td>
10146
10147 <td class="entry_units">
10148 </td>
10149
10150 <td class="entry_range">
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010151 </td>
10152
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010153 <td class="entry_tags">
10154 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080010155 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010156 </ul>
10157 </td>
10158
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080010159 </tr>
Zhijun Heb8317e22014-01-16 09:47:07 -080010160 <tr class="entries_header">
10161 <th class="th_details" colspan="5">Details</th>
10162 </tr>
10163 <tr class="entry_cont">
10164 <td class="entry_details" colspan="5">
10165 <p>The resolutions are listed as <code>(width,<wbr/> height)</code> pairs.<wbr/> All camera devices will support
10166sensor 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>
10167 </td>
10168 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080010169
Zhijun Heb8317e22014-01-16 09:47:07 -080010170 <tr class="entries_header">
10171 <th class="th_details" colspan="5">HAL Implementation Details</th>
10172 </tr>
10173 <tr class="entry_cont">
10174 <td class="entry_details" colspan="5">
10175 <p>The HAL must include sensor maximum resolution
10176(defined by <a href="#static_android.sensor.info.activeArraySize">android.<wbr/>sensor.<wbr/>info.<wbr/>active<wbr/>Array<wbr/>Size</a>),<wbr/>
10177and should include half/<wbr/>quarter of sensor maximum resolution.<wbr/></p>
10178 </td>
10179 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080010180
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080010181 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
10182 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010183
10184
10185 <tr class="entry" id="static_android.scaler.availableMaxDigitalZoom">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080010186 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -080010187 android.<wbr/>scaler.<wbr/>available<wbr/>Max<wbr/>Digital<wbr/>Zoom
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080010188 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010189 <td class="entry_type">
Igor Murashkinf11a4df2013-05-07 10:00:46 -070010190 <span class="entry_type_name">float</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010191
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070010192 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010193
10194
10195 </td> <!-- entry_type -->
10196
10197 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080010198 <p>The maximum ratio between active area width
10199and crop region width,<wbr/> or between active area height and
10200crop region height,<wbr/> if the crop region height is larger
10201than width</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010202 </td>
10203
10204 <td class="entry_units">
10205 </td>
10206
10207 <td class="entry_range">
Igor Murashkin6cb7c2c2014-01-10 15:12:40 -080010208 <p>&gt;=1</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010209 </td>
10210
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010211 <td class="entry_tags">
Igor Murashkinf11a4df2013-05-07 10:00:46 -070010212 <ul class="entry_tags">
10213 <li><a href="#tag_BC">BC</a></li>
10214 </ul>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010215 </td>
10216
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080010217 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080010218
10219
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080010220 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
10221 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010222
10223
10224 <tr class="entry" id="static_android.scaler.availableProcessedMinDurations">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080010225 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080010226 android.<wbr/>scaler.<wbr/>available<wbr/>Processed<wbr/>Min<wbr/>Durations
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080010227 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010228 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080010229 <span class="entry_type_name">int64</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010230 <span class="entry_type_container">x</span>
10231
10232 <span class="entry_type_array">
10233 n
10234 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070010235 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010236
10237
10238 </td> <!-- entry_type -->
10239
10240 <td class="entry_description">
Igor Murashkin10f4e0f2014-01-13 17:22:58 -080010241 <p>For each available processed output size (defined in
10242<a href="#static_android.scaler.availableProcessedSizes">android.<wbr/>scaler.<wbr/>available<wbr/>Processed<wbr/>Sizes</a>),<wbr/> this property lists the
10243minimum supportable frame duration for that size.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010244 </td>
10245
10246 <td class="entry_units">
Igor Murashkin10f4e0f2014-01-13 17:22:58 -080010247 ns
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010248 </td>
10249
10250 <td class="entry_range">
10251 </td>
10252
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010253 <td class="entry_tags">
10254 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080010255 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010256 </ul>
10257 </td>
10258
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080010259 </tr>
10260 <tr class="entries_header">
10261 <th class="th_details" colspan="5">Details</th>
10262 </tr>
10263 <tr class="entry_cont">
10264 <td class="entry_details" colspan="5">
Igor Murashkin10f4e0f2014-01-13 17:22:58 -080010265 <p>This should correspond to the frame duration when only that processed
10266stream is active,<wbr/> with all processing (typically in android.<wbr/>*.<wbr/>mode)
10267set to FAST.<wbr/></p>
10268<p>When multiple streams are configured,<wbr/> the minimum frame duration will
10269be &gt;= max(individual stream min durations).<wbr/></p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080010270 </td>
10271 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080010272
10273
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080010274 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
10275 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010276
10277
10278 <tr class="entry" id="static_android.scaler.availableProcessedSizes">
Zhijun Heb8317e22014-01-16 09:47:07 -080010279 <td class="entry_name" rowspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -080010280 android.<wbr/>scaler.<wbr/>available<wbr/>Processed<wbr/>Sizes
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080010281 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010282 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080010283 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010284 <span class="entry_type_container">x</span>
10285
10286 <span class="entry_type_array">
10287 n x 2
10288 </span>
Igor Murashkinb8dc8812013-07-17 16:29:34 -070010289 <span class="entry_type_visibility"> [public as size]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010290
10291
10292 </td> <!-- entry_type -->
10293
10294 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080010295 <p>The resolutions available for use with
10296processed output streams,<wbr/> such as YV12,<wbr/> NV12,<wbr/> and
10297platform opaque YUV/<wbr/>RGB streams to the GPU or video
Zhijun Heb8317e22014-01-16 09:47:07 -080010298encoders.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010299 </td>
10300
10301 <td class="entry_units">
10302 </td>
10303
10304 <td class="entry_range">
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010305 </td>
10306
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080010307 <td class="entry_tags">
10308 <ul class="entry_tags">
10309 <li><a href="#tag_BC">BC</a></li>
10310 </ul>
10311 </td>
10312
10313 </tr>
10314 <tr class="entries_header">
10315 <th class="th_details" colspan="5">Details</th>
10316 </tr>
10317 <tr class="entry_cont">
10318 <td class="entry_details" colspan="5">
Zhijun Heb8317e22014-01-16 09:47:07 -080010319 <p>The resolutions are listed as <code>(width,<wbr/> height)</code> pairs.<wbr/></p>
10320<p>For a given use case,<wbr/> the actual maximum supported resolution
10321may be lower than what is listed here,<wbr/> depending on the destination
10322Surface for the image data.<wbr/> For example,<wbr/> for recording video,<wbr/>
10323the video encoder chosen may have a maximum size limit (e.<wbr/>g.<wbr/> 1080p)
10324smaller than what the camera (e.<wbr/>g.<wbr/> maximum resolution is 3264x2448)
10325can provide.<wbr/></p>
10326<p>Please reference the documentation for the image data destination to
10327check if it limits the maximum size for image data.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010328 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080010329 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080010330
Zhijun Heb8317e22014-01-16 09:47:07 -080010331 <tr class="entries_header">
10332 <th class="th_details" colspan="5">HAL Implementation Details</th>
10333 </tr>
10334 <tr class="entry_cont">
10335 <td class="entry_details" colspan="5">
10336 <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/>
10337the HAL must include all JPEG sizes listed in android.<wbr/>scaler.<wbr/>available<wbr/>Jpeg<wbr/>Sizes
10338and each below resolution if it is smaller than or equal to the sensor
10339maximum resolution (if they are not listed in JPEG sizes already):</p>
10340<ul>
10341<li>240p (320 x 240)</li>
10342<li>480p (640 x 480)</li>
10343<li>720p (1280 x 720)</li>
10344<li>1080p (1920 x 1080)</li>
10345</ul>
10346<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/>
10347the HAL only has to list up to the maximum video size supported by the devices.<wbr/></p>
10348 </td>
10349 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080010350
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080010351 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
10352 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010353
10354
10355 <tr class="entry" id="static_android.scaler.availableRawMinDurations">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080010356 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080010357 android.<wbr/>scaler.<wbr/>available<wbr/>Raw<wbr/>Min<wbr/>Durations
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080010358 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010359 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080010360 <span class="entry_type_name">int64</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010361 <span class="entry_type_container">x</span>
10362
10363 <span class="entry_type_array">
10364 n
10365 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070010366 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010367
10368
10369 </td> <!-- entry_type -->
10370
10371 <td class="entry_description">
Zhijun Hebdc94c42014-01-21 18:28:30 -080010372 <p>For each available raw output size (defined in
Igor Murashkin10f4e0f2014-01-13 17:22:58 -080010373<a href="#static_android.scaler.availableRawSizes">android.<wbr/>scaler.<wbr/>available<wbr/>Raw<wbr/>Sizes</a>),<wbr/> this property lists the minimum
10374supportable frame duration for that size.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010375 </td>
10376
10377 <td class="entry_units">
Igor Murashkin10f4e0f2014-01-13 17:22:58 -080010378 ns
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010379 </td>
10380
10381 <td class="entry_range">
10382 </td>
10383
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010384 <td class="entry_tags">
10385 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080010386 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010387 </ul>
10388 </td>
10389
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080010390 </tr>
10391 <tr class="entries_header">
10392 <th class="th_details" colspan="5">Details</th>
10393 </tr>
10394 <tr class="entry_cont">
10395 <td class="entry_details" colspan="5">
Igor Murashkin10f4e0f2014-01-13 17:22:58 -080010396 <p>Should correspond to the frame duration when only the raw stream is
10397active.<wbr/></p>
10398<p>When multiple streams are configured,<wbr/> the minimum
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080010399frame duration will be &gt;= max(individual stream min
Igor Murashkin0b080452013-12-27 15:30:25 -080010400durations)</p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080010401 </td>
10402 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080010403
10404
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080010405 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
10406 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010407
10408
10409 <tr class="entry" id="static_android.scaler.availableRawSizes">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080010410 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -080010411 android.<wbr/>scaler.<wbr/>available<wbr/>Raw<wbr/>Sizes
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080010412 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010413 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080010414 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010415 <span class="entry_type_container">x</span>
10416
10417 <span class="entry_type_array">
10418 n x 2
10419 </span>
Igor Murashkinb8dc8812013-07-17 16:29:34 -070010420 <span class="entry_type_visibility"> [system as size]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010421
10422
10423 </td> <!-- entry_type -->
10424
10425 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080010426 <p>The resolutions available for use with raw
10427sensor output streams,<wbr/> listed as width,<wbr/>
10428height</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010429 </td>
10430
10431 <td class="entry_units">
10432 </td>
10433
10434 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -080010435 <p>Must include: - sensor maximum resolution</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010436 </td>
10437
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010438 <td class="entry_tags">
10439 </td>
10440
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080010441 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080010442
10443
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080010444 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
10445 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010446
Igor Murashkin7f15ddd2014-02-04 18:02:27 -080010447
10448 <tr class="entry" id="static_android.scaler.availableInputOutputFormatsMap">
10449 <td class="entry_name" rowspan="5">
10450 android.<wbr/>scaler.<wbr/>available<wbr/>Input<wbr/>Output<wbr/>Formats<wbr/>Map
10451 </td>
10452 <td class="entry_type">
10453 <span class="entry_type_name">int32</span>
10454 <span class="entry_type_container">x</span>
10455
10456 <span class="entry_type_array">
10457 n
10458 </span>
10459 <span class="entry_type_visibility"> [public as imageFormat]</span>
10460
10461
10462 </td> <!-- entry_type -->
10463
10464 <td class="entry_description">
10465 <p>The mapping of image formats that are supported by this
10466camera device for input streams,<wbr/> to their corresponding output formats.<wbr/></p>
10467 </td>
10468
10469 <td class="entry_units">
10470 </td>
10471
10472 <td class="entry_range">
10473 <p>See <a href="#static_android.scaler.availableFormats">android.<wbr/>scaler.<wbr/>available<wbr/>Formats</a> for enum definitions.<wbr/></p>
10474 </td>
10475
10476 <td class="entry_tags">
10477 </td>
10478
10479 </tr>
10480 <tr class="entries_header">
10481 <th class="th_details" colspan="5">Details</th>
10482 </tr>
10483 <tr class="entry_cont">
10484 <td class="entry_details" colspan="5">
10485 <p>All camera devices with at least 1
10486android.<wbr/>request.<wbr/>request.<wbr/>max<wbr/>Num<wbr/>Input<wbr/>Streams will have at least one
10487available input format.<wbr/></p>
10488<p>The camera device will support the following map of formats,<wbr/>
10489if its dependent capability is supported:</p>
10490<table>
10491<thead>
10492<tr>
10493<th align="left">Input Format</th>
10494<th align="left">Output Format</th>
10495<th align="left">Capability</th>
10496</tr>
10497</thead>
10498<tbody>
10499<tr>
10500<td align="left">RAW_<wbr/>OPAQUE</td>
10501<td align="left">JPEG</td>
10502<td align="left">ZSL</td>
10503</tr>
10504<tr>
10505<td align="left">RAW_<wbr/>OPAQUE</td>
10506<td align="left">YUV_<wbr/>420_<wbr/>888</td>
10507<td align="left">ZSL</td>
10508</tr>
10509<tr>
10510<td align="left">RAW_<wbr/>OPAQUE</td>
10511<td align="left">RAW16</td>
10512<td align="left">DNG</td>
10513</tr>
10514<tr>
10515<td align="left">RAW16</td>
10516<td align="left">YUV_<wbr/>420_<wbr/>888</td>
10517<td align="left">DNG</td>
10518</tr>
10519<tr>
10520<td align="left">RAW16</td>
10521<td align="left">JPEG</td>
10522<td align="left">DNG</td>
10523</tr>
10524</tbody>
10525</table>
10526<p>For ZSL-capable camera devices,<wbr/> using the RAW_<wbr/>OPAQUE format
10527as either input or output will never hurt maximum frame rate (i.<wbr/>e.<wbr/>
10528android.<wbr/>scaler.<wbr/>available<wbr/>Stall<wbr/>Durations will not have RAW_<wbr/>OPAQUE).<wbr/></p>
10529<p>Attempting to configure an input stream with output streams not
10530listed as available in this map is not valid.<wbr/></p>
10531<p>TODO: Add java type mapping for this property.<wbr/></p>
10532 </td>
10533 </tr>
10534
10535 <tr class="entries_header">
10536 <th class="th_details" colspan="5">HAL Implementation Details</th>
10537 </tr>
10538 <tr class="entry_cont">
10539 <td class="entry_details" colspan="5">
10540 <p>This value is encoded as a variable-size array-of-arrays.<wbr/>
10541The inner array always contains <code>[format,<wbr/> length,<wbr/> ...<wbr/>]</code> where
10542<code>...<wbr/></code> has <code>length</code> elements.<wbr/> An inner array is followed by another
10543inner array if the total metadata entry size hasn't yet been exceeded.<wbr/></p>
10544<p>A code sample to read/<wbr/>write this encoding (with a device that
10545supports reprocessing RAW_<wbr/>OPAQUE to RAW16,<wbr/> YUV_<wbr/>420_<wbr/>888,<wbr/> and JPEG,<wbr/>
10546and reprocessing RAW16 to YUV_<wbr/>420_<wbr/>888 and JPEG):</p>
10547<pre><code>//<wbr/> reading
10548int32_<wbr/>t* contents = &amp;entry.<wbr/>i32[0];
10549for (size_<wbr/>t i = 0; i &lt; entry.<wbr/>count; ) {
10550 int32_<wbr/>t format = contents[i++];
10551 int32_<wbr/>t length = contents[i++];
10552 int32_<wbr/>t output_<wbr/>formats[length];
10553 memcpy(&amp;output_<wbr/>formats[0],<wbr/> &amp;contents[i],<wbr/>
10554 length * sizeof(int32_<wbr/>t));
10555 i += length;
10556}
10557
10558//<wbr/> writing (static example,<wbr/> DNG+ZSL)
10559int32_<wbr/>t[] contents = {
10560 RAW_<wbr/>OPAQUE,<wbr/> 3,<wbr/> RAW16,<wbr/> YUV_<wbr/>420_<wbr/>888,<wbr/> BLOB,<wbr/>
10561 RAW16,<wbr/> 2,<wbr/> YUV_<wbr/>420_<wbr/>888,<wbr/> BLOB,<wbr/>
10562};
10563update_<wbr/>camera_<wbr/>metadata_<wbr/>entry(metadata,<wbr/> index,<wbr/> &amp;contents[0],<wbr/>
10564 sizeof(contents)/<wbr/>sizeof(contents[0]),<wbr/> &amp;updated_<wbr/>entry);
10565</code></pre>
10566<p>If the HAL claims to support any of the capabilities listed in the
10567above details,<wbr/> then it must also support all the input-output
10568combinations listed for that capability.<wbr/> It can optionally support
10569additional formats if it so chooses.<wbr/></p>
10570<p>Refer to <a href="#static_android.scaler.availableFormats">android.<wbr/>scaler.<wbr/>available<wbr/>Formats</a> for the enum values
10571which correspond to HAL_<wbr/>PIXEL_<wbr/>FORMAT_<wbr/>* in
10572system/<wbr/>core/<wbr/>include/<wbr/>system/<wbr/>graphics.<wbr/>h.<wbr/></p>
10573 </td>
10574 </tr>
10575
10576 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
10577 <!-- end of entry -->
10578
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010579
10580
10581 <!-- end of kind -->
10582 </tbody>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080010583 <tr><td colspan="6" class="kind">dynamic</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010584
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070010585 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010586 <tr>
10587 <th class="th_name">Property Name</th>
10588 <th class="th_type">Type</th>
10589 <th class="th_description">Description</th>
10590 <th class="th_units">Units</th>
10591 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010592 <th class="th_tags">Tags</th>
10593 </tr>
10594 </thead>
10595
10596 <tbody>
10597
10598
10599
10600
10601
10602
10603
10604
10605
10606
10607 <tr class="entry" id="dynamic_android.scaler.cropRegion">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080010608 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080010609 android.<wbr/>scaler.<wbr/>crop<wbr/>Region
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080010610 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010611 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080010612 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010613 <span class="entry_type_container">x</span>
10614
10615 <span class="entry_type_array">
Eino-Ville Talvalae04ec6e2013-04-16 15:35:18 -070010616 4
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010617 </span>
Igor Murashkinb8dc8812013-07-17 16:29:34 -070010618 <span class="entry_type_visibility"> [public as rectangle]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010619
10620
10621 </td> <!-- entry_type -->
10622
10623 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080010624 <p>(x,<wbr/> y,<wbr/> width,<wbr/> height).<wbr/></p>
10625<p>A rectangle with the top-level corner of (x,<wbr/>y) and size
10626(width,<wbr/> height).<wbr/> The region of the sensor that is used for
10627output.<wbr/> Each stream must use this rectangle to produce its
10628output,<wbr/> cropping to a smaller region if necessary to
10629maintain the stream's aspect ratio.<wbr/></p>
10630<p>HAL2.<wbr/>x uses only (x,<wbr/> y,<wbr/> width)</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010631 </td>
10632
10633 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -080010634 (x,<wbr/>y) of top-left corner,<wbr/> width and height of region
10635 in pixels; (0,<wbr/>0) is top-left corner of
10636 android.<wbr/>sensor.<wbr/>active<wbr/>Array<wbr/>Size
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010637 </td>
10638
10639 <td class="entry_range">
10640 </td>
10641
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080010642 <td class="entry_tags">
10643 <ul class="entry_tags">
10644 <li><a href="#tag_BC">BC</a></li>
10645 </ul>
10646 </td>
10647
10648 </tr>
10649 <tr class="entries_header">
10650 <th class="th_details" colspan="5">Details</th>
10651 </tr>
10652 <tr class="entry_cont">
10653 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -080010654 <p>Any additional per-stream cropping must be done to
10655maximize the final pixel area of the stream.<wbr/></p>
10656<p>For example,<wbr/> if the crop region is set to a 4:3 aspect
10657ratio,<wbr/> then 4:3 streams should use the exact crop
10658region.<wbr/> 16:9 streams should further crop vertically
10659(letterbox).<wbr/></p>
10660<p>Conversely,<wbr/> if the crop region is set to a 16:9,<wbr/> then 4:3
10661outputs should crop horizontally (pillarbox),<wbr/> and 16:9
10662streams should match exactly.<wbr/> These additional crops must
10663be centered within the crop region.<wbr/></p>
Igor Murashkin8aa2a112013-12-09 12:06:17 -080010664<p>The output streams must maintain square pixels at all
Igor Murashkin0b080452013-12-27 15:30:25 -080010665times,<wbr/> no matter what the relative aspect ratios of the
10666crop region and the stream are.<wbr/> Negative values for
Igor Murashkin8aa2a112013-12-09 12:06:17 -080010667corner are allowed for raw output if full pixel array is
Igor Murashkin0b080452013-12-27 15:30:25 -080010668larger than active pixel array.<wbr/> Width and height may be
10669rounded to nearest larger supportable width,<wbr/> especially
10670for raw output,<wbr/> where only a few fixed scales may be
10671possible.<wbr/> The width and height of the crop region cannot
10672be set to be smaller than floor( activeArraySize.<wbr/>width /<wbr/>
10673android.<wbr/>scaler.<wbr/>max<wbr/>Digital<wbr/>Zoom ) and floor(
10674activeArraySize.<wbr/>height /<wbr/> android.<wbr/>scaler.<wbr/>max<wbr/>Digital<wbr/>Zoom),<wbr/>
10675respectively.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010676 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080010677 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080010678
10679
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080010680 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
10681 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010682
10683
10684
10685 <!-- end of kind -->
10686 </tbody>
10687
10688 <!-- end of section -->
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080010689 <tr><td colspan="6" id="section_sensor" class="section">sensor</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010690
10691
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080010692 <tr><td colspan="6" class="kind">controls</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010693
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070010694 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010695 <tr>
10696 <th class="th_name">Property Name</th>
10697 <th class="th_type">Type</th>
10698 <th class="th_description">Description</th>
10699 <th class="th_units">Units</th>
10700 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010701 <th class="th_tags">Tags</th>
10702 </tr>
10703 </thead>
10704
10705 <tbody>
10706
10707
10708
10709
10710
10711
10712
10713
10714
10715
10716 <tr class="entry" id="controls_android.sensor.exposureTime">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080010717 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080010718 android.<wbr/>sensor.<wbr/>exposure<wbr/>Time
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080010719 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010720 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080010721 <span class="entry_type_name">int64</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010722
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070010723 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010724
10725
10726 </td> <!-- entry_type -->
10727
10728 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080010729 <p>Duration each pixel is exposed to
10730light.<wbr/></p>
10731<p>If the sensor can't expose this exact duration,<wbr/> it should shorten the
10732duration exposed to the nearest possible value (rather than expose longer).<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010733 </td>
10734
10735 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -080010736 nanoseconds
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010737 </td>
10738
10739 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -080010740 <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 -080010741 </td>
10742
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010743 <td class="entry_tags">
10744 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080010745 <li><a href="#tag_V1">V1</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010746 </ul>
10747 </td>
10748
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080010749 </tr>
10750 <tr class="entries_header">
10751 <th class="th_details" colspan="5">Details</th>
10752 </tr>
10753 <tr class="entry_cont">
10754 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -080010755 <p>1/<wbr/>10000 - 30 sec range.<wbr/> No bulb mode</p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080010756 </td>
10757 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080010758
10759
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080010760 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
10761 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010762
10763
10764 <tr class="entry" id="controls_android.sensor.frameDuration">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080010765 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080010766 android.<wbr/>sensor.<wbr/>frame<wbr/>Duration
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080010767 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010768 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080010769 <span class="entry_type_name">int64</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010770
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070010771 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010772
10773
10774 </td> <!-- entry_type -->
10775
10776 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080010777 <p>Duration from start of frame exposure to
Igor Murashkin10f4e0f2014-01-13 17:22:58 -080010778start of next frame exposure.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010779 </td>
10780
10781 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -080010782 nanoseconds
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010783 </td>
10784
10785 <td class="entry_range">
Igor Murashkin10f4e0f2014-01-13 17:22:58 -080010786 <p>See <a href="#static_android.sensor.info.maxFrameDuration">android.<wbr/>sensor.<wbr/>info.<wbr/>max<wbr/>Frame<wbr/>Duration</a>,<wbr/>
10787android.<wbr/>scaler.<wbr/>available*Min<wbr/>Durations.<wbr/> The duration
10788is capped to <code>max(duration,<wbr/> exposureTime + overhead)</code>.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010789 </td>
10790
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010791 <td class="entry_tags">
10792 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080010793 <li><a href="#tag_V1">V1</a></li>
10794 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010795 </ul>
10796 </td>
10797
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080010798 </tr>
10799 <tr class="entries_header">
10800 <th class="th_details" colspan="5">Details</th>
10801 </tr>
10802 <tr class="entry_cont">
10803 <td class="entry_details" colspan="5">
Igor Murashkin10f4e0f2014-01-13 17:22:58 -080010804 <p>The maximum frame rate that can be supported by a camera subsystem is
10805a function of many factors:</p>
10806<ul>
10807<li>Requested resolutions of output image streams</li>
10808<li>Availability of binning /<wbr/> skipping modes on the imager</li>
10809<li>The bandwidth of the imager interface</li>
10810<li>The bandwidth of the various ISP processing blocks</li>
10811</ul>
10812<p>Since these factors can vary greatly between different ISPs and
10813sensors,<wbr/> the camera abstraction tries to represent the bandwidth
10814restrictions with as simple a model as possible.<wbr/></p>
10815<p>The model presented has the following characteristics:</p>
10816<ul>
10817<li>The image sensor is always configured to output the smallest
10818resolution possible given the application's requested output stream
10819sizes.<wbr/> The smallest resolution is defined as being at least as large
10820as the largest requested output stream size; the camera pipeline must
10821never digitally upsample sensor data when the crop region covers the
10822whole sensor.<wbr/> In general,<wbr/> this means that if only small output stream
10823resolutions are configured,<wbr/> the sensor can provide a higher frame
10824rate.<wbr/></li>
10825<li>Since any request may use any or all the currently configured
10826output streams,<wbr/> the sensor and ISP must be configured to support
10827scaling a single capture to all the streams at the same time.<wbr/> This
10828means the camera pipeline must be ready to produce the largest
10829requested output size without any delay.<wbr/> Therefore,<wbr/> the overall
10830frame rate of a given configured stream set is governed only by the
10831largest requested stream resolution.<wbr/></li>
10832<li>Using more than one output stream in a request does not affect the
10833frame duration.<wbr/></li>
10834<li>JPEG streams act like processed YUV streams in requests for which
10835they are not included; in requests in which they are directly
10836referenced,<wbr/> they act as JPEG streams.<wbr/> This is because supporting a
10837JPEG stream requires the underlying YUV data to always be ready for
10838use by a JPEG encoder,<wbr/> but the encoder will only be used (and impact
10839frame duration) on requests that actually reference a JPEG stream.<wbr/></li>
10840<li>The JPEG processor can run concurrently to the rest of the camera
10841pipeline,<wbr/> but cannot process more than 1 capture at a time.<wbr/></li>
10842</ul>
10843<p>The necessary information for the application,<wbr/> given the model above,<wbr/>
10844is provided via the android.<wbr/>scaler.<wbr/>available*Min<wbr/>Durations fields.<wbr/>
10845These are used to determine the maximum frame rate /<wbr/> minimum frame
10846duration that is possible for a given stream configuration.<wbr/></p>
10847<p>Specifically,<wbr/> the application can use the following rules to
10848determine the minimum frame duration it can request from the HAL
10849device:</p>
10850<ol>
10851<li>Given the application's currently configured set of output
10852streams,<wbr/> <code>S</code>,<wbr/> divide them into three sets: streams in a JPEG format
10853<code>SJ</code>,<wbr/> streams in a raw sensor format <code>SR</code>,<wbr/> and the rest ('processed')
10854<code>SP</code>.<wbr/></li>
10855<li>For each subset of streams,<wbr/> find the largest resolution (by pixel
10856count) in the subset.<wbr/> This gives (at most) three resolutions <code>RJ</code>,<wbr/>
10857<code>RR</code>,<wbr/> and <code>RP</code>.<wbr/></li>
10858<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
10859no exact match for <code>RP == RJ</code> (in particular there isn't an available
10860processed resolution at the same size as <code>RJ</code>),<wbr/> then set <code>RP</code> equal
10861to the smallest processed resolution that is larger than <code>RJ</code>.<wbr/> If
10862there are no processed resolutions larger than <code>RJ</code>,<wbr/> then set <code>RJ</code> to
10863the processed resolution closest to <code>RJ</code>.<wbr/></li>
10864<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
10865no exact match for <code>RR == RP</code> (in particular there isn't an available
10866raw resolution at the same size as <code>RP</code>),<wbr/> then set <code>RR</code> equal to
10867or to the smallest raw resolution that is larger than <code>RP</code>.<wbr/> If
10868there are no raw resolutions larger than <code>RP</code>,<wbr/> then set <code>RR</code> to
10869the raw resolution closest to <code>RP</code>.<wbr/></li>
10870<li>Look up the matching minimum frame durations in the property lists
10871<a href="#static_android.scaler.availableJpegMinDurations">android.<wbr/>scaler.<wbr/>available<wbr/>Jpeg<wbr/>Min<wbr/>Durations</a>,<wbr/>
10872<a href="#static_android.scaler.availableRawMinDurations">android.<wbr/>scaler.<wbr/>available<wbr/>Raw<wbr/>Min<wbr/>Durations</a>,<wbr/> and
10873<a href="#static_android.scaler.availableProcessedMinDurations">android.<wbr/>scaler.<wbr/>available<wbr/>Processed<wbr/>Min<wbr/>Durations</a>.<wbr/> This gives three
10874minimum frame durations <code>FJ</code>,<wbr/> <code>FR</code>,<wbr/> and <code>FP</code>.<wbr/></li>
10875<li>If a stream of requests do not use a JPEG stream,<wbr/> then the minimum
10876supported frame duration for each request is <code>max(FR,<wbr/> FP)</code>.<wbr/></li>
10877<li>If a stream of requests all use the JPEG stream,<wbr/> then the minimum
10878supported frame duration for each request is <code>max(FR,<wbr/> FP,<wbr/> FJ)</code>.<wbr/></li>
10879<li>If a mix of JPEG-using and non-JPEG-using requests is submitted by
10880the application,<wbr/> then the HAL will have to delay JPEG-using requests
10881whenever the JPEG encoder is still busy processing an older capture.<wbr/>
10882This will happen whenever a JPEG-using request starts capture less
10883than <code>FJ</code> <em>ns</em> after a previous JPEG-using request.<wbr/> The minimum
10884supported frame duration will vary between the values calculated in
10885#6 and #7.<wbr/></li>
10886</ol>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080010887 </td>
10888 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080010889
10890
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080010891 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
10892 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010893
10894
10895 <tr class="entry" id="controls_android.sensor.sensitivity">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080010896 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080010897 android.<wbr/>sensor.<wbr/>sensitivity
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080010898 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010899 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080010900 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010901
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070010902 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010903
10904
10905 </td> <!-- entry_type -->
10906
10907 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080010908 <p>Gain applied to image data.<wbr/> Must be
Igor Murashkin8aa2a112013-12-09 12:06:17 -080010909implemented through analog gain only if set to values
Igor Murashkin0b080452013-12-27 15:30:25 -080010910below 'maximum analog sensitivity'.<wbr/></p>
10911<p>If the sensor can't apply this exact gain,<wbr/> it should lessen the
10912gain to the nearest possible value (rather than gain more).<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010913 </td>
10914
10915 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -080010916 ISO arithmetic units
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010917 </td>
10918
10919 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -080010920 <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 -080010921 </td>
10922
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010923 <td class="entry_tags">
10924 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080010925 <li><a href="#tag_V1">V1</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010926 </ul>
10927 </td>
10928
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080010929 </tr>
10930 <tr class="entries_header">
10931 <th class="th_details" colspan="5">Details</th>
10932 </tr>
10933 <tr class="entry_cont">
10934 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -080010935 <p>ISO 12232:2006 REI method</p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080010936 </td>
10937 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080010938
10939
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080010940 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
10941 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080010942
Igor Murashkina46e02f2014-01-09 17:43:38 -080010943
10944 <tr class="entry" id="controls_android.sensor.testPatternData">
10945 <td class="entry_name" rowspan="5">
10946 android.<wbr/>sensor.<wbr/>test<wbr/>Pattern<wbr/>Data
10947 </td>
10948 <td class="entry_type">
10949 <span class="entry_type_name">int32</span>
10950 <span class="entry_type_container">x</span>
10951
10952 <span class="entry_type_array">
10953 4
10954 </span>
10955 <span class="entry_type_visibility"> [public]</span>
10956
10957
10958 </td> <!-- entry_type -->
10959
10960 <td class="entry_description">
10961 <p>A pixel <code>[R,<wbr/> G_<wbr/>even,<wbr/> G_<wbr/>odd,<wbr/> B]</code> that supplies the test pattern
10962when <a href="#controls_android.sensor.testPatternMode">android.<wbr/>sensor.<wbr/>test<wbr/>Pattern<wbr/>Mode</a> is SOLID_<wbr/>COLOR.<wbr/></p>
10963 </td>
10964
10965 <td class="entry_units">
10966 </td>
10967
10968 <td class="entry_range">
10969 <p>Optional.<wbr/>
10970Must be supported if <a href="#static_android.sensor.availableTestPatternModes">android.<wbr/>sensor.<wbr/>available<wbr/>Test<wbr/>Pattern<wbr/>Modes</a> contains
10971SOLID_<wbr/>COLOR.<wbr/></p>
10972 </td>
10973
10974 <td class="entry_tags">
10975 </td>
10976
10977 </tr>
10978 <tr class="entries_header">
10979 <th class="th_details" colspan="5">Details</th>
10980 </tr>
10981 <tr class="entry_cont">
10982 <td class="entry_details" colspan="5">
10983 <p>Each color channel is treated as an unsigned 32-bit integer.<wbr/>
10984The camera device then uses the most significant X bits
10985that correspond to how many bits are in its Bayer raw sensor
10986output.<wbr/></p>
10987<p>For example,<wbr/> a sensor with RAW10 Bayer output would use the
1098810 most significant bits from each color channel.<wbr/></p>
10989 </td>
10990 </tr>
10991
10992 <tr class="entries_header">
10993 <th class="th_details" colspan="5">HAL Implementation Details</th>
10994 </tr>
10995 <tr class="entry_cont">
10996 <td class="entry_details" colspan="5">
10997
10998 </td>
10999 </tr>
11000
11001 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
11002 <!-- end of entry -->
11003
11004
11005 <tr class="entry" id="controls_android.sensor.testPatternMode">
11006 <td class="entry_name" rowspan="5">
11007 android.<wbr/>sensor.<wbr/>test<wbr/>Pattern<wbr/>Mode
11008 </td>
11009 <td class="entry_type">
11010 <span class="entry_type_name entry_type_name_enum">int32</span>
11011
11012 <span class="entry_type_visibility"> [public]</span>
11013
11014 <ul class="entry_type_enum">
11015 <li>
11016 <span class="entry_type_enum_name">OFF</span>
11017 <span class="entry_type_enum_notes"><p>Default.<wbr/> No test pattern mode is used,<wbr/> and the camera
11018device returns captures from the image sensor.<wbr/></p></span>
11019 </li>
11020 <li>
11021 <span class="entry_type_enum_name">SOLID_COLOR</span>
11022 <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
11023respective color channel provided in
11024<a href="#controls_android.sensor.testPatternData">android.<wbr/>sensor.<wbr/>test<wbr/>Pattern<wbr/>Data</a>.<wbr/></p>
11025<p>For example:</p>
11026<pre><code>android.<wbr/>testPatternData = [0,<wbr/> 0xFFFFFFFF,<wbr/> 0xFFFFFFFF,<wbr/> 0]
11027</code></pre>
11028<p>All green pixels are 100% green.<wbr/> All red/<wbr/>blue pixels are black.<wbr/></p>
11029<pre><code>android.<wbr/>testPatternData = [0xFFFFFFFF,<wbr/> 0,<wbr/> 0xFFFFFFFF,<wbr/> 0]
11030</code></pre>
11031<p>All red pixels are 100% red.<wbr/> Only the odd green pixels
11032are 100% green.<wbr/> All blue pixels are 100% black.<wbr/></p></span>
11033 </li>
11034 <li>
11035 <span class="entry_type_enum_name">COLOR_BARS</span>
11036 <span class="entry_type_enum_notes"><p>All pixel data is replaced with an 8-bar color pattern.<wbr/></p>
11037<p>The vertical bars (left-to-right) are as follows:</p>
11038<ul>
11039<li>100% white</li>
11040<li>yellow</li>
11041<li>cyan</li>
11042<li>green</li>
11043<li>magenta</li>
11044<li>red</li>
11045<li>blue</li>
11046<li>black</li>
11047</ul>
11048<p>In general the image would look like the following:</p>
11049<pre><code>W Y C G M R B K
11050W Y C G M R B K
11051W Y C G M R B K
11052W Y C G M R B K
11053W Y C G M R B K
11054.<wbr/> .<wbr/> .<wbr/> .<wbr/> .<wbr/> .<wbr/> .<wbr/> .<wbr/>
11055.<wbr/> .<wbr/> .<wbr/> .<wbr/> .<wbr/> .<wbr/> .<wbr/> .<wbr/>
11056.<wbr/> .<wbr/> .<wbr/> .<wbr/> .<wbr/> .<wbr/> .<wbr/> .<wbr/>
11057
11058(B = Blue,<wbr/> K = Black)
11059</code></pre>
11060<p>Each bar should take up 1/<wbr/>8 of the sensor pixel array width.<wbr/>
11061When this is not possible,<wbr/> the bar size should be rounded
11062down to the nearest integer and the pattern can repeat
11063on the right side.<wbr/></p>
11064<p>Each bar's height must always take up the full sensor
11065pixel array height.<wbr/></p>
11066<p>Each pixel in this test pattern must be set to either
110670% intensity or 100% intensity.<wbr/></p></span>
11068 </li>
11069 <li>
11070 <span class="entry_type_enum_name">COLOR_BARS_FADE_TO_GRAY</span>
11071 <span class="entry_type_enum_notes"><p>The test pattern is similar to COLOR_<wbr/>BARS,<wbr/> except that
11072each bar should start at its specified color at the top,<wbr/>
11073and fade to gray at the bottom.<wbr/></p>
11074<p>Furthermore each bar is further subdivided into a left and
11075right half.<wbr/> The left half should have a smooth gradient,<wbr/>
11076and the right half should have a quantized gradient.<wbr/></p>
11077<p>In particular,<wbr/> the right half's should consist of blocks of the
11078same color for 1/<wbr/>16th active sensor pixel array width.<wbr/></p>
11079<p>The least significant bits in the quantized gradient should
11080be copied from the most significant bits of the smooth gradient.<wbr/></p>
11081<p>The height of each bar should always be a multiple of 128.<wbr/>
11082When this is not the case,<wbr/> the pattern should repeat at the bottom
11083of the image.<wbr/></p></span>
11084 </li>
11085 <li>
11086 <span class="entry_type_enum_name">PN9</span>
11087 <span class="entry_type_enum_notes"><p>All pixel data is replaced by a pseudo-random sequence
11088generated from a PN9 512-bit sequence (typically implemented
11089in hardware with a linear feedback shift register).<wbr/></p>
11090<p>The generator should be reset at the beginning of each frame,<wbr/>
11091and thus each subsequent raw frame with this test pattern should
11092be exactly the same as the last.<wbr/></p></span>
11093 </li>
11094 <li>
11095 <span class="entry_type_enum_name">CUSTOM1</span>
11096 <span class="entry_type_enum_value">256</span>
11097 <span class="entry_type_enum_notes"><p>The first custom test pattern.<wbr/> All custom patterns that are
11098available only on this camera device are at least this numeric
11099value.<wbr/></p>
11100<p>All of the custom test patterns will be static
11101(that is the raw image must not vary from frame to frame).<wbr/></p></span>
11102 </li>
11103 </ul>
11104
11105 </td> <!-- entry_type -->
11106
11107 <td class="entry_description">
11108 <p>When enabled,<wbr/> the sensor sends a test pattern instead of
11109doing a real exposure from the camera.<wbr/></p>
11110 </td>
11111
11112 <td class="entry_units">
11113 </td>
11114
11115 <td class="entry_range">
11116 <p>Optional.<wbr/> Defaults to OFF.<wbr/> Value must be one of
11117<a href="#static_android.sensor.availableTestPatternModes">android.<wbr/>sensor.<wbr/>available<wbr/>Test<wbr/>Pattern<wbr/>Modes</a></p>
11118 </td>
11119
11120 <td class="entry_tags">
11121 </td>
11122
11123 </tr>
11124 <tr class="entries_header">
11125 <th class="th_details" colspan="5">Details</th>
11126 </tr>
11127 <tr class="entry_cont">
11128 <td class="entry_details" colspan="5">
11129 <p>When a test pattern is enabled,<wbr/> all manual sensor controls specified
11130by android.<wbr/>sensor.<wbr/>* should be ignored.<wbr/> All other controls should
11131work as normal.<wbr/></p>
11132<p>For example,<wbr/> if manual flash is enabled,<wbr/> flash firing should still
11133occur (and that the test pattern remain unmodified,<wbr/> since the flash
11134would not actually affect it).<wbr/></p>
11135 </td>
11136 </tr>
11137
11138 <tr class="entries_header">
11139 <th class="th_details" colspan="5">HAL Implementation Details</th>
11140 </tr>
11141 <tr class="entry_cont">
11142 <td class="entry_details" colspan="5">
11143 <p>All test patterns are specified in the Bayer domain.<wbr/></p>
11144<p>The HAL may choose to substitute test patterns from the sensor
11145with test patterns from on-device memory.<wbr/> In that case,<wbr/> it should be
11146indistinguishable to the ISP whether the data came from the
11147sensor interconnect bus (such as CSI2) or memory.<wbr/></p>
11148 </td>
11149 </tr>
11150
11151 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
11152 <!-- end of entry -->
11153
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011154
11155
11156 <!-- end of kind -->
11157 </tbody>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011158 <tr><td colspan="6" class="kind">static</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011159
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070011160 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011161 <tr>
11162 <th class="th_name">Property Name</th>
11163 <th class="th_type">Type</th>
11164 <th class="th_description">Description</th>
11165 <th class="th_units">Units</th>
11166 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011167 <th class="th_tags">Tags</th>
11168 </tr>
11169 </thead>
11170
11171 <tbody>
11172
11173
11174
11175
11176
11177
11178
11179
11180
11181
11182
11183
11184 <tr class="entry" id="static_android.sensor.info.activeArraySize">
Zhijun Hebdc94c42014-01-21 18:28:30 -080011185 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080011186 android.<wbr/>sensor.<wbr/>info.<wbr/>active<wbr/>Array<wbr/>Size
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011187 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011188 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080011189 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011190 <span class="entry_type_container">x</span>
11191
11192 <span class="entry_type_array">
11193 4
11194 </span>
Igor Murashkinb8dc8812013-07-17 16:29:34 -070011195 <span class="entry_type_visibility"> [public as rectangle]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -080011196 <div class="entry_type_notes">Four ints defining the active pixel rectangle</div>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011197
11198
11199 </td> <!-- entry_type -->
11200
11201 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080011202 <p>Area of raw data which corresponds to only
Zhijun Hebdc94c42014-01-21 18:28:30 -080011203active pixels.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011204 </td>
11205
11206 <td class="entry_units">
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011207 </td>
11208
11209 <td class="entry_range">
Zhijun Hebdc94c42014-01-21 18:28:30 -080011210 <p>This array contains <code>(xmin,<wbr/> ymin,<wbr/> width,<wbr/> height)</code>.<wbr/> The <code>(xmin,<wbr/> ymin)</code> must be
11211&gt;= <code>(0,<wbr/>0)</code>.<wbr/> The <code>(width,<wbr/> height)</code> must be &lt;=
11212<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 -080011213 </td>
11214
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011215 <td class="entry_tags">
11216 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080011217 <li><a href="#tag_DNG">DNG</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011218 </ul>
11219 </td>
11220
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011221 </tr>
Zhijun Hebdc94c42014-01-21 18:28:30 -080011222 <tr class="entries_header">
11223 <th class="th_details" colspan="5">Details</th>
11224 </tr>
11225 <tr class="entry_cont">
11226 <td class="entry_details" colspan="5">
11227 <p>It is smaller or equal to
11228sensor full pixel array,<wbr/> which could include the black calibration pixels.<wbr/></p>
11229 </td>
11230 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011231
11232
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011233 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
11234 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011235
11236
Zhijun He69fc0ea2013-07-17 09:42:58 -070011237 <tr class="entry" id="static_android.sensor.info.sensitivityRange">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011238 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -080011239 android.<wbr/>sensor.<wbr/>info.<wbr/>sensitivity<wbr/>Range
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011240 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011241 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080011242 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011243 <span class="entry_type_container">x</span>
11244
11245 <span class="entry_type_array">
Zhijun He69fc0ea2013-07-17 09:42:58 -070011246 2
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011247 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070011248 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -080011249 <div class="entry_type_notes">Range of supported sensitivities</div>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011250
11251
11252 </td> <!-- entry_type -->
11253
11254 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080011255 <p>Range of valid sensitivities</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011256 </td>
11257
11258 <td class="entry_units">
11259 </td>
11260
11261 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -080011262 <p>Min &lt;= 100,<wbr/> Max &gt;= 1600</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011263 </td>
11264
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011265 <td class="entry_tags">
11266 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080011267 <li><a href="#tag_BC">BC</a></li>
11268 <li><a href="#tag_V1">V1</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011269 </ul>
11270 </td>
11271
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011272 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011273
11274
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011275 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
11276 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011277
11278
11279 <tr class="entry" id="static_android.sensor.info.colorFilterArrangement">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011280 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -080011281 android.<wbr/>sensor.<wbr/>info.<wbr/>color<wbr/>Filter<wbr/>Arrangement
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011282 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011283 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080011284 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011285
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070011286 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011287
11288 <ul class="entry_type_enum">
11289 <li>
11290 <span class="entry_type_enum_name">RGGB</span>
11291 </li>
11292 <li>
11293 <span class="entry_type_enum_name">GRBG</span>
11294 </li>
11295 <li>
11296 <span class="entry_type_enum_name">GBRG</span>
11297 </li>
11298 <li>
11299 <span class="entry_type_enum_name">BGGR</span>
11300 </li>
11301 <li>
11302 <span class="entry_type_enum_name">RGB</span>
Igor Murashkina10351a2014-01-15 17:05:22 -080011303 <span class="entry_type_enum_notes"><p>Sensor is not Bayer; output has 3 16-bit
11304values for each pixel,<wbr/> instead of just 1 16-bit value
11305per pixel.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011306 </li>
11307 </ul>
11308
11309 </td> <!-- entry_type -->
11310
11311 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080011312 <p>Arrangement of color filters on sensor;
Igor Murashkin8aa2a112013-12-09 12:06:17 -080011313represents the colors in the top-left 2x2 section of
Igor Murashkin0b080452013-12-27 15:30:25 -080011314the sensor,<wbr/> in reading order</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011315 </td>
11316
11317 <td class="entry_units">
11318 </td>
11319
11320 <td class="entry_range">
11321 </td>
11322
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011323 <td class="entry_tags">
11324 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080011325 <li><a href="#tag_DNG">DNG</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011326 </ul>
11327 </td>
11328
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011329 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011330
11331
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011332 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
11333 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011334
11335
11336 <tr class="entry" id="static_android.sensor.info.exposureTimeRange">
Igor Murashkin061c6002014-01-27 16:00:26 -080011337 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080011338 android.<wbr/>sensor.<wbr/>info.<wbr/>exposure<wbr/>Time<wbr/>Range
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011339 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011340 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080011341 <span class="entry_type_name">int64</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011342 <span class="entry_type_container">x</span>
11343
11344 <span class="entry_type_array">
11345 2
11346 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070011347 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -080011348 <div class="entry_type_notes">nanoseconds</div>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011349
11350
11351 </td> <!-- entry_type -->
11352
11353 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080011354 <p>Range of valid exposure
Igor Murashkin061c6002014-01-27 16:00:26 -080011355times 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 -080011356 </td>
11357
11358 <td class="entry_units">
11359 </td>
11360
11361 <td class="entry_range">
Igor Murashkin061c6002014-01-27 16:00:26 -080011362 <p>Min &lt;= 100e3 (100 us),<wbr/> Max &gt;= 1e9 (1
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -080011363sec)</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011364 </td>
11365
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011366 <td class="entry_tags">
11367 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080011368 <li><a href="#tag_V1">V1</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011369 </ul>
11370 </td>
11371
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011372 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011373
Igor Murashkin061c6002014-01-27 16:00:26 -080011374 <tr class="entries_header">
11375 <th class="th_details" colspan="5">HAL Implementation Details</th>
11376 </tr>
11377 <tr class="entry_cont">
11378 <td class="entry_details" colspan="5">
11379 <p>The maximum of the range must be at least
113801 second.<wbr/> It should be at least 30 seconds.<wbr/></p>
11381 </td>
11382 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011383
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011384 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
11385 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011386
11387
11388 <tr class="entry" id="static_android.sensor.info.maxFrameDuration">
Igor Murashkin061c6002014-01-27 16:00:26 -080011389 <td class="entry_name" rowspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -080011390 android.<wbr/>sensor.<wbr/>info.<wbr/>max<wbr/>Frame<wbr/>Duration
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011391 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011392 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080011393 <span class="entry_type_name">int64</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011394
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070011395 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011396
11397
11398 </td> <!-- entry_type -->
11399
11400 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080011401 <p>Maximum possible frame duration (minimum frame
Igor Murashkin061c6002014-01-27 16:00:26 -080011402rate).<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011403 </td>
11404
11405 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -080011406 nanoseconds
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011407 </td>
11408
11409 <td class="entry_range">
Igor Murashkin6cb7c2c2014-01-10 15:12:40 -080011410 <p>&gt;= 30e9</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011411 </td>
11412
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011413 <td class="entry_tags">
11414 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080011415 <li><a href="#tag_BC">BC</a></li>
11416 <li><a href="#tag_V1">V1</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011417 </ul>
11418 </td>
11419
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011420 </tr>
11421 <tr class="entries_header">
11422 <th class="th_details" colspan="5">Details</th>
11423 </tr>
11424 <tr class="entry_cont">
11425 <td class="entry_details" colspan="5">
Igor Murashkin061c6002014-01-27 16:00:26 -080011426 <p>The largest possible android.<wbr/>sensor.<wbr/>frame<wbr/>Duration
11427that will be accepted by the camera device.<wbr/> Attempting to use
11428frame durations beyond the maximum will result in the frame duration
11429being clipped to the maximum.<wbr/> See that control
11430for a full definition of frame durations.<wbr/></p>
11431<p>Refer to
11432<a href="#static_android.scaler.availableProcessedMinDurations">android.<wbr/>scaler.<wbr/>available<wbr/>Processed<wbr/>Min<wbr/>Durations</a>,<wbr/>
11433<a href="#static_android.scaler.availableJpegMinDurations">android.<wbr/>scaler.<wbr/>available<wbr/>Jpeg<wbr/>Min<wbr/>Durations</a>,<wbr/> and
11434<a href="#static_android.scaler.availableRawMinDurations">android.<wbr/>scaler.<wbr/>available<wbr/>Raw<wbr/>Min<wbr/>Durations</a> for the minimum
11435frame duration values.<wbr/></p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011436 </td>
11437 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011438
Igor Murashkin061c6002014-01-27 16:00:26 -080011439 <tr class="entries_header">
11440 <th class="th_details" colspan="5">HAL Implementation Details</th>
11441 </tr>
11442 <tr class="entry_cont">
11443 <td class="entry_details" colspan="5">
11444 <p>This value must be at least 1 second.<wbr/> It should be at least 30
11445seconds (30e9 ns).<wbr/></p>
11446<p>android.<wbr/>sensor.<wbr/>max<wbr/>Frame<wbr/>Duration must be greater or equal to the
11447android.<wbr/>sensor.<wbr/>exposure<wbr/>Time<wbr/>Range max value (since exposure time
11448overrides frame duration).<wbr/></p>
11449 </td>
11450 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011451
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011452 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
11453 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011454
11455
11456 <tr class="entry" id="static_android.sensor.info.physicalSize">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011457 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080011458 android.<wbr/>sensor.<wbr/>info.<wbr/>physical<wbr/>Size
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011459 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011460 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080011461 <span class="entry_type_name">float</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011462 <span class="entry_type_container">x</span>
11463
11464 <span class="entry_type_array">
11465 2
11466 </span>
Timothy Knightec817d52013-08-16 16:15:29 -070011467 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -080011468 <div class="entry_type_notes">width x height in millimeters</div>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011469
11470
11471 </td> <!-- entry_type -->
11472
11473 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080011474 <p>The physical dimensions of the full pixel
11475array</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011476 </td>
11477
11478 <td class="entry_units">
11479 </td>
11480
11481 <td class="entry_range">
11482 </td>
11483
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011484 <td class="entry_tags">
11485 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080011486 <li><a href="#tag_V1">V1</a></li>
11487 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011488 </ul>
11489 </td>
11490
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011491 </tr>
11492 <tr class="entries_header">
11493 <th class="th_details" colspan="5">Details</th>
11494 </tr>
11495 <tr class="entry_cont">
11496 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -080011497 <p>Needed for FOV calculation for old API</p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011498 </td>
11499 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011500
11501
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011502 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
11503 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011504
11505
11506 <tr class="entry" id="static_android.sensor.info.pixelArraySize">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011507 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080011508 android.<wbr/>sensor.<wbr/>info.<wbr/>pixel<wbr/>Array<wbr/>Size
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011509 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011510 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080011511 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011512 <span class="entry_type_container">x</span>
11513
11514 <span class="entry_type_array">
11515 2
11516 </span>
Igor Murashkinb8dc8812013-07-17 16:29:34 -070011517 <span class="entry_type_visibility"> [system as size]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011518
11519
11520 </td> <!-- entry_type -->
11521
11522 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080011523 <p>Dimensions of full pixel array,<wbr/> possibly
Zhijun Hebdc94c42014-01-21 18:28:30 -080011524including black calibration pixels.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011525 </td>
11526
11527 <td class="entry_units">
11528 </td>
11529
11530 <td class="entry_range">
11531 </td>
11532
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011533 <td class="entry_tags">
11534 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080011535 <li><a href="#tag_DNG">DNG</a></li>
11536 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011537 </ul>
11538 </td>
11539
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011540 </tr>
11541 <tr class="entries_header">
11542 <th class="th_details" colspan="5">Details</th>
11543 </tr>
11544 <tr class="entry_cont">
11545 <td class="entry_details" colspan="5">
Zhijun Hebdc94c42014-01-21 18:28:30 -080011546 <p>The maximum output resolution for raw format in
11547<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 -080011548 </td>
11549 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011550
11551
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011552 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
11553 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011554
11555
11556 <tr class="entry" id="static_android.sensor.info.whiteLevel">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011557 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080011558 android.<wbr/>sensor.<wbr/>info.<wbr/>white<wbr/>Level
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011559 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011560 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080011561 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011562
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070011563 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011564
11565
11566 </td> <!-- entry_type -->
11567
11568 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080011569 <p>Maximum raw value output by
11570sensor</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011571 </td>
11572
11573 <td class="entry_units">
11574 </td>
11575
11576 <td class="entry_range">
Igor Murashkin6cb7c2c2014-01-10 15:12:40 -080011577 <p>&gt; 1024 (10-bit output)</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011578 </td>
11579
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011580 <td class="entry_tags">
11581 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080011582 <li><a href="#tag_DNG">DNG</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011583 </ul>
11584 </td>
11585
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011586 </tr>
11587 <tr class="entries_header">
11588 <th class="th_details" colspan="5">Details</th>
11589 </tr>
11590 <tr class="entry_cont">
11591 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -080011592 <p>Defines sensor bit depth (10-14 bits is
11593expected)</p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011594 </td>
11595 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011596
11597
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011598 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
11599 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011600
11601
11602
11603
11604
11605 <tr class="entry" id="static_android.sensor.baseGainFactor">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011606 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -080011607 android.<wbr/>sensor.<wbr/>base<wbr/>Gain<wbr/>Factor
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011608 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011609 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080011610 <span class="entry_type_name">rational</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011611
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070011612 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011613
11614
11615 </td> <!-- entry_type -->
11616
11617 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080011618 <p>Gain factor from electrons to raw units when
11619ISO=100</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011620 </td>
11621
11622 <td class="entry_units">
11623 </td>
11624
11625 <td class="entry_range">
11626 </td>
11627
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011628 <td class="entry_tags">
11629 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080011630 <li><a href="#tag_V1">V1</a></li>
Alex Rayef40ad62013-10-01 17:52:33 -070011631 <li><a href="#tag_FULL">FULL</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011632 </ul>
11633 </td>
11634
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011635 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011636
11637
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011638 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
11639 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011640
11641
11642 <tr class="entry" id="static_android.sensor.blackLevelPattern">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011643 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080011644 android.<wbr/>sensor.<wbr/>black<wbr/>Level<wbr/>Pattern
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011645 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011646 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080011647 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011648 <span class="entry_type_container">x</span>
11649
11650 <span class="entry_type_array">
11651 4
11652 </span>
Ruben Brunk24bdaaf2014-01-31 14:11:20 -080011653 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -080011654 <div class="entry_type_notes">2x2 raw count block</div>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011655
11656
11657 </td> <!-- entry_type -->
11658
11659 <td class="entry_description">
Ruben Brunk24bdaaf2014-01-31 14:11:20 -080011660 <p>A fixed black level offset for each of the color filter arrangement
11661(CFA) mosaic channels.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011662 </td>
11663
11664 <td class="entry_units">
11665 </td>
11666
11667 <td class="entry_range">
Ruben Brunk24bdaaf2014-01-31 14:11:20 -080011668 <p>&gt;= 0 for each.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011669 </td>
11670
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011671 <td class="entry_tags">
11672 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080011673 <li><a href="#tag_DNG">DNG</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011674 </ul>
11675 </td>
11676
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011677 </tr>
11678 <tr class="entries_header">
11679 <th class="th_details" colspan="5">Details</th>
11680 </tr>
11681 <tr class="entry_cont">
11682 <td class="entry_details" colspan="5">
Ruben Brunk24bdaaf2014-01-31 14:11:20 -080011683 <p>This tag specifies the zero light value for each of the CFA mosaic
11684channels in the camera sensor.<wbr/></p>
11685<p>The values are given in row-column scan order,<wbr/> with the first value
11686corresponding to the element of the CFA in row=0,<wbr/> column=0.<wbr/></p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011687 </td>
11688 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011689
11690
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011691 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
11692 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011693
11694
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011695 <tr class="entry" id="static_android.sensor.maxAnalogSensitivity">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011696 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080011697 android.<wbr/>sensor.<wbr/>max<wbr/>Analog<wbr/>Sensitivity
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011698 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011699 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080011700 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011701
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070011702 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011703
11704
11705 </td> <!-- entry_type -->
11706
11707 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080011708 <p>Maximum sensitivity that is implemented
Zhijun Hebdc94c42014-01-21 18:28:30 -080011709purely through analog gain.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011710 </td>
11711
11712 <td class="entry_units">
11713 </td>
11714
11715 <td class="entry_range">
11716 </td>
11717
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011718 <td class="entry_tags">
11719 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080011720 <li><a href="#tag_V1">V1</a></li>
Alex Rayef40ad62013-10-01 17:52:33 -070011721 <li><a href="#tag_FULL">FULL</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011722 </ul>
11723 </td>
11724
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011725 </tr>
11726 <tr class="entries_header">
11727 <th class="th_details" colspan="5">Details</th>
11728 </tr>
11729 <tr class="entry_cont">
11730 <td class="entry_details" colspan="5">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -080011731 <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 -080011732equal to this,<wbr/> all applied gain must be analog.<wbr/> For
Zhijun Hebdc94c42014-01-21 18:28:30 -080011733values above this,<wbr/> the gain applied can be a mix of analog and
11734digital.<wbr/></p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011735 </td>
11736 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011737
11738
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011739 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
11740 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011741
11742
11743 <tr class="entry" id="static_android.sensor.noiseModelCoefficients">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011744 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080011745 android.<wbr/>sensor.<wbr/>noise<wbr/>Model<wbr/>Coefficients
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011746 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011747 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080011748 <span class="entry_type_name">float</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011749 <span class="entry_type_container">x</span>
11750
11751 <span class="entry_type_array">
11752 2
11753 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070011754 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -080011755 <div class="entry_type_notes">float constants A,<wbr/> B for the noise variance model</div>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011756
11757
11758 </td> <!-- entry_type -->
11759
11760 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080011761 <p>Estimation of sensor noise
11762characteristics</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011763 </td>
11764
11765 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -080011766 var(raw pixel value) = electrons * (baseGainFactor
11767 * iso/<wbr/>100)^2 + A * (baseGainFactor * iso/<wbr/>100)^2 +
11768 B
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011769 </td>
11770
11771 <td class="entry_range">
11772 </td>
11773
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011774 <td class="entry_tags">
11775 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080011776 <li><a href="#tag_V1">V1</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011777 </ul>
11778 </td>
11779
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011780 </tr>
11781 <tr class="entries_header">
11782 <th class="th_details" colspan="5">Details</th>
11783 </tr>
11784 <tr class="entry_cont">
11785 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -080011786 <p>A represents sensor read noise before analog
11787amplification; B represents noise from A/<wbr/>D conversion and
11788other circuits after amplification.<wbr/> Both noise sources
11789are assumed to be gaussian,<wbr/> independent,<wbr/> and not to vary
11790across the sensor</p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011791 </td>
11792 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011793
11794
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011795 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
11796 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011797
11798
11799 <tr class="entry" id="static_android.sensor.orientation">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011800 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -080011801 android.<wbr/>sensor.<wbr/>orientation
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011802 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011803 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080011804 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011805
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070011806 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011807
11808
11809 </td> <!-- entry_type -->
11810
11811 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080011812 <p>Clockwise angle through which the output
Igor Murashkin8aa2a112013-12-09 12:06:17 -080011813image needs to be rotated to be upright on the device
Igor Murashkin0b080452013-12-27 15:30:25 -080011814screen in its native orientation.<wbr/> Also defines the
11815direction of rolling shutter readout,<wbr/> which is from top
11816to bottom in the sensor's coordinate system</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011817 </td>
11818
11819 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -080011820 degrees clockwise rotation,<wbr/> only multiples of
11821 90
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011822 </td>
11823
11824 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -080011825 <p>0,<wbr/>90,<wbr/>180,<wbr/>270</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011826 </td>
11827
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011828 <td class="entry_tags">
11829 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080011830 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011831 </ul>
11832 </td>
11833
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011834 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011835
11836
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011837 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
11838 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011839
11840
Ruben Brunk2bebe312014-02-06 13:04:38 -080011841 <tr class="entry" id="static_android.sensor.profileHueSatMapDimensions">
11842 <td class="entry_name" rowspan="3">
11843 android.<wbr/>sensor.<wbr/>profile<wbr/>Hue<wbr/>Sat<wbr/>Map<wbr/>Dimensions
11844 </td>
11845 <td class="entry_type">
11846 <span class="entry_type_name">int32</span>
11847 <span class="entry_type_container">x</span>
11848
11849 <span class="entry_type_array">
11850 3
11851 </span>
11852 <span class="entry_type_visibility"> [public]</span>
11853 <div class="entry_type_notes">Number of samples for hue,<wbr/> saturation,<wbr/> and value</div>
11854
11855
11856 </td> <!-- entry_type -->
11857
11858 <td class="entry_description">
11859 <p>The number of input samples for each dimension of
11860<a href="#dynamic_android.sensor.profileHueSatMap">android.<wbr/>sensor.<wbr/>profile<wbr/>Hue<wbr/>Sat<wbr/>Map</a>.<wbr/></p>
11861 </td>
11862
11863 <td class="entry_units">
11864 </td>
11865
11866 <td class="entry_range">
11867 <p>Hue &gt;= 1,<wbr/>
11868Saturation &gt;= 2,<wbr/>
11869Value &gt;= 1</p>
11870 </td>
11871
11872 <td class="entry_tags">
11873 <ul class="entry_tags">
11874 <li><a href="#tag_DNG">DNG</a></li>
11875 </ul>
11876 </td>
11877
11878 </tr>
11879 <tr class="entries_header">
11880 <th class="th_details" colspan="5">Details</th>
11881 </tr>
11882 <tr class="entry_cont">
11883 <td class="entry_details" colspan="5">
11884 <p>The number of input samples for the hue,<wbr/> saturation,<wbr/> and value
11885dimension of <a href="#dynamic_android.sensor.profileHueSatMap">android.<wbr/>sensor.<wbr/>profile<wbr/>Hue<wbr/>Sat<wbr/>Map</a>.<wbr/> The order of the
11886dimensions given is hue,<wbr/> saturation,<wbr/> value; where hue is the 0th
11887element.<wbr/></p>
11888 </td>
11889 </tr>
11890
11891
11892 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
11893 <!-- end of entry -->
11894
11895
Igor Murashkina46e02f2014-01-09 17:43:38 -080011896 <tr class="entry" id="static_android.sensor.availableTestPatternModes">
11897 <td class="entry_name" rowspan="1">
11898 android.<wbr/>sensor.<wbr/>available<wbr/>Test<wbr/>Pattern<wbr/>Modes
11899 </td>
11900 <td class="entry_type">
11901 <span class="entry_type_name">byte</span>
11902
11903 <span class="entry_type_visibility"> [public]</span>
11904
11905
11906 </td> <!-- entry_type -->
11907
11908 <td class="entry_description">
11909 <p>Optional.<wbr/> Defaults to [OFF].<wbr/> Lists the supported test
11910pattern modes for android.<wbr/>test.<wbr/>pattern<wbr/>Mode.<wbr/></p>
11911 </td>
11912
11913 <td class="entry_units">
11914 </td>
11915
11916 <td class="entry_range">
11917 <p>Must include OFF.<wbr/> All custom modes must be &gt;= CUSTOM1</p>
11918 </td>
11919
11920 <td class="entry_tags">
11921 </td>
11922
11923 </tr>
11924
11925
11926 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
11927 <!-- end of entry -->
11928
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011929
11930
11931 <!-- end of kind -->
11932 </tbody>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011933 <tr><td colspan="6" class="kind">dynamic</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011934
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070011935 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011936 <tr>
11937 <th class="th_name">Property Name</th>
11938 <th class="th_type">Type</th>
11939 <th class="th_description">Description</th>
11940 <th class="th_units">Units</th>
11941 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011942 <th class="th_tags">Tags</th>
11943 </tr>
11944 </thead>
11945
11946 <tbody>
11947
11948
11949
11950
11951
11952
11953
11954
11955
11956
11957 <tr class="entry" id="dynamic_android.sensor.exposureTime">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011958 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080011959 android.<wbr/>sensor.<wbr/>exposure<wbr/>Time
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011960 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011961 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080011962 <span class="entry_type_name">int64</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011963
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070011964 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011965
11966
11967 </td> <!-- entry_type -->
11968
11969 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080011970 <p>Duration each pixel is exposed to
11971light.<wbr/></p>
11972<p>If the sensor can't expose this exact duration,<wbr/> it should shorten the
11973duration exposed to the nearest possible value (rather than expose longer).<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011974 </td>
11975
11976 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -080011977 nanoseconds
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011978 </td>
11979
11980 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -080011981 <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 -080011982 </td>
11983
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011984 <td class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080011985 <ul class="entry_tags">
11986 <li><a href="#tag_V1">V1</a></li>
11987 </ul>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080011988 </td>
11989
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011990 </tr>
11991 <tr class="entries_header">
11992 <th class="th_details" colspan="5">Details</th>
11993 </tr>
11994 <tr class="entry_cont">
11995 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -080011996 <p>1/<wbr/>10000 - 30 sec range.<wbr/> No bulb mode</p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080011997 </td>
11998 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080011999
12000
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012001 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
12002 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012003
12004
12005 <tr class="entry" id="dynamic_android.sensor.frameDuration">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080012006 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080012007 android.<wbr/>sensor.<wbr/>frame<wbr/>Duration
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080012008 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012009 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080012010 <span class="entry_type_name">int64</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012011
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070012012 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012013
12014
12015 </td> <!-- entry_type -->
12016
12017 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080012018 <p>Duration from start of frame exposure to
Igor Murashkin10f4e0f2014-01-13 17:22:58 -080012019start of next frame exposure.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012020 </td>
12021
12022 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -080012023 nanoseconds
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012024 </td>
12025
12026 <td class="entry_range">
Igor Murashkin10f4e0f2014-01-13 17:22:58 -080012027 <p>See <a href="#static_android.sensor.info.maxFrameDuration">android.<wbr/>sensor.<wbr/>info.<wbr/>max<wbr/>Frame<wbr/>Duration</a>,<wbr/>
12028android.<wbr/>scaler.<wbr/>available*Min<wbr/>Durations.<wbr/> The duration
12029is capped to <code>max(duration,<wbr/> exposureTime + overhead)</code>.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012030 </td>
12031
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012032 <td class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080012033 <ul class="entry_tags">
12034 <li><a href="#tag_V1">V1</a></li>
12035 <li><a href="#tag_BC">BC</a></li>
12036 </ul>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012037 </td>
12038
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012039 </tr>
12040 <tr class="entries_header">
12041 <th class="th_details" colspan="5">Details</th>
12042 </tr>
12043 <tr class="entry_cont">
12044 <td class="entry_details" colspan="5">
Igor Murashkin10f4e0f2014-01-13 17:22:58 -080012045 <p>The maximum frame rate that can be supported by a camera subsystem is
12046a function of many factors:</p>
12047<ul>
12048<li>Requested resolutions of output image streams</li>
12049<li>Availability of binning /<wbr/> skipping modes on the imager</li>
12050<li>The bandwidth of the imager interface</li>
12051<li>The bandwidth of the various ISP processing blocks</li>
12052</ul>
12053<p>Since these factors can vary greatly between different ISPs and
12054sensors,<wbr/> the camera abstraction tries to represent the bandwidth
12055restrictions with as simple a model as possible.<wbr/></p>
12056<p>The model presented has the following characteristics:</p>
12057<ul>
12058<li>The image sensor is always configured to output the smallest
12059resolution possible given the application's requested output stream
12060sizes.<wbr/> The smallest resolution is defined as being at least as large
12061as the largest requested output stream size; the camera pipeline must
12062never digitally upsample sensor data when the crop region covers the
12063whole sensor.<wbr/> In general,<wbr/> this means that if only small output stream
12064resolutions are configured,<wbr/> the sensor can provide a higher frame
12065rate.<wbr/></li>
12066<li>Since any request may use any or all the currently configured
12067output streams,<wbr/> the sensor and ISP must be configured to support
12068scaling a single capture to all the streams at the same time.<wbr/> This
12069means the camera pipeline must be ready to produce the largest
12070requested output size without any delay.<wbr/> Therefore,<wbr/> the overall
12071frame rate of a given configured stream set is governed only by the
12072largest requested stream resolution.<wbr/></li>
12073<li>Using more than one output stream in a request does not affect the
12074frame duration.<wbr/></li>
12075<li>JPEG streams act like processed YUV streams in requests for which
12076they are not included; in requests in which they are directly
12077referenced,<wbr/> they act as JPEG streams.<wbr/> This is because supporting a
12078JPEG stream requires the underlying YUV data to always be ready for
12079use by a JPEG encoder,<wbr/> but the encoder will only be used (and impact
12080frame duration) on requests that actually reference a JPEG stream.<wbr/></li>
12081<li>The JPEG processor can run concurrently to the rest of the camera
12082pipeline,<wbr/> but cannot process more than 1 capture at a time.<wbr/></li>
12083</ul>
12084<p>The necessary information for the application,<wbr/> given the model above,<wbr/>
12085is provided via the android.<wbr/>scaler.<wbr/>available*Min<wbr/>Durations fields.<wbr/>
12086These are used to determine the maximum frame rate /<wbr/> minimum frame
12087duration that is possible for a given stream configuration.<wbr/></p>
12088<p>Specifically,<wbr/> the application can use the following rules to
12089determine the minimum frame duration it can request from the HAL
12090device:</p>
12091<ol>
12092<li>Given the application's currently configured set of output
12093streams,<wbr/> <code>S</code>,<wbr/> divide them into three sets: streams in a JPEG format
12094<code>SJ</code>,<wbr/> streams in a raw sensor format <code>SR</code>,<wbr/> and the rest ('processed')
12095<code>SP</code>.<wbr/></li>
12096<li>For each subset of streams,<wbr/> find the largest resolution (by pixel
12097count) in the subset.<wbr/> This gives (at most) three resolutions <code>RJ</code>,<wbr/>
12098<code>RR</code>,<wbr/> and <code>RP</code>.<wbr/></li>
12099<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
12100no exact match for <code>RP == RJ</code> (in particular there isn't an available
12101processed resolution at the same size as <code>RJ</code>),<wbr/> then set <code>RP</code> equal
12102to the smallest processed resolution that is larger than <code>RJ</code>.<wbr/> If
12103there are no processed resolutions larger than <code>RJ</code>,<wbr/> then set <code>RJ</code> to
12104the processed resolution closest to <code>RJ</code>.<wbr/></li>
12105<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
12106no exact match for <code>RR == RP</code> (in particular there isn't an available
12107raw resolution at the same size as <code>RP</code>),<wbr/> then set <code>RR</code> equal to
12108or to the smallest raw resolution that is larger than <code>RP</code>.<wbr/> If
12109there are no raw resolutions larger than <code>RP</code>,<wbr/> then set <code>RR</code> to
12110the raw resolution closest to <code>RP</code>.<wbr/></li>
12111<li>Look up the matching minimum frame durations in the property lists
12112<a href="#static_android.scaler.availableJpegMinDurations">android.<wbr/>scaler.<wbr/>available<wbr/>Jpeg<wbr/>Min<wbr/>Durations</a>,<wbr/>
12113<a href="#static_android.scaler.availableRawMinDurations">android.<wbr/>scaler.<wbr/>available<wbr/>Raw<wbr/>Min<wbr/>Durations</a>,<wbr/> and
12114<a href="#static_android.scaler.availableProcessedMinDurations">android.<wbr/>scaler.<wbr/>available<wbr/>Processed<wbr/>Min<wbr/>Durations</a>.<wbr/> This gives three
12115minimum frame durations <code>FJ</code>,<wbr/> <code>FR</code>,<wbr/> and <code>FP</code>.<wbr/></li>
12116<li>If a stream of requests do not use a JPEG stream,<wbr/> then the minimum
12117supported frame duration for each request is <code>max(FR,<wbr/> FP)</code>.<wbr/></li>
12118<li>If a stream of requests all use the JPEG stream,<wbr/> then the minimum
12119supported frame duration for each request is <code>max(FR,<wbr/> FP,<wbr/> FJ)</code>.<wbr/></li>
12120<li>If a mix of JPEG-using and non-JPEG-using requests is submitted by
12121the application,<wbr/> then the HAL will have to delay JPEG-using requests
12122whenever the JPEG encoder is still busy processing an older capture.<wbr/>
12123This will happen whenever a JPEG-using request starts capture less
12124than <code>FJ</code> <em>ns</em> after a previous JPEG-using request.<wbr/> The minimum
12125supported frame duration will vary between the values calculated in
12126#6 and #7.<wbr/></li>
12127</ol>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012128 </td>
12129 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080012130
12131
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012132 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
12133 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012134
12135
12136 <tr class="entry" id="dynamic_android.sensor.sensitivity">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080012137 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080012138 android.<wbr/>sensor.<wbr/>sensitivity
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080012139 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012140 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080012141 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012142
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070012143 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012144
12145
12146 </td> <!-- entry_type -->
12147
12148 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080012149 <p>Gain applied to image data.<wbr/> Must be
Igor Murashkin8aa2a112013-12-09 12:06:17 -080012150implemented through analog gain only if set to values
Igor Murashkin0b080452013-12-27 15:30:25 -080012151below 'maximum analog sensitivity'.<wbr/></p>
12152<p>If the sensor can't apply this exact gain,<wbr/> it should lessen the
12153gain to the nearest possible value (rather than gain more).<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012154 </td>
12155
12156 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -080012157 ISO arithmetic units
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012158 </td>
12159
12160 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -080012161 <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 -080012162 </td>
12163
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012164 <td class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080012165 <ul class="entry_tags">
12166 <li><a href="#tag_V1">V1</a></li>
12167 </ul>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012168 </td>
12169
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012170 </tr>
12171 <tr class="entries_header">
12172 <th class="th_details" colspan="5">Details</th>
12173 </tr>
12174 <tr class="entry_cont">
12175 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -080012176 <p>ISO 12232:2006 REI method</p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012177 </td>
12178 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080012179
12180
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012181 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
12182 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012183
12184
12185 <tr class="entry" id="dynamic_android.sensor.timestamp">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080012186 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080012187 android.<wbr/>sensor.<wbr/>timestamp
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080012188 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012189 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080012190 <span class="entry_type_name">int64</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012191
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070012192 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012193
12194
12195 </td> <!-- entry_type -->
12196
12197 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080012198 <p>Time at start of exposure of first
12199row</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012200 </td>
12201
12202 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -080012203 nanoseconds
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012204 </td>
12205
12206 <td class="entry_range">
Igor Murashkin6cb7c2c2014-01-10 15:12:40 -080012207 <p>&gt; 0</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012208 </td>
12209
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012210 <td class="entry_tags">
12211 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080012212 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012213 </ul>
12214 </td>
12215
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012216 </tr>
12217 <tr class="entries_header">
12218 <th class="th_details" colspan="5">Details</th>
12219 </tr>
12220 <tr class="entry_cont">
12221 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -080012222 <p>Monotonic,<wbr/> should be synced to other timestamps in
12223system</p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012224 </td>
12225 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080012226
12227
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012228 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
12229 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012230
Igor Murashkin656aa5a2013-08-13 14:23:39 -070012231
12232 <tr class="entry" id="dynamic_android.sensor.temperature">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080012233 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -080012234 android.<wbr/>sensor.<wbr/>temperature
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080012235 </td>
Igor Murashkin656aa5a2013-08-13 14:23:39 -070012236 <td class="entry_type">
12237 <span class="entry_type_name">float</span>
12238
12239 <span class="entry_type_visibility"> [public]</span>
12240
12241
12242 </td> <!-- entry_type -->
12243
12244 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080012245 <p>The temperature of the sensor,<wbr/> sampled at the time
12246exposure began for this frame.<wbr/></p>
12247<p>The thermal diode being queried should be inside the sensor PCB,<wbr/> or
12248somewhere close to it.<wbr/></p>
Igor Murashkin656aa5a2013-08-13 14:23:39 -070012249 </td>
12250
12251 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -080012252 celsius
Igor Murashkin656aa5a2013-08-13 14:23:39 -070012253 </td>
12254
12255 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -080012256 <p>Optional.<wbr/> This value is missing if no temperature is available.<wbr/></p>
Igor Murashkin656aa5a2013-08-13 14:23:39 -070012257 </td>
12258
Igor Murashkin656aa5a2013-08-13 14:23:39 -070012259 <td class="entry_tags">
Alex Rayef40ad62013-10-01 17:52:33 -070012260 <ul class="entry_tags">
12261 <li><a href="#tag_FULL">FULL</a></li>
12262 </ul>
Igor Murashkin656aa5a2013-08-13 14:23:39 -070012263 </td>
12264
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012265 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080012266
12267
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012268 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
12269 <!-- end of entry -->
Igor Murashkin656aa5a2013-08-13 14:23:39 -070012270
Igor Murashkina46e02f2014-01-09 17:43:38 -080012271
Ruben Brunk7c63f0f2014-01-31 16:50:27 -080012272 <tr class="entry" id="dynamic_android.sensor.referenceIlluminant">
12273 <td class="entry_name" rowspan="3">
12274 android.<wbr/>sensor.<wbr/>reference<wbr/>Illuminant
12275 </td>
12276 <td class="entry_type">
12277 <span class="entry_type_name entry_type_name_enum">byte</span>
12278
12279 <span class="entry_type_visibility"> [system]</span>
12280
12281 <ul class="entry_type_enum">
12282 <li>
12283 <span class="entry_type_enum_name">DAYLIGHT</span>
12284 <span class="entry_type_enum_value">1</span>
12285 </li>
12286 <li>
12287 <span class="entry_type_enum_name">FLUORESCENT</span>
12288 <span class="entry_type_enum_value">2</span>
12289 </li>
12290 <li>
12291 <span class="entry_type_enum_name">TUNGSTEN</span>
12292 <span class="entry_type_enum_value">3</span>
12293 <span class="entry_type_enum_notes"><p>Incandescent light</p></span>
12294 </li>
12295 <li>
12296 <span class="entry_type_enum_name">FLASH</span>
12297 <span class="entry_type_enum_value">4</span>
12298 </li>
12299 <li>
12300 <span class="entry_type_enum_name">FINE_WEATHER</span>
12301 <span class="entry_type_enum_value">9</span>
12302 </li>
12303 <li>
12304 <span class="entry_type_enum_name">CLOUDY_WEATHER</span>
12305 <span class="entry_type_enum_value">10</span>
12306 </li>
12307 <li>
12308 <span class="entry_type_enum_name">SHADE</span>
12309 <span class="entry_type_enum_value">11</span>
12310 </li>
12311 <li>
12312 <span class="entry_type_enum_name">DAYLIGHT_FLUORESCENT</span>
12313 <span class="entry_type_enum_value">12</span>
12314 <span class="entry_type_enum_notes"><p>D 5700 - 7100K</p></span>
12315 </li>
12316 <li>
12317 <span class="entry_type_enum_name">DAY_WHITE_FLUORESCENT</span>
12318 <span class="entry_type_enum_value">13</span>
12319 <span class="entry_type_enum_notes"><p>N 4600 - 5400K</p></span>
12320 </li>
12321 <li>
12322 <span class="entry_type_enum_name">COOL_WHITE_FLUORESCENT</span>
12323 <span class="entry_type_enum_value">14</span>
12324 <span class="entry_type_enum_notes"><p>W 3900 - 4500K</p></span>
12325 </li>
12326 <li>
12327 <span class="entry_type_enum_name">WHITE_FLUORESCENT</span>
12328 <span class="entry_type_enum_value">15</span>
12329 <span class="entry_type_enum_notes"><p>WW 3200 - 3700K</p></span>
12330 </li>
12331 <li>
12332 <span class="entry_type_enum_name">STANDARD_A</span>
12333 <span class="entry_type_enum_value">17</span>
12334 </li>
12335 <li>
12336 <span class="entry_type_enum_name">STANDARD_B</span>
12337 <span class="entry_type_enum_value">18</span>
12338 </li>
12339 <li>
12340 <span class="entry_type_enum_name">STANDARD_C</span>
12341 <span class="entry_type_enum_value">19</span>
12342 </li>
12343 <li>
12344 <span class="entry_type_enum_name">D55</span>
12345 <span class="entry_type_enum_value">20</span>
12346 </li>
12347 <li>
12348 <span class="entry_type_enum_name">D65</span>
12349 <span class="entry_type_enum_value">21</span>
12350 </li>
12351 <li>
12352 <span class="entry_type_enum_name">D75</span>
12353 <span class="entry_type_enum_value">22</span>
12354 </li>
12355 <li>
12356 <span class="entry_type_enum_name">D50</span>
12357 <span class="entry_type_enum_value">23</span>
12358 </li>
12359 <li>
12360 <span class="entry_type_enum_name">ISO_STUDIO_TUNGSTEN</span>
12361 <span class="entry_type_enum_value">24</span>
12362 </li>
12363 </ul>
12364
12365 </td> <!-- entry_type -->
12366
12367 <td class="entry_description">
12368 <p>A reference illumination source roughly matching the current scene
12369illumination,<wbr/> which is used to describe the sensor color space
12370transformations.<wbr/></p>
12371 </td>
12372
12373 <td class="entry_units">
12374 </td>
12375
12376 <td class="entry_range">
12377 </td>
12378
12379 <td class="entry_tags">
12380 <ul class="entry_tags">
12381 <li><a href="#tag_DNG">DNG</a></li>
12382 <li><a href="#tag_EXIF">EXIF</a></li>
12383 </ul>
12384 </td>
12385
12386 </tr>
12387 <tr class="entries_header">
12388 <th class="th_details" colspan="5">Details</th>
12389 </tr>
12390 <tr class="entry_cont">
12391 <td class="entry_details" colspan="5">
12392 <p>The values in this tag correspond to the values defined for the
12393EXIF LightSource tag.<wbr/> These illuminants are standard light sources
12394that are often used for calibrating camera devices.<wbr/></p>
12395 </td>
12396 </tr>
12397
12398
12399 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
12400 <!-- end of entry -->
12401
12402
12403 <tr class="entry" id="dynamic_android.sensor.calibrationTransform">
12404 <td class="entry_name" rowspan="3">
12405 android.<wbr/>sensor.<wbr/>calibration<wbr/>Transform
12406 </td>
12407 <td class="entry_type">
12408 <span class="entry_type_name">rational</span>
12409 <span class="entry_type_container">x</span>
12410
12411 <span class="entry_type_array">
12412 3 x 3
12413 </span>
12414 <span class="entry_type_visibility"> [public]</span>
12415 <div class="entry_type_notes">3x3 matrix in row-major-order</div>
12416
12417
12418 </td> <!-- entry_type -->
12419
12420 <td class="entry_description">
12421 <p>A per-device calibration transform matrix to be applied after the
12422color space transform when rendering the raw image buffer.<wbr/></p>
12423 </td>
12424
12425 <td class="entry_units">
12426 </td>
12427
12428 <td class="entry_range">
12429 </td>
12430
12431 <td class="entry_tags">
12432 <ul class="entry_tags">
12433 <li><a href="#tag_DNG">DNG</a></li>
12434 </ul>
12435 </td>
12436
12437 </tr>
12438 <tr class="entries_header">
12439 <th class="th_details" colspan="5">Details</th>
12440 </tr>
12441 <tr class="entry_cont">
12442 <td class="entry_details" colspan="5">
12443 <p>This matrix is expressed as a 3x3 matrix in row-major-order,<wbr/> and
12444contains a per-device calibration transform that maps colors
12445from reference camera color space (i.<wbr/>e.<wbr/> the "golden module"
12446colorspace) into this camera device's linear native sensor color
12447space for the current scene illumination and white balance choice.<wbr/></p>
12448 </td>
12449 </tr>
12450
12451
12452 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
12453 <!-- end of entry -->
12454
12455
12456 <tr class="entry" id="dynamic_android.sensor.colorTransform">
12457 <td class="entry_name" rowspan="3">
12458 android.<wbr/>sensor.<wbr/>color<wbr/>Transform
12459 </td>
12460 <td class="entry_type">
12461 <span class="entry_type_name">rational</span>
12462 <span class="entry_type_container">x</span>
12463
12464 <span class="entry_type_array">
12465 3 x 3
12466 </span>
12467 <span class="entry_type_visibility"> [public]</span>
12468 <div class="entry_type_notes">3x3 matrix in row-major-order</div>
12469
12470
12471 </td> <!-- entry_type -->
12472
12473 <td class="entry_description">
12474 <p>A matrix that transforms color values from CIE XYZ color space to
12475reference camera color space when rendering the raw image buffer.<wbr/></p>
12476 </td>
12477
12478 <td class="entry_units">
12479 </td>
12480
12481 <td class="entry_range">
12482 </td>
12483
12484 <td class="entry_tags">
12485 <ul class="entry_tags">
12486 <li><a href="#tag_DNG">DNG</a></li>
12487 </ul>
12488 </td>
12489
12490 </tr>
12491 <tr class="entries_header">
12492 <th class="th_details" colspan="5">Details</th>
12493 </tr>
12494 <tr class="entry_cont">
12495 <td class="entry_details" colspan="5">
12496 <p>This matrix is expressed as a 3x3 matrix in row-major-order,<wbr/> and
12497contains a color transform matrix that maps colors from the CIE
12498XYZ color space to the reference camera raw color space (i.<wbr/>e.<wbr/> the
12499"golden module" colorspace) for the current scene illumination and
12500white balance choice.<wbr/></p>
12501 </td>
12502 </tr>
12503
12504
12505 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
12506 <!-- end of entry -->
12507
12508
12509 <tr class="entry" id="dynamic_android.sensor.forwardMatrix">
12510 <td class="entry_name" rowspan="3">
12511 android.<wbr/>sensor.<wbr/>forward<wbr/>Matrix
12512 </td>
12513 <td class="entry_type">
12514 <span class="entry_type_name">rational</span>
12515 <span class="entry_type_container">x</span>
12516
12517 <span class="entry_type_array">
12518 3 x 3
12519 </span>
12520 <span class="entry_type_visibility"> [public]</span>
12521 <div class="entry_type_notes">3x3 matrix in row-major-order</div>
12522
12523
12524 </td> <!-- entry_type -->
12525
12526 <td class="entry_description">
12527 <p>A matrix that transforms white balanced camera colors to the CIE XYZ
12528colorspace with a D50 whitepoint.<wbr/></p>
12529 </td>
12530
12531 <td class="entry_units">
12532 </td>
12533
12534 <td class="entry_range">
12535 </td>
12536
12537 <td class="entry_tags">
12538 <ul class="entry_tags">
12539 <li><a href="#tag_DNG">DNG</a></li>
12540 </ul>
12541 </td>
12542
12543 </tr>
12544 <tr class="entries_header">
12545 <th class="th_details" colspan="5">Details</th>
12546 </tr>
12547 <tr class="entry_cont">
12548 <td class="entry_details" colspan="5">
12549 <p>This matrix is expressed as a 3x3 matrix in row-major-order,<wbr/> and contains
12550a color transform matrix that maps a unit vector in the linear native
12551sensor color space to the D50 whitepoint in CIE XYZ color space.<wbr/></p>
12552 </td>
12553 </tr>
12554
12555
12556 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
12557 <!-- end of entry -->
12558
12559
Ruben Brunk7b9e9bc2014-02-06 18:37:48 -080012560 <tr class="entry" id="dynamic_android.sensor.neutralColorPoint">
12561 <td class="entry_name" rowspan="3">
12562 android.<wbr/>sensor.<wbr/>neutral<wbr/>Color<wbr/>Point
12563 </td>
12564 <td class="entry_type">
12565 <span class="entry_type_name">rational</span>
12566 <span class="entry_type_container">x</span>
12567
12568 <span class="entry_type_array">
12569 3
12570 </span>
12571 <span class="entry_type_visibility"> [public]</span>
12572
12573
12574 </td> <!-- entry_type -->
12575
12576 <td class="entry_description">
12577 <p>The estimated white balance at the time of capture.<wbr/></p>
12578 </td>
12579
12580 <td class="entry_units">
12581 </td>
12582
12583 <td class="entry_range">
12584 </td>
12585
12586 <td class="entry_tags">
12587 <ul class="entry_tags">
12588 <li><a href="#tag_DNG">DNG</a></li>
12589 </ul>
12590 </td>
12591
12592 </tr>
12593 <tr class="entries_header">
12594 <th class="th_details" colspan="5">Details</th>
12595 </tr>
12596 <tr class="entry_cont">
12597 <td class="entry_details" colspan="5">
12598 <p>The estimated white balance encoded as the RGB values of the
12599perfectly neutral color point in the linear native sensor color space.<wbr/>
12600The order of the values is R,<wbr/> G,<wbr/> B; where R is in the lowest index.<wbr/></p>
12601 </td>
12602 </tr>
12603
12604
12605 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
12606 <!-- end of entry -->
12607
12608
Ruben Brunk2bebe312014-02-06 13:04:38 -080012609 <tr class="entry" id="dynamic_android.sensor.profileHueSatMap">
12610 <td class="entry_name" rowspan="3">
12611 android.<wbr/>sensor.<wbr/>profile<wbr/>Hue<wbr/>Sat<wbr/>Map
12612 </td>
12613 <td class="entry_type">
12614 <span class="entry_type_name">float</span>
12615 <span class="entry_type_container">x</span>
12616
12617 <span class="entry_type_array">
12618 hue_samples x saturation_samples x value_samples x 3
12619 </span>
12620 <span class="entry_type_visibility"> [public]</span>
12621 <div class="entry_type_notes">Mapping for hue,<wbr/> saturation,<wbr/> and value</div>
12622
12623
12624 </td> <!-- entry_type -->
12625
12626 <td class="entry_description">
12627 <p>A mapping containing a hue shift,<wbr/> saturation scale,<wbr/> and value scale
12628for each pixel.<wbr/></p>
12629 </td>
12630
12631 <td class="entry_units">
12632
12633 Hue shift is given in degrees; saturation and value scale factors are
12634 unitless.<wbr/>
12635
12636 </td>
12637
12638 <td class="entry_range">
12639 </td>
12640
12641 <td class="entry_tags">
12642 <ul class="entry_tags">
12643 <li><a href="#tag_DNG">DNG</a></li>
12644 </ul>
12645 </td>
12646
12647 </tr>
12648 <tr class="entries_header">
12649 <th class="th_details" colspan="5">Details</th>
12650 </tr>
12651 <tr class="entry_cont">
12652 <td class="entry_details" colspan="5">
12653 <p>hue_<wbr/>samples,<wbr/> saturation_<wbr/>samples,<wbr/> and value_<wbr/>samples are given in
12654<a href="#static_android.sensor.profileHueSatMapDimensions">android.<wbr/>sensor.<wbr/>profile<wbr/>Hue<wbr/>Sat<wbr/>Map<wbr/>Dimensions</a>.<wbr/></p>
12655<p>Each entry of this map contains three floats corresponding to the
12656hue shift,<wbr/> saturation scale,<wbr/> and value scale,<wbr/> respectively; where the
12657hue shift has the lowest index.<wbr/> The map entries are stored in the tag
12658in nested loop order,<wbr/> with the value divisions in the outer loop,<wbr/> the
12659hue divisions in the middle loop,<wbr/> and the saturation divisions in the
12660inner loop.<wbr/> All zero input saturation entries are required to have a
12661value scale factor of 1.<wbr/>0.<wbr/></p>
12662 </td>
12663 </tr>
12664
12665
12666 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
12667 <!-- end of entry -->
12668
12669
12670 <tr class="entry" id="dynamic_android.sensor.profileToneCurve">
12671 <td class="entry_name" rowspan="3">
12672 android.<wbr/>sensor.<wbr/>profile<wbr/>Tone<wbr/>Curve
12673 </td>
12674 <td class="entry_type">
12675 <span class="entry_type_name">float</span>
12676 <span class="entry_type_container">x</span>
12677
12678 <span class="entry_type_array">
12679 samples x 2
12680 </span>
12681 <span class="entry_type_visibility"> [public]</span>
12682 <div class="entry_type_notes">Samples defining a spline for a tone-mapping curve</div>
12683
12684
12685 </td> <!-- entry_type -->
12686
12687 <td class="entry_description">
12688 <p>A list of x,<wbr/>y samples defining a tone-mapping curve for gamma adjustment.<wbr/></p>
12689 </td>
12690
12691 <td class="entry_units">
12692 </td>
12693
12694 <td class="entry_range">
12695 <p>Each sample has an input range of <code>[0,<wbr/> 1]</code> and an output range of
12696<code>[0,<wbr/> 1]</code>.<wbr/> The first sample is required to be <code>(0,<wbr/> 0)</code>,<wbr/> and the last
12697sample is required to be <code>(1,<wbr/> 1)</code>.<wbr/></p>
12698 </td>
12699
12700 <td class="entry_tags">
12701 <ul class="entry_tags">
12702 <li><a href="#tag_DNG">DNG</a></li>
12703 </ul>
12704 </td>
12705
12706 </tr>
12707 <tr class="entries_header">
12708 <th class="th_details" colspan="5">Details</th>
12709 </tr>
12710 <tr class="entry_cont">
12711 <td class="entry_details" colspan="5">
12712 <p>This tag contains a default tone curve that can be applied while
12713processing the image as a starting point for user adjustments.<wbr/>
12714The curve is specified as a list of value pairs in linear gamma.<wbr/>
12715The curve is interpolated using a cubic spline.<wbr/></p>
12716 </td>
12717 </tr>
12718
12719
12720 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
12721 <!-- end of entry -->
12722
12723
Igor Murashkina46e02f2014-01-09 17:43:38 -080012724 <tr class="entry" id="dynamic_android.sensor.testPatternMode">
12725 <td class="entry_name" rowspan="5">
12726 android.<wbr/>sensor.<wbr/>test<wbr/>Pattern<wbr/>Mode
12727 </td>
12728 <td class="entry_type">
12729 <span class="entry_type_name entry_type_name_enum">int32</span>
12730
12731 <span class="entry_type_visibility"> [public]</span>
12732
12733 <ul class="entry_type_enum">
12734 <li>
12735 <span class="entry_type_enum_name">OFF</span>
12736 <span class="entry_type_enum_notes"><p>Default.<wbr/> No test pattern mode is used,<wbr/> and the camera
12737device returns captures from the image sensor.<wbr/></p></span>
12738 </li>
12739 <li>
12740 <span class="entry_type_enum_name">SOLID_COLOR</span>
12741 <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
12742respective color channel provided in
12743<a href="#controls_android.sensor.testPatternData">android.<wbr/>sensor.<wbr/>test<wbr/>Pattern<wbr/>Data</a>.<wbr/></p>
12744<p>For example:</p>
12745<pre><code>android.<wbr/>testPatternData = [0,<wbr/> 0xFFFFFFFF,<wbr/> 0xFFFFFFFF,<wbr/> 0]
12746</code></pre>
12747<p>All green pixels are 100% green.<wbr/> All red/<wbr/>blue pixels are black.<wbr/></p>
12748<pre><code>android.<wbr/>testPatternData = [0xFFFFFFFF,<wbr/> 0,<wbr/> 0xFFFFFFFF,<wbr/> 0]
12749</code></pre>
12750<p>All red pixels are 100% red.<wbr/> Only the odd green pixels
12751are 100% green.<wbr/> All blue pixels are 100% black.<wbr/></p></span>
12752 </li>
12753 <li>
12754 <span class="entry_type_enum_name">COLOR_BARS</span>
12755 <span class="entry_type_enum_notes"><p>All pixel data is replaced with an 8-bar color pattern.<wbr/></p>
12756<p>The vertical bars (left-to-right) are as follows:</p>
12757<ul>
12758<li>100% white</li>
12759<li>yellow</li>
12760<li>cyan</li>
12761<li>green</li>
12762<li>magenta</li>
12763<li>red</li>
12764<li>blue</li>
12765<li>black</li>
12766</ul>
12767<p>In general the image would look like the following:</p>
12768<pre><code>W Y C G M R B K
12769W Y C G M R B K
12770W Y C G M R B K
12771W Y C G M R B K
12772W Y C G M R B K
12773.<wbr/> .<wbr/> .<wbr/> .<wbr/> .<wbr/> .<wbr/> .<wbr/> .<wbr/>
12774.<wbr/> .<wbr/> .<wbr/> .<wbr/> .<wbr/> .<wbr/> .<wbr/> .<wbr/>
12775.<wbr/> .<wbr/> .<wbr/> .<wbr/> .<wbr/> .<wbr/> .<wbr/> .<wbr/>
12776
12777(B = Blue,<wbr/> K = Black)
12778</code></pre>
12779<p>Each bar should take up 1/<wbr/>8 of the sensor pixel array width.<wbr/>
12780When this is not possible,<wbr/> the bar size should be rounded
12781down to the nearest integer and the pattern can repeat
12782on the right side.<wbr/></p>
12783<p>Each bar's height must always take up the full sensor
12784pixel array height.<wbr/></p>
12785<p>Each pixel in this test pattern must be set to either
127860% intensity or 100% intensity.<wbr/></p></span>
12787 </li>
12788 <li>
12789 <span class="entry_type_enum_name">COLOR_BARS_FADE_TO_GRAY</span>
12790 <span class="entry_type_enum_notes"><p>The test pattern is similar to COLOR_<wbr/>BARS,<wbr/> except that
12791each bar should start at its specified color at the top,<wbr/>
12792and fade to gray at the bottom.<wbr/></p>
12793<p>Furthermore each bar is further subdivided into a left and
12794right half.<wbr/> The left half should have a smooth gradient,<wbr/>
12795and the right half should have a quantized gradient.<wbr/></p>
12796<p>In particular,<wbr/> the right half's should consist of blocks of the
12797same color for 1/<wbr/>16th active sensor pixel array width.<wbr/></p>
12798<p>The least significant bits in the quantized gradient should
12799be copied from the most significant bits of the smooth gradient.<wbr/></p>
12800<p>The height of each bar should always be a multiple of 128.<wbr/>
12801When this is not the case,<wbr/> the pattern should repeat at the bottom
12802of the image.<wbr/></p></span>
12803 </li>
12804 <li>
12805 <span class="entry_type_enum_name">PN9</span>
12806 <span class="entry_type_enum_notes"><p>All pixel data is replaced by a pseudo-random sequence
12807generated from a PN9 512-bit sequence (typically implemented
12808in hardware with a linear feedback shift register).<wbr/></p>
12809<p>The generator should be reset at the beginning of each frame,<wbr/>
12810and thus each subsequent raw frame with this test pattern should
12811be exactly the same as the last.<wbr/></p></span>
12812 </li>
12813 <li>
12814 <span class="entry_type_enum_name">CUSTOM1</span>
12815 <span class="entry_type_enum_value">256</span>
12816 <span class="entry_type_enum_notes"><p>The first custom test pattern.<wbr/> All custom patterns that are
12817available only on this camera device are at least this numeric
12818value.<wbr/></p>
12819<p>All of the custom test patterns will be static
12820(that is the raw image must not vary from frame to frame).<wbr/></p></span>
12821 </li>
12822 </ul>
12823
12824 </td> <!-- entry_type -->
12825
12826 <td class="entry_description">
12827 <p>When enabled,<wbr/> the sensor sends a test pattern instead of
12828doing a real exposure from the camera.<wbr/></p>
12829 </td>
12830
12831 <td class="entry_units">
12832 </td>
12833
12834 <td class="entry_range">
12835 <p>Optional.<wbr/> Defaults to OFF.<wbr/> Value must be one of
12836<a href="#static_android.sensor.availableTestPatternModes">android.<wbr/>sensor.<wbr/>available<wbr/>Test<wbr/>Pattern<wbr/>Modes</a></p>
12837 </td>
12838
12839 <td class="entry_tags">
12840 </td>
12841
12842 </tr>
12843 <tr class="entries_header">
12844 <th class="th_details" colspan="5">Details</th>
12845 </tr>
12846 <tr class="entry_cont">
12847 <td class="entry_details" colspan="5">
12848 <p>When a test pattern is enabled,<wbr/> all manual sensor controls specified
12849by android.<wbr/>sensor.<wbr/>* should be ignored.<wbr/> All other controls should
12850work as normal.<wbr/></p>
12851<p>For example,<wbr/> if manual flash is enabled,<wbr/> flash firing should still
12852occur (and that the test pattern remain unmodified,<wbr/> since the flash
12853would not actually affect it).<wbr/></p>
12854 </td>
12855 </tr>
12856
12857 <tr class="entries_header">
12858 <th class="th_details" colspan="5">HAL Implementation Details</th>
12859 </tr>
12860 <tr class="entry_cont">
12861 <td class="entry_details" colspan="5">
12862 <p>All test patterns are specified in the Bayer domain.<wbr/></p>
12863<p>The HAL may choose to substitute test patterns from the sensor
12864with test patterns from on-device memory.<wbr/> In that case,<wbr/> it should be
12865indistinguishable to the ISP whether the data came from the
12866sensor interconnect bus (such as CSI2) or memory.<wbr/></p>
12867 </td>
12868 </tr>
12869
12870 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
12871 <!-- end of entry -->
12872
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012873
12874
12875 <!-- end of kind -->
12876 </tbody>
12877
12878 <!-- end of section -->
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012879 <tr><td colspan="6" id="section_shading" class="section">shading</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012880
12881
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012882 <tr><td colspan="6" class="kind">controls</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012883
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070012884 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012885 <tr>
12886 <th class="th_name">Property Name</th>
12887 <th class="th_type">Type</th>
12888 <th class="th_description">Description</th>
12889 <th class="th_units">Units</th>
12890 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012891 <th class="th_tags">Tags</th>
12892 </tr>
12893 </thead>
12894
12895 <tbody>
12896
12897
12898
12899
12900
12901
12902
12903
12904
12905
12906 <tr class="entry" id="controls_android.shading.mode">
Zhijun He2f86a212014-01-15 10:34:02 -080012907 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080012908 android.<wbr/>shading.<wbr/>mode
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080012909 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012910 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080012911 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012912
Zhijun He2f86a212014-01-15 10:34:02 -080012913 <span class="entry_type_visibility"> [hidden]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012914
12915 <ul class="entry_type_enum">
12916 <li>
12917 <span class="entry_type_enum_name">OFF</span>
Zhijun He2f86a212014-01-15 10:34:02 -080012918 <span class="entry_type_enum_notes"><p>No lens shading correction is applied</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012919 </li>
12920 <li>
12921 <span class="entry_type_enum_name">FAST</span>
Zhijun He2f86a212014-01-15 10:34:02 -080012922 <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 -080012923 </li>
12924 <li>
12925 <span class="entry_type_enum_name">HIGH_QUALITY</span>
Zhijun He2f86a212014-01-15 10:34:02 -080012926 <span class="entry_type_enum_notes"><p>Frame rate may be reduced by high quality</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012927 </li>
12928 </ul>
12929
12930 </td> <!-- entry_type -->
12931
12932 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080012933 <p>Quality of lens shading correction applied
Zhijun He2f86a212014-01-15 10:34:02 -080012934to the image data.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012935 </td>
12936
12937 <td class="entry_units">
12938 </td>
12939
12940 <td class="entry_range">
12941 </td>
12942
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012943 <td class="entry_tags">
12944 </td>
12945
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012946 </tr>
Zhijun He2f86a212014-01-15 10:34:02 -080012947 <tr class="entries_header">
12948 <th class="th_details" colspan="5">Details</th>
12949 </tr>
12950 <tr class="entry_cont">
12951 <td class="entry_details" colspan="5">
12952 <p>When set to OFF mode,<wbr/> no lens shading correction will be applied by the
12953camera device,<wbr/> and an identity lens shading map data will be provided
12954if <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
12955shading 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/>
12956the 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
12957shown below:</p>
12958<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/>
12959 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/>
12960 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/>
12961 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/>
12962 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/>
12963 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 ]
12964</code></pre>
12965<p>When set to other modes,<wbr/> lens shading correction will be applied by the
12966camera device.<wbr/> Applications can request lens shading map data by setting
12967<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
12968lens shading map data in <a href="#dynamic_android.statistics.lensShadingMap">android.<wbr/>statistics.<wbr/>lens<wbr/>Shading<wbr/>Map</a>,<wbr/> with size specified
12969by <a href="#static_android.lens.info.shadingMapSize">android.<wbr/>lens.<wbr/>info.<wbr/>shading<wbr/>Map<wbr/>Size</a>.<wbr/></p>
12970 </td>
12971 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080012972
12973
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080012974 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
12975 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012976
12977
12978 <tr class="entry" id="controls_android.shading.strength">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080012979 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -080012980 android.<wbr/>shading.<wbr/>strength
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080012981 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012982 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080012983 <span class="entry_type_name">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012984
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070012985 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012986
12987
12988 </td> <!-- entry_type -->
12989
12990 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080012991 <p>Control the amount of shading correction
12992applied to the images</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012993 </td>
12994
12995 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -080012996 unitless: 1-10; 10 is full shading
12997 compensation
Igor Murashkin08b8aad2012-11-29 15:23:03 -080012998 </td>
12999
13000 <td class="entry_range">
13001 </td>
13002
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013003 <td class="entry_tags">
13004 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080013005 <li><a href="#tag_ADV">ADV</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013006 </ul>
13007 </td>
13008
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013009 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013010
13011
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013012 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
13013 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013014
13015
13016
13017 <!-- end of kind -->
13018 </tbody>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013019 <tr><td colspan="6" class="kind">dynamic</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013020
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070013021 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013022 <tr>
13023 <th class="th_name">Property Name</th>
13024 <th class="th_type">Type</th>
13025 <th class="th_description">Description</th>
13026 <th class="th_units">Units</th>
13027 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013028 <th class="th_tags">Tags</th>
13029 </tr>
13030 </thead>
13031
13032 <tbody>
13033
13034
13035
13036
13037
13038
13039
13040
13041
13042
13043 <tr class="entry" id="dynamic_android.shading.mode">
Zhijun He2f86a212014-01-15 10:34:02 -080013044 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080013045 android.<wbr/>shading.<wbr/>mode
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013046 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013047 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080013048 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013049
Zhijun He2f86a212014-01-15 10:34:02 -080013050 <span class="entry_type_visibility"> [hidden]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013051
13052 <ul class="entry_type_enum">
13053 <li>
13054 <span class="entry_type_enum_name">OFF</span>
Zhijun He2f86a212014-01-15 10:34:02 -080013055 <span class="entry_type_enum_notes"><p>No lens shading correction is applied</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013056 </li>
13057 <li>
13058 <span class="entry_type_enum_name">FAST</span>
Zhijun He2f86a212014-01-15 10:34:02 -080013059 <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 -080013060 </li>
13061 <li>
13062 <span class="entry_type_enum_name">HIGH_QUALITY</span>
Zhijun He2f86a212014-01-15 10:34:02 -080013063 <span class="entry_type_enum_notes"><p>Frame rate may be reduced by high quality</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013064 </li>
13065 </ul>
13066
13067 </td> <!-- entry_type -->
13068
13069 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080013070 <p>Quality of lens shading correction applied
Zhijun He2f86a212014-01-15 10:34:02 -080013071to the image data.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013072 </td>
13073
13074 <td class="entry_units">
13075 </td>
13076
13077 <td class="entry_range">
13078 </td>
13079
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013080 <td class="entry_tags">
13081 </td>
13082
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013083 </tr>
Zhijun He2f86a212014-01-15 10:34:02 -080013084 <tr class="entries_header">
13085 <th class="th_details" colspan="5">Details</th>
13086 </tr>
13087 <tr class="entry_cont">
13088 <td class="entry_details" colspan="5">
13089 <p>When set to OFF mode,<wbr/> no lens shading correction will be applied by the
13090camera device,<wbr/> and an identity lens shading map data will be provided
13091if <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
13092shading 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/>
13093the 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
13094shown below:</p>
13095<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/>
13096 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/>
13097 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/>
13098 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/>
13099 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/>
13100 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 ]
13101</code></pre>
13102<p>When set to other modes,<wbr/> lens shading correction will be applied by the
13103camera device.<wbr/> Applications can request lens shading map data by setting
13104<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
13105lens shading map data in <a href="#dynamic_android.statistics.lensShadingMap">android.<wbr/>statistics.<wbr/>lens<wbr/>Shading<wbr/>Map</a>,<wbr/> with size specified
13106by <a href="#static_android.lens.info.shadingMapSize">android.<wbr/>lens.<wbr/>info.<wbr/>shading<wbr/>Map<wbr/>Size</a>.<wbr/></p>
13107 </td>
13108 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013109
13110
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013111 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
13112 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013113
13114
13115
13116 <!-- end of kind -->
13117 </tbody>
13118
13119 <!-- end of section -->
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013120 <tr><td colspan="6" id="section_statistics" class="section">statistics</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013121
13122
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013123 <tr><td colspan="6" class="kind">controls</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013124
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070013125 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013126 <tr>
13127 <th class="th_name">Property Name</th>
13128 <th class="th_type">Type</th>
13129 <th class="th_description">Description</th>
13130 <th class="th_units">Units</th>
13131 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013132 <th class="th_tags">Tags</th>
13133 </tr>
13134 </thead>
13135
13136 <tbody>
13137
13138
13139
13140
13141
13142
13143
13144
13145
13146
13147 <tr class="entry" id="controls_android.statistics.faceDetectMode">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013148 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080013149 android.<wbr/>statistics.<wbr/>face<wbr/>Detect<wbr/>Mode
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013150 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013151 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080013152 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013153
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070013154 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013155
13156 <ul class="entry_type_enum">
13157 <li>
13158 <span class="entry_type_enum_name">OFF</span>
13159 </li>
13160 <li>
13161 <span class="entry_type_enum_name">SIMPLE</span>
Igor Murashkina10351a2014-01-15 17:05:22 -080013162 <span class="entry_type_enum_notes"><p>Optional Return rectangle and confidence
13163only</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013164 </li>
13165 <li>
13166 <span class="entry_type_enum_name">FULL</span>
Igor Murashkina10351a2014-01-15 17:05:22 -080013167 <span class="entry_type_enum_notes"><p>Optional Return all face
13168metadata</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013169 </li>
13170 </ul>
13171
13172 </td> <!-- entry_type -->
13173
13174 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080013175 <p>State of the face detector
13176unit</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013177 </td>
13178
13179 <td class="entry_units">
13180 </td>
13181
13182 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -080013183 <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 -080013184 </td>
13185
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013186 <td class="entry_tags">
13187 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080013188 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013189 </ul>
13190 </td>
13191
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013192 </tr>
13193 <tr class="entries_header">
13194 <th class="th_details" colspan="5">Details</th>
13195 </tr>
13196 <tr class="entry_cont">
13197 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -080013198 <p>Whether face detection is enabled,<wbr/> and whether it
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013199should output just the basic fields or the full set of
Igor Murashkin0b080452013-12-27 15:30:25 -080013200fields.<wbr/> Value must be one of the
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -080013201<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 -080013202 </td>
13203 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013204
13205
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013206 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
13207 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013208
13209
13210 <tr class="entry" id="controls_android.statistics.histogramMode">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013211 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -080013212 android.<wbr/>statistics.<wbr/>histogram<wbr/>Mode
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013213 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013214 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080013215 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013216
Igor Murashkinb8dc8812013-07-17 16:29:34 -070013217 <span class="entry_type_visibility"> [system as boolean]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013218
13219 <ul class="entry_type_enum">
13220 <li>
13221 <span class="entry_type_enum_name">OFF</span>
13222 </li>
13223 <li>
13224 <span class="entry_type_enum_name">ON</span>
13225 </li>
13226 </ul>
13227
13228 </td> <!-- entry_type -->
13229
13230 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080013231 <p>Operating mode for histogram
13232generation</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013233 </td>
13234
13235 <td class="entry_units">
13236 </td>
13237
13238 <td class="entry_range">
13239 </td>
13240
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013241 <td class="entry_tags">
13242 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080013243 <li><a href="#tag_V1">V1</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013244 </ul>
13245 </td>
13246
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013247 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013248
13249
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013250 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
13251 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013252
13253
13254 <tr class="entry" id="controls_android.statistics.sharpnessMapMode">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013255 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -080013256 android.<wbr/>statistics.<wbr/>sharpness<wbr/>Map<wbr/>Mode
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013257 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013258 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080013259 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013260
Igor Murashkinb8dc8812013-07-17 16:29:34 -070013261 <span class="entry_type_visibility"> [system as boolean]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013262
13263 <ul class="entry_type_enum">
13264 <li>
13265 <span class="entry_type_enum_name">OFF</span>
13266 </li>
13267 <li>
13268 <span class="entry_type_enum_name">ON</span>
13269 </li>
13270 </ul>
13271
13272 </td> <!-- entry_type -->
13273
13274 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080013275 <p>Operating mode for sharpness map
13276generation</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013277 </td>
13278
13279 <td class="entry_units">
13280 </td>
13281
13282 <td class="entry_range">
13283 </td>
13284
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013285 <td class="entry_tags">
13286 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080013287 <li><a href="#tag_V1">V1</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013288 </ul>
13289 </td>
13290
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013291 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013292
13293
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013294 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
13295 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013296
Zhijun He69fc0ea2013-07-17 09:42:58 -070013297
13298 <tr class="entry" id="controls_android.statistics.lensShadingMapMode">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013299 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080013300 android.<wbr/>statistics.<wbr/>lens<wbr/>Shading<wbr/>Map<wbr/>Mode
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013301 </td>
Zhijun He69fc0ea2013-07-17 09:42:58 -070013302 <td class="entry_type">
13303 <span class="entry_type_name entry_type_name_enum">byte</span>
13304
13305 <span class="entry_type_visibility"> [public]</span>
13306
13307 <ul class="entry_type_enum">
13308 <li>
13309 <span class="entry_type_enum_name">OFF</span>
13310 </li>
13311 <li>
13312 <span class="entry_type_enum_name">ON</span>
13313 </li>
13314 </ul>
13315
13316 </td> <!-- entry_type -->
13317
13318 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080013319 <p>Whether the HAL needs to output the lens
13320shading map in output result metadata</p>
Zhijun He69fc0ea2013-07-17 09:42:58 -070013321 </td>
13322
13323 <td class="entry_units">
13324 </td>
13325
13326 <td class="entry_range">
13327 </td>
13328
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013329 <td class="entry_tags">
13330 </td>
13331
13332 </tr>
13333 <tr class="entries_header">
13334 <th class="th_details" colspan="5">Details</th>
13335 </tr>
13336 <tr class="entry_cont">
13337 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -080013338 <p>When set to ON,<wbr/>
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -080013339<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 -080013340the output result metadata.<wbr/></p>
Zhijun He69fc0ea2013-07-17 09:42:58 -070013341 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013342 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013343
13344
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013345 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
13346 <!-- end of entry -->
Zhijun He69fc0ea2013-07-17 09:42:58 -070013347
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013348
13349
13350 <!-- end of kind -->
13351 </tbody>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013352 <tr><td colspan="6" class="kind">static</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013353
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070013354 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013355 <tr>
13356 <th class="th_name">Property Name</th>
13357 <th class="th_type">Type</th>
13358 <th class="th_description">Description</th>
13359 <th class="th_units">Units</th>
13360 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013361 <th class="th_tags">Tags</th>
13362 </tr>
13363 </thead>
13364
13365 <tbody>
13366
13367
13368
13369
13370
13371
13372
13373
13374
13375
13376
13377
13378 <tr class="entry" id="static_android.statistics.info.availableFaceDetectModes">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013379 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080013380 android.<wbr/>statistics.<wbr/>info.<wbr/>available<wbr/>Face<wbr/>Detect<wbr/>Modes
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013381 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013382 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080013383 <span class="entry_type_name">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013384 <span class="entry_type_container">x</span>
13385
13386 <span class="entry_type_array">
13387 n
13388 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070013389 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -080013390 <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 -080013391
13392
13393 </td> <!-- entry_type -->
13394
13395 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080013396 <p>Which face detection modes are available,<wbr/>
13397if any</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013398 </td>
13399
13400 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -080013401 List of enum:
Zhijun He69fc0ea2013-07-17 09:42:58 -070013402 OFF
13403 SIMPLE
Igor Murashkin0b080452013-12-27 15:30:25 -080013404 FULL
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013405 </td>
13406
13407 <td class="entry_range">
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013408 </td>
13409
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013410 <td class="entry_tags">
13411 </td>
13412
13413 </tr>
13414 <tr class="entries_header">
13415 <th class="th_details" colspan="5">Details</th>
13416 </tr>
13417 <tr class="entry_cont">
13418 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -080013419 <p>OFF means face detection is disabled,<wbr/> it must
13420be included in the list.<wbr/></p>
Igor Murashkin8aa2a112013-12-09 12:06:17 -080013421<p>SIMPLE means the device supports the
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -080013422<a href="#dynamic_android.statistics.faceRectangles">android.<wbr/>statistics.<wbr/>face<wbr/>Rectangles</a> and
13423<a href="#dynamic_android.statistics.faceScores">android.<wbr/>statistics.<wbr/>face<wbr/>Scores</a> outputs.<wbr/></p>
Igor Murashkin8aa2a112013-12-09 12:06:17 -080013424<p>FULL means the device additionally supports the
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -080013425<a href="#dynamic_android.statistics.faceIds">android.<wbr/>statistics.<wbr/>face<wbr/>Ids</a> and
13426<a href="#dynamic_android.statistics.faceLandmarks">android.<wbr/>statistics.<wbr/>face<wbr/>Landmarks</a> outputs.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013427 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013428 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013429
13430
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013431 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
13432 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013433
13434
13435 <tr class="entry" id="static_android.statistics.info.histogramBucketCount">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013436 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -080013437 android.<wbr/>statistics.<wbr/>info.<wbr/>histogram<wbr/>Bucket<wbr/>Count
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013438 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013439 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080013440 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013441
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070013442 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013443
13444
13445 </td> <!-- entry_type -->
13446
13447 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080013448 <p>Number of histogram buckets
13449supported</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013450 </td>
13451
13452 <td class="entry_units">
13453 </td>
13454
13455 <td class="entry_range">
Igor Murashkin6cb7c2c2014-01-10 15:12:40 -080013456 <p>&gt;= 64</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013457 </td>
13458
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013459 <td class="entry_tags">
13460 </td>
13461
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013462 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013463
13464
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013465 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
13466 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013467
13468
13469 <tr class="entry" id="static_android.statistics.info.maxFaceCount">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013470 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -080013471 android.<wbr/>statistics.<wbr/>info.<wbr/>max<wbr/>Face<wbr/>Count
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013472 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013473 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080013474 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013475
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070013476 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013477
13478
13479 </td> <!-- entry_type -->
13480
13481 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080013482 <p>Maximum number of simultaneously detectable
13483faces</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013484 </td>
13485
13486 <td class="entry_units">
13487 </td>
13488
13489 <td class="entry_range">
Igor Murashkin6cb7c2c2014-01-10 15:12:40 -080013490 <p>&gt;= 4 if availableFaceDetectionModes lists
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -080013491modes besides OFF,<wbr/> otherwise 0</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013492 </td>
13493
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013494 <td class="entry_tags">
13495 </td>
13496
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013497 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013498
13499
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013500 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
13501 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013502
13503
13504 <tr class="entry" id="static_android.statistics.info.maxHistogramCount">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013505 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -080013506 android.<wbr/>statistics.<wbr/>info.<wbr/>max<wbr/>Histogram<wbr/>Count
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013507 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013508 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080013509 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013510
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070013511 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013512
13513
13514 </td> <!-- entry_type -->
13515
13516 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080013517 <p>Maximum value possible for a histogram
13518bucket</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013519 </td>
13520
13521 <td class="entry_units">
13522 </td>
13523
13524 <td class="entry_range">
13525 </td>
13526
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013527 <td class="entry_tags">
13528 </td>
13529
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013530 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013531
13532
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013533 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
13534 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013535
13536
13537 <tr class="entry" id="static_android.statistics.info.maxSharpnessMapValue">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013538 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -080013539 android.<wbr/>statistics.<wbr/>info.<wbr/>max<wbr/>Sharpness<wbr/>Map<wbr/>Value
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013540 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013541 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080013542 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013543
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070013544 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013545
13546
13547 </td> <!-- entry_type -->
13548
13549 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080013550 <p>Maximum value possible for a sharpness map
13551region.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013552 </td>
13553
13554 <td class="entry_units">
13555 </td>
13556
13557 <td class="entry_range">
13558 </td>
13559
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013560 <td class="entry_tags">
13561 </td>
13562
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013563 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013564
13565
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013566 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
13567 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013568
13569
13570 <tr class="entry" id="static_android.statistics.info.sharpnessMapSize">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013571 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -080013572 android.<wbr/>statistics.<wbr/>info.<wbr/>sharpness<wbr/>Map<wbr/>Size
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013573 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013574 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080013575 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013576 <span class="entry_type_container">x</span>
13577
13578 <span class="entry_type_array">
13579 2
13580 </span>
Igor Murashkinb8dc8812013-07-17 16:29:34 -070013581 <span class="entry_type_visibility"> [system as size]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -080013582 <div class="entry_type_notes">width x height</div>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013583
13584
13585 </td> <!-- entry_type -->
13586
13587 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080013588 <p>Dimensions of the sharpness
13589map</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013590 </td>
13591
13592 <td class="entry_units">
13593 </td>
13594
13595 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -080013596 <p>Must be at least 32 x 32</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013597 </td>
13598
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013599 <td class="entry_tags">
13600 </td>
13601
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013602 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013603
13604
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013605 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
13606 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013607
13608
13609
13610
13611
13612
13613 <!-- end of kind -->
13614 </tbody>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013615 <tr><td colspan="6" class="kind">dynamic</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013616
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070013617 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013618 <tr>
13619 <th class="th_name">Property Name</th>
13620 <th class="th_type">Type</th>
13621 <th class="th_description">Description</th>
13622 <th class="th_units">Units</th>
13623 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013624 <th class="th_tags">Tags</th>
13625 </tr>
13626 </thead>
13627
13628 <tbody>
13629
13630
13631
13632
13633
13634
13635
13636
13637
13638
13639 <tr class="entry" id="dynamic_android.statistics.faceDetectMode">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013640 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080013641 android.<wbr/>statistics.<wbr/>face<wbr/>Detect<wbr/>Mode
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013642 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013643 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080013644 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013645
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070013646 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013647
13648 <ul class="entry_type_enum">
13649 <li>
13650 <span class="entry_type_enum_name">OFF</span>
13651 </li>
13652 <li>
13653 <span class="entry_type_enum_name">SIMPLE</span>
Igor Murashkina10351a2014-01-15 17:05:22 -080013654 <span class="entry_type_enum_notes"><p>Optional Return rectangle and confidence
13655only</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013656 </li>
13657 <li>
13658 <span class="entry_type_enum_name">FULL</span>
Igor Murashkina10351a2014-01-15 17:05:22 -080013659 <span class="entry_type_enum_notes"><p>Optional Return all face
13660metadata</p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013661 </li>
13662 </ul>
13663
13664 </td> <!-- entry_type -->
13665
13666 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080013667 <p>State of the face detector
13668unit</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013669 </td>
13670
13671 <td class="entry_units">
13672 </td>
13673
13674 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -080013675 <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 -080013676 </td>
13677
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013678 <td class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080013679 <ul class="entry_tags">
13680 <li><a href="#tag_BC">BC</a></li>
13681 </ul>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013682 </td>
13683
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013684 </tr>
13685 <tr class="entries_header">
13686 <th class="th_details" colspan="5">Details</th>
13687 </tr>
13688 <tr class="entry_cont">
13689 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -080013690 <p>Whether face detection is enabled,<wbr/> and whether it
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013691should output just the basic fields or the full set of
Igor Murashkin0b080452013-12-27 15:30:25 -080013692fields.<wbr/> Value must be one of the
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -080013693<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 -080013694 </td>
13695 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013696
13697
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013698 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
13699 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013700
13701
13702 <tr class="entry" id="dynamic_android.statistics.faceIds">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013703 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080013704 android.<wbr/>statistics.<wbr/>face<wbr/>Ids
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013705 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013706 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080013707 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013708 <span class="entry_type_container">x</span>
13709
13710 <span class="entry_type_array">
13711 n
13712 </span>
Zhijun He3b4c2062013-10-07 11:23:30 -070013713 <span class="entry_type_visibility"> [hidden]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013714
13715
13716 </td> <!-- entry_type -->
13717
13718 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080013719 <p>List of unique IDs for detected
13720faces</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013721 </td>
13722
13723 <td class="entry_units">
13724 </td>
13725
13726 <td class="entry_range">
13727 </td>
13728
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013729 <td class="entry_tags">
13730 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080013731 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013732 </ul>
13733 </td>
13734
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013735 </tr>
13736 <tr class="entries_header">
13737 <th class="th_details" colspan="5">Details</th>
13738 </tr>
13739 <tr class="entry_cont">
13740 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -080013741 <p>Only available if faceDetectMode == FULL</p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013742 </td>
13743 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013744
13745
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013746 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
13747 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013748
13749
13750 <tr class="entry" id="dynamic_android.statistics.faceLandmarks">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013751 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080013752 android.<wbr/>statistics.<wbr/>face<wbr/>Landmarks
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013753 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013754 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080013755 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013756 <span class="entry_type_container">x</span>
13757
13758 <span class="entry_type_array">
13759 n x 6
13760 </span>
Zhijun He3b4c2062013-10-07 11:23:30 -070013761 <span class="entry_type_visibility"> [hidden]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -080013762 <div class="entry_type_notes">(leftEyeX,<wbr/> leftEyeY,<wbr/> rightEyeX,<wbr/> rightEyeY,<wbr/> mouthX,<wbr/> mouthY)</div>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013763
13764
13765 </td> <!-- entry_type -->
13766
13767 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080013768 <p>List of landmarks for detected
13769faces</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013770 </td>
13771
13772 <td class="entry_units">
13773 </td>
13774
13775 <td class="entry_range">
13776 </td>
13777
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013778 <td class="entry_tags">
13779 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080013780 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013781 </ul>
13782 </td>
13783
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013784 </tr>
13785 <tr class="entries_header">
13786 <th class="th_details" colspan="5">Details</th>
13787 </tr>
13788 <tr class="entry_cont">
13789 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -080013790 <p>Only available if faceDetectMode == FULL</p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013791 </td>
13792 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013793
13794
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013795 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
13796 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013797
13798
13799 <tr class="entry" id="dynamic_android.statistics.faceRectangles">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013800 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080013801 android.<wbr/>statistics.<wbr/>face<wbr/>Rectangles
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013802 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013803 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080013804 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013805 <span class="entry_type_container">x</span>
13806
13807 <span class="entry_type_array">
13808 n x 4
13809 </span>
Zhijun He3b4c2062013-10-07 11:23:30 -070013810 <span class="entry_type_visibility"> [hidden as rectangle]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -080013811 <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 -080013812
13813
13814 </td> <!-- entry_type -->
13815
13816 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080013817 <p>List of the bounding rectangles for detected
13818faces</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013819 </td>
13820
13821 <td class="entry_units">
13822 </td>
13823
13824 <td class="entry_range">
13825 </td>
13826
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013827 <td class="entry_tags">
13828 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080013829 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013830 </ul>
13831 </td>
13832
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013833 </tr>
13834 <tr class="entries_header">
13835 <th class="th_details" colspan="5">Details</th>
13836 </tr>
13837 <tr class="entry_cont">
13838 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -080013839 <p>Only available if faceDetectMode != OFF</p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013840 </td>
13841 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013842
13843
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013844 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
13845 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013846
13847
13848 <tr class="entry" id="dynamic_android.statistics.faceScores">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013849 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080013850 android.<wbr/>statistics.<wbr/>face<wbr/>Scores
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013851 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013852 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080013853 <span class="entry_type_name">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013854 <span class="entry_type_container">x</span>
13855
13856 <span class="entry_type_array">
13857 n
13858 </span>
Zhijun He3b4c2062013-10-07 11:23:30 -070013859 <span class="entry_type_visibility"> [hidden]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013860
13861
13862 </td> <!-- entry_type -->
13863
13864 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080013865 <p>List of the face confidence scores for
13866detected faces</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013867 </td>
13868
13869 <td class="entry_units">
13870 </td>
13871
13872 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -080013873 <p>1-100</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013874 </td>
13875
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013876 <td class="entry_tags">
13877 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080013878 <li><a href="#tag_BC">BC</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013879 </ul>
13880 </td>
13881
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013882 </tr>
13883 <tr class="entries_header">
13884 <th class="th_details" colspan="5">Details</th>
13885 </tr>
13886 <tr class="entry_cont">
13887 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -080013888 <p>Only available if faceDetectMode != OFF.<wbr/> The value should be
13889meaningful (for example,<wbr/> setting 100 at all times is illegal).<wbr/></p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013890 </td>
13891 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013892
13893
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013894 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
13895 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013896
13897
13898 <tr class="entry" id="dynamic_android.statistics.histogram">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013899 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080013900 android.<wbr/>statistics.<wbr/>histogram
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013901 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013902 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080013903 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013904 <span class="entry_type_container">x</span>
13905
13906 <span class="entry_type_array">
13907 n x 3
13908 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070013909 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -080013910 <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 -080013911
13912
13913 </td> <!-- entry_type -->
13914
13915 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080013916 <p>A 3-channel histogram based on the raw
13917sensor data</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013918 </td>
13919
13920 <td class="entry_units">
13921 </td>
13922
13923 <td class="entry_range">
13924 </td>
13925
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013926 <td class="entry_tags">
13927 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080013928 <li><a href="#tag_V1">V1</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013929 </ul>
13930 </td>
13931
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013932 </tr>
13933 <tr class="entries_header">
13934 <th class="th_details" colspan="5">Details</th>
13935 </tr>
13936 <tr class="entry_cont">
13937 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -080013938 <p>The k'th bucket (0-based) covers the input range
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -080013939(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 -080013940(k + 1) * w /<wbr/> N ).<wbr/> If only a monochrome sharpness map is
13941supported,<wbr/> all channels should have the same data</p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013942 </td>
13943 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013944
13945
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013946 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
13947 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013948
13949
13950 <tr class="entry" id="dynamic_android.statistics.histogramMode">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013951 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -080013952 android.<wbr/>statistics.<wbr/>histogram<wbr/>Mode
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013953 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013954 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080013955 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013956
Igor Murashkinb8dc8812013-07-17 16:29:34 -070013957 <span class="entry_type_visibility"> [system as boolean]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013958
13959 <ul class="entry_type_enum">
13960 <li>
13961 <span class="entry_type_enum_name">OFF</span>
13962 </li>
13963 <li>
13964 <span class="entry_type_enum_name">ON</span>
13965 </li>
13966 </ul>
13967
13968 </td> <!-- entry_type -->
13969
13970 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080013971 <p>Operating mode for histogram
13972generation</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013973 </td>
13974
13975 <td class="entry_units">
13976 </td>
13977
13978 <td class="entry_range">
13979 </td>
13980
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013981 <td class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080013982 <ul class="entry_tags">
13983 <li><a href="#tag_V1">V1</a></li>
13984 </ul>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013985 </td>
13986
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013987 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013988
13989
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080013990 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
13991 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013992
13993
13994 <tr class="entry" id="dynamic_android.statistics.sharpnessMap">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013995 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080013996 android.<wbr/>statistics.<wbr/>sharpness<wbr/>Map
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080013997 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080013998 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080013999 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014000 <span class="entry_type_container">x</span>
14001
14002 <span class="entry_type_array">
14003 n x m x 3
14004 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070014005 <span class="entry_type_visibility"> [system]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -080014006 <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 -080014007
14008
14009 </td> <!-- entry_type -->
14010
14011 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080014012 <p>A 3-channel sharpness map,<wbr/> based on the raw
14013sensor data</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014014 </td>
14015
14016 <td class="entry_units">
14017 </td>
14018
14019 <td class="entry_range">
14020 </td>
14021
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014022 <td class="entry_tags">
14023 <ul class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080014024 <li><a href="#tag_V1">V1</a></li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014025 </ul>
14026 </td>
14027
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014028 </tr>
14029 <tr class="entries_header">
14030 <th class="th_details" colspan="5">Details</th>
14031 </tr>
14032 <tr class="entry_cont">
14033 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -080014034 <p>If only a monochrome sharpness map is supported,<wbr/>
14035all channels should have the same data</p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014036 </td>
14037 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080014038
14039
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014040 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
14041 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014042
14043
14044 <tr class="entry" id="dynamic_android.statistics.sharpnessMapMode">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080014045 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -080014046 android.<wbr/>statistics.<wbr/>sharpness<wbr/>Map<wbr/>Mode
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080014047 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014048 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080014049 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014050
Igor Murashkinb8dc8812013-07-17 16:29:34 -070014051 <span class="entry_type_visibility"> [system as boolean]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014052
14053 <ul class="entry_type_enum">
14054 <li>
14055 <span class="entry_type_enum_name">OFF</span>
14056 </li>
14057 <li>
14058 <span class="entry_type_enum_name">ON</span>
14059 </li>
14060 </ul>
14061
14062 </td> <!-- entry_type -->
14063
14064 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080014065 <p>Operating mode for sharpness map
14066generation</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014067 </td>
14068
14069 <td class="entry_units">
14070 </td>
14071
14072 <td class="entry_range">
14073 </td>
14074
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014075 <td class="entry_tags">
Igor Murashkinbaacf9a2012-12-05 14:49:11 -080014076 <ul class="entry_tags">
14077 <li><a href="#tag_V1">V1</a></li>
14078 </ul>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014079 </td>
14080
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014081 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080014082
14083
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014084 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
14085 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014086
Zhijun He69fc0ea2013-07-17 09:42:58 -070014087
14088 <tr class="entry" id="dynamic_android.statistics.lensShadingMap">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080014089 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080014090 android.<wbr/>statistics.<wbr/>lens<wbr/>Shading<wbr/>Map
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080014091 </td>
Zhijun He69fc0ea2013-07-17 09:42:58 -070014092 <td class="entry_type">
14093 <span class="entry_type_name">float</span>
14094 <span class="entry_type_container">x</span>
14095
14096 <span class="entry_type_array">
14097 4 x n x m
14098 </span>
14099 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -080014100 <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 -070014101
14102
14103 </td> <!-- entry_type -->
14104
14105 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080014106 <p>The shading map is a low-resolution floating-point map
14107that lists the coefficients used to correct for vignetting,<wbr/> for each
14108Bayer color channel.<wbr/></p>
Zhijun He69fc0ea2013-07-17 09:42:58 -070014109 </td>
14110
14111 <td class="entry_units">
14112 </td>
14113
14114 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -080014115 <p>Each gain factor is &gt;= 1</p>
Zhijun He69fc0ea2013-07-17 09:42:58 -070014116 </td>
14117
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014118 <td class="entry_tags">
14119 </td>
14120
14121 </tr>
14122 <tr class="entries_header">
14123 <th class="th_details" colspan="5">Details</th>
14124 </tr>
14125 <tr class="entry_cont">
14126 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -080014127 <p>The least shaded section of the image should have a gain factor
14128of 1; all other sections should have gains above 1.<wbr/></p>
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -080014129<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 -080014130must take into account the colorCorrection settings.<wbr/></p>
14131<p>The shading map is for the entire active pixel array,<wbr/> and is not
14132affected by the crop region specified in the request.<wbr/> Each shading map
Igor Murashkin1dd4ecb2013-12-11 13:31:00 -080014133entry is the value of the shading compensation map over a specific
Igor Murashkin0b080452013-12-27 15:30:25 -080014134pixel on the sensor.<wbr/> Specifically,<wbr/> with a (N x M) resolution shading
14135map,<wbr/> and an active pixel array size (W x H),<wbr/> shading map entry
14136(x,<wbr/>y) ϵ (0 ...<wbr/> N-1,<wbr/> 0 ...<wbr/> M-1) is the value of the shading map at
14137pixel ( ((W-1)/<wbr/>(N-1)) * x,<wbr/> ((H-1)/<wbr/>(M-1)) * y) for the four color channels.<wbr/>
14138The map is assumed to be bilinearly interpolated between the sample points.<wbr/></p>
14139<p>The channel order is [R,<wbr/> Geven,<wbr/> Godd,<wbr/> B],<wbr/> where Geven is the green
14140channel for the even rows of a Bayer pattern,<wbr/> and Godd is the odd rows.<wbr/>
14141The shading map is stored in a fully interleaved format,<wbr/> and its size
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -080014142is 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 -080014143<p>The shading map should have on the order of 30-40 rows and columns,<wbr/>
14144and must be smaller than 64x64.<wbr/></p>
14145<p>As an example,<wbr/> given a very small map defined as:</p>
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -080014146<pre><code><a href="#static_android.lens.info.shadingMapSize">android.<wbr/>lens.<wbr/>info.<wbr/>shading<wbr/>Map<wbr/>Size</a> = [ 4,<wbr/> 3 ]
14147<a href="#dynamic_android.statistics.lensShadingMap">android.<wbr/>statistics.<wbr/>lens<wbr/>Shading<wbr/>Map</a> =
Igor Murashkin0b080452013-12-27 15:30:25 -080014148[ 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/>
14149 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/>
14150 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/>
14151 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/>
14152 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/>
14153 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 -080014154</code></pre>
14155<p>The low-resolution scaling map images for each channel are
14156(displayed using nearest-neighbor interpolation):</p>
14157<p><img alt="Red lens shading map" src="images/camera2/metadata/android.statistics.lensShadingMap/red_shading.png"/>
14158<img alt="Green (even rows) lens shading map" src="images/camera2/metadata/android.statistics.lensShadingMap/green_e_shading.png"/>
14159<img alt="Green (odd rows) lens shading map" src="images/camera2/metadata/android.statistics.lensShadingMap/green_o_shading.png"/>
14160<img alt="Blue lens shading map" src="images/camera2/metadata/android.statistics.lensShadingMap/blue_shading.png"/></p>
Igor Murashkin0b080452013-12-27 15:30:25 -080014161<p>As a visualization only,<wbr/> inverting the full-color map to recover an
Igor Murashkin1dd4ecb2013-12-11 13:31:00 -080014162image of a gray wall (using bicubic interpolation for visual quality) as captured by the sensor gives:</p>
Igor Murashkin0b080452013-12-27 15:30:25 -080014163<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 -070014164 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014165 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080014166
14167
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014168 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
14169 <!-- end of entry -->
Zhijun He69fc0ea2013-07-17 09:42:58 -070014170
14171
14172 <tr class="entry" id="dynamic_android.statistics.predictedColorGains">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080014173 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080014174 android.<wbr/>statistics.<wbr/>predicted<wbr/>Color<wbr/>Gains
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080014175 </td>
Zhijun He69fc0ea2013-07-17 09:42:58 -070014176 <td class="entry_type">
14177 <span class="entry_type_name">float</span>
14178 <span class="entry_type_container">x</span>
14179
14180 <span class="entry_type_array">
14181 4
14182 </span>
Igor Murashkin0fe2f132014-01-13 16:59:47 -080014183 <span class="entry_type_visibility"> [hidden]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -080014184 <div class="entry_type_notes">A 1D array of floats for 4 color channel gains</div>
Zhijun He69fc0ea2013-07-17 09:42:58 -070014185
14186
14187 </td> <!-- entry_type -->
14188
14189 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080014190 <p>The best-fit color channel gains calculated
14191by the HAL's statistics units for the current output frame</p>
Zhijun He69fc0ea2013-07-17 09:42:58 -070014192 </td>
14193
14194 <td class="entry_units">
14195 </td>
14196
14197 <td class="entry_range">
Igor Murashkin0fe2f132014-01-13 16:59:47 -080014198 <p><strong>Deprecated</strong>.<wbr/> Do not use.<wbr/></p>
Zhijun He69fc0ea2013-07-17 09:42:58 -070014199 </td>
14200
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014201 <td class="entry_tags">
14202 </td>
14203
14204 </tr>
14205 <tr class="entries_header">
14206 <th class="th_details" colspan="5">Details</th>
14207 </tr>
14208 <tr class="entry_cont">
14209 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -080014210 <p>This may be different than the gains used for this frame,<wbr/>
Igor Murashkin8aa2a112013-12-09 12:06:17 -080014211since statistics processing on data from a new frame
14212typically completes after the transform has already been
Igor Murashkin0b080452013-12-27 15:30:25 -080014213applied to that frame.<wbr/></p>
14214<p>The 4 channel gains are defined in Bayer domain,<wbr/>
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -080014215see <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 -080014216<p>This value should always be calculated by the AWB block,<wbr/>
14217regardless of the android.<wbr/>control.<wbr/>* current values.<wbr/></p>
Zhijun He69fc0ea2013-07-17 09:42:58 -070014218 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014219 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080014220
14221
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014222 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
14223 <!-- end of entry -->
Zhijun He69fc0ea2013-07-17 09:42:58 -070014224
14225
14226 <tr class="entry" id="dynamic_android.statistics.predictedColorTransform">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080014227 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080014228 android.<wbr/>statistics.<wbr/>predicted<wbr/>Color<wbr/>Transform
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080014229 </td>
Zhijun He69fc0ea2013-07-17 09:42:58 -070014230 <td class="entry_type">
14231 <span class="entry_type_name">rational</span>
14232 <span class="entry_type_container">x</span>
14233
14234 <span class="entry_type_array">
14235 3 x 3
14236 </span>
Igor Murashkin0fe2f132014-01-13 16:59:47 -080014237 <span class="entry_type_visibility"> [hidden]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -080014238 <div class="entry_type_notes">3x3 rational matrix in row-major order</div>
Zhijun He69fc0ea2013-07-17 09:42:58 -070014239
14240
14241 </td> <!-- entry_type -->
14242
14243 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080014244 <p>The best-fit color transform matrix estimate
Igor Murashkin8aa2a112013-12-09 12:06:17 -080014245calculated by the HAL's statistics units for the current
Igor Murashkin0b080452013-12-27 15:30:25 -080014246output frame</p>
Zhijun He69fc0ea2013-07-17 09:42:58 -070014247 </td>
14248
14249 <td class="entry_units">
14250 </td>
14251
14252 <td class="entry_range">
Igor Murashkin0fe2f132014-01-13 16:59:47 -080014253 <p><strong>Deprecated</strong>.<wbr/> Do not use.<wbr/></p>
Zhijun He69fc0ea2013-07-17 09:42:58 -070014254 </td>
14255
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014256 <td class="entry_tags">
14257 </td>
14258
14259 </tr>
14260 <tr class="entries_header">
14261 <th class="th_details" colspan="5">Details</th>
14262 </tr>
14263 <tr class="entry_cont">
14264 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -080014265 <p>The HAL must provide the estimate from its
Igor Murashkin8aa2a112013-12-09 12:06:17 -080014266statistics unit on the white balance transforms to use
Igor Murashkin0b080452013-12-27 15:30:25 -080014267for the next frame.<wbr/> These are the values the HAL believes
14268are the best fit for the current output frame.<wbr/> This may
14269be different than the transform used for this frame,<wbr/> since
Igor Murashkin8aa2a112013-12-09 12:06:17 -080014270statistics processing on data from a new frame typically
14271completes after the transform has already been applied to
Igor Murashkin0b080452013-12-27 15:30:25 -080014272that frame.<wbr/></p>
14273<p>These estimates must be provided for all frames,<wbr/> even if
14274capture settings and color transforms are set by the application.<wbr/></p>
14275<p>This value should always be calculated by the AWB block,<wbr/>
14276regardless of the android.<wbr/>control.<wbr/>* current values.<wbr/></p>
Zhijun He69fc0ea2013-07-17 09:42:58 -070014277 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014278 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080014279
14280
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014281 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
14282 <!-- end of entry -->
Zhijun He69fc0ea2013-07-17 09:42:58 -070014283
14284
14285 <tr class="entry" id="dynamic_android.statistics.sceneFlicker">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080014286 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080014287 android.<wbr/>statistics.<wbr/>scene<wbr/>Flicker
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080014288 </td>
Zhijun He69fc0ea2013-07-17 09:42:58 -070014289 <td class="entry_type">
14290 <span class="entry_type_name entry_type_name_enum">byte</span>
14291
14292 <span class="entry_type_visibility"> [public]</span>
14293
14294 <ul class="entry_type_enum">
14295 <li>
14296 <span class="entry_type_enum_name">NONE</span>
14297 </li>
14298 <li>
14299 <span class="entry_type_enum_name">50HZ</span>
14300 </li>
14301 <li>
14302 <span class="entry_type_enum_name">60HZ</span>
14303 </li>
14304 </ul>
14305
14306 </td> <!-- entry_type -->
14307
14308 <td class="entry_description">
Zhijun Heb8512c52014-02-03 11:46:58 -080014309 <p>The camera device estimated scene illumination lighting
14310frequency.<wbr/></p>
Zhijun He69fc0ea2013-07-17 09:42:58 -070014311 </td>
14312
14313 <td class="entry_units">
14314 </td>
14315
14316 <td class="entry_range">
14317 </td>
14318
Zhijun He69fc0ea2013-07-17 09:42:58 -070014319 <td class="entry_tags">
14320 </td>
14321
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014322 </tr>
14323 <tr class="entries_header">
14324 <th class="th_details" colspan="5">Details</th>
14325 </tr>
14326 <tr class="entry_cont">
14327 <td class="entry_details" colspan="5">
Zhijun Heb8512c52014-02-03 11:46:58 -080014328 <p>Many light sources,<wbr/> such as most fluorescent lights,<wbr/> flicker at a rate
14329that depends on the local utility power standards.<wbr/> This flicker must be
14330accounted for by auto-exposure routines to avoid artifacts in captured images.<wbr/>
14331The camera device uses this entry to tell the application what the scene
14332illuminant frequency is.<wbr/></p>
14333<p>When manual exposure control is enabled
14334(<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/>
14335the <a href="#controls_android.control.aeAntibandingMode">android.<wbr/>control.<wbr/>ae<wbr/>Antibanding<wbr/>Mode</a> doesn't do the antibanding,<wbr/> and the
14336application can ensure it selects exposure times that do not cause banding
14337issues by looking into this metadata field.<wbr/> See android.<wbr/>control.<wbr/>ae<wbr/>Antibanding<wbr/>Mode
14338for more details.<wbr/></p>
14339<p>Report NONE if there doesn't appear to be flickering illumination.<wbr/></p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014340 </td>
14341 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080014342
14343
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014344 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
14345 <!-- end of entry -->
Zhijun He69fc0ea2013-07-17 09:42:58 -070014346
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014347
14348
14349 <!-- end of kind -->
14350 </tbody>
14351
14352 <!-- end of section -->
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014353 <tr><td colspan="6" id="section_tonemap" class="section">tonemap</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014354
14355
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014356 <tr><td colspan="6" class="kind">controls</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014357
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070014358 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014359 <tr>
14360 <th class="th_name">Property Name</th>
14361 <th class="th_type">Type</th>
14362 <th class="th_description">Description</th>
14363 <th class="th_units">Units</th>
14364 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014365 <th class="th_tags">Tags</th>
14366 </tr>
14367 </thead>
14368
14369 <tbody>
14370
14371
14372
14373
14374
14375
14376
14377
14378
14379
14380 <tr class="entry" id="controls_android.tonemap.curveBlue">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080014381 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080014382 android.<wbr/>tonemap.<wbr/>curve<wbr/>Blue
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080014383 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014384 <td class="entry_type">
Eino-Ville Talvala76548fe2013-01-11 13:57:19 -080014385 <span class="entry_type_name">float</span>
Zhijun He704d1282013-08-19 15:26:33 -070014386 <span class="entry_type_container">x</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014387
Zhijun He704d1282013-08-19 15:26:33 -070014388 <span class="entry_type_array">
14389 n x 2
14390 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070014391 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -080014392 <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 -080014393
14394
14395 </td> <!-- entry_type -->
14396
14397 <td class="entry_description">
Igor Murashkin94e06c42014-01-13 16:51:17 -080014398 <p>Tonemapping /<wbr/> contrast /<wbr/> gamma curve for the blue
14399channel,<wbr/> to use when <a href="#controls_android.tonemap.mode">android.<wbr/>tonemap.<wbr/>mode</a> is
14400CONTRAST_<wbr/>CURVE.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014401 </td>
14402
14403 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -080014404 same as android.<wbr/>tonemap.<wbr/>curve<wbr/>Red
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014405 </td>
14406
14407 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -080014408 <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 -080014409 </td>
14410
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014411 <td class="entry_tags">
14412 </td>
14413
14414 </tr>
14415 <tr class="entries_header">
14416 <th class="th_details" colspan="5">Details</th>
14417 </tr>
14418 <tr class="entry_cont">
14419 <td class="entry_details" colspan="5">
Igor Murashkin94e06c42014-01-13 16:51:17 -080014420 <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 -080014421 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014422 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080014423
14424
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014425 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
14426 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014427
14428
14429 <tr class="entry" id="controls_android.tonemap.curveGreen">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080014430 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080014431 android.<wbr/>tonemap.<wbr/>curve<wbr/>Green
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080014432 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014433 <td class="entry_type">
Eino-Ville Talvala76548fe2013-01-11 13:57:19 -080014434 <span class="entry_type_name">float</span>
Zhijun He704d1282013-08-19 15:26:33 -070014435 <span class="entry_type_container">x</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014436
Zhijun He704d1282013-08-19 15:26:33 -070014437 <span class="entry_type_array">
14438 n x 2
14439 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070014440 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -080014441 <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 -080014442
14443
14444 </td> <!-- entry_type -->
14445
14446 <td class="entry_description">
Igor Murashkin94e06c42014-01-13 16:51:17 -080014447 <p>Tonemapping /<wbr/> contrast /<wbr/> gamma curve for the green
14448channel,<wbr/> to use when <a href="#controls_android.tonemap.mode">android.<wbr/>tonemap.<wbr/>mode</a> is
14449CONTRAST_<wbr/>CURVE.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014450 </td>
14451
14452 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -080014453 same as android.<wbr/>tonemap.<wbr/>curve<wbr/>Red
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014454 </td>
14455
14456 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -080014457 <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 -080014458 </td>
14459
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014460 <td class="entry_tags">
14461 </td>
14462
14463 </tr>
14464 <tr class="entries_header">
14465 <th class="th_details" colspan="5">Details</th>
14466 </tr>
14467 <tr class="entry_cont">
14468 <td class="entry_details" colspan="5">
Igor Murashkin94e06c42014-01-13 16:51:17 -080014469 <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 -080014470 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014471 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080014472
14473
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014474 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
14475 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014476
14477
14478 <tr class="entry" id="controls_android.tonemap.curveRed">
Igor Murashkin94e06c42014-01-13 16:51:17 -080014479 <td class="entry_name" rowspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -080014480 android.<wbr/>tonemap.<wbr/>curve<wbr/>Red
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080014481 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014482 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080014483 <span class="entry_type_name">float</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014484 <span class="entry_type_container">x</span>
14485
14486 <span class="entry_type_array">
14487 n x 2
14488 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070014489 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -080014490 <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 -080014491
14492
14493 </td> <!-- entry_type -->
14494
14495 <td class="entry_description">
Igor Murashkin94e06c42014-01-13 16:51:17 -080014496 <p>Tonemapping /<wbr/> contrast /<wbr/> gamma curve for the red
14497channel,<wbr/> to use when <a href="#controls_android.tonemap.mode">android.<wbr/>tonemap.<wbr/>mode</a> is
14498CONTRAST_<wbr/>CURVE.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014499 </td>
14500
14501 <td class="entry_units">
14502 </td>
14503
14504 <td class="entry_range">
Igor Murashkin94e06c42014-01-13 16:51:17 -080014505 <p>0-1 on both input and output coordinates,<wbr/> normalized
14506as a floating-point value such that 0 == black and 1 == white.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014507 </td>
14508
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014509 <td class="entry_tags">
14510 <ul class="entry_tags">
14511 <li><a href="#tag_DNG">DNG</a></li>
14512 </ul>
14513 </td>
14514
14515 </tr>
14516 <tr class="entries_header">
14517 <th class="th_details" colspan="5">Details</th>
14518 </tr>
14519 <tr class="entry_cont">
14520 <td class="entry_details" colspan="5">
Igor Murashkin94e06c42014-01-13 16:51:17 -080014521 <p>Each channel's curve is defined by an array of control points:</p>
14522<pre><code><a href="#controls_android.tonemap.curveRed">android.<wbr/>tonemap.<wbr/>curve<wbr/>Red</a> =
14523 [ P0in,<wbr/> P0out,<wbr/> P1in,<wbr/> P1out,<wbr/> P2in,<wbr/> P2out,<wbr/> P3in,<wbr/> P3out,<wbr/> ...,<wbr/> PNin,<wbr/> PNout ]
145242 &lt;= N &lt;= <a href="#static_android.tonemap.maxCurvePoints">android.<wbr/>tonemap.<wbr/>max<wbr/>Curve<wbr/>Points</a></code></pre>
14525<p>These are sorted in order of increasing <code>Pin</code>; it is always
14526guaranteed that input values 0.<wbr/>0 and 1.<wbr/>0 are included in the list to
14527define a complete mapping.<wbr/> For input values between control points,<wbr/>
14528the camera device must linearly interpolate between the control
14529points.<wbr/></p>
14530<p>Each curve can have an independent number of points,<wbr/> and the number
14531of points can be less than max (that is,<wbr/> the request doesn't have to
14532always provide a curve with number of points equivalent to
14533<a href="#static_android.tonemap.maxCurvePoints">android.<wbr/>tonemap.<wbr/>max<wbr/>Curve<wbr/>Points</a>).<wbr/></p>
14534<p>A few examples,<wbr/> and their corresponding graphical mappings; these
14535only specify the red channel and the precision is limited to 4
14536digits,<wbr/> for conciseness.<wbr/></p>
14537<p>Linear mapping:</p>
14538<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 ]
14539</code></pre>
14540<p><img alt="Linear mapping curve" src="images/camera2/metadata/android.tonemap.curveRed/linear_tonemap.png"/></p>
14541<p>Invert mapping:</p>
14542<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 ]
14543</code></pre>
14544<p><img alt="Inverting mapping curve" src="images/camera2/metadata/android.tonemap.curveRed/inverse_tonemap.png"/></p>
14545<p>Gamma 1/<wbr/>2.<wbr/>2 mapping,<wbr/> with 16 control points:</p>
14546<pre><code><a href="#controls_android.tonemap.curveRed">android.<wbr/>tonemap.<wbr/>curve<wbr/>Red</a> = [
14547 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/>
14548 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/>
14549 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/>
14550 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 ]
14551</code></pre>
14552<p><img alt="Gamma = 1/2.2 tonemapping curve" src="images/camera2/metadata/android.tonemap.curveRed/gamma_tonemap.png"/></p>
14553<p>Standard sRGB gamma mapping,<wbr/> per IEC 61966-2-1:1999,<wbr/> with 16 control points:</p>
14554<pre><code><a href="#controls_android.tonemap.curveRed">android.<wbr/>tonemap.<wbr/>curve<wbr/>Red</a> = [
14555 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/>
14556 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/>
14557 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/>
14558 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 ]
14559</code></pre>
14560<p><img alt="sRGB tonemapping curve" src="images/camera2/metadata/android.tonemap.curveRed/srgb_tonemap.png"/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014561 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014562 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080014563
Igor Murashkin94e06c42014-01-13 16:51:17 -080014564 <tr class="entries_header">
14565 <th class="th_details" colspan="5">HAL Implementation Details</th>
14566 </tr>
14567 <tr class="entry_cont">
14568 <td class="entry_details" colspan="5">
14569 <p>For good quality of mapping,<wbr/> at least 128 control points are
14570preferred.<wbr/></p>
14571<p>A typical use case of this would be a gamma-1/<wbr/>2.<wbr/>2 curve,<wbr/> with as many
14572control points used as are available.<wbr/></p>
14573 </td>
14574 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080014575
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014576 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
14577 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014578
14579
14580 <tr class="entry" id="controls_android.tonemap.mode">
Igor Murashkin94e06c42014-01-13 16:51:17 -080014581 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080014582 android.<wbr/>tonemap.<wbr/>mode
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080014583 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014584 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080014585 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014586
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070014587 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014588
14589 <ul class="entry_type_enum">
14590 <li>
14591 <span class="entry_type_enum_name">CONTRAST_CURVE</span>
Igor Murashkina10351a2014-01-15 17:05:22 -080014592 <span class="entry_type_enum_notes"><p>Use the tone mapping curve specified in
Igor Murashkin94e06c42014-01-13 16:51:17 -080014593android.<wbr/>tonemap.<wbr/>curve.<wbr/></p>
14594<p>All color enhancement and tonemapping must be disabled,<wbr/> except
14595for applying the tonemapping curve specified by
14596<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
14597<a href="#controls_android.tonemap.curveGreen">android.<wbr/>tonemap.<wbr/>curve<wbr/>Green</a>.<wbr/></p>
14598<p>Must not slow down frame rate relative to raw
14599sensor output.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014600 </li>
14601 <li>
14602 <span class="entry_type_enum_name">FAST</span>
Igor Murashkin94e06c42014-01-13 16:51:17 -080014603 <span class="entry_type_enum_notes"><p>Advanced gamma mapping and color enhancement may be applied.<wbr/></p>
14604<p>Should not slow down frame rate relative to raw sensor output.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014605 </li>
14606 <li>
14607 <span class="entry_type_enum_name">HIGH_QUALITY</span>
Igor Murashkin94e06c42014-01-13 16:51:17 -080014608 <span class="entry_type_enum_notes"><p>Advanced gamma mapping and color enhancement may be applied.<wbr/></p>
14609<p>May slow down frame rate relative to raw sensor output.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014610 </li>
14611 </ul>
14612
14613 </td> <!-- entry_type -->
14614
14615 <td class="entry_description">
Igor Murashkin94e06c42014-01-13 16:51:17 -080014616 <p>High-level global contrast/<wbr/>gamma/<wbr/>tonemapping control.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014617 </td>
14618
14619 <td class="entry_units">
14620 </td>
14621
14622 <td class="entry_range">
14623 </td>
14624
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014625 <td class="entry_tags">
14626 </td>
14627
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014628 </tr>
Igor Murashkin94e06c42014-01-13 16:51:17 -080014629 <tr class="entries_header">
14630 <th class="th_details" colspan="5">Details</th>
14631 </tr>
14632 <tr class="entry_cont">
14633 <td class="entry_details" colspan="5">
14634 <p>When switching to an application-defined contrast curve by setting
14635<a href="#controls_android.tonemap.mode">android.<wbr/>tonemap.<wbr/>mode</a> to CONTRAST_<wbr/>CURVE,<wbr/> the curve is defined
14636per-channel with a set of <code>(in,<wbr/> out)</code> points that specify the
14637mapping from input high-bit-depth pixel value to the output
14638low-bit-depth value.<wbr/> Since the actual pixel ranges of both input
14639and output may change depending on the camera pipeline,<wbr/> the values
14640are specified by normalized floating-point numbers.<wbr/></p>
14641<p>More-complex color mapping operations such as 3D color look-up
14642tables,<wbr/> selective chroma enhancement,<wbr/> or other non-linear color
14643transforms will be disabled when <a href="#controls_android.tonemap.mode">android.<wbr/>tonemap.<wbr/>mode</a> is
14644CONTRAST_<wbr/>CURVE.<wbr/></p>
14645<p>When using either FAST or HIGH_<wbr/>QUALITY,<wbr/> the camera device will
14646emit its own tonemap curve in <a href="#controls_android.tonemap.curveRed">android.<wbr/>tonemap.<wbr/>curve<wbr/>Red</a>,<wbr/>
14647<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/>
14648These values are always available,<wbr/> and as close as possible to the
14649actually used nonlinear/<wbr/>nonglobal transforms.<wbr/></p>
14650<p>If a request is sent with TRANSFORM_<wbr/>MATRIX with the camera device's
14651provided curve in FAST or HIGH_<wbr/>QUALITY,<wbr/> the image's tonemap will be
14652roughly the same.<wbr/></p>
14653 </td>
14654 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080014655
14656
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014657 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
14658 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014659
14660
14661
14662 <!-- end of kind -->
14663 </tbody>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014664 <tr><td colspan="6" class="kind">static</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014665
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070014666 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014667 <tr>
14668 <th class="th_name">Property Name</th>
14669 <th class="th_type">Type</th>
14670 <th class="th_description">Description</th>
14671 <th class="th_units">Units</th>
14672 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014673 <th class="th_tags">Tags</th>
14674 </tr>
14675 </thead>
14676
14677 <tbody>
14678
14679
14680
14681
14682
14683
14684
14685
14686
14687
14688 <tr class="entry" id="static_android.tonemap.maxCurvePoints">
Igor Murashkin94e06c42014-01-13 16:51:17 -080014689 <td class="entry_name" rowspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -080014690 android.<wbr/>tonemap.<wbr/>max<wbr/>Curve<wbr/>Points
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080014691 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014692 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080014693 <span class="entry_type_name">int32</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014694
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070014695 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014696
14697
14698 </td> <!-- entry_type -->
14699
14700 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080014701 <p>Maximum number of supported points in the
Igor Murashkin94e06c42014-01-13 16:51:17 -080014702tonemap curve that can be used for <a href="#controls_android.tonemap.curveRed">android.<wbr/>tonemap.<wbr/>curve<wbr/>Red</a>,<wbr/> or
14703<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 -080014704 </td>
14705
14706 <td class="entry_units">
14707 </td>
14708
14709 <td class="entry_range">
Igor Murashkin94e06c42014-01-13 16:51:17 -080014710 <p>&gt;= 64</p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014711 </td>
14712
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014713 <td class="entry_tags">
14714 </td>
14715
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014716 </tr>
Igor Murashkin94e06c42014-01-13 16:51:17 -080014717 <tr class="entries_header">
14718 <th class="th_details" colspan="5">Details</th>
14719 </tr>
14720 <tr class="entry_cont">
14721 <td class="entry_details" colspan="5">
14722 <p>If the actual number of points provided by the application (in
14723android.<wbr/>tonemap.<wbr/>curve*) is less than max,<wbr/> the camera device will
14724resample the curve to its internal representation,<wbr/> using linear
14725interpolation.<wbr/></p>
14726<p>The output curves in the result metadata may have a different number
14727of points than the input curves,<wbr/> and will represent the actual
14728hardware curves used as closely as possible when linearly interpolated.<wbr/></p>
14729 </td>
14730 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080014731
Igor Murashkin94e06c42014-01-13 16:51:17 -080014732 <tr class="entries_header">
14733 <th class="th_details" colspan="5">HAL Implementation Details</th>
14734 </tr>
14735 <tr class="entry_cont">
14736 <td class="entry_details" colspan="5">
14737 <p>This value must be at least 64.<wbr/> This should be at least 128.<wbr/></p>
14738 </td>
14739 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080014740
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014741 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
14742 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014743
14744
14745
14746 <!-- end of kind -->
14747 </tbody>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014748 <tr><td colspan="6" class="kind">dynamic</td></tr>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014749
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070014750 <thead class="entries_header">
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014751 <tr>
14752 <th class="th_name">Property Name</th>
14753 <th class="th_type">Type</th>
14754 <th class="th_description">Description</th>
14755 <th class="th_units">Units</th>
14756 <th class="th_range">Range</th>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014757 <th class="th_tags">Tags</th>
14758 </tr>
14759 </thead>
14760
14761 <tbody>
14762
14763
14764
14765
14766
14767
14768
14769
14770
14771
14772 <tr class="entry" id="dynamic_android.tonemap.curveBlue">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080014773 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080014774 android.<wbr/>tonemap.<wbr/>curve<wbr/>Blue
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080014775 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014776 <td class="entry_type">
Eino-Ville Talvala76548fe2013-01-11 13:57:19 -080014777 <span class="entry_type_name">float</span>
Zhijun He704d1282013-08-19 15:26:33 -070014778 <span class="entry_type_container">x</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014779
Zhijun He704d1282013-08-19 15:26:33 -070014780 <span class="entry_type_array">
14781 n x 2
14782 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070014783 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -080014784 <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 -080014785
14786
14787 </td> <!-- entry_type -->
14788
14789 <td class="entry_description">
Igor Murashkin94e06c42014-01-13 16:51:17 -080014790 <p>Tonemapping /<wbr/> contrast /<wbr/> gamma curve for the blue
14791channel,<wbr/> to use when <a href="#controls_android.tonemap.mode">android.<wbr/>tonemap.<wbr/>mode</a> is
14792CONTRAST_<wbr/>CURVE.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014793 </td>
14794
14795 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -080014796 same as android.<wbr/>tonemap.<wbr/>curve<wbr/>Red
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014797 </td>
14798
14799 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -080014800 <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 -080014801 </td>
14802
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014803 <td class="entry_tags">
14804 </td>
14805
14806 </tr>
14807 <tr class="entries_header">
14808 <th class="th_details" colspan="5">Details</th>
14809 </tr>
14810 <tr class="entry_cont">
14811 <td class="entry_details" colspan="5">
Igor Murashkin94e06c42014-01-13 16:51:17 -080014812 <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 -080014813 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014814 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080014815
14816
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014817 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
14818 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014819
14820
14821 <tr class="entry" id="dynamic_android.tonemap.curveGreen">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080014822 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080014823 android.<wbr/>tonemap.<wbr/>curve<wbr/>Green
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080014824 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014825 <td class="entry_type">
Eino-Ville Talvala76548fe2013-01-11 13:57:19 -080014826 <span class="entry_type_name">float</span>
Zhijun He704d1282013-08-19 15:26:33 -070014827 <span class="entry_type_container">x</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014828
Zhijun He704d1282013-08-19 15:26:33 -070014829 <span class="entry_type_array">
14830 n x 2
14831 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070014832 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -080014833 <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 -080014834
14835
14836 </td> <!-- entry_type -->
14837
14838 <td class="entry_description">
Igor Murashkin94e06c42014-01-13 16:51:17 -080014839 <p>Tonemapping /<wbr/> contrast /<wbr/> gamma curve for the green
14840channel,<wbr/> to use when <a href="#controls_android.tonemap.mode">android.<wbr/>tonemap.<wbr/>mode</a> is
14841CONTRAST_<wbr/>CURVE.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014842 </td>
14843
14844 <td class="entry_units">
Igor Murashkin0b080452013-12-27 15:30:25 -080014845 same as android.<wbr/>tonemap.<wbr/>curve<wbr/>Red
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014846 </td>
14847
14848 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -080014849 <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 -080014850 </td>
14851
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014852 <td class="entry_tags">
14853 </td>
14854
14855 </tr>
14856 <tr class="entries_header">
14857 <th class="th_details" colspan="5">Details</th>
14858 </tr>
14859 <tr class="entry_cont">
14860 <td class="entry_details" colspan="5">
Igor Murashkin94e06c42014-01-13 16:51:17 -080014861 <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 -080014862 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014863 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080014864
14865
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014866 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
14867 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014868
14869
14870 <tr class="entry" id="dynamic_android.tonemap.curveRed">
Igor Murashkin94e06c42014-01-13 16:51:17 -080014871 <td class="entry_name" rowspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -080014872 android.<wbr/>tonemap.<wbr/>curve<wbr/>Red
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080014873 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014874 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080014875 <span class="entry_type_name">float</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014876 <span class="entry_type_container">x</span>
14877
14878 <span class="entry_type_array">
14879 n x 2
14880 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070014881 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin0b080452013-12-27 15:30:25 -080014882 <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 -080014883
14884
14885 </td> <!-- entry_type -->
14886
14887 <td class="entry_description">
Igor Murashkin94e06c42014-01-13 16:51:17 -080014888 <p>Tonemapping /<wbr/> contrast /<wbr/> gamma curve for the red
14889channel,<wbr/> to use when <a href="#controls_android.tonemap.mode">android.<wbr/>tonemap.<wbr/>mode</a> is
14890CONTRAST_<wbr/>CURVE.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014891 </td>
14892
14893 <td class="entry_units">
14894 </td>
14895
14896 <td class="entry_range">
Igor Murashkin94e06c42014-01-13 16:51:17 -080014897 <p>0-1 on both input and output coordinates,<wbr/> normalized
14898as a floating-point value such that 0 == black and 1 == white.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014899 </td>
14900
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014901 <td class="entry_tags">
14902 <ul class="entry_tags">
14903 <li><a href="#tag_DNG">DNG</a></li>
14904 </ul>
14905 </td>
14906
14907 </tr>
14908 <tr class="entries_header">
14909 <th class="th_details" colspan="5">Details</th>
14910 </tr>
14911 <tr class="entry_cont">
14912 <td class="entry_details" colspan="5">
Igor Murashkin94e06c42014-01-13 16:51:17 -080014913 <p>Each channel's curve is defined by an array of control points:</p>
14914<pre><code><a href="#controls_android.tonemap.curveRed">android.<wbr/>tonemap.<wbr/>curve<wbr/>Red</a> =
14915 [ P0in,<wbr/> P0out,<wbr/> P1in,<wbr/> P1out,<wbr/> P2in,<wbr/> P2out,<wbr/> P3in,<wbr/> P3out,<wbr/> ...,<wbr/> PNin,<wbr/> PNout ]
149162 &lt;= N &lt;= <a href="#static_android.tonemap.maxCurvePoints">android.<wbr/>tonemap.<wbr/>max<wbr/>Curve<wbr/>Points</a></code></pre>
14917<p>These are sorted in order of increasing <code>Pin</code>; it is always
14918guaranteed that input values 0.<wbr/>0 and 1.<wbr/>0 are included in the list to
14919define a complete mapping.<wbr/> For input values between control points,<wbr/>
14920the camera device must linearly interpolate between the control
14921points.<wbr/></p>
14922<p>Each curve can have an independent number of points,<wbr/> and the number
14923of points can be less than max (that is,<wbr/> the request doesn't have to
14924always provide a curve with number of points equivalent to
14925<a href="#static_android.tonemap.maxCurvePoints">android.<wbr/>tonemap.<wbr/>max<wbr/>Curve<wbr/>Points</a>).<wbr/></p>
14926<p>A few examples,<wbr/> and their corresponding graphical mappings; these
14927only specify the red channel and the precision is limited to 4
14928digits,<wbr/> for conciseness.<wbr/></p>
14929<p>Linear mapping:</p>
14930<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 ]
14931</code></pre>
14932<p><img alt="Linear mapping curve" src="images/camera2/metadata/android.tonemap.curveRed/linear_tonemap.png"/></p>
14933<p>Invert mapping:</p>
14934<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 ]
14935</code></pre>
14936<p><img alt="Inverting mapping curve" src="images/camera2/metadata/android.tonemap.curveRed/inverse_tonemap.png"/></p>
14937<p>Gamma 1/<wbr/>2.<wbr/>2 mapping,<wbr/> with 16 control points:</p>
14938<pre><code><a href="#controls_android.tonemap.curveRed">android.<wbr/>tonemap.<wbr/>curve<wbr/>Red</a> = [
14939 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/>
14940 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/>
14941 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/>
14942 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 ]
14943</code></pre>
14944<p><img alt="Gamma = 1/2.2 tonemapping curve" src="images/camera2/metadata/android.tonemap.curveRed/gamma_tonemap.png"/></p>
14945<p>Standard sRGB gamma mapping,<wbr/> per IEC 61966-2-1:1999,<wbr/> with 16 control points:</p>
14946<pre><code><a href="#controls_android.tonemap.curveRed">android.<wbr/>tonemap.<wbr/>curve<wbr/>Red</a> = [
14947 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/>
14948 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/>
14949 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/>
14950 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 ]
14951</code></pre>
14952<p><img alt="sRGB tonemapping curve" src="images/camera2/metadata/android.tonemap.curveRed/srgb_tonemap.png"/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014953 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014954 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080014955
Igor Murashkin94e06c42014-01-13 16:51:17 -080014956 <tr class="entries_header">
14957 <th class="th_details" colspan="5">HAL Implementation Details</th>
14958 </tr>
14959 <tr class="entry_cont">
14960 <td class="entry_details" colspan="5">
14961 <p>For good quality of mapping,<wbr/> at least 128 control points are
14962preferred.<wbr/></p>
14963<p>A typical use case of this would be a gamma-1/<wbr/>2.<wbr/>2 curve,<wbr/> with as many
14964control points used as are available.<wbr/></p>
14965 </td>
14966 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080014967
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080014968 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
14969 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014970
14971
14972 <tr class="entry" id="dynamic_android.tonemap.mode">
Igor Murashkin94e06c42014-01-13 16:51:17 -080014973 <td class="entry_name" rowspan="3">
Igor Murashkin0b080452013-12-27 15:30:25 -080014974 android.<wbr/>tonemap.<wbr/>mode
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080014975 </td>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014976 <td class="entry_type">
Igor Murashkinb556bc42012-12-04 16:07:21 -080014977 <span class="entry_type_name entry_type_name_enum">byte</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014978
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070014979 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014980
14981 <ul class="entry_type_enum">
14982 <li>
14983 <span class="entry_type_enum_name">CONTRAST_CURVE</span>
Igor Murashkina10351a2014-01-15 17:05:22 -080014984 <span class="entry_type_enum_notes"><p>Use the tone mapping curve specified in
Igor Murashkin94e06c42014-01-13 16:51:17 -080014985android.<wbr/>tonemap.<wbr/>curve.<wbr/></p>
14986<p>All color enhancement and tonemapping must be disabled,<wbr/> except
14987for applying the tonemapping curve specified by
14988<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
14989<a href="#controls_android.tonemap.curveGreen">android.<wbr/>tonemap.<wbr/>curve<wbr/>Green</a>.<wbr/></p>
14990<p>Must not slow down frame rate relative to raw
14991sensor output.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014992 </li>
14993 <li>
14994 <span class="entry_type_enum_name">FAST</span>
Igor Murashkin94e06c42014-01-13 16:51:17 -080014995 <span class="entry_type_enum_notes"><p>Advanced gamma mapping and color enhancement may be applied.<wbr/></p>
14996<p>Should not slow down frame rate relative to raw sensor output.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080014997 </li>
14998 <li>
14999 <span class="entry_type_enum_name">HIGH_QUALITY</span>
Igor Murashkin94e06c42014-01-13 16:51:17 -080015000 <span class="entry_type_enum_notes"><p>Advanced gamma mapping and color enhancement may be applied.<wbr/></p>
15001<p>May slow down frame rate relative to raw sensor output.<wbr/></p></span>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080015002 </li>
15003 </ul>
15004
15005 </td> <!-- entry_type -->
15006
15007 <td class="entry_description">
Igor Murashkin94e06c42014-01-13 16:51:17 -080015008 <p>High-level global contrast/<wbr/>gamma/<wbr/>tonemapping control.<wbr/></p>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080015009 </td>
15010
15011 <td class="entry_units">
15012 </td>
15013
15014 <td class="entry_range">
15015 </td>
15016
Igor Murashkin08b8aad2012-11-29 15:23:03 -080015017 <td class="entry_tags">
15018 </td>
15019
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080015020 </tr>
Igor Murashkin595f45b2014-01-17 17:27:15 -080015021 <tr class="entries_header">
15022 <th class="th_details" colspan="5">Details</th>
15023 </tr>
15024 <tr class="entry_cont">
15025 <td class="entry_details" colspan="5">
15026 <p>When switching to an application-defined contrast curve by setting
15027<a href="#controls_android.tonemap.mode">android.<wbr/>tonemap.<wbr/>mode</a> to CONTRAST_<wbr/>CURVE,<wbr/> the curve is defined
15028per-channel with a set of <code>(in,<wbr/> out)</code> points that specify the
15029mapping from input high-bit-depth pixel value to the output
15030low-bit-depth value.<wbr/> Since the actual pixel ranges of both input
15031and output may change depending on the camera pipeline,<wbr/> the values
15032are specified by normalized floating-point numbers.<wbr/></p>
15033<p>More-complex color mapping operations such as 3D color look-up
15034tables,<wbr/> selective chroma enhancement,<wbr/> or other non-linear color
15035transforms will be disabled when <a href="#controls_android.tonemap.mode">android.<wbr/>tonemap.<wbr/>mode</a> is
15036CONTRAST_<wbr/>CURVE.<wbr/></p>
15037<p>When using either FAST or HIGH_<wbr/>QUALITY,<wbr/> the camera device will
15038emit its own tonemap curve in <a href="#controls_android.tonemap.curveRed">android.<wbr/>tonemap.<wbr/>curve<wbr/>Red</a>,<wbr/>
15039<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/>
15040These values are always available,<wbr/> and as close as possible to the
15041actually used nonlinear/<wbr/>nonglobal transforms.<wbr/></p>
15042<p>If a request is sent with TRANSFORM_<wbr/>MATRIX with the camera device's
15043provided curve in FAST or HIGH_<wbr/>QUALITY,<wbr/> the image's tonemap will be
15044roughly the same.<wbr/></p>
15045 </td>
15046 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080015047
15048
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080015049 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
15050 <!-- end of entry -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080015051
15052
15053
15054 <!-- end of kind -->
15055 </tbody>
15056
15057 <!-- end of section -->
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080015058 <tr><td colspan="6" id="section_led" class="section">led</td></tr>
Igor Murashkinc469f7d2013-04-23 14:31:02 -070015059
15060
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080015061 <tr><td colspan="6" class="kind">controls</td></tr>
Igor Murashkinc469f7d2013-04-23 14:31:02 -070015062
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070015063 <thead class="entries_header">
Igor Murashkinc469f7d2013-04-23 14:31:02 -070015064 <tr>
15065 <th class="th_name">Property Name</th>
15066 <th class="th_type">Type</th>
15067 <th class="th_description">Description</th>
15068 <th class="th_units">Units</th>
15069 <th class="th_range">Range</th>
Igor Murashkinc469f7d2013-04-23 14:31:02 -070015070 <th class="th_tags">Tags</th>
15071 </tr>
15072 </thead>
15073
15074 <tbody>
15075
15076
15077
15078
15079
15080
15081
15082
15083
15084
15085 <tr class="entry" id="controls_android.led.transmit">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080015086 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -080015087 android.<wbr/>led.<wbr/>transmit
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080015088 </td>
Igor Murashkinc469f7d2013-04-23 14:31:02 -070015089 <td class="entry_type">
15090 <span class="entry_type_name entry_type_name_enum">byte</span>
15091
Igor Murashkinb8dc8812013-07-17 16:29:34 -070015092 <span class="entry_type_visibility"> [hidden as boolean]</span>
Igor Murashkinc469f7d2013-04-23 14:31:02 -070015093
15094 <ul class="entry_type_enum">
15095 <li>
15096 <span class="entry_type_enum_name">OFF</span>
15097 </li>
15098 <li>
15099 <span class="entry_type_enum_name">ON</span>
15100 </li>
15101 </ul>
15102
15103 </td> <!-- entry_type -->
15104
15105 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080015106 <p>This LED is nominally used to indicate to the user
Igor Murashkin8aa2a112013-12-09 12:06:17 -080015107that the camera is powered on and may be streaming images back to the
Igor Murashkin0b080452013-12-27 15:30:25 -080015108Application Processor.<wbr/> In certain rare circumstances,<wbr/> the OS may
Igor Murashkin8aa2a112013-12-09 12:06:17 -080015109disable this when video is processed locally and not transmitted to
Igor Murashkin0b080452013-12-27 15:30:25 -080015110any untrusted applications.<wbr/></p>
15111<p>In particular,<wbr/> the LED <em>must</em> always be on when the data could be
15112transmitted off the device.<wbr/> The LED <em>should</em> always be on whenever
15113data is stored locally on the device.<wbr/></p>
Igor Murashkin8aa2a112013-12-09 12:06:17 -080015114<p>The LED <em>may</em> be off if a trusted application is using the data that
Igor Murashkin0b080452013-12-27 15:30:25 -080015115doesn't violate the above rules.<wbr/></p>
Igor Murashkinc469f7d2013-04-23 14:31:02 -070015116 </td>
15117
15118 <td class="entry_units">
15119 </td>
15120
15121 <td class="entry_range">
15122 </td>
15123
Igor Murashkinc469f7d2013-04-23 14:31:02 -070015124 <td class="entry_tags">
15125 </td>
15126
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080015127 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080015128
15129
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080015130 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
15131 <!-- end of entry -->
Igor Murashkinc469f7d2013-04-23 14:31:02 -070015132
15133
15134
15135 <!-- end of kind -->
15136 </tbody>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080015137 <tr><td colspan="6" class="kind">dynamic</td></tr>
Igor Murashkinc469f7d2013-04-23 14:31:02 -070015138
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070015139 <thead class="entries_header">
Igor Murashkinc469f7d2013-04-23 14:31:02 -070015140 <tr>
15141 <th class="th_name">Property Name</th>
15142 <th class="th_type">Type</th>
15143 <th class="th_description">Description</th>
15144 <th class="th_units">Units</th>
15145 <th class="th_range">Range</th>
Igor Murashkinc469f7d2013-04-23 14:31:02 -070015146 <th class="th_tags">Tags</th>
15147 </tr>
15148 </thead>
15149
15150 <tbody>
15151
15152
15153
15154
15155
15156
15157
15158
15159
15160
15161 <tr class="entry" id="dynamic_android.led.transmit">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080015162 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -080015163 android.<wbr/>led.<wbr/>transmit
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080015164 </td>
Igor Murashkinc469f7d2013-04-23 14:31:02 -070015165 <td class="entry_type">
15166 <span class="entry_type_name entry_type_name_enum">byte</span>
15167
Igor Murashkinb8dc8812013-07-17 16:29:34 -070015168 <span class="entry_type_visibility"> [hidden as boolean]</span>
Igor Murashkinc469f7d2013-04-23 14:31:02 -070015169
15170 <ul class="entry_type_enum">
15171 <li>
15172 <span class="entry_type_enum_name">OFF</span>
15173 </li>
15174 <li>
15175 <span class="entry_type_enum_name">ON</span>
15176 </li>
15177 </ul>
15178
15179 </td> <!-- entry_type -->
15180
15181 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080015182 <p>This LED is nominally used to indicate to the user
Igor Murashkin8aa2a112013-12-09 12:06:17 -080015183that the camera is powered on and may be streaming images back to the
Igor Murashkin0b080452013-12-27 15:30:25 -080015184Application Processor.<wbr/> In certain rare circumstances,<wbr/> the OS may
Igor Murashkin8aa2a112013-12-09 12:06:17 -080015185disable this when video is processed locally and not transmitted to
Igor Murashkin0b080452013-12-27 15:30:25 -080015186any untrusted applications.<wbr/></p>
15187<p>In particular,<wbr/> the LED <em>must</em> always be on when the data could be
15188transmitted off the device.<wbr/> The LED <em>should</em> always be on whenever
15189data is stored locally on the device.<wbr/></p>
Igor Murashkin8aa2a112013-12-09 12:06:17 -080015190<p>The LED <em>may</em> be off if a trusted application is using the data that
Igor Murashkin0b080452013-12-27 15:30:25 -080015191doesn't violate the above rules.<wbr/></p>
Igor Murashkinc469f7d2013-04-23 14:31:02 -070015192 </td>
15193
15194 <td class="entry_units">
15195 </td>
15196
15197 <td class="entry_range">
15198 </td>
15199
Igor Murashkinc469f7d2013-04-23 14:31:02 -070015200 <td class="entry_tags">
15201 </td>
15202
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080015203 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080015204
15205
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080015206 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
15207 <!-- end of entry -->
Igor Murashkinc469f7d2013-04-23 14:31:02 -070015208
15209
15210
15211 <!-- end of kind -->
15212 </tbody>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080015213 <tr><td colspan="6" class="kind">static</td></tr>
Igor Murashkinc469f7d2013-04-23 14:31:02 -070015214
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070015215 <thead class="entries_header">
Igor Murashkinc469f7d2013-04-23 14:31:02 -070015216 <tr>
15217 <th class="th_name">Property Name</th>
15218 <th class="th_type">Type</th>
15219 <th class="th_description">Description</th>
15220 <th class="th_units">Units</th>
15221 <th class="th_range">Range</th>
Igor Murashkinc469f7d2013-04-23 14:31:02 -070015222 <th class="th_tags">Tags</th>
15223 </tr>
15224 </thead>
15225
15226 <tbody>
15227
15228
15229
15230
15231
15232
15233
15234
15235
15236
15237 <tr class="entry" id="static_android.led.availableLeds">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080015238 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -080015239 android.<wbr/>led.<wbr/>available<wbr/>Leds
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080015240 </td>
Igor Murashkinc469f7d2013-04-23 14:31:02 -070015241 <td class="entry_type">
15242 <span class="entry_type_name entry_type_name_enum">byte</span>
15243 <span class="entry_type_container">x</span>
15244
15245 <span class="entry_type_array">
15246 n
15247 </span>
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070015248 <span class="entry_type_visibility"> [hidden]</span>
Igor Murashkinc469f7d2013-04-23 14:31:02 -070015249
15250 <ul class="entry_type_enum">
15251 <li>
15252 <span class="entry_type_enum_name">TRANSMIT</span>
Igor Murashkina10351a2014-01-15 17:05:22 -080015253 <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 -070015254 </li>
15255 </ul>
15256
15257 </td> <!-- entry_type -->
15258
15259 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080015260 <p>A list of camera LEDs that are available on this system.<wbr/></p>
Igor Murashkinc469f7d2013-04-23 14:31:02 -070015261 </td>
15262
15263 <td class="entry_units">
15264 </td>
15265
15266 <td class="entry_range">
15267 </td>
15268
Igor Murashkinc469f7d2013-04-23 14:31:02 -070015269 <td class="entry_tags">
15270 </td>
15271
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080015272 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080015273
15274
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080015275 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
15276 <!-- end of entry -->
Igor Murashkinc469f7d2013-04-23 14:31:02 -070015277
15278
15279
15280 <!-- end of kind -->
15281 </tbody>
15282
15283 <!-- end of section -->
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080015284 <tr><td colspan="6" id="section_info" class="section">info</td></tr>
Igor Murashkin38b8cae2013-05-23 16:38:59 -070015285
15286
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080015287 <tr><td colspan="6" class="kind">static</td></tr>
Igor Murashkin38b8cae2013-05-23 16:38:59 -070015288
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070015289 <thead class="entries_header">
Igor Murashkin38b8cae2013-05-23 16:38:59 -070015290 <tr>
15291 <th class="th_name">Property Name</th>
15292 <th class="th_type">Type</th>
15293 <th class="th_description">Description</th>
15294 <th class="th_units">Units</th>
15295 <th class="th_range">Range</th>
Igor Murashkin38b8cae2013-05-23 16:38:59 -070015296 <th class="th_tags">Tags</th>
15297 </tr>
15298 </thead>
15299
15300 <tbody>
15301
15302
15303
15304
15305
15306
15307
15308
15309
15310
15311 <tr class="entry" id="static_android.info.supportedHardwareLevel">
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080015312 <td class="entry_name" rowspan="1">
Igor Murashkin0b080452013-12-27 15:30:25 -080015313 android.<wbr/>info.<wbr/>supported<wbr/>Hardware<wbr/>Level
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080015314 </td>
Igor Murashkin38b8cae2013-05-23 16:38:59 -070015315 <td class="entry_type">
15316 <span class="entry_type_name entry_type_name_enum">byte</span>
15317
Eino-Ville Talvalafcef4c22013-07-16 16:18:44 -070015318 <span class="entry_type_visibility"> [public]</span>
Igor Murashkin38b8cae2013-05-23 16:38:59 -070015319
15320 <ul class="entry_type_enum">
15321 <li>
15322 <span class="entry_type_enum_name">LIMITED</span>
15323 </li>
15324 <li>
15325 <span class="entry_type_enum_name">FULL</span>
15326 </li>
15327 </ul>
15328
15329 </td> <!-- entry_type -->
15330
15331 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080015332 <p>The camera 3 HAL device can implement one of two possible
15333operational modes; limited and full.<wbr/> Full support is
15334expected from new higher-end devices.<wbr/> Limited mode has
Igor Murashkin8aa2a112013-12-09 12:06:17 -080015335hardware requirements roughly in line with those for a
Igor Murashkin0b080452013-12-27 15:30:25 -080015336camera HAL device v1 implementation,<wbr/> and is expected from
15337older or inexpensive devices.<wbr/> Full is a strict superset of
15338limited,<wbr/> and they share the same essential operational flow.<wbr/></p>
15339<p>For full details refer to "S3.<wbr/> Operational Modes" in camera3.<wbr/>h</p>
Igor Murashkin38b8cae2013-05-23 16:38:59 -070015340 </td>
15341
15342 <td class="entry_units">
15343 </td>
15344
15345 <td class="entry_range">
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -080015346 <p>Optional.<wbr/> Default value is LIMITED.<wbr/></p>
Igor Murashkin38b8cae2013-05-23 16:38:59 -070015347 </td>
15348
Igor Murashkin38b8cae2013-05-23 16:38:59 -070015349 <td class="entry_tags">
15350 </td>
15351
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080015352 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080015353
15354
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080015355 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
15356 <!-- end of entry -->
Igor Murashkin38b8cae2013-05-23 16:38:59 -070015357
15358
15359
15360 <!-- end of kind -->
15361 </tbody>
15362
15363 <!-- end of section -->
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080015364 <tr><td colspan="6" id="section_blackLevel" class="section">blackLevel</td></tr>
Zhijun He69fc0ea2013-07-17 09:42:58 -070015365
15366
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080015367 <tr><td colspan="6" class="kind">controls</td></tr>
Zhijun He69fc0ea2013-07-17 09:42:58 -070015368
15369 <thead class="entries_header">
15370 <tr>
15371 <th class="th_name">Property Name</th>
15372 <th class="th_type">Type</th>
15373 <th class="th_description">Description</th>
15374 <th class="th_units">Units</th>
15375 <th class="th_range">Range</th>
Zhijun He69fc0ea2013-07-17 09:42:58 -070015376 <th class="th_tags">Tags</th>
15377 </tr>
15378 </thead>
15379
15380 <tbody>
15381
15382
15383
15384
15385
15386
15387
15388
15389
15390
15391 <tr class="entry" id="controls_android.blackLevel.lock">
Eino-Ville Talvala7796cfe2013-12-26 13:16:54 -080015392 <td class="entry_name" rowspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -080015393 android.<wbr/>black<wbr/>Level.<wbr/>lock
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080015394 </td>
Zhijun He69fc0ea2013-07-17 09:42:58 -070015395 <td class="entry_type">
15396 <span class="entry_type_name entry_type_name_enum">byte</span>
15397
Igor Murashkinb8dc8812013-07-17 16:29:34 -070015398 <span class="entry_type_visibility"> [public as boolean]</span>
Zhijun He69fc0ea2013-07-17 09:42:58 -070015399
15400 <ul class="entry_type_enum">
15401 <li>
15402 <span class="entry_type_enum_name">OFF</span>
15403 </li>
15404 <li>
15405 <span class="entry_type_enum_name">ON</span>
15406 </li>
15407 </ul>
15408
15409 </td> <!-- entry_type -->
15410
15411 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080015412 <p>Whether black-level compensation is locked
15413to its current values,<wbr/> or is free to vary.<wbr/></p>
Zhijun He69fc0ea2013-07-17 09:42:58 -070015414 </td>
15415
15416 <td class="entry_units">
15417 </td>
15418
15419 <td class="entry_range">
15420 </td>
15421
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080015422 <td class="entry_tags">
15423 <ul class="entry_tags">
15424 <li><a href="#tag_HAL2">HAL2</a></li>
15425 </ul>
15426 </td>
15427
15428 </tr>
15429 <tr class="entries_header">
15430 <th class="th_details" colspan="5">Details</th>
15431 </tr>
15432 <tr class="entry_cont">
15433 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -080015434 <p>When set to ON,<wbr/> the values used for black-level
Eino-Ville Talvala7796cfe2013-12-26 13:16:54 -080015435compensation will not change until the lock is set to
Igor Murashkin0b080452013-12-27 15:30:25 -080015436OFF.<wbr/></p>
Igor Murashkin8aa2a112013-12-09 12:06:17 -080015437<p>Since changes to certain capture parameters (such as
15438exposure time) may require resetting of black level
Igor Murashkin0b080452013-12-27 15:30:25 -080015439compensation,<wbr/> the camera device must report whether setting
Eino-Ville Talvala7796cfe2013-12-26 13:16:54 -080015440the black level lock was successful in the output result
Igor Murashkin0b080452013-12-27 15:30:25 -080015441metadata.<wbr/></p>
15442<p>For example,<wbr/> if a sequence of requests is as follows:</p>
Igor Murashkin8aa2a112013-12-09 12:06:17 -080015443<ul>
Igor Murashkin0b080452013-12-27 15:30:25 -080015444<li>Request 1: Exposure = 10ms,<wbr/> Black level lock = OFF</li>
15445<li>Request 2: Exposure = 10ms,<wbr/> Black level lock = ON</li>
15446<li>Request 3: Exposure = 10ms,<wbr/> Black level lock = ON</li>
15447<li>Request 4: Exposure = 20ms,<wbr/> Black level lock = ON</li>
15448<li>Request 5: Exposure = 20ms,<wbr/> Black level lock = ON</li>
15449<li>Request 6: Exposure = 20ms,<wbr/> Black level lock = ON</li>
Igor Murashkin8aa2a112013-12-09 12:06:17 -080015450</ul>
Eino-Ville Talvala7796cfe2013-12-26 13:16:54 -080015451<p>And the exposure change in Request 4 requires the camera
Igor Murashkin0b080452013-12-27 15:30:25 -080015452device to reset the black level offsets,<wbr/> then the output
Eino-Ville Talvala7796cfe2013-12-26 13:16:54 -080015453result metadata is expected to be:</p>
Igor Murashkin8aa2a112013-12-09 12:06:17 -080015454<ul>
Igor Murashkin0b080452013-12-27 15:30:25 -080015455<li>Result 1: Exposure = 10ms,<wbr/> Black level lock = OFF</li>
15456<li>Result 2: Exposure = 10ms,<wbr/> Black level lock = ON</li>
15457<li>Result 3: Exposure = 10ms,<wbr/> Black level lock = ON</li>
15458<li>Result 4: Exposure = 20ms,<wbr/> Black level lock = OFF</li>
15459<li>Result 5: Exposure = 20ms,<wbr/> Black level lock = ON</li>
15460<li>Result 6: Exposure = 20ms,<wbr/> Black level lock = ON</li>
Igor Murashkin8aa2a112013-12-09 12:06:17 -080015461</ul>
Igor Murashkin0b080452013-12-27 15:30:25 -080015462<p>This indicates to the application that on frame 4,<wbr/> black
15463levels were reset due to exposure value changes,<wbr/> and pixel
15464values may not be consistent across captures.<wbr/></p>
Eino-Ville Talvala7796cfe2013-12-26 13:16:54 -080015465<p>The camera device will maintain the lock to the extent
Igor Murashkin0b080452013-12-27 15:30:25 -080015466possible,<wbr/> only overriding the lock to OFF when changes to
Eino-Ville Talvala7796cfe2013-12-26 13:16:54 -080015467other request parameters require a black level recalculation
Igor Murashkin0b080452013-12-27 15:30:25 -080015468or reset.<wbr/></p>
Zhijun He69fc0ea2013-07-17 09:42:58 -070015469 </td>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080015470 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080015471
Eino-Ville Talvala7796cfe2013-12-26 13:16:54 -080015472 <tr class="entries_header">
15473 <th class="th_details" colspan="5">HAL Implementation Details</th>
15474 </tr>
15475 <tr class="entry_cont">
15476 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -080015477 <p>If for some reason black level locking is no longer possible
15478(for example,<wbr/> the analog gain has changed,<wbr/> which forces
15479black level offsets to be recalculated),<wbr/> then the HAL must
Eino-Ville Talvala7796cfe2013-12-26 13:16:54 -080015480override this request (and it must report 'OFF' when this
15481does happen) until the next capture for which locking is
Igor Murashkin0b080452013-12-27 15:30:25 -080015482possible again.<wbr/></p>
Eino-Ville Talvala7796cfe2013-12-26 13:16:54 -080015483 </td>
15484 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080015485
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080015486 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
15487 <!-- end of entry -->
Zhijun He69fc0ea2013-07-17 09:42:58 -070015488
15489
15490
15491 <!-- end of kind -->
15492 </tbody>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080015493 <tr><td colspan="6" class="kind">dynamic</td></tr>
Zhijun He69fc0ea2013-07-17 09:42:58 -070015494
15495 <thead class="entries_header">
15496 <tr>
15497 <th class="th_name">Property Name</th>
15498 <th class="th_type">Type</th>
15499 <th class="th_description">Description</th>
15500 <th class="th_units">Units</th>
15501 <th class="th_range">Range</th>
Zhijun He69fc0ea2013-07-17 09:42:58 -070015502 <th class="th_tags">Tags</th>
15503 </tr>
15504 </thead>
15505
15506 <tbody>
15507
15508
15509
15510
15511
15512
15513
15514
15515
15516
15517 <tr class="entry" id="dynamic_android.blackLevel.lock">
Eino-Ville Talvala7796cfe2013-12-26 13:16:54 -080015518 <td class="entry_name" rowspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -080015519 android.<wbr/>black<wbr/>Level.<wbr/>lock
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080015520 </td>
Zhijun He69fc0ea2013-07-17 09:42:58 -070015521 <td class="entry_type">
15522 <span class="entry_type_name entry_type_name_enum">byte</span>
15523
Igor Murashkinb8dc8812013-07-17 16:29:34 -070015524 <span class="entry_type_visibility"> [public as boolean]</span>
Zhijun He69fc0ea2013-07-17 09:42:58 -070015525
15526 <ul class="entry_type_enum">
15527 <li>
15528 <span class="entry_type_enum_name">OFF</span>
15529 </li>
15530 <li>
15531 <span class="entry_type_enum_name">ON</span>
15532 </li>
15533 </ul>
15534
15535 </td> <!-- entry_type -->
15536
15537 <td class="entry_description">
Igor Murashkin0b080452013-12-27 15:30:25 -080015538 <p>Whether black-level compensation is locked
15539to its current values,<wbr/> or is free to vary.<wbr/></p>
Zhijun He69fc0ea2013-07-17 09:42:58 -070015540 </td>
15541
15542 <td class="entry_units">
15543 </td>
15544
15545 <td class="entry_range">
15546 </td>
15547
Zhijun He69fc0ea2013-07-17 09:42:58 -070015548 <td class="entry_tags">
15549 <ul class="entry_tags">
15550 <li><a href="#tag_HAL2">HAL2</a></li>
15551 </ul>
15552 </td>
15553
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080015554 </tr>
15555 <tr class="entries_header">
15556 <th class="th_details" colspan="5">Details</th>
15557 </tr>
15558 <tr class="entry_cont">
15559 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -080015560 <p>Whether the black level offset was locked for this frame.<wbr/> Should be
Eino-Ville Talvala63c0fb22014-01-02 16:11:44 -080015561ON 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 -080015562a change in other capture settings forced the camera device to
Igor Murashkin0b080452013-12-27 15:30:25 -080015563perform a black level reset.<wbr/></p>
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080015564 </td>
15565 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080015566
Eino-Ville Talvala7796cfe2013-12-26 13:16:54 -080015567 <tr class="entries_header">
15568 <th class="th_details" colspan="5">HAL Implementation Details</th>
15569 </tr>
15570 <tr class="entry_cont">
15571 <td class="entry_details" colspan="5">
Igor Murashkin0b080452013-12-27 15:30:25 -080015572 <p>If for some reason black level locking is no longer possible
15573(for example,<wbr/> the analog gain has changed,<wbr/> which forces
15574black level offsets to be recalculated),<wbr/> then the HAL must
Eino-Ville Talvala7796cfe2013-12-26 13:16:54 -080015575override this request (and it must report 'OFF' when this
15576does happen) until the next capture for which locking is
Igor Murashkin0b080452013-12-27 15:30:25 -080015577possible again.<wbr/></p>
Eino-Ville Talvala7796cfe2013-12-26 13:16:54 -080015578 </td>
15579 </tr>
Eino-Ville Talvalaa5b73c22013-12-27 13:50:19 -080015580
Eino-Ville Talvala8eb70052013-12-26 12:06:13 -080015581 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
15582 <!-- end of entry -->
Zhijun He69fc0ea2013-07-17 09:42:58 -070015583
15584
15585
15586 <!-- end of kind -->
15587 </tbody>
15588
15589 <!-- end of section -->
Igor Murashkin5c1fc682014-01-16 17:51:36 -080015590 <tr><td colspan="6" id="section_sync" class="section">sync</td></tr>
15591
15592
15593 <tr><td colspan="6" class="kind">dynamic</td></tr>
15594
15595 <thead class="entries_header">
15596 <tr>
15597 <th class="th_name">Property Name</th>
15598 <th class="th_type">Type</th>
15599 <th class="th_description">Description</th>
15600 <th class="th_units">Units</th>
15601 <th class="th_range">Range</th>
15602 <th class="th_tags">Tags</th>
15603 </tr>
15604 </thead>
15605
15606 <tbody>
15607
15608
15609
15610
15611
15612
15613
15614
15615
15616
15617 <tr class="entry" id="dynamic_android.sync.frameNumber">
15618 <td class="entry_name" rowspan="5">
15619 android.<wbr/>sync.<wbr/>frame<wbr/>Number
15620 </td>
15621 <td class="entry_type">
15622 <span class="entry_type_name entry_type_name_enum">int64</span>
15623
15624 <span class="entry_type_visibility"> [hidden]</span>
15625
15626 <ul class="entry_type_enum">
15627 <li>
15628 <span class="entry_type_enum_name">CONVERGING</span>
15629 <span class="entry_type_enum_value">-1</span>
15630 <span class="entry_type_enum_notes"><p>The current result is not yet fully synchronized to any request.<wbr/>
15631Synchronization is in progress,<wbr/> and reading metadata from this
15632result may include a mix of data that have taken effect since the
15633last synchronization time.<wbr/></p>
15634<p>In some future result,<wbr/> within <a href="#static_android.sync.maxLatency">android.<wbr/>sync.<wbr/>max<wbr/>Latency</a> frames,<wbr/>
15635this value will update to the actual frame number frame number
15636the result is guaranteed to be synchronized to (as long as the
15637request settings remain constant).<wbr/></p></span>
15638 </li>
15639 <li>
15640 <span class="entry_type_enum_name">UNKNOWN</span>
15641 <span class="entry_type_enum_value">-2</span>
15642 <span class="entry_type_enum_notes"><p>The current result's synchronization status is unknown.<wbr/> The
15643result may have already converged,<wbr/> or it may be in progress.<wbr/>
15644Reading from this result may include some mix of settings from
15645past requests.<wbr/></p>
15646<p>After a settings change,<wbr/> the new settings will eventually all
15647take effect for the output buffers and results.<wbr/> However,<wbr/> this
15648value will not change when that happens.<wbr/> Altering settings
15649rapidly may provide outcomes using mixes of settings from recent
15650requests.<wbr/></p>
15651<p>This value is intended primarily for backwards compatibility with
15652the older camera implementations (for android.<wbr/>hardware.<wbr/>Camera).<wbr/></p></span>
15653 </li>
15654 </ul>
15655
15656 </td> <!-- entry_type -->
15657
15658 <td class="entry_description">
15659 <p>The frame number corresponding to the last request
15660with which the output result (metadata + buffers) has been fully
15661synchronized.<wbr/></p>
15662 </td>
15663
15664 <td class="entry_units">
15665 </td>
15666
15667 <td class="entry_range">
15668 <p>Either a non-negative value corresponding to a
15669<code>frame_<wbr/>number</code>,<wbr/> or one of the two enums (CONVERGING /<wbr/> UNKNOWN).<wbr/></p>
15670 </td>
15671
15672 <td class="entry_tags">
15673 <ul class="entry_tags">
15674 <li><a href="#tag_LIMITED">LIMITED</a></li>
15675 </ul>
15676 </td>
15677
15678 </tr>
15679 <tr class="entries_header">
15680 <th class="th_details" colspan="5">Details</th>
15681 </tr>
15682 <tr class="entry_cont">
15683 <td class="entry_details" colspan="5">
15684 <p>When a request is submitted to the camera device,<wbr/> there is usually a
15685delay of several frames before the controls get applied.<wbr/> A camera
15686device may either choose to account for this delay by implementing a
15687pipeline and carefully submit well-timed atomic control updates,<wbr/> or
15688it may start streaming control changes that span over several frame
15689boundaries.<wbr/></p>
15690<p>In the latter case,<wbr/> whenever a request's settings change relative to
15691the previous submitted request,<wbr/> the full set of changes may take
15692multiple frame durations to fully take effect.<wbr/> Some settings may
15693take effect sooner (in less frame durations) than others.<wbr/></p>
15694<p>While a set of control changes are being propagated,<wbr/> this value
15695will be CONVERGING.<wbr/></p>
15696<p>Once it is fully known that a set of control changes have been
15697finished propagating,<wbr/> and the resulting updated control settings
15698have been read back by the camera device,<wbr/> this value will be set
15699to a non-negative frame number (corresponding to the request to
15700which the results have synchronized to).<wbr/></p>
15701<p>Older camera device implementations may not have a way to detect
15702when all camera controls have been applied,<wbr/> and will always set this
15703value to UNKNOWN.<wbr/></p>
15704<p>FULL capability devices will always have this value set to the
15705frame number of the request corresponding to this result.<wbr/></p>
15706<p><em>Further details</em>:</p>
15707<ul>
15708<li>Whenever a request differs from the last request,<wbr/> any future
15709results not yet returned may have this value set to CONVERGING (this
15710could include any in-progress captures not yet returned by the camera
15711device,<wbr/> for more details see pipeline considerations below).<wbr/></li>
15712<li>Submitting a series of multiple requests that differ from the
15713previous request (e.<wbr/>g.<wbr/> r1,<wbr/> r2,<wbr/> r3 s.<wbr/>t.<wbr/> r1 != r2 != r3)
15714moves the new synchronization frame to the last non-repeating
15715request (using the smallest frame number from the contiguous list of
15716repeating requests).<wbr/></li>
15717<li>Submitting the same request repeatedly will not change this value
15718to CONVERGING,<wbr/> if it was already a non-negative value.<wbr/></li>
15719<li>When this value changes to non-negative,<wbr/> that means that all of the
15720metadata controls from the request have been applied,<wbr/> all of the
15721metadata controls from the camera device have been read to the
15722updated values (into the result),<wbr/> and all of the graphics buffers
15723corresponding to this result are also synchronized to the request.<wbr/></li>
15724</ul>
15725<p><em>Pipeline considerations</em>:</p>
15726<p>Submitting a request with updated controls relative to the previously
15727submitted requests may also invalidate the synchronization state
15728of all the results corresponding to currently in-flight requests.<wbr/></p>
15729<p>In other words,<wbr/> results for this current request and up to
15730<a href="#static_android.request.pipelineMaxDepth">android.<wbr/>request.<wbr/>pipeline<wbr/>Max<wbr/>Depth</a> prior requests may have their
15731<a href="#dynamic_android.sync.frameNumber">android.<wbr/>sync.<wbr/>frame<wbr/>Number</a> change to CONVERGING.<wbr/></p>
15732 </td>
15733 </tr>
15734
15735 <tr class="entries_header">
15736 <th class="th_details" colspan="5">HAL Implementation Details</th>
15737 </tr>
15738 <tr class="entry_cont">
15739 <td class="entry_details" colspan="5">
15740 <p>Using UNKNOWN here is illegal unless android.<wbr/>sync.<wbr/>max<wbr/>Latency
15741is also UNKNOWN.<wbr/></p>
15742<p>FULL capability devices should simply set this value to the
15743<code>frame_<wbr/>number</code> of the request this result corresponds to.<wbr/></p>
15744 </td>
15745 </tr>
15746
15747 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
15748 <!-- end of entry -->
15749
15750
15751
15752 <!-- end of kind -->
15753 </tbody>
15754 <tr><td colspan="6" class="kind">static</td></tr>
15755
15756 <thead class="entries_header">
15757 <tr>
15758 <th class="th_name">Property Name</th>
15759 <th class="th_type">Type</th>
15760 <th class="th_description">Description</th>
15761 <th class="th_units">Units</th>
15762 <th class="th_range">Range</th>
15763 <th class="th_tags">Tags</th>
15764 </tr>
15765 </thead>
15766
15767 <tbody>
15768
15769
15770
15771
15772
15773
15774
15775
15776
15777
15778 <tr class="entry" id="static_android.sync.maxLatency">
15779 <td class="entry_name" rowspan="5">
15780 android.<wbr/>sync.<wbr/>max<wbr/>Latency
15781 </td>
15782 <td class="entry_type">
15783 <span class="entry_type_name entry_type_name_enum">int32</span>
15784
15785 <span class="entry_type_visibility"> [public]</span>
15786
15787 <ul class="entry_type_enum">
15788 <li>
15789 <span class="entry_type_enum_name">PER_FRAME_CONTROL</span>
15790 <span class="entry_type_enum_value">0</span>
15791 <span class="entry_type_enum_notes"><p>Every frame has the requests immediately applied.<wbr/>
15792(and furthermore for all results,<wbr/>
15793<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>
15794<p>Changing controls over multiple requests one after another will
15795produce results that have those controls applied atomically
15796each frame.<wbr/></p>
15797<p>All FULL capability devices will have this as their maxLatency.<wbr/></p></span>
15798 </li>
15799 <li>
15800 <span class="entry_type_enum_name">UNKNOWN</span>
15801 <span class="entry_type_enum_value">-1</span>
15802 <span class="entry_type_enum_notes"><p>Each new frame has some subset (potentially the entire set)
15803of the past requests applied to the camera settings.<wbr/></p>
15804<p>By submitting a series of identical requests,<wbr/> the camera device
15805will eventually have the camera settings applied,<wbr/> but it is
15806unknown when that exact point will be.<wbr/></p></span>
15807 </li>
15808 </ul>
15809
15810 </td> <!-- entry_type -->
15811
15812 <td class="entry_description">
15813 <p>The maximum number of frames that can occur after a request
15814(different than the previous) has been submitted,<wbr/> and before the
15815result's state becomes synchronized (by setting
15816<a href="#dynamic_android.sync.frameNumber">android.<wbr/>sync.<wbr/>frame<wbr/>Number</a> to a non-negative value).<wbr/></p>
15817 </td>
15818
15819 <td class="entry_units">
15820 number of processed requests
15821 </td>
15822
15823 <td class="entry_range">
15824 <p>&gt;= -1</p>
15825 </td>
15826
15827 <td class="entry_tags">
15828 <ul class="entry_tags">
15829 <li><a href="#tag_LIMITED">LIMITED</a></li>
15830 </ul>
15831 </td>
15832
15833 </tr>
15834 <tr class="entries_header">
15835 <th class="th_details" colspan="5">Details</th>
15836 </tr>
15837 <tr class="entry_cont">
15838 <td class="entry_details" colspan="5">
15839 <p>This defines the maximum distance (in number of metadata results),<wbr/>
15840between <a href="#dynamic_android.sync.frameNumber">android.<wbr/>sync.<wbr/>frame<wbr/>Number</a> and the equivalent
15841<a href="#controls_android.request.frameCount">android.<wbr/>request.<wbr/>frame<wbr/>Count</a>.<wbr/></p>
15842<p>In other words this acts as an upper boundary for how many frames
15843must occur before the camera device knows for a fact that the new
15844submitted camera settings have been applied in outgoing frames.<wbr/></p>
15845<p>For example if the distance was 2,<wbr/></p>
15846<pre><code>initial request = X (repeating)
15847request1 = X
15848request2 = Y
15849request3 = Y
15850request4 = Y
15851
15852where requestN has frameNumber N,<wbr/> and the first of the repeating
15853initial request's has frameNumber F (and F &lt; 1).<wbr/>
15854
15855initial result = X' + { <a href="#dynamic_android.sync.frameNumber">android.<wbr/>sync.<wbr/>frame<wbr/>Number</a> == F }
15856result1 = X' + { <a href="#dynamic_android.sync.frameNumber">android.<wbr/>sync.<wbr/>frame<wbr/>Number</a> == F }
15857result2 = X' + { <a href="#dynamic_android.sync.frameNumber">android.<wbr/>sync.<wbr/>frame<wbr/>Number</a> == CONVERGING }
15858result3 = X' + { <a href="#dynamic_android.sync.frameNumber">android.<wbr/>sync.<wbr/>frame<wbr/>Number</a> == CONVERGING }
15859result4 = X' + { <a href="#dynamic_android.sync.frameNumber">android.<wbr/>sync.<wbr/>frame<wbr/>Number</a> == 2 }
15860
15861where resultN has frameNumber N.<wbr/>
15862</code></pre>
15863<p>Since <code>result4</code> has a <code>frameNumber == 4</code> and
15864<code><a href="#dynamic_android.sync.frameNumber">android.<wbr/>sync.<wbr/>frame<wbr/>Number</a> == 2</code>,<wbr/> the distance is clearly
15865<code>4 - 2 = 2</code>.<wbr/></p>
15866 </td>
15867 </tr>
15868
15869 <tr class="entries_header">
15870 <th class="th_details" colspan="5">HAL Implementation Details</th>
15871 </tr>
15872 <tr class="entry_cont">
15873 <td class="entry_details" colspan="5">
15874 <p>Use <code>frame_<wbr/>count</code> from camera3_<wbr/>request_<wbr/>t instead of
15875<a href="#controls_android.request.frameCount">android.<wbr/>request.<wbr/>frame<wbr/>Count</a>.<wbr/></p>
15876<p>LIMITED devices are strongly encouraged to use a non-negative
15877value.<wbr/> If UNKNOWN is used here then app developers do not have a way
15878to know when sensor settings have been applied.<wbr/></p>
15879 </td>
15880 </tr>
15881
15882 <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
15883 <!-- end of entry -->
15884
15885
15886
15887 <!-- end of kind -->
15888 </tbody>
15889
15890 <!-- end of section -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080015891<!-- </namespace> -->
15892 </table>
15893
15894 <div class="tags" id="tag_index">
15895 <h2>Tags</h2>
15896 <ul>
15897 <li id="tag_AWB">AWB -
15898 Needed for auto white balance
15899
15900 <ul class="tags_entries">
15901 <li><a href="#controls_android.control.awbMode">android.control.awbMode</a> (controls)</li>
15902 </ul>
15903 </li> <!-- tag_AWB -->
15904 <li id="tag_BC">BC -
15905 Needed for backwards compatibility with old Java API
15906
15907 <ul class="tags_entries">
Eino-Ville Talvala19ce2c12013-12-30 12:03:45 -080015908 <li><a href="#controls_android.control.aeAntibandingMode">android.control.aeAntibandingMode</a> (controls)</li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080015909 <li><a href="#controls_android.control.aeExposureCompensation">android.control.aeExposureCompensation</a> (controls)</li>
15910 <li><a href="#controls_android.control.aeLock">android.control.aeLock</a> (controls)</li>
15911 <li><a href="#controls_android.control.aeMode">android.control.aeMode</a> (controls)</li>
15912 <li><a href="#controls_android.control.aeRegions">android.control.aeRegions</a> (controls)</li>
15913 <li><a href="#controls_android.control.aeTargetFpsRange">android.control.aeTargetFpsRange</a> (controls)</li>
Eino-Ville Talvala3b4383a2013-03-18 09:42:48 -070015914 <li><a href="#controls_android.control.aePrecaptureTrigger">android.control.aePrecaptureTrigger</a> (controls)</li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080015915 <li><a href="#controls_android.control.afMode">android.control.afMode</a> (controls)</li>
15916 <li><a href="#controls_android.control.afRegions">android.control.afRegions</a> (controls)</li>
Eino-Ville Talvala3b4383a2013-03-18 09:42:48 -070015917 <li><a href="#controls_android.control.afTrigger">android.control.afTrigger</a> (controls)</li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080015918 <li><a href="#controls_android.control.awbLock">android.control.awbLock</a> (controls)</li>
15919 <li><a href="#controls_android.control.awbMode">android.control.awbMode</a> (controls)</li>
15920 <li><a href="#controls_android.control.awbRegions">android.control.awbRegions</a> (controls)</li>
15921 <li><a href="#controls_android.control.captureIntent">android.control.captureIntent</a> (controls)</li>
15922 <li><a href="#controls_android.control.effectMode">android.control.effectMode</a> (controls)</li>
15923 <li><a href="#controls_android.control.mode">android.control.mode</a> (controls)</li>
15924 <li><a href="#controls_android.control.sceneMode">android.control.sceneMode</a> (controls)</li>
15925 <li><a href="#controls_android.control.videoStabilizationMode">android.control.videoStabilizationMode</a> (controls)</li>
Eino-Ville Talvala9fa0d902014-01-08 16:16:53 -080015926 <li><a href="#static_android.control.aeAvailableModes">android.control.aeAvailableModes</a> (static)</li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080015927 <li><a href="#static_android.control.aeCompensationRange">android.control.aeCompensationRange</a> (static)</li>
15928 <li><a href="#static_android.control.aeCompensationStep">android.control.aeCompensationStep</a> (static)</li>
15929 <li><a href="#static_android.control.afAvailableModes">android.control.afAvailableModes</a> (static)</li>
15930 <li><a href="#static_android.control.availableEffects">android.control.availableEffects</a> (static)</li>
15931 <li><a href="#static_android.control.availableSceneModes">android.control.availableSceneModes</a> (static)</li>
15932 <li><a href="#static_android.control.availableVideoStabilizationModes">android.control.availableVideoStabilizationModes</a> (static)</li>
15933 <li><a href="#static_android.control.awbAvailableModes">android.control.awbAvailableModes</a> (static)</li>
15934 <li><a href="#static_android.control.maxRegions">android.control.maxRegions</a> (static)</li>
15935 <li><a href="#static_android.control.sceneModeOverrides">android.control.sceneModeOverrides</a> (static)</li>
15936 <li><a href="#controls_android.flash.mode">android.flash.mode</a> (controls)</li>
15937 <li><a href="#static_android.flash.info.available">android.flash.info.available</a> (static)</li>
15938 <li><a href="#controls_android.jpeg.gpsCoordinates">android.jpeg.gpsCoordinates</a> (controls)</li>
15939 <li><a href="#controls_android.jpeg.gpsProcessingMethod">android.jpeg.gpsProcessingMethod</a> (controls)</li>
15940 <li><a href="#controls_android.jpeg.gpsTimestamp">android.jpeg.gpsTimestamp</a> (controls)</li>
15941 <li><a href="#controls_android.jpeg.orientation">android.jpeg.orientation</a> (controls)</li>
15942 <li><a href="#controls_android.jpeg.quality">android.jpeg.quality</a> (controls)</li>
15943 <li><a href="#controls_android.jpeg.thumbnailQuality">android.jpeg.thumbnailQuality</a> (controls)</li>
15944 <li><a href="#controls_android.jpeg.thumbnailSize">android.jpeg.thumbnailSize</a> (controls)</li>
15945 <li><a href="#static_android.jpeg.availableThumbnailSizes">android.jpeg.availableThumbnailSizes</a> (static)</li>
15946 <li><a href="#controls_android.lens.focusDistance">android.lens.focusDistance</a> (controls)</li>
15947 <li><a href="#static_android.lens.info.availableFocalLengths">android.lens.info.availableFocalLengths</a> (static)</li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080015948 <li><a href="#dynamic_android.lens.focusRange">android.lens.focusRange</a> (dynamic)</li>
15949 <li><a href="#static_android.request.maxNumOutputStreams">android.request.maxNumOutputStreams</a> (static)</li>
15950 <li><a href="#controls_android.scaler.cropRegion">android.scaler.cropRegion</a> (controls)</li>
15951 <li><a href="#static_android.scaler.availableFormats">android.scaler.availableFormats</a> (static)</li>
15952 <li><a href="#static_android.scaler.availableJpegMinDurations">android.scaler.availableJpegMinDurations</a> (static)</li>
15953 <li><a href="#static_android.scaler.availableJpegSizes">android.scaler.availableJpegSizes</a> (static)</li>
Igor Murashkinf11a4df2013-05-07 10:00:46 -070015954 <li><a href="#static_android.scaler.availableMaxDigitalZoom">android.scaler.availableMaxDigitalZoom</a> (static)</li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080015955 <li><a href="#static_android.scaler.availableProcessedMinDurations">android.scaler.availableProcessedMinDurations</a> (static)</li>
15956 <li><a href="#static_android.scaler.availableProcessedSizes">android.scaler.availableProcessedSizes</a> (static)</li>
15957 <li><a href="#static_android.scaler.availableRawMinDurations">android.scaler.availableRawMinDurations</a> (static)</li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080015958 <li><a href="#controls_android.sensor.frameDuration">android.sensor.frameDuration</a> (controls)</li>
Zhijun He69fc0ea2013-07-17 09:42:58 -070015959 <li><a href="#static_android.sensor.info.sensitivityRange">android.sensor.info.sensitivityRange</a> (static)</li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080015960 <li><a href="#static_android.sensor.info.maxFrameDuration">android.sensor.info.maxFrameDuration</a> (static)</li>
15961 <li><a href="#static_android.sensor.info.physicalSize">android.sensor.info.physicalSize</a> (static)</li>
15962 <li><a href="#static_android.sensor.info.pixelArraySize">android.sensor.info.pixelArraySize</a> (static)</li>
15963 <li><a href="#static_android.sensor.orientation">android.sensor.orientation</a> (static)</li>
15964 <li><a href="#dynamic_android.sensor.timestamp">android.sensor.timestamp</a> (dynamic)</li>
15965 <li><a href="#controls_android.statistics.faceDetectMode">android.statistics.faceDetectMode</a> (controls)</li>
15966 <li><a href="#dynamic_android.statistics.faceIds">android.statistics.faceIds</a> (dynamic)</li>
15967 <li><a href="#dynamic_android.statistics.faceLandmarks">android.statistics.faceLandmarks</a> (dynamic)</li>
15968 <li><a href="#dynamic_android.statistics.faceRectangles">android.statistics.faceRectangles</a> (dynamic)</li>
15969 <li><a href="#dynamic_android.statistics.faceScores">android.statistics.faceScores</a> (dynamic)</li>
15970 <li><a href="#dynamic_android.lens.focalLength">android.lens.focalLength</a> (dynamic)</li>
15971 <li><a href="#dynamic_android.lens.focusDistance">android.lens.focusDistance</a> (dynamic)</li>
15972 </ul>
15973 </li> <!-- tag_BC -->
15974 <li id="tag_V1">V1 -
15975 New features for first camera 2 release (API1)
15976
15977 <ul class="tags_entries">
15978 <li><a href="#controls_android.demosaic.mode">android.demosaic.mode</a> (controls)</li>
15979 <li><a href="#controls_android.flash.firingPower">android.flash.firingPower</a> (controls)</li>
15980 <li><a href="#controls_android.flash.firingTime">android.flash.firingTime</a> (controls)</li>
15981 <li><a href="#static_android.flash.info.chargeDuration">android.flash.info.chargeDuration</a> (static)</li>
15982 <li><a href="#controls_android.hotPixel.mode">android.hotPixel.mode</a> (controls)</li>
15983 <li><a href="#controls_android.lens.aperture">android.lens.aperture</a> (controls)</li>
15984 <li><a href="#controls_android.lens.filterDensity">android.lens.filterDensity</a> (controls)</li>
15985 <li><a href="#controls_android.lens.focalLength">android.lens.focalLength</a> (controls)</li>
15986 <li><a href="#controls_android.lens.focusDistance">android.lens.focusDistance</a> (controls)</li>
15987 <li><a href="#controls_android.lens.opticalStabilizationMode">android.lens.opticalStabilizationMode</a> (controls)</li>
15988 <li><a href="#static_android.lens.info.availableApertures">android.lens.info.availableApertures</a> (static)</li>
15989 <li><a href="#static_android.lens.info.availableFilterDensities">android.lens.info.availableFilterDensities</a> (static)</li>
15990 <li><a href="#static_android.lens.info.availableFocalLengths">android.lens.info.availableFocalLengths</a> (static)</li>
15991 <li><a href="#static_android.lens.info.availableOpticalStabilization">android.lens.info.availableOpticalStabilization</a> (static)</li>
15992 <li><a href="#static_android.lens.info.geometricCorrectionMapSize">android.lens.info.geometricCorrectionMapSize</a> (static)</li>
15993 <li><a href="#static_android.lens.info.minimumFocusDistance">android.lens.info.minimumFocusDistance</a> (static)</li>
15994 <li><a href="#static_android.lens.info.shadingMapSize">android.lens.info.shadingMapSize</a> (static)</li>
Zhijun Hef92c76a2014-02-06 01:40:35 -080015995 <li><a href="#static_android.lens.info.focusDistanceCalibration">android.lens.info.focusDistanceCalibration</a> (static)</li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080015996 <li><a href="#static_android.lens.position">android.lens.position</a> (static)</li>
15997 <li><a href="#dynamic_android.lens.state">android.lens.state</a> (dynamic)</li>
15998 <li><a href="#controls_android.noiseReduction.mode">android.noiseReduction.mode</a> (controls)</li>
15999 <li><a href="#controls_android.request.id">android.request.id</a> (controls)</li>
16000 <li><a href="#controls_android.sensor.exposureTime">android.sensor.exposureTime</a> (controls)</li>
16001 <li><a href="#controls_android.sensor.frameDuration">android.sensor.frameDuration</a> (controls)</li>
16002 <li><a href="#controls_android.sensor.sensitivity">android.sensor.sensitivity</a> (controls)</li>
Zhijun He69fc0ea2013-07-17 09:42:58 -070016003 <li><a href="#static_android.sensor.info.sensitivityRange">android.sensor.info.sensitivityRange</a> (static)</li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080016004 <li><a href="#static_android.sensor.info.exposureTimeRange">android.sensor.info.exposureTimeRange</a> (static)</li>
16005 <li><a href="#static_android.sensor.info.maxFrameDuration">android.sensor.info.maxFrameDuration</a> (static)</li>
16006 <li><a href="#static_android.sensor.info.physicalSize">android.sensor.info.physicalSize</a> (static)</li>
16007 <li><a href="#static_android.sensor.baseGainFactor">android.sensor.baseGainFactor</a> (static)</li>
16008 <li><a href="#static_android.sensor.maxAnalogSensitivity">android.sensor.maxAnalogSensitivity</a> (static)</li>
16009 <li><a href="#static_android.sensor.noiseModelCoefficients">android.sensor.noiseModelCoefficients</a> (static)</li>
16010 <li><a href="#controls_android.statistics.histogramMode">android.statistics.histogramMode</a> (controls)</li>
16011 <li><a href="#controls_android.statistics.sharpnessMapMode">android.statistics.sharpnessMapMode</a> (controls)</li>
16012 <li><a href="#dynamic_android.statistics.histogram">android.statistics.histogram</a> (dynamic)</li>
16013 <li><a href="#dynamic_android.statistics.sharpnessMap">android.statistics.sharpnessMap</a> (dynamic)</li>
16014 <li><a href="#dynamic_android.hotPixel.mode">android.hotPixel.mode</a> (dynamic)</li>
16015 <li><a href="#dynamic_android.lens.aperture">android.lens.aperture</a> (dynamic)</li>
16016 <li><a href="#dynamic_android.lens.filterDensity">android.lens.filterDensity</a> (dynamic)</li>
16017 <li><a href="#dynamic_android.lens.opticalStabilizationMode">android.lens.opticalStabilizationMode</a> (dynamic)</li>
16018 </ul>
16019 </li> <!-- tag_V1 -->
16020 <li id="tag_ADV">ADV - None
16021 <ul class="tags_entries">
16022 <li><a href="#static_android.flash.colorTemperature">android.flash.colorTemperature</a> (static)</li>
16023 <li><a href="#static_android.flash.maxEnergy">android.flash.maxEnergy</a> (static)</li>
16024 <li><a href="#controls_android.geometric.strength">android.geometric.strength</a> (controls)</li>
16025 <li><a href="#static_android.hotPixel.info.map">android.hotPixel.info.map</a> (static)</li>
16026 <li><a href="#static_android.lens.opticalAxisAngle">android.lens.opticalAxisAngle</a> (static)</li>
16027 <li><a href="#controls_android.shading.strength">android.shading.strength</a> (controls)</li>
16028 </ul>
16029 </li> <!-- tag_ADV -->
16030 <li id="tag_DNG">DNG -
16031 Needed for DNG file support
16032
16033 <ul class="tags_entries">
16034 <li><a href="#static_android.lens.info.geometricCorrectionMap">android.lens.info.geometricCorrectionMap</a> (static)</li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080016035 <li><a href="#static_android.sensor.info.activeArraySize">android.sensor.info.activeArraySize</a> (static)</li>
16036 <li><a href="#static_android.sensor.info.colorFilterArrangement">android.sensor.info.colorFilterArrangement</a> (static)</li>
16037 <li><a href="#static_android.sensor.info.pixelArraySize">android.sensor.info.pixelArraySize</a> (static)</li>
16038 <li><a href="#static_android.sensor.info.whiteLevel">android.sensor.info.whiteLevel</a> (static)</li>
16039 <li><a href="#static_android.sensor.blackLevelPattern">android.sensor.blackLevelPattern</a> (static)</li>
Ruben Brunk2bebe312014-02-06 13:04:38 -080016040 <li><a href="#static_android.sensor.profileHueSatMapDimensions">android.sensor.profileHueSatMapDimensions</a> (static)</li>
Ruben Brunk7c63f0f2014-01-31 16:50:27 -080016041 <li><a href="#dynamic_android.sensor.referenceIlluminant">android.sensor.referenceIlluminant</a> (dynamic)</li>
16042 <li><a href="#dynamic_android.sensor.calibrationTransform">android.sensor.calibrationTransform</a> (dynamic)</li>
16043 <li><a href="#dynamic_android.sensor.colorTransform">android.sensor.colorTransform</a> (dynamic)</li>
16044 <li><a href="#dynamic_android.sensor.forwardMatrix">android.sensor.forwardMatrix</a> (dynamic)</li>
Ruben Brunk7b9e9bc2014-02-06 18:37:48 -080016045 <li><a href="#dynamic_android.sensor.neutralColorPoint">android.sensor.neutralColorPoint</a> (dynamic)</li>
Ruben Brunk2bebe312014-02-06 13:04:38 -080016046 <li><a href="#dynamic_android.sensor.profileHueSatMap">android.sensor.profileHueSatMap</a> (dynamic)</li>
16047 <li><a href="#dynamic_android.sensor.profileToneCurve">android.sensor.profileToneCurve</a> (dynamic)</li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080016048 <li><a href="#controls_android.tonemap.curveRed">android.tonemap.curveRed</a> (controls)</li>
16049 </ul>
16050 </li> <!-- tag_DNG -->
16051 <li id="tag_EXIF">EXIF - None
16052 <ul class="tags_entries">
Ruben Brunk7c63f0f2014-01-31 16:50:27 -080016053 <li><a href="#dynamic_android.sensor.referenceIlluminant">android.sensor.referenceIlluminant</a> (dynamic)</li>
Igor Murashkin08b8aad2012-11-29 15:23:03 -080016054 </ul>
16055 </li> <!-- tag_EXIF -->
Eino-Ville Talvalaf384f0a2013-07-12 17:02:27 -070016056 <li id="tag_HAL2">HAL2 -
Alex Rayef40ad62013-10-01 17:52:33 -070016057 Entry is only used by camera device HAL 2.x
Eino-Ville Talvalaf384f0a2013-07-12 17:02:27 -070016058
16059 <ul class="tags_entries">
16060 <li><a href="#controls_android.request.inputStreams">android.request.inputStreams</a> (controls)</li>
16061 <li><a href="#controls_android.request.outputStreams">android.request.outputStreams</a> (controls)</li>
16062 <li><a href="#controls_android.request.type">android.request.type</a> (controls)</li>
Zhijun He12744b22014-01-22 15:58:57 -080016063 <li><a href="#static_android.request.maxNumReprocessStreams">android.request.maxNumReprocessStreams</a> (static)</li>
Zhijun He69fc0ea2013-07-17 09:42:58 -070016064 <li><a href="#controls_android.blackLevel.lock">android.blackLevel.lock</a> (controls)</li>
Eino-Ville Talvalaf384f0a2013-07-12 17:02:27 -070016065 </ul>
16066 </li> <!-- tag_HAL2 -->
Alex Rayef40ad62013-10-01 17:52:33 -070016067 <li id="tag_FULL">FULL -
16068 Entry is required for full hardware level devices, and optional for other hardware levels
16069
16070 <ul class="tags_entries">
16071 <li><a href="#static_android.sensor.baseGainFactor">android.sensor.baseGainFactor</a> (static)</li>
16072 <li><a href="#static_android.sensor.maxAnalogSensitivity">android.sensor.maxAnalogSensitivity</a> (static)</li>
16073 <li><a href="#dynamic_android.sensor.temperature">android.sensor.temperature</a> (dynamic)</li>
16074 </ul>
16075 </li> <!-- tag_FULL -->
Igor Murashkin5c1fc682014-01-16 17:51:36 -080016076 <li id="tag_LIMITED">LIMITED -
16077 Entry assists with LIMITED device implementation. LIMITED devices
16078 must implement all entries with this tag. Optional for FULL devices.
16079
16080 <ul class="tags_entries">
16081 <li><a href="#dynamic_android.sync.frameNumber">android.sync.frameNumber</a> (dynamic)</li>
16082 <li><a href="#static_android.sync.maxLatency">android.sync.maxLatency</a> (static)</li>
16083 </ul>
16084 </li> <!-- tag_LIMITED -->
Igor Murashkin08b8aad2012-11-29 15:23:03 -080016085 </ul>
16086 </div>
16087
16088 [ <a href="#">top</a> ]
16089
16090</body>
16091</html>