Home | History | Annotate | Download | only in system
      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 include this file directly !!
     19  *
     20  * Include camera_metadata.h instead.
     21  */
     22 
     23 /**
     24  * ! Do not edit this file directly !
     25  *
     26  * Generated automatically from camera_metadata_tags.mako
     27  */
     28 
     29 /** TODO: Nearly every enum in this file needs a description */
     30 
     31 /**
     32  * Top level hierarchy definitions for camera metadata. *_INFO sections are for
     33  * the static metadata that can be retrived without opening the camera device.
     34  * New sections must be added right before ANDROID_SECTION_COUNT to maintain
     35  * existing enumerations.
     36  */
     37 typedef enum camera_metadata_section {
     38     ANDROID_COLOR_CORRECTION,
     39     ANDROID_CONTROL,
     40     ANDROID_DEMOSAIC,
     41     ANDROID_EDGE,
     42     ANDROID_FLASH,
     43     ANDROID_FLASH_INFO,
     44     ANDROID_HOT_PIXEL,
     45     ANDROID_JPEG,
     46     ANDROID_LENS,
     47     ANDROID_LENS_INFO,
     48     ANDROID_NOISE_REDUCTION,
     49     ANDROID_QUIRKS,
     50     ANDROID_REQUEST,
     51     ANDROID_SCALER,
     52     ANDROID_SENSOR,
     53     ANDROID_SENSOR_INFO,
     54     ANDROID_SHADING,
     55     ANDROID_STATISTICS,
     56     ANDROID_STATISTICS_INFO,
     57     ANDROID_TONEMAP,
     58     ANDROID_LED,
     59     ANDROID_INFO,
     60     ANDROID_BLACK_LEVEL,
     61     ANDROID_SYNC,
     62     ANDROID_REPROCESS,
     63     ANDROID_DEPTH,
     64     ANDROID_SECTION_COUNT,
     65 
     66     VENDOR_SECTION = 0x8000
     67 } camera_metadata_section_t;
     68 
     69 /**
     70  * Hierarchy positions in enum space. All vendor extension tags must be
     71  * defined with tag >= VENDOR_SECTION_START
     72  */
     73 typedef enum camera_metadata_section_start {
     74     ANDROID_COLOR_CORRECTION_START = ANDROID_COLOR_CORRECTION  << 16,
     75     ANDROID_CONTROL_START          = ANDROID_CONTROL           << 16,
     76     ANDROID_DEMOSAIC_START         = ANDROID_DEMOSAIC          << 16,
     77     ANDROID_EDGE_START             = ANDROID_EDGE              << 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_JPEG_START             = ANDROID_JPEG              << 16,
     82     ANDROID_LENS_START             = ANDROID_LENS              << 16,
     83     ANDROID_LENS_INFO_START        = ANDROID_LENS_INFO         << 16,
     84     ANDROID_NOISE_REDUCTION_START  = ANDROID_NOISE_REDUCTION   << 16,
     85     ANDROID_QUIRKS_START           = ANDROID_QUIRKS            << 16,
     86     ANDROID_REQUEST_START          = ANDROID_REQUEST           << 16,
     87     ANDROID_SCALER_START           = ANDROID_SCALER            << 16,
     88     ANDROID_SENSOR_START           = ANDROID_SENSOR            << 16,
     89     ANDROID_SENSOR_INFO_START      = ANDROID_SENSOR_INFO       << 16,
     90     ANDROID_SHADING_START          = ANDROID_SHADING           << 16,
     91     ANDROID_STATISTICS_START       = ANDROID_STATISTICS        << 16,
     92     ANDROID_STATISTICS_INFO_START  = ANDROID_STATISTICS_INFO   << 16,
     93     ANDROID_TONEMAP_START          = ANDROID_TONEMAP           << 16,
     94     ANDROID_LED_START              = ANDROID_LED               << 16,
     95     ANDROID_INFO_START             = ANDROID_INFO              << 16,
     96     ANDROID_BLACK_LEVEL_START      = ANDROID_BLACK_LEVEL       << 16,
     97     ANDROID_SYNC_START             = ANDROID_SYNC              << 16,
     98     ANDROID_REPROCESS_START        = ANDROID_REPROCESS         << 16,
     99     ANDROID_DEPTH_START            = ANDROID_DEPTH             << 16,
    100     VENDOR_SECTION_START           = VENDOR_SECTION            << 16
    101 } camera_metadata_section_start_t;
    102 
    103 /**
    104  * Main enum for defining camera metadata tags.  New entries must always go
    105  * before the section _END tag to preserve existing enumeration values.  In
    106  * addition, the name and type of the tag needs to be added to
    107  * system/media/camera/src/camera_metadata_tag_info.c
    108  */
    109 typedef enum camera_metadata_tag {
    110     ANDROID_COLOR_CORRECTION_MODE =                   // enum         | public
    111             ANDROID_COLOR_CORRECTION_START,
    112     ANDROID_COLOR_CORRECTION_TRANSFORM,               // rational[]   | public
    113     ANDROID_COLOR_CORRECTION_GAINS,                   // float[]      | public
    114     ANDROID_COLOR_CORRECTION_ABERRATION_MODE,         // enum         | public
    115     ANDROID_COLOR_CORRECTION_AVAILABLE_ABERRATION_MODES,
    116                                                       // byte[]       | public
    117     ANDROID_COLOR_CORRECTION_END,
    118 
    119     ANDROID_CONTROL_AE_ANTIBANDING_MODE =             // enum         | public
    120             ANDROID_CONTROL_START,
    121     ANDROID_CONTROL_AE_EXPOSURE_COMPENSATION,         // int32        | public
    122     ANDROID_CONTROL_AE_LOCK,                          // enum         | public
    123     ANDROID_CONTROL_AE_MODE,                          // enum         | public
    124     ANDROID_CONTROL_AE_REGIONS,                       // int32[]      | public
    125     ANDROID_CONTROL_AE_TARGET_FPS_RANGE,              // int32[]      | public
    126     ANDROID_CONTROL_AE_PRECAPTURE_TRIGGER,            // enum         | public
    127     ANDROID_CONTROL_AF_MODE,                          // enum         | public
    128     ANDROID_CONTROL_AF_REGIONS,                       // int32[]      | public
    129     ANDROID_CONTROL_AF_TRIGGER,                       // enum         | public
    130     ANDROID_CONTROL_AWB_LOCK,                         // enum         | public
    131     ANDROID_CONTROL_AWB_MODE,                         // enum         | public
    132     ANDROID_CONTROL_AWB_REGIONS,                      // int32[]      | public
    133     ANDROID_CONTROL_CAPTURE_INTENT,                   // enum         | public
    134     ANDROID_CONTROL_EFFECT_MODE,                      // enum         | public
    135     ANDROID_CONTROL_MODE,                             // enum         | public
    136     ANDROID_CONTROL_SCENE_MODE,                       // enum         | public
    137     ANDROID_CONTROL_VIDEO_STABILIZATION_MODE,         // enum         | public
    138     ANDROID_CONTROL_AE_AVAILABLE_ANTIBANDING_MODES,   // byte[]       | public
    139     ANDROID_CONTROL_AE_AVAILABLE_MODES,               // byte[]       | public
    140     ANDROID_CONTROL_AE_AVAILABLE_TARGET_FPS_RANGES,   // int32[]      | public
    141     ANDROID_CONTROL_AE_COMPENSATION_RANGE,            // int32[]      | public
    142     ANDROID_CONTROL_AE_COMPENSATION_STEP,             // rational     | public
    143     ANDROID_CONTROL_AF_AVAILABLE_MODES,               // byte[]       | public
    144     ANDROID_CONTROL_AVAILABLE_EFFECTS,                // byte[]       | public
    145     ANDROID_CONTROL_AVAILABLE_SCENE_MODES,            // byte[]       | public
    146     ANDROID_CONTROL_AVAILABLE_VIDEO_STABILIZATION_MODES,
    147                                                       // byte[]       | public
    148     ANDROID_CONTROL_AWB_AVAILABLE_MODES,              // byte[]       | public
    149     ANDROID_CONTROL_MAX_REGIONS,                      // int32[]      | ndk_public
    150     ANDROID_CONTROL_SCENE_MODE_OVERRIDES,             // byte[]       | system
    151     ANDROID_CONTROL_AE_PRECAPTURE_ID,                 // int32        | system
    152     ANDROID_CONTROL_AE_STATE,                         // enum         | public
    153     ANDROID_CONTROL_AF_STATE,                         // enum         | public
    154     ANDROID_CONTROL_AF_TRIGGER_ID,                    // int32        | system
    155     ANDROID_CONTROL_AWB_STATE,                        // enum         | public
    156     ANDROID_CONTROL_AVAILABLE_HIGH_SPEED_VIDEO_CONFIGURATIONS,
    157                                                       // int32[]      | hidden
    158     ANDROID_CONTROL_AE_LOCK_AVAILABLE,                // enum         | public
    159     ANDROID_CONTROL_AWB_LOCK_AVAILABLE,               // enum         | public
    160     ANDROID_CONTROL_AVAILABLE_MODES,                  // byte[]       | public
    161     ANDROID_CONTROL_POST_RAW_SENSITIVITY_BOOST_RANGE, // int32[]      | public
    162     ANDROID_CONTROL_POST_RAW_SENSITIVITY_BOOST,       // int32        | public
    163     ANDROID_CONTROL_ENABLE_ZSL,                       // enum         | public
    164     ANDROID_CONTROL_END,
    165 
    166     ANDROID_DEMOSAIC_MODE =                           // enum         | system
    167             ANDROID_DEMOSAIC_START,
    168     ANDROID_DEMOSAIC_END,
    169 
    170     ANDROID_EDGE_MODE =                               // enum         | public
    171             ANDROID_EDGE_START,
    172     ANDROID_EDGE_STRENGTH,                            // byte         | system
    173     ANDROID_EDGE_AVAILABLE_EDGE_MODES,                // byte[]       | public
    174     ANDROID_EDGE_END,
    175 
    176     ANDROID_FLASH_FIRING_POWER =                      // byte         | system
    177             ANDROID_FLASH_START,
    178     ANDROID_FLASH_FIRING_TIME,                        // int64        | system
    179     ANDROID_FLASH_MODE,                               // enum         | public
    180     ANDROID_FLASH_COLOR_TEMPERATURE,                  // byte         | system
    181     ANDROID_FLASH_MAX_ENERGY,                         // byte         | system
    182     ANDROID_FLASH_STATE,                              // enum         | public
    183     ANDROID_FLASH_END,
    184 
    185     ANDROID_FLASH_INFO_AVAILABLE =                    // enum         | public
    186             ANDROID_FLASH_INFO_START,
    187     ANDROID_FLASH_INFO_CHARGE_DURATION,               // int64        | system
    188     ANDROID_FLASH_INFO_END,
    189 
    190     ANDROID_HOT_PIXEL_MODE =                          // enum         | public
    191             ANDROID_HOT_PIXEL_START,
    192     ANDROID_HOT_PIXEL_AVAILABLE_HOT_PIXEL_MODES,      // byte[]       | public
    193     ANDROID_HOT_PIXEL_END,
    194 
    195     ANDROID_JPEG_GPS_COORDINATES =                    // double[]     | ndk_public
    196             ANDROID_JPEG_START,
    197     ANDROID_JPEG_GPS_PROCESSING_METHOD,               // byte         | ndk_public
    198     ANDROID_JPEG_GPS_TIMESTAMP,                       // int64        | ndk_public
    199     ANDROID_JPEG_ORIENTATION,                         // int32        | public
    200     ANDROID_JPEG_QUALITY,                             // byte         | public
    201     ANDROID_JPEG_THUMBNAIL_QUALITY,                   // byte         | public
    202     ANDROID_JPEG_THUMBNAIL_SIZE,                      // int32[]      | public
    203     ANDROID_JPEG_AVAILABLE_THUMBNAIL_SIZES,           // int32[]      | public
    204     ANDROID_JPEG_MAX_SIZE,                            // int32        | system
    205     ANDROID_JPEG_SIZE,                                // int32        | system
    206     ANDROID_JPEG_END,
    207 
    208     ANDROID_LENS_APERTURE =                           // float        | public
    209             ANDROID_LENS_START,
    210     ANDROID_LENS_FILTER_DENSITY,                      // float        | public
    211     ANDROID_LENS_FOCAL_LENGTH,                        // float        | public
    212     ANDROID_LENS_FOCUS_DISTANCE,                      // float        | public
    213     ANDROID_LENS_OPTICAL_STABILIZATION_MODE,          // enum         | public
    214     ANDROID_LENS_FACING,                              // enum         | public
    215     ANDROID_LENS_POSE_ROTATION,                       // float[]      | public
    216     ANDROID_LENS_POSE_TRANSLATION,                    // float[]      | public
    217     ANDROID_LENS_FOCUS_RANGE,                         // float[]      | public
    218     ANDROID_LENS_STATE,                               // enum         | public
    219     ANDROID_LENS_INTRINSIC_CALIBRATION,               // float[]      | public
    220     ANDROID_LENS_RADIAL_DISTORTION,                   // float[]      | public
    221     ANDROID_LENS_END,
    222 
    223     ANDROID_LENS_INFO_AVAILABLE_APERTURES =           // float[]      | public
    224             ANDROID_LENS_INFO_START,
    225     ANDROID_LENS_INFO_AVAILABLE_FILTER_DENSITIES,     // float[]      | public
    226     ANDROID_LENS_INFO_AVAILABLE_FOCAL_LENGTHS,        // float[]      | public
    227     ANDROID_LENS_INFO_AVAILABLE_OPTICAL_STABILIZATION,// byte[]       | public
    228     ANDROID_LENS_INFO_HYPERFOCAL_DISTANCE,            // float        | public
    229     ANDROID_LENS_INFO_MINIMUM_FOCUS_DISTANCE,         // float        | public
    230     ANDROID_LENS_INFO_SHADING_MAP_SIZE,               // int32[]      | ndk_public
    231     ANDROID_LENS_INFO_FOCUS_DISTANCE_CALIBRATION,     // enum         | public
    232     ANDROID_LENS_INFO_END,
    233 
    234     ANDROID_NOISE_REDUCTION_MODE =                    // enum         | public
    235             ANDROID_NOISE_REDUCTION_START,
    236     ANDROID_NOISE_REDUCTION_STRENGTH,                 // byte         | system
    237     ANDROID_NOISE_REDUCTION_AVAILABLE_NOISE_REDUCTION_MODES,
    238                                                       // byte[]       | public
    239     ANDROID_NOISE_REDUCTION_END,
    240 
    241     ANDROID_QUIRKS_METERING_CROP_REGION =             // byte         | system
    242             ANDROID_QUIRKS_START,
    243     ANDROID_QUIRKS_TRIGGER_AF_WITH_AUTO,              // byte         | system
    244     ANDROID_QUIRKS_USE_ZSL_FORMAT,                    // byte         | system
    245     ANDROID_QUIRKS_USE_PARTIAL_RESULT,                // byte         | hidden
    246     ANDROID_QUIRKS_PARTIAL_RESULT,                    // enum         | hidden
    247     ANDROID_QUIRKS_END,
    248 
    249     ANDROID_REQUEST_FRAME_COUNT =                     // int32        | hidden
    250             ANDROID_REQUEST_START,
    251     ANDROID_REQUEST_ID,                               // int32        | hidden
    252     ANDROID_REQUEST_INPUT_STREAMS,                    // int32[]      | system
    253     ANDROID_REQUEST_METADATA_MODE,                    // enum         | system
    254     ANDROID_REQUEST_OUTPUT_STREAMS,                   // int32[]      | system
    255     ANDROID_REQUEST_TYPE,                             // enum         | system
    256     ANDROID_REQUEST_MAX_NUM_OUTPUT_STREAMS,           // int32[]      | ndk_public
    257     ANDROID_REQUEST_MAX_NUM_REPROCESS_STREAMS,        // int32[]      | system
    258     ANDROID_REQUEST_MAX_NUM_INPUT_STREAMS,            // int32        | public
    259     ANDROID_REQUEST_PIPELINE_DEPTH,                   // byte         | public
    260     ANDROID_REQUEST_PIPELINE_MAX_DEPTH,               // byte         | public
    261     ANDROID_REQUEST_PARTIAL_RESULT_COUNT,             // int32        | public
    262     ANDROID_REQUEST_AVAILABLE_CAPABILITIES,           // enum[]       | public
    263     ANDROID_REQUEST_AVAILABLE_REQUEST_KEYS,           // int32[]      | ndk_public
    264     ANDROID_REQUEST_AVAILABLE_RESULT_KEYS,            // int32[]      | ndk_public
    265     ANDROID_REQUEST_AVAILABLE_CHARACTERISTICS_KEYS,   // int32[]      | ndk_public
    266     ANDROID_REQUEST_END,
    267 
    268     ANDROID_SCALER_CROP_REGION =                      // int32[]      | public
    269             ANDROID_SCALER_START,
    270     ANDROID_SCALER_AVAILABLE_FORMATS,                 // enum[]       | hidden
    271     ANDROID_SCALER_AVAILABLE_JPEG_MIN_DURATIONS,      // int64[]      | hidden
    272     ANDROID_SCALER_AVAILABLE_JPEG_SIZES,              // int32[]      | hidden
    273     ANDROID_SCALER_AVAILABLE_MAX_DIGITAL_ZOOM,        // float        | public
    274     ANDROID_SCALER_AVAILABLE_PROCESSED_MIN_DURATIONS, // int64[]      | hidden
    275     ANDROID_SCALER_AVAILABLE_PROCESSED_SIZES,         // int32[]      | hidden
    276     ANDROID_SCALER_AVAILABLE_RAW_MIN_DURATIONS,       // int64[]      | system
    277     ANDROID_SCALER_AVAILABLE_RAW_SIZES,               // int32[]      | system
    278     ANDROID_SCALER_AVAILABLE_INPUT_OUTPUT_FORMATS_MAP,// int32        | hidden
    279     ANDROID_SCALER_AVAILABLE_STREAM_CONFIGURATIONS,   // enum[]       | ndk_public
    280     ANDROID_SCALER_AVAILABLE_MIN_FRAME_DURATIONS,     // int64[]      | ndk_public
    281     ANDROID_SCALER_AVAILABLE_STALL_DURATIONS,         // int64[]      | ndk_public
    282     ANDROID_SCALER_CROPPING_TYPE,                     // enum         | public
    283     ANDROID_SCALER_END,
    284 
    285     ANDROID_SENSOR_EXPOSURE_TIME =                    // int64        | public
    286             ANDROID_SENSOR_START,
    287     ANDROID_SENSOR_FRAME_DURATION,                    // int64        | public
    288     ANDROID_SENSOR_SENSITIVITY,                       // int32        | public
    289     ANDROID_SENSOR_REFERENCE_ILLUMINANT1,             // enum         | public
    290     ANDROID_SENSOR_REFERENCE_ILLUMINANT2,             // byte         | public
    291     ANDROID_SENSOR_CALIBRATION_TRANSFORM1,            // rational[]   | public
    292     ANDROID_SENSOR_CALIBRATION_TRANSFORM2,            // rational[]   | public
    293     ANDROID_SENSOR_COLOR_TRANSFORM1,                  // rational[]   | public
    294     ANDROID_SENSOR_COLOR_TRANSFORM2,                  // rational[]   | public
    295     ANDROID_SENSOR_FORWARD_MATRIX1,                   // rational[]   | public
    296     ANDROID_SENSOR_FORWARD_MATRIX2,                   // rational[]   | public
    297     ANDROID_SENSOR_BASE_GAIN_FACTOR,                  // rational     | system
    298     ANDROID_SENSOR_BLACK_LEVEL_PATTERN,               // int32[]      | public
    299     ANDROID_SENSOR_MAX_ANALOG_SENSITIVITY,            // int32        | public
    300     ANDROID_SENSOR_ORIENTATION,                       // int32        | public
    301     ANDROID_SENSOR_PROFILE_HUE_SAT_MAP_DIMENSIONS,    // int32[]      | system
    302     ANDROID_SENSOR_TIMESTAMP,                         // int64        | public
    303     ANDROID_SENSOR_TEMPERATURE,                       // float        | system
    304     ANDROID_SENSOR_NEUTRAL_COLOR_POINT,               // rational[]   | public
    305     ANDROID_SENSOR_NOISE_PROFILE,                     // double[]     | public
    306     ANDROID_SENSOR_PROFILE_HUE_SAT_MAP,               // float[]      | system
    307     ANDROID_SENSOR_PROFILE_TONE_CURVE,                // float[]      | system
    308     ANDROID_SENSOR_GREEN_SPLIT,                       // float        | public
    309     ANDROID_SENSOR_TEST_PATTERN_DATA,                 // int32[]      | public
    310     ANDROID_SENSOR_TEST_PATTERN_MODE,                 // enum         | public
    311     ANDROID_SENSOR_AVAILABLE_TEST_PATTERN_MODES,      // int32[]      | public
    312     ANDROID_SENSOR_ROLLING_SHUTTER_SKEW,              // int64        | public
    313     ANDROID_SENSOR_OPTICAL_BLACK_REGIONS,             // int32[]      | public
    314     ANDROID_SENSOR_DYNAMIC_BLACK_LEVEL,               // float[]      | public
    315     ANDROID_SENSOR_DYNAMIC_WHITE_LEVEL,               // int32        | public
    316     ANDROID_SENSOR_OPAQUE_RAW_SIZE,                   // int32[]      | system
    317     ANDROID_SENSOR_END,
    318 
    319     ANDROID_SENSOR_INFO_ACTIVE_ARRAY_SIZE =           // int32[]      | public
    320             ANDROID_SENSOR_INFO_START,
    321     ANDROID_SENSOR_INFO_SENSITIVITY_RANGE,            // int32[]      | public
    322     ANDROID_SENSOR_INFO_COLOR_FILTER_ARRANGEMENT,     // enum         | public
    323     ANDROID_SENSOR_INFO_EXPOSURE_TIME_RANGE,          // int64[]      | public
    324     ANDROID_SENSOR_INFO_MAX_FRAME_DURATION,           // int64        | public
    325     ANDROID_SENSOR_INFO_PHYSICAL_SIZE,                // float[]      | public
    326     ANDROID_SENSOR_INFO_PIXEL_ARRAY_SIZE,             // int32[]      | public
    327     ANDROID_SENSOR_INFO_WHITE_LEVEL,                  // int32        | public
    328     ANDROID_SENSOR_INFO_TIMESTAMP_SOURCE,             // enum         | public
    329     ANDROID_SENSOR_INFO_LENS_SHADING_APPLIED,         // enum         | public
    330     ANDROID_SENSOR_INFO_PRE_CORRECTION_ACTIVE_ARRAY_SIZE,
    331                                                       // int32[]      | public
    332     ANDROID_SENSOR_INFO_END,
    333 
    334     ANDROID_SHADING_MODE =                            // enum         | public
    335             ANDROID_SHADING_START,
    336     ANDROID_SHADING_STRENGTH,                         // byte         | system
    337     ANDROID_SHADING_AVAILABLE_MODES,                  // byte[]       | public
    338     ANDROID_SHADING_END,
    339 
    340     ANDROID_STATISTICS_FACE_DETECT_MODE =             // enum         | public
    341             ANDROID_STATISTICS_START,
    342     ANDROID_STATISTICS_HISTOGRAM_MODE,                // enum         | system
    343     ANDROID_STATISTICS_SHARPNESS_MAP_MODE,            // enum         | system
    344     ANDROID_STATISTICS_HOT_PIXEL_MAP_MODE,            // enum         | public
    345     ANDROID_STATISTICS_FACE_IDS,                      // int32[]      | ndk_public
    346     ANDROID_STATISTICS_FACE_LANDMARKS,                // int32[]      | ndk_public
    347     ANDROID_STATISTICS_FACE_RECTANGLES,               // int32[]      | ndk_public
    348     ANDROID_STATISTICS_FACE_SCORES,                   // byte[]       | ndk_public
    349     ANDROID_STATISTICS_HISTOGRAM,                     // int32[]      | system
    350     ANDROID_STATISTICS_SHARPNESS_MAP,                 // int32[]      | system
    351     ANDROID_STATISTICS_LENS_SHADING_CORRECTION_MAP,   // byte         | java_public
    352     ANDROID_STATISTICS_LENS_SHADING_MAP,              // float[]      | ndk_public
    353     ANDROID_STATISTICS_PREDICTED_COLOR_GAINS,         // float[]      | hidden
    354     ANDROID_STATISTICS_PREDICTED_COLOR_TRANSFORM,     // rational[]   | hidden
    355     ANDROID_STATISTICS_SCENE_FLICKER,                 // enum         | public
    356     ANDROID_STATISTICS_HOT_PIXEL_MAP,                 // int32[]      | public
    357     ANDROID_STATISTICS_LENS_SHADING_MAP_MODE,         // enum         | public
    358     ANDROID_STATISTICS_END,
    359 
    360     ANDROID_STATISTICS_INFO_AVAILABLE_FACE_DETECT_MODES =
    361                                                       // byte[]       | public
    362             ANDROID_STATISTICS_INFO_START,
    363     ANDROID_STATISTICS_INFO_HISTOGRAM_BUCKET_COUNT,   // int32        | system
    364     ANDROID_STATISTICS_INFO_MAX_FACE_COUNT,           // int32        | public
    365     ANDROID_STATISTICS_INFO_MAX_HISTOGRAM_COUNT,      // int32        | system
    366     ANDROID_STATISTICS_INFO_MAX_SHARPNESS_MAP_VALUE,  // int32        | system
    367     ANDROID_STATISTICS_INFO_SHARPNESS_MAP_SIZE,       // int32[]      | system
    368     ANDROID_STATISTICS_INFO_AVAILABLE_HOT_PIXEL_MAP_MODES,
    369                                                       // byte[]       | public
    370     ANDROID_STATISTICS_INFO_AVAILABLE_LENS_SHADING_MAP_MODES,
    371                                                       // byte[]       | public
    372     ANDROID_STATISTICS_INFO_END,
    373 
    374     ANDROID_TONEMAP_CURVE_BLUE =                      // float[]      | ndk_public
    375             ANDROID_TONEMAP_START,
    376     ANDROID_TONEMAP_CURVE_GREEN,                      // float[]      | ndk_public
    377     ANDROID_TONEMAP_CURVE_RED,                        // float[]      | ndk_public
    378     ANDROID_TONEMAP_MODE,                             // enum         | public
    379     ANDROID_TONEMAP_MAX_CURVE_POINTS,                 // int32        | public
    380     ANDROID_TONEMAP_AVAILABLE_TONE_MAP_MODES,         // byte[]       | public
    381     ANDROID_TONEMAP_GAMMA,                            // float        | public
    382     ANDROID_TONEMAP_PRESET_CURVE,                     // enum         | public
    383     ANDROID_TONEMAP_END,
    384 
    385     ANDROID_LED_TRANSMIT =                            // enum         | hidden
    386             ANDROID_LED_START,
    387     ANDROID_LED_AVAILABLE_LEDS,                       // enum[]       | hidden
    388     ANDROID_LED_END,
    389 
    390     ANDROID_INFO_SUPPORTED_HARDWARE_LEVEL =           // enum         | public
    391             ANDROID_INFO_START,
    392     ANDROID_INFO_END,
    393 
    394     ANDROID_BLACK_LEVEL_LOCK =                        // enum         | public
    395             ANDROID_BLACK_LEVEL_START,
    396     ANDROID_BLACK_LEVEL_END,
    397 
    398     ANDROID_SYNC_FRAME_NUMBER =                       // enum         | ndk_public
    399             ANDROID_SYNC_START,
    400     ANDROID_SYNC_MAX_LATENCY,                         // enum         | public
    401     ANDROID_SYNC_END,
    402 
    403     ANDROID_REPROCESS_EFFECTIVE_EXPOSURE_FACTOR =     // float        | java_public
    404             ANDROID_REPROCESS_START,
    405     ANDROID_REPROCESS_MAX_CAPTURE_STALL,              // int32        | java_public
    406     ANDROID_REPROCESS_END,
    407 
    408     ANDROID_DEPTH_MAX_DEPTH_SAMPLES =                 // int32        | system
    409             ANDROID_DEPTH_START,
    410     ANDROID_DEPTH_AVAILABLE_DEPTH_STREAM_CONFIGURATIONS,
    411                                                       // enum[]       | ndk_public
    412     ANDROID_DEPTH_AVAILABLE_DEPTH_MIN_FRAME_DURATIONS,// int64[]      | ndk_public
    413     ANDROID_DEPTH_AVAILABLE_DEPTH_STALL_DURATIONS,    // int64[]      | ndk_public
    414     ANDROID_DEPTH_DEPTH_IS_EXCLUSIVE,                 // enum         | public
    415     ANDROID_DEPTH_END,
    416 
    417 } camera_metadata_tag_t;
    418 
    419 /**
    420  * Enumeration definitions for the various entries that need them
    421  */
    422 
    423 // ANDROID_COLOR_CORRECTION_MODE
    424 typedef enum camera_metadata_enum_android_color_correction_mode {
    425     ANDROID_COLOR_CORRECTION_MODE_TRANSFORM_MATRIX,
    426     ANDROID_COLOR_CORRECTION_MODE_FAST,
    427     ANDROID_COLOR_CORRECTION_MODE_HIGH_QUALITY,
    428 } camera_metadata_enum_android_color_correction_mode_t;
    429 
    430 // ANDROID_COLOR_CORRECTION_ABERRATION_MODE
    431 typedef enum camera_metadata_enum_android_color_correction_aberration_mode {
    432     ANDROID_COLOR_CORRECTION_ABERRATION_MODE_OFF,
    433     ANDROID_COLOR_CORRECTION_ABERRATION_MODE_FAST,
    434     ANDROID_COLOR_CORRECTION_ABERRATION_MODE_HIGH_QUALITY,
    435 } camera_metadata_enum_android_color_correction_aberration_mode_t;
    436 
    437 
    438 // ANDROID_CONTROL_AE_ANTIBANDING_MODE
    439 typedef enum camera_metadata_enum_android_control_ae_antibanding_mode {
    440     ANDROID_CONTROL_AE_ANTIBANDING_MODE_OFF,
    441     ANDROID_CONTROL_AE_ANTIBANDING_MODE_50HZ,
    442     ANDROID_CONTROL_AE_ANTIBANDING_MODE_60HZ,
    443     ANDROID_CONTROL_AE_ANTIBANDING_MODE_AUTO,
    444 } camera_metadata_enum_android_control_ae_antibanding_mode_t;
    445 
    446 // ANDROID_CONTROL_AE_LOCK
    447 typedef enum camera_metadata_enum_android_control_ae_lock {
    448     ANDROID_CONTROL_AE_LOCK_OFF,
    449     ANDROID_CONTROL_AE_LOCK_ON,
    450 } camera_metadata_enum_android_control_ae_lock_t;
    451 
    452 // ANDROID_CONTROL_AE_MODE
    453 typedef enum camera_metadata_enum_android_control_ae_mode {
    454     ANDROID_CONTROL_AE_MODE_OFF,
    455     ANDROID_CONTROL_AE_MODE_ON,
    456     ANDROID_CONTROL_AE_MODE_ON_AUTO_FLASH,
    457     ANDROID_CONTROL_AE_MODE_ON_ALWAYS_FLASH,
    458     ANDROID_CONTROL_AE_MODE_ON_AUTO_FLASH_REDEYE,
    459 } camera_metadata_enum_android_control_ae_mode_t;
    460 
    461 // ANDROID_CONTROL_AE_PRECAPTURE_TRIGGER
    462 typedef enum camera_metadata_enum_android_control_ae_precapture_trigger {
    463     ANDROID_CONTROL_AE_PRECAPTURE_TRIGGER_IDLE,
    464     ANDROID_CONTROL_AE_PRECAPTURE_TRIGGER_START,
    465     ANDROID_CONTROL_AE_PRECAPTURE_TRIGGER_CANCEL,
    466 } camera_metadata_enum_android_control_ae_precapture_trigger_t;
    467 
    468 // ANDROID_CONTROL_AF_MODE
    469 typedef enum camera_metadata_enum_android_control_af_mode {
    470     ANDROID_CONTROL_AF_MODE_OFF,
    471     ANDROID_CONTROL_AF_MODE_AUTO,
    472     ANDROID_CONTROL_AF_MODE_MACRO,
    473     ANDROID_CONTROL_AF_MODE_CONTINUOUS_VIDEO,
    474     ANDROID_CONTROL_AF_MODE_CONTINUOUS_PICTURE,
    475     ANDROID_CONTROL_AF_MODE_EDOF,
    476 } camera_metadata_enum_android_control_af_mode_t;
    477 
    478 // ANDROID_CONTROL_AF_TRIGGER
    479 typedef enum camera_metadata_enum_android_control_af_trigger {
    480     ANDROID_CONTROL_AF_TRIGGER_IDLE,
    481     ANDROID_CONTROL_AF_TRIGGER_START,
    482     ANDROID_CONTROL_AF_TRIGGER_CANCEL,
    483 } camera_metadata_enum_android_control_af_trigger_t;
    484 
    485 // ANDROID_CONTROL_AWB_LOCK
    486 typedef enum camera_metadata_enum_android_control_awb_lock {
    487     ANDROID_CONTROL_AWB_LOCK_OFF,
    488     ANDROID_CONTROL_AWB_LOCK_ON,
    489 } camera_metadata_enum_android_control_awb_lock_t;
    490 
    491 // ANDROID_CONTROL_AWB_MODE
    492 typedef enum camera_metadata_enum_android_control_awb_mode {
    493     ANDROID_CONTROL_AWB_MODE_OFF,
    494     ANDROID_CONTROL_AWB_MODE_AUTO,
    495     ANDROID_CONTROL_AWB_MODE_INCANDESCENT,
    496     ANDROID_CONTROL_AWB_MODE_FLUORESCENT,
    497     ANDROID_CONTROL_AWB_MODE_WARM_FLUORESCENT,
    498     ANDROID_CONTROL_AWB_MODE_DAYLIGHT,
    499     ANDROID_CONTROL_AWB_MODE_CLOUDY_DAYLIGHT,
    500     ANDROID_CONTROL_AWB_MODE_TWILIGHT,
    501     ANDROID_CONTROL_AWB_MODE_SHADE,
    502 } camera_metadata_enum_android_control_awb_mode_t;
    503 
    504 // ANDROID_CONTROL_CAPTURE_INTENT
    505 typedef enum camera_metadata_enum_android_control_capture_intent {
    506     ANDROID_CONTROL_CAPTURE_INTENT_CUSTOM,
    507     ANDROID_CONTROL_CAPTURE_INTENT_PREVIEW,
    508     ANDROID_CONTROL_CAPTURE_INTENT_STILL_CAPTURE,
    509     ANDROID_CONTROL_CAPTURE_INTENT_VIDEO_RECORD,
    510     ANDROID_CONTROL_CAPTURE_INTENT_VIDEO_SNAPSHOT,
    511     ANDROID_CONTROL_CAPTURE_INTENT_ZERO_SHUTTER_LAG,
    512     ANDROID_CONTROL_CAPTURE_INTENT_MANUAL,
    513 } camera_metadata_enum_android_control_capture_intent_t;
    514 
    515 // ANDROID_CONTROL_EFFECT_MODE
    516 typedef enum camera_metadata_enum_android_control_effect_mode {
    517     ANDROID_CONTROL_EFFECT_MODE_OFF,
    518     ANDROID_CONTROL_EFFECT_MODE_MONO,
    519     ANDROID_CONTROL_EFFECT_MODE_NEGATIVE,
    520     ANDROID_CONTROL_EFFECT_MODE_SOLARIZE,
    521     ANDROID_CONTROL_EFFECT_MODE_SEPIA,
    522     ANDROID_CONTROL_EFFECT_MODE_POSTERIZE,
    523     ANDROID_CONTROL_EFFECT_MODE_WHITEBOARD,
    524     ANDROID_CONTROL_EFFECT_MODE_BLACKBOARD,
    525     ANDROID_CONTROL_EFFECT_MODE_AQUA,
    526 } camera_metadata_enum_android_control_effect_mode_t;
    527 
    528 // ANDROID_CONTROL_MODE
    529 typedef enum camera_metadata_enum_android_control_mode {
    530     ANDROID_CONTROL_MODE_OFF,
    531     ANDROID_CONTROL_MODE_AUTO,
    532     ANDROID_CONTROL_MODE_USE_SCENE_MODE,
    533     ANDROID_CONTROL_MODE_OFF_KEEP_STATE,
    534 } camera_metadata_enum_android_control_mode_t;
    535 
    536 // ANDROID_CONTROL_SCENE_MODE
    537 typedef enum camera_metadata_enum_android_control_scene_mode {
    538     ANDROID_CONTROL_SCENE_MODE_DISABLED                         = 0,
    539     ANDROID_CONTROL_SCENE_MODE_FACE_PRIORITY,
    540     ANDROID_CONTROL_SCENE_MODE_ACTION,
    541     ANDROID_CONTROL_SCENE_MODE_PORTRAIT,
    542     ANDROID_CONTROL_SCENE_MODE_LANDSCAPE,
    543     ANDROID_CONTROL_SCENE_MODE_NIGHT,
    544     ANDROID_CONTROL_SCENE_MODE_NIGHT_PORTRAIT,
    545     ANDROID_CONTROL_SCENE_MODE_THEATRE,
    546     ANDROID_CONTROL_SCENE_MODE_BEACH,
    547     ANDROID_CONTROL_SCENE_MODE_SNOW,
    548     ANDROID_CONTROL_SCENE_MODE_SUNSET,
    549     ANDROID_CONTROL_SCENE_MODE_STEADYPHOTO,
    550     ANDROID_CONTROL_SCENE_MODE_FIREWORKS,
    551     ANDROID_CONTROL_SCENE_MODE_SPORTS,
    552     ANDROID_CONTROL_SCENE_MODE_PARTY,
    553     ANDROID_CONTROL_SCENE_MODE_CANDLELIGHT,
    554     ANDROID_CONTROL_SCENE_MODE_BARCODE,
    555     ANDROID_CONTROL_SCENE_MODE_HIGH_SPEED_VIDEO,
    556     ANDROID_CONTROL_SCENE_MODE_HDR,
    557     ANDROID_CONTROL_SCENE_MODE_FACE_PRIORITY_LOW_LIGHT,
    558     ANDROID_CONTROL_SCENE_MODE_DEVICE_CUSTOM_START              = 100,
    559     ANDROID_CONTROL_SCENE_MODE_DEVICE_CUSTOM_END                = 127,
    560 } camera_metadata_enum_android_control_scene_mode_t;
    561 
    562 // ANDROID_CONTROL_VIDEO_STABILIZATION_MODE
    563 typedef enum camera_metadata_enum_android_control_video_stabilization_mode {
    564     ANDROID_CONTROL_VIDEO_STABILIZATION_MODE_OFF,
    565     ANDROID_CONTROL_VIDEO_STABILIZATION_MODE_ON,
    566 } camera_metadata_enum_android_control_video_stabilization_mode_t;
    567 
    568 // ANDROID_CONTROL_AE_STATE
    569 typedef enum camera_metadata_enum_android_control_ae_state {
    570     ANDROID_CONTROL_AE_STATE_INACTIVE,
    571     ANDROID_CONTROL_AE_STATE_SEARCHING,
    572     ANDROID_CONTROL_AE_STATE_CONVERGED,
    573     ANDROID_CONTROL_AE_STATE_LOCKED,
    574     ANDROID_CONTROL_AE_STATE_FLASH_REQUIRED,
    575     ANDROID_CONTROL_AE_STATE_PRECAPTURE,
    576 } camera_metadata_enum_android_control_ae_state_t;
    577 
    578 // ANDROID_CONTROL_AF_STATE
    579 typedef enum camera_metadata_enum_android_control_af_state {
    580     ANDROID_CONTROL_AF_STATE_INACTIVE,
    581     ANDROID_CONTROL_AF_STATE_PASSIVE_SCAN,
    582     ANDROID_CONTROL_AF_STATE_PASSIVE_FOCUSED,
    583     ANDROID_CONTROL_AF_STATE_ACTIVE_SCAN,
    584     ANDROID_CONTROL_AF_STATE_FOCUSED_LOCKED,
    585     ANDROID_CONTROL_AF_STATE_NOT_FOCUSED_LOCKED,
    586     ANDROID_CONTROL_AF_STATE_PASSIVE_UNFOCUSED,
    587 } camera_metadata_enum_android_control_af_state_t;
    588 
    589 // ANDROID_CONTROL_AWB_STATE
    590 typedef enum camera_metadata_enum_android_control_awb_state {
    591     ANDROID_CONTROL_AWB_STATE_INACTIVE,
    592     ANDROID_CONTROL_AWB_STATE_SEARCHING,
    593     ANDROID_CONTROL_AWB_STATE_CONVERGED,
    594     ANDROID_CONTROL_AWB_STATE_LOCKED,
    595 } camera_metadata_enum_android_control_awb_state_t;
    596 
    597 // ANDROID_CONTROL_AE_LOCK_AVAILABLE
    598 typedef enum camera_metadata_enum_android_control_ae_lock_available {
    599     ANDROID_CONTROL_AE_LOCK_AVAILABLE_FALSE,
    600     ANDROID_CONTROL_AE_LOCK_AVAILABLE_TRUE,
    601 } camera_metadata_enum_android_control_ae_lock_available_t;
    602 
    603 // ANDROID_CONTROL_AWB_LOCK_AVAILABLE
    604 typedef enum camera_metadata_enum_android_control_awb_lock_available {
    605     ANDROID_CONTROL_AWB_LOCK_AVAILABLE_FALSE,
    606     ANDROID_CONTROL_AWB_LOCK_AVAILABLE_TRUE,
    607 } camera_metadata_enum_android_control_awb_lock_available_t;
    608 
    609 // ANDROID_CONTROL_ENABLE_ZSL
    610 typedef enum camera_metadata_enum_android_control_enable_zsl {
    611     ANDROID_CONTROL_ENABLE_ZSL_FALSE,
    612     ANDROID_CONTROL_ENABLE_ZSL_TRUE,
    613 } camera_metadata_enum_android_control_enable_zsl_t;
    614 
    615 
    616 // ANDROID_DEMOSAIC_MODE
    617 typedef enum camera_metadata_enum_android_demosaic_mode {
    618     ANDROID_DEMOSAIC_MODE_FAST,
    619     ANDROID_DEMOSAIC_MODE_HIGH_QUALITY,
    620 } camera_metadata_enum_android_demosaic_mode_t;
    621 
    622 
    623 // ANDROID_EDGE_MODE
    624 typedef enum camera_metadata_enum_android_edge_mode {
    625     ANDROID_EDGE_MODE_OFF,
    626     ANDROID_EDGE_MODE_FAST,
    627     ANDROID_EDGE_MODE_HIGH_QUALITY,
    628     ANDROID_EDGE_MODE_ZERO_SHUTTER_LAG,
    629 } camera_metadata_enum_android_edge_mode_t;
    630 
    631 
    632 // ANDROID_FLASH_MODE
    633 typedef enum camera_metadata_enum_android_flash_mode {
    634     ANDROID_FLASH_MODE_OFF,
    635     ANDROID_FLASH_MODE_SINGLE,
    636     ANDROID_FLASH_MODE_TORCH,
    637 } camera_metadata_enum_android_flash_mode_t;
    638 
    639 // ANDROID_FLASH_STATE
    640 typedef enum camera_metadata_enum_android_flash_state {
    641     ANDROID_FLASH_STATE_UNAVAILABLE,
    642     ANDROID_FLASH_STATE_CHARGING,
    643     ANDROID_FLASH_STATE_READY,
    644     ANDROID_FLASH_STATE_FIRED,
    645     ANDROID_FLASH_STATE_PARTIAL,
    646 } camera_metadata_enum_android_flash_state_t;
    647 
    648 
    649 // ANDROID_FLASH_INFO_AVAILABLE
    650 typedef enum camera_metadata_enum_android_flash_info_available {
    651     ANDROID_FLASH_INFO_AVAILABLE_FALSE,
    652     ANDROID_FLASH_INFO_AVAILABLE_TRUE,
    653 } camera_metadata_enum_android_flash_info_available_t;
    654 
    655 
    656 // ANDROID_HOT_PIXEL_MODE
    657 typedef enum camera_metadata_enum_android_hot_pixel_mode {
    658     ANDROID_HOT_PIXEL_MODE_OFF,
    659     ANDROID_HOT_PIXEL_MODE_FAST,
    660     ANDROID_HOT_PIXEL_MODE_HIGH_QUALITY,
    661 } camera_metadata_enum_android_hot_pixel_mode_t;
    662 
    663 
    664 
    665 // ANDROID_LENS_OPTICAL_STABILIZATION_MODE
    666 typedef enum camera_metadata_enum_android_lens_optical_stabilization_mode {
    667     ANDROID_LENS_OPTICAL_STABILIZATION_MODE_OFF,
    668     ANDROID_LENS_OPTICAL_STABILIZATION_MODE_ON,
    669 } camera_metadata_enum_android_lens_optical_stabilization_mode_t;
    670 
    671 // ANDROID_LENS_FACING
    672 typedef enum camera_metadata_enum_android_lens_facing {
    673     ANDROID_LENS_FACING_FRONT,
    674     ANDROID_LENS_FACING_BACK,
    675     ANDROID_LENS_FACING_EXTERNAL,
    676 } camera_metadata_enum_android_lens_facing_t;
    677 
    678 // ANDROID_LENS_STATE
    679 typedef enum camera_metadata_enum_android_lens_state {
    680     ANDROID_LENS_STATE_STATIONARY,
    681     ANDROID_LENS_STATE_MOVING,
    682 } camera_metadata_enum_android_lens_state_t;
    683 
    684 
    685 // ANDROID_LENS_INFO_FOCUS_DISTANCE_CALIBRATION
    686 typedef enum camera_metadata_enum_android_lens_info_focus_distance_calibration {
    687     ANDROID_LENS_INFO_FOCUS_DISTANCE_CALIBRATION_UNCALIBRATED,
    688     ANDROID_LENS_INFO_FOCUS_DISTANCE_CALIBRATION_APPROXIMATE,
    689     ANDROID_LENS_INFO_FOCUS_DISTANCE_CALIBRATION_CALIBRATED,
    690 } camera_metadata_enum_android_lens_info_focus_distance_calibration_t;
    691 
    692 
    693 // ANDROID_NOISE_REDUCTION_MODE
    694 typedef enum camera_metadata_enum_android_noise_reduction_mode {
    695     ANDROID_NOISE_REDUCTION_MODE_OFF,
    696     ANDROID_NOISE_REDUCTION_MODE_FAST,
    697     ANDROID_NOISE_REDUCTION_MODE_HIGH_QUALITY,
    698     ANDROID_NOISE_REDUCTION_MODE_MINIMAL,
    699     ANDROID_NOISE_REDUCTION_MODE_ZERO_SHUTTER_LAG,
    700 } camera_metadata_enum_android_noise_reduction_mode_t;
    701 
    702 
    703 // ANDROID_QUIRKS_PARTIAL_RESULT
    704 typedef enum camera_metadata_enum_android_quirks_partial_result {
    705     ANDROID_QUIRKS_PARTIAL_RESULT_FINAL,
    706     ANDROID_QUIRKS_PARTIAL_RESULT_PARTIAL,
    707 } camera_metadata_enum_android_quirks_partial_result_t;
    708 
    709 
    710 // ANDROID_REQUEST_METADATA_MODE
    711 typedef enum camera_metadata_enum_android_request_metadata_mode {
    712     ANDROID_REQUEST_METADATA_MODE_NONE,
    713     ANDROID_REQUEST_METADATA_MODE_FULL,
    714 } camera_metadata_enum_android_request_metadata_mode_t;
    715 
    716 // ANDROID_REQUEST_TYPE
    717 typedef enum camera_metadata_enum_android_request_type {
    718     ANDROID_REQUEST_TYPE_CAPTURE,
    719     ANDROID_REQUEST_TYPE_REPROCESS,
    720 } camera_metadata_enum_android_request_type_t;
    721 
    722 // ANDROID_REQUEST_AVAILABLE_CAPABILITIES
    723 typedef enum camera_metadata_enum_android_request_available_capabilities {
    724     ANDROID_REQUEST_AVAILABLE_CAPABILITIES_BACKWARD_COMPATIBLE,
    725     ANDROID_REQUEST_AVAILABLE_CAPABILITIES_MANUAL_SENSOR,
    726     ANDROID_REQUEST_AVAILABLE_CAPABILITIES_MANUAL_POST_PROCESSING,
    727     ANDROID_REQUEST_AVAILABLE_CAPABILITIES_RAW,
    728     ANDROID_REQUEST_AVAILABLE_CAPABILITIES_PRIVATE_REPROCESSING,
    729     ANDROID_REQUEST_AVAILABLE_CAPABILITIES_READ_SENSOR_SETTINGS,
    730     ANDROID_REQUEST_AVAILABLE_CAPABILITIES_BURST_CAPTURE,
    731     ANDROID_REQUEST_AVAILABLE_CAPABILITIES_YUV_REPROCESSING,
    732     ANDROID_REQUEST_AVAILABLE_CAPABILITIES_DEPTH_OUTPUT,
    733     ANDROID_REQUEST_AVAILABLE_CAPABILITIES_CONSTRAINED_HIGH_SPEED_VIDEO,
    734 } camera_metadata_enum_android_request_available_capabilities_t;
    735 
    736 
    737 // ANDROID_SCALER_AVAILABLE_FORMATS
    738 typedef enum camera_metadata_enum_android_scaler_available_formats {
    739     ANDROID_SCALER_AVAILABLE_FORMATS_RAW16                      = 0x20,
    740     ANDROID_SCALER_AVAILABLE_FORMATS_RAW_OPAQUE                 = 0x24,
    741     ANDROID_SCALER_AVAILABLE_FORMATS_YV12                       = 0x32315659,
    742     ANDROID_SCALER_AVAILABLE_FORMATS_YCrCb_420_SP               = 0x11,
    743     ANDROID_SCALER_AVAILABLE_FORMATS_IMPLEMENTATION_DEFINED     = 0x22,
    744     ANDROID_SCALER_AVAILABLE_FORMATS_YCbCr_420_888              = 0x23,
    745     ANDROID_SCALER_AVAILABLE_FORMATS_BLOB                       = 0x21,
    746 } camera_metadata_enum_android_scaler_available_formats_t;
    747 
    748 // ANDROID_SCALER_AVAILABLE_STREAM_CONFIGURATIONS
    749 typedef enum camera_metadata_enum_android_scaler_available_stream_configurations {
    750     ANDROID_SCALER_AVAILABLE_STREAM_CONFIGURATIONS_OUTPUT,
    751     ANDROID_SCALER_AVAILABLE_STREAM_CONFIGURATIONS_INPUT,
    752 } camera_metadata_enum_android_scaler_available_stream_configurations_t;
    753 
    754 // ANDROID_SCALER_CROPPING_TYPE
    755 typedef enum camera_metadata_enum_android_scaler_cropping_type {
    756     ANDROID_SCALER_CROPPING_TYPE_CENTER_ONLY,
    757     ANDROID_SCALER_CROPPING_TYPE_FREEFORM,
    758 } camera_metadata_enum_android_scaler_cropping_type_t;
    759 
    760 
    761 // ANDROID_SENSOR_REFERENCE_ILLUMINANT1
    762 typedef enum camera_metadata_enum_android_sensor_reference_illuminant1 {
    763     ANDROID_SENSOR_REFERENCE_ILLUMINANT1_DAYLIGHT               = 1,
    764     ANDROID_SENSOR_REFERENCE_ILLUMINANT1_FLUORESCENT            = 2,
    765     ANDROID_SENSOR_REFERENCE_ILLUMINANT1_TUNGSTEN               = 3,
    766     ANDROID_SENSOR_REFERENCE_ILLUMINANT1_FLASH                  = 4,
    767     ANDROID_SENSOR_REFERENCE_ILLUMINANT1_FINE_WEATHER           = 9,
    768     ANDROID_SENSOR_REFERENCE_ILLUMINANT1_CLOUDY_WEATHER         = 10,
    769     ANDROID_SENSOR_REFERENCE_ILLUMINANT1_SHADE                  = 11,
    770     ANDROID_SENSOR_REFERENCE_ILLUMINANT1_DAYLIGHT_FLUORESCENT   = 12,
    771     ANDROID_SENSOR_REFERENCE_ILLUMINANT1_DAY_WHITE_FLUORESCENT  = 13,
    772     ANDROID_SENSOR_REFERENCE_ILLUMINANT1_COOL_WHITE_FLUORESCENT = 14,
    773     ANDROID_SENSOR_REFERENCE_ILLUMINANT1_WHITE_FLUORESCENT      = 15,
    774     ANDROID_SENSOR_REFERENCE_ILLUMINANT1_STANDARD_A             = 17,
    775     ANDROID_SENSOR_REFERENCE_ILLUMINANT1_STANDARD_B             = 18,
    776     ANDROID_SENSOR_REFERENCE_ILLUMINANT1_STANDARD_C             = 19,
    777     ANDROID_SENSOR_REFERENCE_ILLUMINANT1_D55                    = 20,
    778     ANDROID_SENSOR_REFERENCE_ILLUMINANT1_D65                    = 21,
    779     ANDROID_SENSOR_REFERENCE_ILLUMINANT1_D75                    = 22,
    780     ANDROID_SENSOR_REFERENCE_ILLUMINANT1_D50                    = 23,
    781     ANDROID_SENSOR_REFERENCE_ILLUMINANT1_ISO_STUDIO_TUNGSTEN    = 24,
    782 } camera_metadata_enum_android_sensor_reference_illuminant1_t;
    783 
    784 // ANDROID_SENSOR_TEST_PATTERN_MODE
    785 typedef enum camera_metadata_enum_android_sensor_test_pattern_mode {
    786     ANDROID_SENSOR_TEST_PATTERN_MODE_OFF,
    787     ANDROID_SENSOR_TEST_PATTERN_MODE_SOLID_COLOR,
    788     ANDROID_SENSOR_TEST_PATTERN_MODE_COLOR_BARS,
    789     ANDROID_SENSOR_TEST_PATTERN_MODE_COLOR_BARS_FADE_TO_GRAY,
    790     ANDROID_SENSOR_TEST_PATTERN_MODE_PN9,
    791     ANDROID_SENSOR_TEST_PATTERN_MODE_CUSTOM1                    = 256,
    792 } camera_metadata_enum_android_sensor_test_pattern_mode_t;
    793 
    794 
    795 // ANDROID_SENSOR_INFO_COLOR_FILTER_ARRANGEMENT
    796 typedef enum camera_metadata_enum_android_sensor_info_color_filter_arrangement {
    797     ANDROID_SENSOR_INFO_COLOR_FILTER_ARRANGEMENT_RGGB,
    798     ANDROID_SENSOR_INFO_COLOR_FILTER_ARRANGEMENT_GRBG,
    799     ANDROID_SENSOR_INFO_COLOR_FILTER_ARRANGEMENT_GBRG,
    800     ANDROID_SENSOR_INFO_COLOR_FILTER_ARRANGEMENT_BGGR,
    801     ANDROID_SENSOR_INFO_COLOR_FILTER_ARRANGEMENT_RGB,
    802 } camera_metadata_enum_android_sensor_info_color_filter_arrangement_t;
    803 
    804 // ANDROID_SENSOR_INFO_TIMESTAMP_SOURCE
    805 typedef enum camera_metadata_enum_android_sensor_info_timestamp_source {
    806     ANDROID_SENSOR_INFO_TIMESTAMP_SOURCE_UNKNOWN,
    807     ANDROID_SENSOR_INFO_TIMESTAMP_SOURCE_REALTIME,
    808 } camera_metadata_enum_android_sensor_info_timestamp_source_t;
    809 
    810 // ANDROID_SENSOR_INFO_LENS_SHADING_APPLIED
    811 typedef enum camera_metadata_enum_android_sensor_info_lens_shading_applied {
    812     ANDROID_SENSOR_INFO_LENS_SHADING_APPLIED_FALSE,
    813     ANDROID_SENSOR_INFO_LENS_SHADING_APPLIED_TRUE,
    814 } camera_metadata_enum_android_sensor_info_lens_shading_applied_t;
    815 
    816 
    817 // ANDROID_SHADING_MODE
    818 typedef enum camera_metadata_enum_android_shading_mode {
    819     ANDROID_SHADING_MODE_OFF,
    820     ANDROID_SHADING_MODE_FAST,
    821     ANDROID_SHADING_MODE_HIGH_QUALITY,
    822 } camera_metadata_enum_android_shading_mode_t;
    823 
    824 
    825 // ANDROID_STATISTICS_FACE_DETECT_MODE
    826 typedef enum camera_metadata_enum_android_statistics_face_detect_mode {
    827     ANDROID_STATISTICS_FACE_DETECT_MODE_OFF,
    828     ANDROID_STATISTICS_FACE_DETECT_MODE_SIMPLE,
    829     ANDROID_STATISTICS_FACE_DETECT_MODE_FULL,
    830 } camera_metadata_enum_android_statistics_face_detect_mode_t;
    831 
    832 // ANDROID_STATISTICS_HISTOGRAM_MODE
    833 typedef enum camera_metadata_enum_android_statistics_histogram_mode {
    834     ANDROID_STATISTICS_HISTOGRAM_MODE_OFF,
    835     ANDROID_STATISTICS_HISTOGRAM_MODE_ON,
    836 } camera_metadata_enum_android_statistics_histogram_mode_t;
    837 
    838 // ANDROID_STATISTICS_SHARPNESS_MAP_MODE
    839 typedef enum camera_metadata_enum_android_statistics_sharpness_map_mode {
    840     ANDROID_STATISTICS_SHARPNESS_MAP_MODE_OFF,
    841     ANDROID_STATISTICS_SHARPNESS_MAP_MODE_ON,
    842 } camera_metadata_enum_android_statistics_sharpness_map_mode_t;
    843 
    844 // ANDROID_STATISTICS_HOT_PIXEL_MAP_MODE
    845 typedef enum camera_metadata_enum_android_statistics_hot_pixel_map_mode {
    846     ANDROID_STATISTICS_HOT_PIXEL_MAP_MODE_OFF,
    847     ANDROID_STATISTICS_HOT_PIXEL_MAP_MODE_ON,
    848 } camera_metadata_enum_android_statistics_hot_pixel_map_mode_t;
    849 
    850 // ANDROID_STATISTICS_SCENE_FLICKER
    851 typedef enum camera_metadata_enum_android_statistics_scene_flicker {
    852     ANDROID_STATISTICS_SCENE_FLICKER_NONE,
    853     ANDROID_STATISTICS_SCENE_FLICKER_50HZ,
    854     ANDROID_STATISTICS_SCENE_FLICKER_60HZ,
    855 } camera_metadata_enum_android_statistics_scene_flicker_t;
    856 
    857 // ANDROID_STATISTICS_LENS_SHADING_MAP_MODE
    858 typedef enum camera_metadata_enum_android_statistics_lens_shading_map_mode {
    859     ANDROID_STATISTICS_LENS_SHADING_MAP_MODE_OFF,
    860     ANDROID_STATISTICS_LENS_SHADING_MAP_MODE_ON,
    861 } camera_metadata_enum_android_statistics_lens_shading_map_mode_t;
    862 
    863 
    864 
    865 // ANDROID_TONEMAP_MODE
    866 typedef enum camera_metadata_enum_android_tonemap_mode {
    867     ANDROID_TONEMAP_MODE_CONTRAST_CURVE,
    868     ANDROID_TONEMAP_MODE_FAST,
    869     ANDROID_TONEMAP_MODE_HIGH_QUALITY,
    870     ANDROID_TONEMAP_MODE_GAMMA_VALUE,
    871     ANDROID_TONEMAP_MODE_PRESET_CURVE,
    872 } camera_metadata_enum_android_tonemap_mode_t;
    873 
    874 // ANDROID_TONEMAP_PRESET_CURVE
    875 typedef enum camera_metadata_enum_android_tonemap_preset_curve {
    876     ANDROID_TONEMAP_PRESET_CURVE_SRGB,
    877     ANDROID_TONEMAP_PRESET_CURVE_REC709,
    878 } camera_metadata_enum_android_tonemap_preset_curve_t;
    879 
    880 
    881 // ANDROID_LED_TRANSMIT
    882 typedef enum camera_metadata_enum_android_led_transmit {
    883     ANDROID_LED_TRANSMIT_OFF,
    884     ANDROID_LED_TRANSMIT_ON,
    885 } camera_metadata_enum_android_led_transmit_t;
    886 
    887 // ANDROID_LED_AVAILABLE_LEDS
    888 typedef enum camera_metadata_enum_android_led_available_leds {
    889     ANDROID_LED_AVAILABLE_LEDS_TRANSMIT,
    890 } camera_metadata_enum_android_led_available_leds_t;
    891 
    892 
    893 // ANDROID_INFO_SUPPORTED_HARDWARE_LEVEL
    894 typedef enum camera_metadata_enum_android_info_supported_hardware_level {
    895     ANDROID_INFO_SUPPORTED_HARDWARE_LEVEL_LIMITED,
    896     ANDROID_INFO_SUPPORTED_HARDWARE_LEVEL_FULL,
    897     ANDROID_INFO_SUPPORTED_HARDWARE_LEVEL_LEGACY,
    898     ANDROID_INFO_SUPPORTED_HARDWARE_LEVEL_3,
    899 } camera_metadata_enum_android_info_supported_hardware_level_t;
    900 
    901 
    902 // ANDROID_BLACK_LEVEL_LOCK
    903 typedef enum camera_metadata_enum_android_black_level_lock {
    904     ANDROID_BLACK_LEVEL_LOCK_OFF,
    905     ANDROID_BLACK_LEVEL_LOCK_ON,
    906 } camera_metadata_enum_android_black_level_lock_t;
    907 
    908 
    909 // ANDROID_SYNC_FRAME_NUMBER
    910 typedef enum camera_metadata_enum_android_sync_frame_number {
    911     ANDROID_SYNC_FRAME_NUMBER_CONVERGING                        = -1,
    912     ANDROID_SYNC_FRAME_NUMBER_UNKNOWN                           = -2,
    913 } camera_metadata_enum_android_sync_frame_number_t;
    914 
    915 // ANDROID_SYNC_MAX_LATENCY
    916 typedef enum camera_metadata_enum_android_sync_max_latency {
    917     ANDROID_SYNC_MAX_LATENCY_PER_FRAME_CONTROL                  = 0,
    918     ANDROID_SYNC_MAX_LATENCY_UNKNOWN                            = -1,
    919 } camera_metadata_enum_android_sync_max_latency_t;
    920 
    921 
    922 
    923 // ANDROID_DEPTH_AVAILABLE_DEPTH_STREAM_CONFIGURATIONS
    924 typedef enum camera_metadata_enum_android_depth_available_depth_stream_configurations {
    925     ANDROID_DEPTH_AVAILABLE_DEPTH_STREAM_CONFIGURATIONS_OUTPUT,
    926     ANDROID_DEPTH_AVAILABLE_DEPTH_STREAM_CONFIGURATIONS_INPUT,
    927 } camera_metadata_enum_android_depth_available_depth_stream_configurations_t;
    928 
    929 // ANDROID_DEPTH_DEPTH_IS_EXCLUSIVE
    930 typedef enum camera_metadata_enum_android_depth_depth_is_exclusive {
    931     ANDROID_DEPTH_DEPTH_IS_EXCLUSIVE_FALSE,
    932     ANDROID_DEPTH_DEPTH_IS_EXCLUSIVE_TRUE,
    933 } camera_metadata_enum_android_depth_depth_is_exclusive_t;
    934 
    935 
    936