camera_metadata_tag_info.c revision 4589e489353e5062fb9285c0b872629ca6454dad
1/* 2 * Copyright (C) 2012 The Android Open Source Project 3 * 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 7 * 8 * http://www.apache.org/licenses/LICENSE-2.0 9 * 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. 15 */ 16 17/** 18 * !! Do not reference this file directly !! 19 * 20 * It is logically a part of camera_metadata.c. It is broken out for ease of 21 * maintaining the tag info. 22 * 23 * Array assignments are done using specified-index syntax to keep things in 24 * sync with camera_metadata_tags.h 25 */ 26 27const char *camera_metadata_section_names[ANDROID_SECTION_COUNT] = { 28 [ANDROID_REQUEST] = "android.request", 29 [ANDROID_LENS] = "android.lens", 30 [ANDROID_LENS_INFO] = "android.lens.info", 31 [ANDROID_SENSOR] = "android.sensor", 32 [ANDROID_SENSOR_INFO] = "android.sensor.info", 33 [ANDROID_FLASH] = "android.flash", 34 [ANDROID_FLASH_INFO] = "android.flash.info", 35 [ANDROID_HOT_PIXEL] = "android.hotPixel", 36 [ANDROID_HOT_PIXEL_INFO] = "android.hotPixel.info", 37 [ANDROID_DEMOSAIC] = "android.demosaic", 38 [ANDROID_DEMOSAIC_INFO] = "android.demosaic.info", 39 [ANDROID_NOISE] = "android.noiseReduction", 40 [ANDROID_NOISE_INFO] = "android.noiseReduction.info", 41 [ANDROID_SHADING] = "android.shadingCorrection", 42 [ANDROID_SHADING_INFO] = "android.shadingCorrection.info", 43 [ANDROID_GEOMETRIC] = "android.geometricCorrection", 44 [ANDROID_GEOMETRIC_INFO] = "android.geometricCorrection.info", 45 [ANDROID_COLOR] = "android.colorCorrection", 46 [ANDROID_COLOR_INFO] = "android.colorCorrection.info", 47 [ANDROID_TONEMAP] = "android.tonemap", 48 [ANDROID_TONEMAP_INFO] = "android.tonemap.info", 49 [ANDROID_EDGE] = "android.edge", 50 [ANDROID_EDGE_INFO] = "android.edge.info", 51 [ANDROID_SCALER] = "android.scaler", 52 [ANDROID_SCALER_INFO] = "android.scaler.info", 53 [ANDROID_JPEG] = "android.jpeg", 54 [ANDROID_JPEG_INFO] = "android.jpeg.info", 55 [ANDROID_STATS] = "android.statistics", 56 [ANDROID_STATS_INFO] = "android.statistics.info", 57 [ANDROID_CONTROL] = "android.control", 58 [ANDROID_CONTROL_INFO] = "android.control.info" 59}; 60 61unsigned int camera_metadata_section_bounds[ANDROID_SECTION_COUNT][2] = { 62 [ANDROID_REQUEST] = { ANDROID_REQUEST_START, 63 ANDROID_REQUEST_END }, 64 [ANDROID_LENS] = { ANDROID_LENS_START, 65 ANDROID_LENS_END }, 66 [ANDROID_LENS_INFO] = { ANDROID_LENS_INFO_START, 67 ANDROID_LENS_INFO_END }, 68 [ANDROID_SENSOR] = { ANDROID_SENSOR_START, 69 ANDROID_SENSOR_END }, 70 [ANDROID_SENSOR_INFO] = { ANDROID_SENSOR_INFO_START, 71 ANDROID_SENSOR_INFO_END }, 72 [ANDROID_FLASH] = { ANDROID_FLASH_START, 73 ANDROID_FLASH_END }, 74 [ANDROID_FLASH_INFO] = { ANDROID_FLASH_INFO_START, 75 ANDROID_FLASH_INFO_END }, 76 [ANDROID_HOT_PIXEL] = { ANDROID_HOT_PIXEL_START, 77 ANDROID_HOT_PIXEL_END }, 78 [ANDROID_HOT_PIXEL_INFO] = { ANDROID_HOT_PIXEL_INFO_START, 79 ANDROID_HOT_PIXEL_INFO_END }, 80 [ANDROID_DEMOSAIC] = { ANDROID_DEMOSAIC_START, 81 ANDROID_DEMOSAIC_END }, 82 [ANDROID_DEMOSAIC_INFO] = { ANDROID_DEMOSAIC_INFO_START, 83 ANDROID_DEMOSAIC_INFO_END }, 84 [ANDROID_NOISE] = { ANDROID_NOISE_START, 85 ANDROID_NOISE_END }, 86 [ANDROID_NOISE_INFO] = { ANDROID_NOISE_INFO_START, 87 ANDROID_NOISE_INFO_END }, 88 [ANDROID_SHADING] = { ANDROID_SHADING_START, 89 ANDROID_SHADING_END }, 90 [ANDROID_SHADING_INFO] = { ANDROID_SHADING_INFO_START, 91 ANDROID_SHADING_INFO_END }, 92 [ANDROID_GEOMETRIC] = { ANDROID_GEOMETRIC_START, 93 ANDROID_GEOMETRIC_END }, 94 [ANDROID_GEOMETRIC_INFO] = { ANDROID_GEOMETRIC_INFO_START, 95 ANDROID_GEOMETRIC_INFO_END }, 96 [ANDROID_COLOR] = { ANDROID_COLOR_START, 97 ANDROID_COLOR_END }, 98 [ANDROID_COLOR_INFO] = { ANDROID_COLOR_INFO_START, 99 ANDROID_COLOR_INFO_END }, 100 [ANDROID_TONEMAP] = { ANDROID_TONEMAP_START, 101 ANDROID_TONEMAP_END }, 102 [ANDROID_TONEMAP_INFO] = { ANDROID_TONEMAP_INFO_START, 103 ANDROID_TONEMAP_INFO_END }, 104 [ANDROID_EDGE] = { ANDROID_EDGE_START, 105 ANDROID_EDGE_END }, 106 [ANDROID_EDGE_INFO] = { ANDROID_EDGE_INFO_START, 107 ANDROID_EDGE_INFO_END }, 108 [ANDROID_SCALER] = { ANDROID_SCALER_START, 109 ANDROID_SCALER_END }, 110 [ANDROID_SCALER_INFO] = { ANDROID_SCALER_INFO_START, 111 ANDROID_SCALER_INFO_END }, 112 [ANDROID_JPEG] = { ANDROID_JPEG_START, 113 ANDROID_JPEG_END }, 114 [ANDROID_JPEG_INFO] = { ANDROID_JPEG_INFO_START, 115 ANDROID_JPEG_INFO_END }, 116 [ANDROID_STATS] = { ANDROID_STATS_START, 117 ANDROID_STATS_END }, 118 [ANDROID_STATS_INFO] = { ANDROID_STATS_INFO_START, 119 ANDROID_STATS_INFO_END }, 120 [ANDROID_CONTROL] = { ANDROID_CONTROL_START, 121 ANDROID_CONTROL_END }, 122 [ANDROID_CONTROL_INFO] = { ANDROID_CONTROL_INFO_START, 123 ANDROID_CONTROL_INFO_END } 124}; 125 126// Shortcut defines to make succint names for field definitions 127#define TIDX(section, tag) \ 128 [ ANDROID_ ## section ## _ ## tag - ANDROID_ ## section ## _START ] 129 130#define TIIDX(section, tag) \ 131 [ ANDROID_ ## section ## _ ## tag - ANDROID_ ## section ## _INFO_START ] 132 133tag_info_t android_request[ANDROID_REQUEST_END - 134 ANDROID_REQUEST_START] = { 135 TIDX(REQUEST, ID) = 136 { "id", TYPE_INT32 }, 137 TIDX(REQUEST, METADATA_MODE) = 138 { "metadataMode", TYPE_BYTE }, 139 TIDX(REQUEST, OUTPUT_STREAMS) = 140 { "outputStreams", TYPE_BYTE }, 141 TIDX(REQUEST, FRAME_COUNT) = 142 { "frameCount", TYPE_INT32 } 143}; 144 145tag_info_t android_lens[ANDROID_LENS_END - 146 ANDROID_LENS_START] = { 147 TIDX(LENS, FOCUS_DISTANCE) = 148 { "focusDistance", TYPE_FLOAT }, 149 TIDX(LENS, APERTURE) = 150 { "aperture", TYPE_FLOAT }, 151 TIDX(LENS, FOCAL_LENGTH) = 152 { "focalLength", TYPE_FLOAT }, 153 TIDX(LENS, FILTER_DENSITY) = 154 { "filterDensity", TYPE_FLOAT }, 155 TIDX(LENS, OPTICAL_STABILIZATION_MODE) = 156 { "opticalStabilizationMode", TYPE_BYTE }, 157 TIDX(LENS, FOCUS_RANGE) = 158 { "focusRange", TYPE_FLOAT } 159}; 160 161tag_info_t android_lens_info[ANDROID_LENS_INFO_END - 162 ANDROID_LENS_INFO_START] = { 163 TIIDX(LENS, MINIMUM_FOCUS_DISTANCE) = 164 { "minimumFocusDistance", TYPE_FLOAT }, 165 TIIDX(LENS, HYPERFOCAL_DISTANCE) = 166 { "hyperfocalDistance", TYPE_FLOAT }, 167 TIIDX(LENS, AVAILABLE_FOCAL_LENGTHS) = 168 { "availableFocalLengths", TYPE_FLOAT }, 169 TIIDX(LENS, AVAILABLE_APERTURES) = 170 { "availableApertures", TYPE_FLOAT }, 171 TIIDX(LENS, AVAILABLE_FILTER_DENSITY) = 172 { "availableFilterDensities", TYPE_FLOAT }, 173 TIIDX(LENS, AVAILABLE_OPTICAL_STABILIZATION) = 174 { "availableOpticalStabilizationModes", TYPE_BYTE }, 175 TIIDX(LENS, SHADING_MAP_SIZE) = 176 { "shadingMapSize", TYPE_INT32 }, 177 TIIDX(LENS, SHADING_MAP) = 178 { "shadingMap", TYPE_FLOAT }, 179 TIIDX(LENS, GEOMETRIC_CORRECTION_MAP_SIZE) = 180 { "geometricCorrectionMapSize", TYPE_INT32 }, 181 TIIDX(LENS, GEOMETRIC_CORRECTION_MAP) = 182 { "geometricCorrectionMap", TYPE_FLOAT }, 183 TIIDX(LENS, FACING) = 184 { "facing", TYPE_BYTE }, 185 TIIDX(LENS, POSITION) = 186 { "position", TYPE_FLOAT } 187}; 188 189tag_info_t android_sensor[ANDROID_SENSOR_END - 190 ANDROID_SENSOR_START] = { 191 TIDX(SENSOR, EXPOSURE_TIME) = 192 { "exposureTime", TYPE_INT64 }, 193 TIDX(SENSOR, FRAME_DURATION) = 194 { "frameDuration", TYPE_INT64 }, 195 TIDX(SENSOR, SENSITIVITY) = 196 { "sensitivity", TYPE_INT32 }, 197 TIDX(SENSOR, TIMESTAMP) = 198 { "timestamp", TYPE_INT64 } 199}; 200 201tag_info_t android_sensor_info[ANDROID_SENSOR_INFO_END - 202 ANDROID_SENSOR_INFO_START] = { 203 TIIDX(SENSOR, EXPOSURE_TIME_RANGE) = 204 { "exposureTimeRange", TYPE_INT64 }, 205 TIIDX(SENSOR, MAX_FRAME_DURATION) = 206 { "maxFrameDuration", TYPE_INT64 }, 207 TIIDX(SENSOR, AVAILABLE_SENSITIVITIES) = 208 { "availableSensitivities", TYPE_INT32 }, 209 TIIDX(SENSOR, COLOR_FILTER_ARRANGEMENT) = 210 { "colorFilterArrangement", TYPE_BYTE }, 211 TIIDX(SENSOR, PHYSICAL_SIZE) = 212 { "physicalSize", TYPE_FLOAT }, 213 TIIDX(SENSOR, PIXEL_ARRAY_SIZE) = 214 { "pixelArraySize", TYPE_INT32 }, 215 TIIDX(SENSOR, ACTIVE_ARRAY_SIZE) = 216 { "activeArraySize", TYPE_INT32 }, 217 TIIDX(SENSOR, WHITE_LEVEL) = 218 { "whiteLevel", TYPE_INT32 }, 219 TIIDX(SENSOR, BLACK_LEVEL_PATTERN) = 220 { "blackLevelPattern", TYPE_INT32 }, 221 TIIDX(SENSOR, COLOR_TRANSFORM_1) = 222 { "colorTransform1", TYPE_RATIONAL }, 223 TIIDX(SENSOR, COLOR_TRANSFORM_2) = 224 { "colorTransform2", TYPE_RATIONAL }, 225 TIIDX(SENSOR, REFERENCE_ILLUMINANT_1) = 226 { "referenceIlluminant1", TYPE_BYTE }, 227 TIIDX(SENSOR, REFERENCE_ILLUMINANT_2) = 228 { "referenceIlluminant2", TYPE_BYTE }, 229 TIIDX(SENSOR, FORWARD_MATRIX_1) = 230 { "forwardMatrix1", TYPE_RATIONAL }, 231 TIIDX(SENSOR, FORWARD_MATRIX_2) = 232 { "forwardMatrix2", TYPE_RATIONAL }, 233 TIIDX(SENSOR, CALIBRATION_TRANSFORM_1) = 234 { "calibrationTransform1", TYPE_RATIONAL }, 235 TIIDX(SENSOR, CALIBRATION_TRANSFORM_2) = 236 { "calibrationTransform2", TYPE_RATIONAL }, 237 TIIDX(SENSOR, BASE_GAIN_FACTOR) = 238 { "baseGainFactor", TYPE_RATIONAL }, 239 TIIDX(SENSOR, MAX_ANALOG_SENSITIVITY) = 240 { "maxAnalogSensitivity", TYPE_INT32 }, 241 TIIDX(SENSOR, NOISE_MODEL_COEFFICIENTS) = 242 { "noiseModelCoefficients", TYPE_FLOAT }, 243 TIIDX(SENSOR, ORIENTATION) = 244 { "orientation", TYPE_INT32 } 245}; 246 247tag_info_t android_flash[ANDROID_FLASH_END - 248 ANDROID_FLASH_START] = { 249 TIDX(FLASH, MODE) = 250 { "mode", TYPE_BYTE }, 251 TIDX(FLASH, FIRING_POWER) = 252 { "firingPower", TYPE_BYTE }, 253 TIDX(FLASH, FIRING_TIME) = 254 { "firingTime", TYPE_INT64 } 255}; 256 257tag_info_t android_flash_info[ANDROID_FLASH_INFO_END - 258 ANDROID_FLASH_INFO_START] = { 259 TIIDX(FLASH, AVAILABLE) = 260 { "available", TYPE_BYTE }, 261 TIIDX(FLASH, CHARGE_DURATION) = 262 { "chargeDuration", TYPE_INT64 }, 263}; 264 265tag_info_t android_hot_pixel[ANDROID_HOT_PIXEL_END - 266 ANDROID_HOT_PIXEL_START] = { 267 TIDX(HOT_PIXEL, MODE) = 268 { "mode", TYPE_BYTE } 269}; 270 271tag_info_t android_hot_pixel_info[ANDROID_HOT_PIXEL_INFO_END - 272 ANDROID_HOT_PIXEL_INFO_START]; 273 274tag_info_t android_demosaic[ANDROID_DEMOSAIC_END - 275 ANDROID_DEMOSAIC_START] = { 276 TIDX(DEMOSAIC, MODE) = 277 { "mode", TYPE_BYTE } 278}; 279 280tag_info_t android_demosaic_info[ANDROID_DEMOSAIC_INFO_END - 281 ANDROID_DEMOSAIC_INFO_START]; 282 283tag_info_t android_noise[ANDROID_NOISE_END - 284 ANDROID_NOISE_START] = { 285 TIDX(NOISE, MODE) = 286 { "mode", TYPE_BYTE }, 287 TIDX(NOISE, STRENGTH) = 288 { "strength", TYPE_BYTE } 289}; 290 291tag_info_t android_noise_info[ANDROID_NOISE_INFO_END - 292 ANDROID_NOISE_INFO_START]; 293 294tag_info_t android_shading[ANDROID_SHADING_END - 295 ANDROID_SHADING_START] = { 296 TIDX(SHADING, MODE) = 297 { "mode", TYPE_BYTE } 298}; 299 300tag_info_t android_shading_info[ANDROID_SHADING_INFO_END - 301 ANDROID_SHADING_INFO_START]; 302 303tag_info_t android_geometric[ANDROID_GEOMETRIC_END - 304 ANDROID_GEOMETRIC_START] = { 305 TIDX(GEOMETRIC, MODE) = 306 { "mode", TYPE_BYTE } 307}; 308 309tag_info_t android_geometric_info[ANDROID_GEOMETRIC_INFO_END - 310 ANDROID_GEOMETRIC_INFO_START]; 311 312tag_info_t android_color[ANDROID_COLOR_END - 313 ANDROID_COLOR_START] = { 314 TIDX(COLOR, MODE) = 315 { "mode", TYPE_BYTE }, 316 TIDX(COLOR, TRANSFORM) = 317 { "transform", TYPE_FLOAT } 318}; 319 320tag_info_t android_color_info[ANDROID_COLOR_INFO_END - 321 ANDROID_COLOR_INFO_START]; 322 323tag_info_t android_tonemap[ANDROID_TONEMAP_END - 324 ANDROID_TONEMAP_START] = { 325 TIDX(TONEMAP, MODE) = 326 { "mode", TYPE_BYTE }, 327 TIDX(TONEMAP, CURVE_RED) = 328 { "curveRed", TYPE_FLOAT }, 329 TIDX(TONEMAP, CURVE_GREEN) = 330 { "curveGreen", TYPE_FLOAT }, 331 TIDX(TONEMAP, CURVE_BLUE) = 332 { "curveBlue", TYPE_FLOAT } 333}; 334 335tag_info_t android_tonemap_info[ANDROID_TONEMAP_INFO_END - 336 ANDROID_TONEMAP_INFO_START] = { 337 TIIDX(TONEMAP, MAX_CURVE_POINTS) = 338 { "maxCurvePoints", TYPE_INT32 } 339}; 340 341tag_info_t android_edge[ANDROID_EDGE_END - 342 ANDROID_EDGE_START] = { 343 TIDX(EDGE, MODE) = 344 { "mode", TYPE_BYTE }, 345 TIDX(EDGE, STRENGTH) = 346 { "strength", TYPE_BYTE } 347}; 348 349tag_info_t android_edge_info[ANDROID_EDGE_INFO_END - 350 ANDROID_EDGE_INFO_START]; 351 352tag_info_t android_scaler[ANDROID_SCALER_END - 353 ANDROID_SCALER_START] = { 354 TIDX(SCALER, CROP_REGION) = 355 { "cropRegion", TYPE_INT32 } 356}; 357 358tag_info_t android_scaler_info[ANDROID_SCALER_INFO_END - 359 ANDROID_SCALER_INFO_START] = { 360 TIIDX(SCALER, AVAILABLE_FORMATS) = 361 { "availableFormats", TYPE_INT32 }, 362 TIIDX(SCALER, AVAILABLE_RAW_SIZES) = 363 { "availableRawSizes", TYPE_INT32 }, 364 TIIDX(SCALER, AVAILABLE_RAW_MIN_DURATIONS) = 365 { "availableRawMinDurations", TYPE_INT64 }, 366 TIIDX(SCALER, AVAILABLE_PROCESSED_SIZES) = 367 { "availableProcessedSizes", TYPE_INT32 }, 368 TIIDX(SCALER, AVAILABLE_PROCESSED_MIN_DURATIONS) = 369 { "availableProcessedMinDurations", TYPE_INT64 }, 370 TIIDX(SCALER, AVAILABLE_JPEG_SIZES) = 371 { "availableJpegSizes", TYPE_INT32 }, 372 TIIDX(SCALER, AVAILABLE_JPEG_MIN_DURATIONS) = 373 { "availableJpegMinDurations", TYPE_INT64 }, 374 TIIDX(SCALER, AVAILABLE_MAX_ZOOM) = 375 { "availableMaxDigitalZoom", TYPE_INT32 } 376}; 377 378tag_info_t android_jpeg[ANDROID_JPEG_END - 379 ANDROID_JPEG_START] = { 380 TIDX(JPEG, QUALITY) = 381 { "quality", TYPE_INT32 }, 382 TIDX(JPEG, THUMBNAIL_SIZE) = 383 { "thumbnailSize", TYPE_INT32 }, 384 TIDX(JPEG, THUMBNAIL_QUALITY) = 385 { "thumbnailQuality", TYPE_INT32 }, 386 TIDX(JPEG, GPS_COORDINATES) = 387 { "gpsCoordinates", TYPE_DOUBLE }, 388 TIDX(JPEG, GPS_PROCESSING_METHOD) = 389 { "gpsProcessingMethod", TYPE_BYTE }, 390 TIDX(JPEG, GPS_TIMESTAMP) = 391 { "gpsTimestamp", TYPE_INT64 }, 392 TIDX(JPEG, ORIENTATION) = 393 { "orientation", TYPE_INT32 } 394}; 395 396tag_info_t android_jpeg_info[ANDROID_JPEG_INFO_END - 397 ANDROID_JPEG_INFO_START] = { 398 TIIDX(JPEG, AVAILABLE_THUMBNAIL_SIZES) = 399 { "availableThumbnailSizes", TYPE_INT32 }, 400 TIIDX(JPEG, MAX_SIZE) = 401 { "maxSize", TYPE_INT32 } 402}; 403 404tag_info_t android_stats[ANDROID_STATS_END - 405 ANDROID_STATS_START] = { 406 TIDX(STATS, FACE_DETECT_MODE) = 407 { "faceDetectMode", TYPE_BYTE }, 408 TIDX(STATS, FACE_RECTANGLES) = 409 { "faceRectangles", TYPE_INT32 }, 410 TIDX(STATS, FACE_SCORES) = 411 { "faceScores", TYPE_BYTE }, 412 TIDX(STATS, FACE_LANDMARKS) = 413 { "faceLandmarks", TYPE_INT32 }, 414 TIDX(STATS, FACE_IDS) = 415 { "faceIds", TYPE_INT32 }, 416 TIDX(STATS, HISTOGRAM_MODE) = 417 { "histogramMode", TYPE_BYTE }, 418 TIDX(STATS, HISTOGRAM) = 419 { "histogram", TYPE_INT32 }, 420 TIDX(STATS, SHARPNESS_MAP_MODE) = 421 { "sharpnessMapMode", TYPE_BYTE }, 422 TIDX(STATS, SHARPNESS_MAP) = 423 { "sharpnessMap", TYPE_INT32 } 424}; 425 426tag_info_t android_stats_info[ANDROID_STATS_INFO_END - 427 ANDROID_STATS_INFO_START] = { 428 TIIDX(STATS, AVAILABLE_FACE_DETECT_MODES) = 429 { "availableFaceDetectModes", TYPE_BYTE }, 430 TIIDX(STATS, MAX_FACE_COUNT) = 431 { "maxFaceCount", TYPE_INT32 }, 432 TIIDX(STATS, HISTOGRAM_BUCKET_COUNT) = 433 { "histogramBucketCount", TYPE_INT32 }, 434 TIIDX(STATS, MAX_HISTOGRAM_COUNT) = 435 { "maxHistogramCount", TYPE_INT32 }, 436 TIIDX(STATS, SHARPNESS_MAP_SIZE) = 437 { "sharpnessMapSize", TYPE_INT32 }, 438 TIIDX(STATS, MAX_SHARPNESS_MAP_VALUE) = 439 { "maxSharpnessMapValue", TYPE_INT32 } 440}; 441 442 443tag_info_t android_control[ANDROID_CONTROL_END - 444 ANDROID_CONTROL_START] = { 445 TIDX(CONTROL, CAPTURE_INTENT) = 446 { "captureIntent", TYPE_BYTE }, 447 TIDX(CONTROL, MODE) = 448 { "mode", TYPE_BYTE }, 449 TIDX(CONTROL, EFFECT_MODE) = 450 { "effectMode", TYPE_BYTE }, 451 TIDX(CONTROL, SCENE_MODE) = 452 { "sceneMode", TYPE_BYTE }, 453 TIDX(CONTROL, VIDEO_STABILIZATION_MODE) = 454 { "videoStabilizationMode", TYPE_BYTE }, 455 TIDX(CONTROL, AE_MODE) = 456 { "aeMode", TYPE_BYTE }, 457 TIDX(CONTROL, AE_REGIONS) = 458 { "aeRegions", TYPE_INT32 }, 459 TIDX(CONTROL, AE_EXP_COMPENSATION) = 460 { "aeExposureCompensation", TYPE_INT32 }, 461 TIDX(CONTROL, AE_TARGET_FPS_RANGE) = 462 { "aeTargetFpsRange", TYPE_INT32 }, 463 TIDX(CONTROL, AE_ANTIBANDING_MODE) = 464 { "aeAntibandingMode", TYPE_BYTE }, 465 TIDX(CONTROL, AE_STATE) = 466 { "aeState", TYPE_BYTE }, 467 TIDX(CONTROL, AE_PRECAPTURE_ID) = 468 { "aePrecaptureId", TYPE_INT32}, 469 TIDX(CONTROL, AWB_MODE) = 470 { "awbMode", TYPE_BYTE }, 471 TIDX(CONTROL, AWB_REGIONS) = 472 { "awbRegions", TYPE_INT32 }, 473 TIDX(CONTROL, AWB_STATE) = 474 { "awbState", TYPE_BYTE }, 475 TIDX(CONTROL, AF_MODE) = 476 { "afMode", TYPE_BYTE }, 477 TIDX(CONTROL, AF_REGIONS) = 478 { "afRegions", TYPE_INT32 }, 479 TIDX(CONTROL, AF_STATE) = 480 { "afState", TYPE_BYTE }, 481 TIDX(CONTROL, AF_TRIGGER_ID) = 482 { "afTriggerId", TYPE_INT32 } 483}; 484 485tag_info_t android_control_info[ANDROID_CONTROL_INFO_END - 486 ANDROID_CONTROL_INFO_START] = { 487 TIIDX(CONTROL, AVAILABLE_SCENE_MODES) = 488 { "availableSceneModes", TYPE_BYTE }, 489 TIIDX(CONTROL, AVAILABLE_EFFECTS) = 490 { "availableEffects", TYPE_BYTE }, 491 TIIDX(CONTROL, MAX_REGIONS) = 492 { "maxRegions", TYPE_INT32 }, 493 TIIDX(CONTROL, AE_AVAILABLE_MODES) = 494 { "aeAvailableModes", TYPE_BYTE }, 495 TIIDX(CONTROL, AE_EXP_COMPENSATION_STEP) = 496 { "aeCompensationStep", TYPE_RATIONAL }, 497 TIIDX(CONTROL, AE_EXP_COMPENSATION_RANGE) = 498 { "aeCompensationRange", TYPE_INT32 }, 499 TIIDX(CONTROL, AE_AVAILABLE_TARGET_FPS_RANGES) = 500 { "aeAvailableTargetFpsRanges", TYPE_INT32 }, 501 TIIDX(CONTROL, AE_AVAILABLE_ANTIBANDING_MODES) = 502 { "aeAvailableAntibandingModes", TYPE_BYTE }, 503 TIIDX(CONTROL, AWB_AVAILABLE_MODES) = 504 { "awbAvailableModes", TYPE_BYTE }, 505 TIIDX(CONTROL, AF_AVAILABLE_MODES) = 506 { "afAvailableModes", TYPE_BYTE }, 507 TIIDX(CONTROL, AVAILABLE_VIDEO_STABILIZATION_MODES) = 508 { "availableVideoStabilizationModes", TYPE_BYTE } 509}; 510 511#undef TIDX 512#undef TIIDX 513 514tag_info_t *tag_info[ANDROID_SECTION_COUNT] = { 515 android_request, 516 android_lens, 517 android_lens_info, 518 android_sensor, 519 android_sensor_info, 520 android_flash, 521 android_flash_info, 522 android_hot_pixel, 523 android_hot_pixel_info, 524 android_demosaic, 525 android_demosaic_info, 526 android_noise, 527 android_noise_info, 528 android_shading, 529 android_shading_info, 530 android_geometric, 531 android_geometric_info, 532 android_color, 533 android_color_info, 534 android_tonemap, 535 android_tonemap_info, 536 android_edge, 537 android_edge_info, 538 android_scaler, 539 android_scaler_info, 540 android_jpeg, 541 android_jpeg_info, 542 android_stats, 543 android_stats_info, 544 android_control, 545 android_control_info 546}; 547