2 * Copyright (C) 2012 The Android Open Source Project
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
8 * http://www.apache.org/licenses/LICENSE-2.0
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
18 * !! Do not include this file directly !!
20 * Include camera_metadata.h instead.
23 /** TODO: Nearly every enum in this file needs a description */
26 * Top level hierarchy definitions for camera metadata. *_INFO sections are for
27 * the static metadata that can be retrived without opening the camera device.
28 * New sections must be added right before ANDROID_SECTION_COUNT to maintain
29 * existing enumerations.
40 ANDROID_HOT_PIXEL_INFO,
42 ANDROID_DEMOSAIC_INFO,
48 ANDROID_GEOMETRIC_INFO,
63 ANDROID_SECTION_COUNT,
65 VENDOR_SECTION = 0x8000
69 * Hierarchy positions in enum space. All vendor extension tags must be
70 * defined with tag >= VENDOR_SECTION_START
73 ANDROID_REQUEST_START = ANDROID_REQUEST << 16,
74 ANDROID_LENS_START = ANDROID_LENS << 16,
75 ANDROID_LENS_INFO_START = ANDROID_LENS_INFO << 16,
76 ANDROID_SENSOR_START = ANDROID_SENSOR << 16,
77 ANDROID_SENSOR_INFO_START = ANDROID_SENSOR_INFO << 16,
78 ANDROID_FLASH_START = ANDROID_FLASH << 16,
79 ANDROID_FLASH_INFO_START = ANDROID_FLASH_INFO << 16,
80 ANDROID_HOT_PIXEL_START = ANDROID_HOT_PIXEL << 16,
81 ANDROID_HOT_PIXEL_INFO_START = ANDROID_HOT_PIXEL_INFO << 16,
82 ANDROID_DEMOSAIC_START = ANDROID_DEMOSAIC << 16,
83 ANDROID_DEMOSAIC_INFO_START = ANDROID_DEMOSAIC_INFO << 16,
84 ANDROID_NOISE_START = ANDROID_NOISE << 16,
85 ANDROID_NOISE_INFO_START = ANDROID_NOISE_INFO << 16,
86 ANDROID_SHADING_START = ANDROID_SHADING << 16,
87 ANDROID_SHADING_INFO_START = ANDROID_SHADING_INFO << 16,
88 ANDROID_GEOMETRIC_START = ANDROID_GEOMETRIC << 16,
89 ANDROID_GEOMETRIC_INFO_START = ANDROID_GEOMETRIC_INFO << 16,
90 ANDROID_COLOR_START = ANDROID_COLOR << 16,
91 ANDROID_COLOR_INFO_START = ANDROID_COLOR_INFO << 16,
92 ANDROID_TONEMAP_START = ANDROID_TONEMAP << 16,
93 ANDROID_TONEMAP_INFO_START = ANDROID_TONEMAP_INFO << 16,
94 ANDROID_EDGE_START = ANDROID_EDGE << 16,
95 ANDROID_EDGE_INFO_START = ANDROID_EDGE_INFO << 16,
96 ANDROID_SCALER_START = ANDROID_SCALER << 16,
97 ANDROID_SCALER_INFO_START = ANDROID_SCALER_INFO << 16,
98 ANDROID_JPEG_START = ANDROID_JPEG << 16,
99 ANDROID_JPEG_INFO_START = ANDROID_JPEG_INFO << 16,
100 ANDROID_STATS_START = ANDROID_STATS << 16,
101 ANDROID_STATS_INFO_START = ANDROID_STATS_INFO << 16,
102 ANDROID_CONTROL_START = ANDROID_CONTROL << 16,
103 ANDROID_CONTROL_INFO_START = ANDROID_CONTROL_INFO << 16,
104 VENDOR_SECTION_START = VENDOR_SECTION << 16
108 * Main enum for defining camera metadata tags. New entries must always go
109 * before the section _END tag to preserve existing enumeration values. In
110 * addition, the name and type of the tag needs to be added to
111 * system/media/camera/src/camera_metadata_tag_info.c
114 ANDROID_REQUEST_ID = ANDROID_REQUEST_START,
115 ANDROID_REQUEST_TYPE,
116 ANDROID_REQUEST_METADATA_MODE,
117 ANDROID_REQUEST_OUTPUT_STREAMS,
118 ANDROID_REQUEST_INPUT_STREAMS,
119 ANDROID_REQUEST_FRAME_COUNT,
122 ANDROID_LENS_FOCUS_DISTANCE = ANDROID_LENS_START,
123 ANDROID_LENS_APERTURE,
124 ANDROID_LENS_FOCAL_LENGTH,
125 ANDROID_LENS_FILTER_DENSITY,
126 ANDROID_LENS_OPTICAL_STABILIZATION_MODE,
127 ANDROID_LENS_FOCUS_RANGE,
130 ANDROID_LENS_MINIMUM_FOCUS_DISTANCE = ANDROID_LENS_INFO_START,
131 ANDROID_LENS_HYPERFOCAL_DISTANCE,
132 ANDROID_LENS_AVAILABLE_FOCAL_LENGTHS,
133 ANDROID_LENS_AVAILABLE_APERTURES,
134 ANDROID_LENS_AVAILABLE_FILTER_DENSITY,
135 ANDROID_LENS_AVAILABLE_OPTICAL_STABILIZATION,
136 ANDROID_LENS_SHADING_MAP_SIZE,
137 ANDROID_LENS_SHADING_MAP,
138 ANDROID_LENS_GEOMETRIC_CORRECTION_MAP_SIZE,
139 ANDROID_LENS_GEOMETRIC_CORRECTION_MAP,
141 ANDROID_LENS_POSITION,
142 ANDROID_LENS_INFO_END,
144 ANDROID_SENSOR_EXPOSURE_TIME = ANDROID_SENSOR_START,
145 ANDROID_SENSOR_FRAME_DURATION,
146 ANDROID_SENSOR_SENSITIVITY,
147 ANDROID_SENSOR_TIMESTAMP,
150 ANDROID_SENSOR_EXPOSURE_TIME_RANGE = ANDROID_SENSOR_INFO_START,
151 ANDROID_SENSOR_MAX_FRAME_DURATION,
152 ANDROID_SENSOR_AVAILABLE_SENSITIVITIES,
153 ANDROID_SENSOR_COLOR_FILTER_ARRANGEMENT,
154 ANDROID_SENSOR_PHYSICAL_SIZE,
155 ANDROID_SENSOR_PIXEL_ARRAY_SIZE,
156 ANDROID_SENSOR_ACTIVE_ARRAY_SIZE,
157 ANDROID_SENSOR_WHITE_LEVEL,
158 ANDROID_SENSOR_BLACK_LEVEL_PATTERN,
159 ANDROID_SENSOR_COLOR_TRANSFORM_1,
160 ANDROID_SENSOR_COLOR_TRANSFORM_2,
161 ANDROID_SENSOR_REFERENCE_ILLUMINANT_1,
162 ANDROID_SENSOR_REFERENCE_ILLUMINANT_2,
163 ANDROID_SENSOR_FORWARD_MATRIX_1,
164 ANDROID_SENSOR_FORWARD_MATRIX_2,
165 ANDROID_SENSOR_CALIBRATION_TRANSFORM_1,
166 ANDROID_SENSOR_CALIBRATION_TRANSFORM_2,
167 ANDROID_SENSOR_BASE_GAIN_FACTOR,
168 ANDROID_SENSOR_MAX_ANALOG_SENSITIVITY,
169 ANDROID_SENSOR_NOISE_MODEL_COEFFICIENTS,
170 ANDROID_SENSOR_ORIENTATION,
171 ANDROID_SENSOR_INFO_END,
173 ANDROID_FLASH_MODE = ANDROID_FLASH_START,
174 ANDROID_FLASH_FIRING_POWER,
175 ANDROID_FLASH_FIRING_TIME,
178 ANDROID_FLASH_AVAILABLE = ANDROID_FLASH_INFO_START,
179 ANDROID_FLASH_CHARGE_DURATION,
180 ANDROID_FLASH_INFO_END,
182 ANDROID_HOT_PIXEL_MODE = ANDROID_HOT_PIXEL_START,
183 ANDROID_HOT_PIXEL_END,
185 ANDROID_HOT_PIXEL_INFO_END = ANDROID_HOT_PIXEL_INFO_START,
187 ANDROID_DEMOSAIC_MODE = ANDROID_DEMOSAIC_START,
188 ANDROID_DEMOSAIC_END,
190 ANDROID_DEMOSAIC_INFO_END = ANDROID_DEMOSAIC_INFO_START,
192 ANDROID_NOISE_MODE = ANDROID_NOISE_START,
193 ANDROID_NOISE_STRENGTH,
196 ANDROID_NOISE_INFO_END = ANDROID_NOISE_INFO_START,
198 ANDROID_SHADING_MODE = ANDROID_SHADING_START,
201 ANDROID_SHADING_INFO_END = ANDROID_SHADING_INFO_START,
203 ANDROID_GEOMETRIC_MODE = ANDROID_GEOMETRIC_START,
204 ANDROID_GEOMETRIC_END,
206 ANDROID_GEOMETRIC_INFO_END = ANDROID_GEOMETRIC_INFO_START,
208 ANDROID_COLOR_MODE = ANDROID_COLOR_START,
209 ANDROID_COLOR_TRANSFORM,
212 ANDROID_COLOR_INFO_END = ANDROID_COLOR_INFO_START,
214 ANDROID_TONEMAP_MODE = ANDROID_TONEMAP_START,
215 ANDROID_TONEMAP_CURVE_RED,
216 ANDROID_TONEMAP_CURVE_GREEN,
217 ANDROID_TONEMAP_CURVE_BLUE,
220 ANDROID_TONEMAP_MAX_CURVE_POINTS = ANDROID_TONEMAP_INFO_START,
221 ANDROID_TONEMAP_INFO_END,
223 ANDROID_EDGE_MODE = ANDROID_EDGE_START,
224 ANDROID_EDGE_STRENGTH,
227 ANDROID_EDGE_INFO_END = ANDROID_EDGE_INFO_START,
229 ANDROID_SCALER_CROP_REGION = ANDROID_SCALER_START,
232 ANDROID_SCALER_AVAILABLE_FORMATS = ANDROID_SCALER_INFO_START,
233 ANDROID_SCALER_AVAILABLE_RAW_SIZES,
234 ANDROID_SCALER_AVAILABLE_RAW_MIN_DURATIONS,
235 ANDROID_SCALER_AVAILABLE_PROCESSED_SIZES,
236 ANDROID_SCALER_AVAILABLE_PROCESSED_MIN_DURATIONS,
237 ANDROID_SCALER_AVAILABLE_JPEG_SIZES,
238 ANDROID_SCALER_AVAILABLE_JPEG_MIN_DURATIONS,
239 ANDROID_SCALER_AVAILABLE_MAX_ZOOM,
240 ANDROID_SCALER_INFO_END,
242 ANDROID_JPEG_QUALITY = ANDROID_JPEG_START,
243 ANDROID_JPEG_THUMBNAIL_SIZE,
244 ANDROID_JPEG_THUMBNAIL_QUALITY,
245 ANDROID_JPEG_GPS_COORDINATES,
246 ANDROID_JPEG_GPS_PROCESSING_METHOD,
247 ANDROID_JPEG_GPS_TIMESTAMP,
248 ANDROID_JPEG_ORIENTATION,
251 ANDROID_JPEG_AVAILABLE_THUMBNAIL_SIZES = ANDROID_JPEG_INFO_START,
252 ANDROID_JPEG_MAX_SIZE,
253 ANDROID_JPEG_INFO_END,
255 ANDROID_STATS_FACE_DETECT_MODE = ANDROID_STATS_START,
256 ANDROID_STATS_FACE_RECTANGLES,
257 ANDROID_STATS_FACE_SCORES,
258 ANDROID_STATS_FACE_LANDMARKS,
259 ANDROID_STATS_FACE_IDS,
260 ANDROID_STATS_HISTOGRAM_MODE,
261 ANDROID_STATS_HISTOGRAM,
262 ANDROID_STATS_SHARPNESS_MAP_MODE,
263 ANDROID_STATS_SHARPNESS_MAP,
266 ANDROID_STATS_AVAILABLE_FACE_DETECT_MODES = ANDROID_STATS_INFO_START,
267 ANDROID_STATS_MAX_FACE_COUNT,
268 ANDROID_STATS_HISTOGRAM_BUCKET_COUNT,
269 ANDROID_STATS_MAX_HISTOGRAM_COUNT,
270 ANDROID_STATS_SHARPNESS_MAP_SIZE,
271 ANDROID_STATS_MAX_SHARPNESS_MAP_VALUE,
272 ANDROID_STATS_INFO_END,
274 ANDROID_CONTROL_CAPTURE_INTENT = ANDROID_CONTROL_START,
275 ANDROID_CONTROL_MODE,
276 ANDROID_CONTROL_EFFECT_MODE,
277 ANDROID_CONTROL_SCENE_MODE,
278 ANDROID_CONTROL_VIDEO_STABILIZATION_MODE,
279 ANDROID_CONTROL_AE_MODE,
280 ANDROID_CONTROL_AE_LOCK,
281 ANDROID_CONTROL_AE_REGIONS,
282 ANDROID_CONTROL_AE_EXP_COMPENSATION,
283 ANDROID_CONTROL_AE_TARGET_FPS_RANGE,
284 ANDROID_CONTROL_AE_ANTIBANDING_MODE,
285 ANDROID_CONTROL_AE_STATE,
286 ANDROID_CONTROL_AE_PRECAPTURE_ID,
287 ANDROID_CONTROL_AWB_MODE,
288 ANDROID_CONTROL_AWB_LOCK,
289 ANDROID_CONTROL_AWB_REGIONS,
290 ANDROID_CONTROL_AWB_STATE,
291 ANDROID_CONTROL_AF_MODE,
292 ANDROID_CONTROL_AF_REGIONS,
293 ANDROID_CONTROL_AF_STATE,
294 ANDROID_CONTROL_AF_TRIGGER_ID,
298 ANDROID_CONTROL_AVAILABLE_SCENE_MODES = ANDROID_CONTROL_INFO_START,
299 ANDROID_CONTROL_AVAILABLE_EFFECTS,
300 ANDROID_CONTROL_MAX_REGIONS,
301 ANDROID_CONTROL_AE_AVAILABLE_MODES,
302 ANDROID_CONTROL_AE_EXP_COMPENSATION_STEP,
303 ANDROID_CONTROL_AE_EXP_COMPENSATION_RANGE,
304 ANDROID_CONTROL_AE_AVAILABLE_TARGET_FPS_RANGES,
305 ANDROID_CONTROL_AE_AVAILABLE_ANTIBANDING_MODES,
306 ANDROID_CONTROL_AWB_AVAILABLE_MODES,
307 ANDROID_CONTROL_AF_AVAILABLE_MODES,
308 ANDROID_CONTROL_AVAILABLE_VIDEO_STABILIZATION_MODES,
309 ANDROID_CONTROL_INFO_END
313 * Enumeration definitions for the various entries that need them
316 // ANDROID_REQUEST_METADATA_TYPE
318 ANDROID_REQUEST_TYPE_CAPTURE = 0,
319 ANDROID_REQUEST_TYPE_REPROCESS
322 // ANDROID_REQUEST_METADATA_MODE
324 ANDROID_REQUEST_METADATA_NONE = 0,
325 ANDROID_REQUEST_METADATA_FULL
328 // ANDROID_LENS_OPTICAL_STABILIZATION_MODE
330 ANDROID_LENS_OPTICAL_STABILIZATION_OFF = 0,
331 ANDROID_LENS_OPTICAL_STABILIZATION_ON
334 // ANDROID_LENS_FACING
336 ANDROID_LENS_FACING_BACK = 0,
337 ANDROID_LENS_FACING_FRONT
340 // ANDROID_SENSOR_INFO_COLOR_FILTER_ARRANGEMENT
342 ANDROID_SENSOR_RGGB = 0,
349 // ANDROID_FLASH_MODE
351 ANDROID_FLASH_OFF = 0,
352 ANDROID_FLASH_SINGLE,
356 // General processing block modes
358 ANDROID_PROCESSING_OFF = 0,
359 ANDROID_PROCESSING_FAST,
360 ANDROID_PROCESSING_HIGH_QUALITY
363 // ANDROID_DEMOSAIC_MODE
365 ANDROID_DEMOSAIC_FAST = 1,
366 ANDROID_DEMOSAIC_HIGH_QUALITY
369 // ANDROID_COLOR_MODE
371 ANDROID_COLOR_FAST = 1,
372 ANDROID_COLOR_HIGH_QUALITY,
373 ANDROID_COLOR_TRANSFORM_MATRIX
376 // ANDROID_TONEMAP_MODE
378 ANDROID_TONEMAP_FAST = 1,
379 ANDROID_TONEMAP_HIGH_QUALITY,
380 ANDROID_TONEMAP_CONTRAST_CURVE
383 // ANDROID_SCALER_AVAILABLE_FORMATS uses HAL_PIXEL_FORMAT_* from
386 // ANDROID_STATS_FACE_DETECTION_MODE
388 ANDROID_STATS_FACE_DETECTION_OFF = 0,
389 ANDROID_STATS_FACE_DETECTION_SIMPLE,
390 ANDROID_STATS_FACE_DETECTION_FULL
393 // ANDROID_STATS_HISTOGRAM/SHARPNESS_MAP_MODE
395 ANDROID_STATS_OFF = 0,
399 // ANDROID_CONTROL_CAPTURE_INTENT
401 ANDROID_CONTROL_INTENT_CUSTOM = 0,
402 ANDROID_CONTROL_INTENT_PREVIEW,
403 ANDROID_CONTROL_INTENT_STILL_CAPTURE,
404 ANDROID_CONTROL_INTENT_VIDEO_RECORD,
405 ANDROID_CONTROL_INTENT_VIDEO_SNAPSHOT,
406 ANDROID_CONTROL_INTENT_ZERO_SHUTTER_LAG
409 // ANDROID_CONTROL_MODE
411 ANDROID_CONTROL_OFF = 0,
412 ANDROID_CONTROL_AUTO,
413 ANDROID_CONTROL_USE_SCENE_MODE
416 // ANDROID_CONTROL_SCENE_MODE
418 ANDROID_CONTROL_SCENE_MODE_UNSUPPORTED = 0, // Only for availableSceneModes
419 ANDROID_CONTROL_SCENE_MODE_FACE_PRIORITY,
420 ANDROID_CONTROL_SCENE_MODE_ACTION,
421 ANDROID_CONTROL_SCENE_MODE_PORTRAIT,
422 ANDROID_CONTROL_SCENE_MODE_LANDSCAPE,
423 ANDROID_CONTROL_SCENE_MODE_NIGHT,
424 ANDROID_CONTROL_SCENE_MODE_NIGHT_PORTRAIT,
425 ANDROID_CONTROL_SCENE_MODE_THEATRE,
426 ANDROID_CONTROL_SCENE_MODE_BEACH,
427 ANDROID_CONTROL_SCENE_MODE_SNOW,
428 ANDROID_CONTROL_SCENE_MODE_SUNSET,
429 ANDROID_CONTROL_SCENE_MODE_STEADYPHOTO,
430 ANDROID_CONTROL_SCENE_MODE_FIREWORKS,
431 ANDROID_CONTROL_SCENE_MODE_SPORTS,
432 ANDROID_CONTROL_SCENE_MODE_PARTY,
433 ANDROID_CONTROL_SCENE_MODE_CANDLELIGHT,
434 ANDROID_CONTROL_SCENE_MODE_BARCODE
437 // ANDROID_CONTROL_EFFECT_MODE
439 ANDROID_CONTROL_EFFECT_OFF = 0,
440 ANDROID_CONTROL_EFFECT_MONO,
441 ANDROID_CONTROL_EFFECT_NEGATIVE,
442 ANDROID_CONTROL_EFFECT_SOLARIZE,
443 ANDROID_CONTROL_EFFECT_SEPIA,
444 ANDROID_CONTROL_EFFECT_POSTERIZE,
445 ANDROID_CONTROL_EFFECT_WHITEBOARD,
446 ANDROID_CONTROL_EFFECT_BLACKBOARD,
447 ANDROID_CONTROL_EFFECT_AQUA
450 // ANDROID_CONTROL_AE_MODE
452 ANDROID_CONTROL_AE_OFF = 0,
453 ANDROID_CONTROL_AE_ON,
454 ANDROID_CONTROL_AE_ON_AUTO_FLASH,
455 ANDROID_CONTROL_AE_ON_ALWAYS_FLASH,
456 ANDROID_CONTROL_AE_ON_AUTO_FLASH_REDEYE
459 // ANDROID_CONTROL_AE_LOCK
461 ANDROID_CONTROL_AE_LOCK_OFF = 0,
462 ANDROID_CONTROL_AE_LOCK_ON
465 // ANDROID_CONTROL_AE_ANTIBANDING_MODE
467 ANDROID_CONTROL_AE_ANTIBANDING_OFF = 0,
468 ANDROID_CONTROL_AE_ANTIBANDING_50HZ,
469 ANDROID_CONTROL_AE_ANTIBANDING_60HZ,
470 ANDROID_CONTROL_AE_ANTIBANDING_AUTO
473 // ANDROID_CONTROL_AE_STATE
475 ANDROID_CONTROL_AE_STATE_INACTIVE = 0,
476 ANDROID_CONTROL_AE_STATE_SEARCHING,
477 ANDROID_CONTROL_AE_STATE_CONVERGED,
478 ANDROID_CONTROL_AE_STATE_LOCKED,
479 ANDROID_CONTROL_AE_STATE_FLASH_REQUIRED,
480 ANDROID_CONTROL_AE_STATE_PRECAPTURE
483 // ANDROID_CONTROL_AWB_MODE
485 ANDROID_CONTROL_AWB_OFF = 0,
486 ANDROID_CONTROL_AWB_AUTO,
487 ANDROID_CONTROL_AWB_INCANDESCENT,
488 ANDROID_CONTROL_AWB_FLUORESCENT,
489 ANDROID_CONTROL_AWB_WARM_FLUORESCENT,
490 ANDROID_CONTROL_AWB_DAYLIGHT,
491 ANDROID_CONTROL_AWB_CLOUDY_DAYLIGHT,
492 ANDROID_CONTROL_AWB_TWILIGHT,
493 ANDROID_CONTROL_AWB_SHADE
496 // ANDROID_CONTROL_AWB_LOCK
498 ANDROID_CONTROL_AWB_LOCK_OFF = 0,
499 ANDROID_CONTROL_AWB_LOCK_ON
502 // ANDROID_CONTROL_AWB_STATE
504 ANDROID_CONTROL_AWB_STATE_INACTIVE = 0,
505 ANDROID_CONTROL_AWB_STATE_SEARCHING,
506 ANDROID_CONTROL_AWB_STATE_CONVERGED,
507 ANDROID_CONTROL_AWB_STATE_LOCKED,
510 // ANDROID_CONTROL_AF_MODE
512 ANDROID_CONTROL_AF_OFF = 0,
513 ANDROID_CONTROL_AF_AUTO,
514 ANDROID_CONTROL_AF_MACRO,
515 ANDROID_CONTROL_AF_CONTINUOUS_VIDEO,
516 ANDROID_CONTROL_AF_CONTINUOUS_PICTURE,
517 ANDROID_CONTROL_AF_EDOF
520 // ANDROID_CONTROL_AF_STATE
522 ANDROID_CONTROL_AF_STATE_INACTIVE = 0,
523 ANDROID_CONTROL_AF_STATE_PASSIVE_SCAN,
524 ANDROID_CONTROL_AF_STATE_PASSIVE_FOCUSED,
525 ANDROID_CONTROL_AF_STATE_ACTIVE_SCAN,
526 ANDROID_CONTROL_AF_STATE_FOCUSED_LOCKED,
527 ANDROID_CONTROL_AF_STATE_NOT_FOCUSED_LOCKED
530 // ANDROID_CONTROL_VIDEO_STABILIZATION
532 ANDROID_CONTROL_VIDEO_STABILIZATION_OFF = 0,
533 ANDROID_CONTROL_VIDEO_STABILIZATION_ON