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 /** TODO: Nearly every enum in this file needs a description */
     24 
     25 /**
     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.
     30  */
     31 enum {
     32     ANDROID_REQUEST = 0,
     33     ANDROID_LENS,
     34     ANDROID_LENS_INFO,
     35     ANDROID_SENSOR,
     36     ANDROID_SENSOR_INFO,
     37     ANDROID_FLASH,
     38     ANDROID_FLASH_INFO,
     39     ANDROID_HOT_PIXEL,
     40     ANDROID_HOT_PIXEL_INFO,
     41     ANDROID_DEMOSAIC,
     42     ANDROID_DEMOSAIC_INFO,
     43     ANDROID_NOISE,
     44     ANDROID_NOISE_INFO,
     45     ANDROID_SHADING,
     46     ANDROID_SHADING_INFO,
     47     ANDROID_GEOMETRIC,
     48     ANDROID_GEOMETRIC_INFO,
     49     ANDROID_COLOR,
     50     ANDROID_COLOR_INFO,
     51     ANDROID_TONEMAP,
     52     ANDROID_TONEMAP_INFO,
     53     ANDROID_EDGE,
     54     ANDROID_EDGE_INFO,
     55     ANDROID_SCALER,
     56     ANDROID_SCALER_INFO,
     57     ANDROID_JPEG,
     58     ANDROID_JPEG_INFO,
     59     ANDROID_STATS,
     60     ANDROID_STATS_INFO,
     61     ANDROID_CONTROL,
     62     ANDROID_CONTROL_INFO,
     63     ANDROID_QUIRKS_INFO,
     64     ANDROID_SECTION_COUNT,
     65 
     66     VENDOR_SECTION = 0x8000
     67 };
     68 
     69 /**
     70  * Hierarchy positions in enum space. All vendor extension tags must be
     71  * defined with tag >= VENDOR_SECTION_START
     72  */
     73 enum {
     74     ANDROID_REQUEST_START         = ANDROID_REQUEST        << 16,
     75     ANDROID_LENS_START            = ANDROID_LENS           << 16,
     76     ANDROID_LENS_INFO_START       = ANDROID_LENS_INFO      << 16,
     77     ANDROID_SENSOR_START          = ANDROID_SENSOR         << 16,
     78     ANDROID_SENSOR_INFO_START     = ANDROID_SENSOR_INFO    << 16,
     79     ANDROID_FLASH_START           = ANDROID_FLASH          << 16,
     80     ANDROID_FLASH_INFO_START      = ANDROID_FLASH_INFO     << 16,
     81     ANDROID_HOT_PIXEL_START       = ANDROID_HOT_PIXEL      << 16,
     82     ANDROID_HOT_PIXEL_INFO_START  = ANDROID_HOT_PIXEL_INFO << 16,
     83     ANDROID_DEMOSAIC_START        = ANDROID_DEMOSAIC       << 16,
     84     ANDROID_DEMOSAIC_INFO_START   = ANDROID_DEMOSAIC_INFO  << 16,
     85     ANDROID_NOISE_START           = ANDROID_NOISE          << 16,
     86     ANDROID_NOISE_INFO_START      = ANDROID_NOISE_INFO     << 16,
     87     ANDROID_SHADING_START         = ANDROID_SHADING        << 16,
     88     ANDROID_SHADING_INFO_START    = ANDROID_SHADING_INFO   << 16,
     89     ANDROID_GEOMETRIC_START       = ANDROID_GEOMETRIC      << 16,
     90     ANDROID_GEOMETRIC_INFO_START  = ANDROID_GEOMETRIC_INFO << 16,
     91     ANDROID_COLOR_START           = ANDROID_COLOR          << 16,
     92     ANDROID_COLOR_INFO_START      = ANDROID_COLOR_INFO     << 16,
     93     ANDROID_TONEMAP_START         = ANDROID_TONEMAP        << 16,
     94     ANDROID_TONEMAP_INFO_START    = ANDROID_TONEMAP_INFO   << 16,
     95     ANDROID_EDGE_START            = ANDROID_EDGE           << 16,
     96     ANDROID_EDGE_INFO_START       = ANDROID_EDGE_INFO      << 16,
     97     ANDROID_SCALER_START          = ANDROID_SCALER         << 16,
     98     ANDROID_SCALER_INFO_START     = ANDROID_SCALER_INFO    << 16,
     99     ANDROID_JPEG_START            = ANDROID_JPEG           << 16,
    100     ANDROID_JPEG_INFO_START       = ANDROID_JPEG_INFO      << 16,
    101     ANDROID_STATS_START           = ANDROID_STATS          << 16,
    102     ANDROID_STATS_INFO_START      = ANDROID_STATS_INFO     << 16,
    103     ANDROID_CONTROL_START         = ANDROID_CONTROL        << 16,
    104     ANDROID_CONTROL_INFO_START    = ANDROID_CONTROL_INFO   << 16,
    105     ANDROID_QUIRKS_INFO_START     = ANDROID_QUIRKS_INFO    << 16,
    106     VENDOR_SECTION_START          = VENDOR_SECTION         << 16
    107 };
    108 
    109 /**
    110  * Main enum for defining camera metadata tags.  New entries must always go
    111  * before the section _END tag to preserve existing enumeration values.  In
    112  * addition, the name and type of the tag needs to be added to
    113  * system/media/camera/src/camera_metadata_tag_info.c
    114  */
    115 enum {
    116     ANDROID_REQUEST_ID = ANDROID_REQUEST_START,
    117     ANDROID_REQUEST_TYPE,
    118     ANDROID_REQUEST_METADATA_MODE,
    119     ANDROID_REQUEST_OUTPUT_STREAMS,
    120     ANDROID_REQUEST_INPUT_STREAMS,
    121     ANDROID_REQUEST_FRAME_COUNT,
    122     ANDROID_REQUEST_END,
    123 
    124     ANDROID_LENS_FOCUS_DISTANCE = ANDROID_LENS_START,
    125     ANDROID_LENS_APERTURE,
    126     ANDROID_LENS_FOCAL_LENGTH,
    127     ANDROID_LENS_FILTER_DENSITY,
    128     ANDROID_LENS_OPTICAL_STABILIZATION_MODE,
    129     ANDROID_LENS_FOCUS_RANGE,
    130     ANDROID_LENS_END,
    131 
    132     ANDROID_LENS_MINIMUM_FOCUS_DISTANCE = ANDROID_LENS_INFO_START,
    133     ANDROID_LENS_HYPERFOCAL_DISTANCE,
    134     ANDROID_LENS_AVAILABLE_FOCAL_LENGTHS,
    135     ANDROID_LENS_AVAILABLE_APERTURES,
    136     ANDROID_LENS_AVAILABLE_FILTER_DENSITY,
    137     ANDROID_LENS_AVAILABLE_OPTICAL_STABILIZATION,
    138     ANDROID_LENS_SHADING_MAP_SIZE,
    139     ANDROID_LENS_SHADING_MAP,
    140     ANDROID_LENS_GEOMETRIC_CORRECTION_MAP_SIZE,
    141     ANDROID_LENS_GEOMETRIC_CORRECTION_MAP,
    142     ANDROID_LENS_FACING,
    143     ANDROID_LENS_POSITION,
    144     ANDROID_LENS_INFO_END,
    145 
    146     ANDROID_SENSOR_EXPOSURE_TIME = ANDROID_SENSOR_START,
    147     ANDROID_SENSOR_FRAME_DURATION,
    148     ANDROID_SENSOR_SENSITIVITY,
    149     ANDROID_SENSOR_TIMESTAMP,
    150     ANDROID_SENSOR_END,
    151 
    152     ANDROID_SENSOR_EXPOSURE_TIME_RANGE = ANDROID_SENSOR_INFO_START,
    153     ANDROID_SENSOR_MAX_FRAME_DURATION,
    154     ANDROID_SENSOR_AVAILABLE_SENSITIVITIES,
    155     ANDROID_SENSOR_COLOR_FILTER_ARRANGEMENT,
    156     ANDROID_SENSOR_PHYSICAL_SIZE,
    157     ANDROID_SENSOR_PIXEL_ARRAY_SIZE,
    158     ANDROID_SENSOR_ACTIVE_ARRAY_SIZE,
    159     ANDROID_SENSOR_WHITE_LEVEL,
    160     ANDROID_SENSOR_BLACK_LEVEL_PATTERN,
    161     ANDROID_SENSOR_COLOR_TRANSFORM_1,
    162     ANDROID_SENSOR_COLOR_TRANSFORM_2,
    163     ANDROID_SENSOR_REFERENCE_ILLUMINANT_1,
    164     ANDROID_SENSOR_REFERENCE_ILLUMINANT_2,
    165     ANDROID_SENSOR_FORWARD_MATRIX_1,
    166     ANDROID_SENSOR_FORWARD_MATRIX_2,
    167     ANDROID_SENSOR_CALIBRATION_TRANSFORM_1,
    168     ANDROID_SENSOR_CALIBRATION_TRANSFORM_2,
    169     ANDROID_SENSOR_BASE_GAIN_FACTOR,
    170     ANDROID_SENSOR_MAX_ANALOG_SENSITIVITY,
    171     ANDROID_SENSOR_NOISE_MODEL_COEFFICIENTS,
    172     ANDROID_SENSOR_ORIENTATION,
    173     ANDROID_SENSOR_INFO_END,
    174 
    175     ANDROID_FLASH_MODE = ANDROID_FLASH_START,
    176     ANDROID_FLASH_FIRING_POWER,
    177     ANDROID_FLASH_FIRING_TIME,
    178     ANDROID_FLASH_END,
    179 
    180     ANDROID_FLASH_AVAILABLE = ANDROID_FLASH_INFO_START,
    181     ANDROID_FLASH_CHARGE_DURATION,
    182     ANDROID_FLASH_INFO_END,
    183 
    184     ANDROID_HOT_PIXEL_MODE = ANDROID_HOT_PIXEL_START,
    185     ANDROID_HOT_PIXEL_END,
    186 
    187     ANDROID_HOT_PIXEL_INFO_END = ANDROID_HOT_PIXEL_INFO_START,
    188 
    189     ANDROID_DEMOSAIC_MODE = ANDROID_DEMOSAIC_START,
    190     ANDROID_DEMOSAIC_END,
    191 
    192     ANDROID_DEMOSAIC_INFO_END = ANDROID_DEMOSAIC_INFO_START,
    193 
    194     ANDROID_NOISE_MODE = ANDROID_NOISE_START,
    195     ANDROID_NOISE_STRENGTH,
    196     ANDROID_NOISE_END,
    197 
    198     ANDROID_NOISE_INFO_END = ANDROID_NOISE_INFO_START,
    199 
    200     ANDROID_SHADING_MODE  = ANDROID_SHADING_START,
    201     ANDROID_SHADING_END,
    202 
    203     ANDROID_SHADING_INFO_END = ANDROID_SHADING_INFO_START,
    204 
    205     ANDROID_GEOMETRIC_MODE  = ANDROID_GEOMETRIC_START,
    206     ANDROID_GEOMETRIC_END,
    207 
    208     ANDROID_GEOMETRIC_INFO_END = ANDROID_GEOMETRIC_INFO_START,
    209 
    210     ANDROID_COLOR_MODE = ANDROID_COLOR_START,
    211     ANDROID_COLOR_TRANSFORM,
    212     ANDROID_COLOR_END,
    213 
    214     ANDROID_COLOR_INFO_END = ANDROID_COLOR_INFO_START,
    215 
    216     ANDROID_TONEMAP_MODE = ANDROID_TONEMAP_START,
    217     ANDROID_TONEMAP_CURVE_RED,
    218     ANDROID_TONEMAP_CURVE_GREEN,
    219     ANDROID_TONEMAP_CURVE_BLUE,
    220     ANDROID_TONEMAP_END,
    221 
    222     ANDROID_TONEMAP_MAX_CURVE_POINTS = ANDROID_TONEMAP_INFO_START,
    223     ANDROID_TONEMAP_INFO_END,
    224 
    225     ANDROID_EDGE_MODE = ANDROID_EDGE_START,
    226     ANDROID_EDGE_STRENGTH,
    227     ANDROID_EDGE_END,
    228 
    229     ANDROID_EDGE_INFO_END = ANDROID_EDGE_INFO_START,
    230 
    231     ANDROID_SCALER_CROP_REGION  = ANDROID_SCALER_START,
    232     ANDROID_SCALER_END,
    233 
    234     ANDROID_SCALER_AVAILABLE_FORMATS = ANDROID_SCALER_INFO_START,
    235     ANDROID_SCALER_AVAILABLE_RAW_SIZES,
    236     ANDROID_SCALER_AVAILABLE_RAW_MIN_DURATIONS,
    237     ANDROID_SCALER_AVAILABLE_PROCESSED_SIZES,
    238     ANDROID_SCALER_AVAILABLE_PROCESSED_MIN_DURATIONS,
    239     ANDROID_SCALER_AVAILABLE_JPEG_SIZES,
    240     ANDROID_SCALER_AVAILABLE_JPEG_MIN_DURATIONS,
    241     ANDROID_SCALER_AVAILABLE_MAX_ZOOM,
    242     ANDROID_SCALER_INFO_END,
    243 
    244     ANDROID_JPEG_QUALITY = ANDROID_JPEG_START,
    245     ANDROID_JPEG_THUMBNAIL_SIZE,
    246     ANDROID_JPEG_THUMBNAIL_QUALITY,
    247     ANDROID_JPEG_GPS_COORDINATES,
    248     ANDROID_JPEG_GPS_PROCESSING_METHOD,
    249     ANDROID_JPEG_GPS_TIMESTAMP,
    250     ANDROID_JPEG_ORIENTATION,
    251     ANDROID_JPEG_SIZE,
    252     ANDROID_JPEG_END,
    253 
    254     ANDROID_JPEG_AVAILABLE_THUMBNAIL_SIZES  = ANDROID_JPEG_INFO_START,
    255     ANDROID_JPEG_MAX_SIZE,
    256     ANDROID_JPEG_INFO_END,
    257 
    258     ANDROID_STATS_FACE_DETECT_MODE = ANDROID_STATS_START,
    259     ANDROID_STATS_FACE_RECTANGLES,
    260     ANDROID_STATS_FACE_SCORES,
    261     ANDROID_STATS_FACE_LANDMARKS,
    262     ANDROID_STATS_FACE_IDS,
    263     ANDROID_STATS_HISTOGRAM_MODE,
    264     ANDROID_STATS_HISTOGRAM,
    265     ANDROID_STATS_SHARPNESS_MAP_MODE,
    266     ANDROID_STATS_SHARPNESS_MAP,
    267     ANDROID_STATS_END,
    268 
    269     ANDROID_STATS_AVAILABLE_FACE_DETECT_MODES = ANDROID_STATS_INFO_START,
    270     ANDROID_STATS_MAX_FACE_COUNT,
    271     ANDROID_STATS_HISTOGRAM_BUCKET_COUNT,
    272     ANDROID_STATS_MAX_HISTOGRAM_COUNT,
    273     ANDROID_STATS_SHARPNESS_MAP_SIZE,
    274     ANDROID_STATS_MAX_SHARPNESS_MAP_VALUE,
    275     ANDROID_STATS_INFO_END,
    276 
    277     ANDROID_CONTROL_CAPTURE_INTENT = ANDROID_CONTROL_START,
    278     ANDROID_CONTROL_MODE,
    279     ANDROID_CONTROL_EFFECT_MODE,
    280     ANDROID_CONTROL_SCENE_MODE,
    281     ANDROID_CONTROL_VIDEO_STABILIZATION_MODE,
    282     ANDROID_CONTROL_AE_MODE,
    283     ANDROID_CONTROL_AE_LOCK,
    284     ANDROID_CONTROL_AE_REGIONS,
    285     ANDROID_CONTROL_AE_EXP_COMPENSATION,
    286     ANDROID_CONTROL_AE_TARGET_FPS_RANGE,
    287     ANDROID_CONTROL_AE_ANTIBANDING_MODE,
    288     ANDROID_CONTROL_AE_STATE,
    289     ANDROID_CONTROL_AE_PRECAPTURE_ID,
    290     ANDROID_CONTROL_AWB_MODE,
    291     ANDROID_CONTROL_AWB_LOCK,
    292     ANDROID_CONTROL_AWB_REGIONS,
    293     ANDROID_CONTROL_AWB_STATE,
    294     ANDROID_CONTROL_AF_MODE,
    295     ANDROID_CONTROL_AF_REGIONS,
    296     ANDROID_CONTROL_AF_STATE,
    297     ANDROID_CONTROL_AF_TRIGGER_ID,
    298     ANDROID_CONTROL_END,
    299 
    300     ANDROID_CONTROL_AVAILABLE_SCENE_MODES = ANDROID_CONTROL_INFO_START,
    301     ANDROID_CONTROL_AVAILABLE_EFFECTS,
    302     ANDROID_CONTROL_MAX_REGIONS,
    303     ANDROID_CONTROL_AE_AVAILABLE_MODES,
    304     ANDROID_CONTROL_AE_EXP_COMPENSATION_STEP,
    305     ANDROID_CONTROL_AE_EXP_COMPENSATION_RANGE,
    306     ANDROID_CONTROL_AE_AVAILABLE_TARGET_FPS_RANGES,
    307     ANDROID_CONTROL_AE_AVAILABLE_ANTIBANDING_MODES,
    308     ANDROID_CONTROL_AWB_AVAILABLE_MODES,
    309     ANDROID_CONTROL_AF_AVAILABLE_MODES,
    310     ANDROID_CONTROL_AVAILABLE_VIDEO_STABILIZATION_MODES,
    311     ANDROID_CONTROL_SCENE_MODE_OVERRIDES,
    312     ANDROID_CONTROL_INFO_END,
    313 
    314     ANDROID_QUIRKS_TRIGGER_AF_WITH_AUTO = ANDROID_QUIRKS_INFO_START,
    315     ANDROID_QUIRKS_USE_ZSL_FORMAT,
    316     ANDROID_QUIRKS_METERING_CROP_REGION,
    317     ANDROID_QUIRKS_INFO_END
    318 };
    319 
    320 /**
    321  * Enumeration definitions for the various entries that need them
    322  */
    323 
    324 // ANDROID_REQUEST_METADATA_TYPE
    325 enum {
    326     ANDROID_REQUEST_TYPE_CAPTURE = 0,
    327     ANDROID_REQUEST_TYPE_REPROCESS
    328 };
    329 
    330 // ANDROID_REQUEST_METADATA_MODE
    331 enum {
    332     ANDROID_REQUEST_METADATA_NONE = 0,
    333     ANDROID_REQUEST_METADATA_FULL
    334 };
    335 
    336 // ANDROID_LENS_OPTICAL_STABILIZATION_MODE
    337 enum {
    338     ANDROID_LENS_OPTICAL_STABILIZATION_OFF = 0,
    339     ANDROID_LENS_OPTICAL_STABILIZATION_ON
    340 };
    341 
    342 // ANDROID_LENS_FACING
    343 enum {
    344     ANDROID_LENS_FACING_BACK = 0,
    345     ANDROID_LENS_FACING_FRONT
    346 };
    347 
    348 // ANDROID_SENSOR_INFO_COLOR_FILTER_ARRANGEMENT
    349 enum {
    350     ANDROID_SENSOR_RGGB = 0,
    351     ANDROID_SENSOR_GRBG,
    352     ANDROID_SENSOR_GBRG,
    353     ANDROID_SENSOR_BGGR,
    354     ANDROID_SENSOR_RGB
    355 };
    356 
    357 // ANDROID_FLASH_MODE
    358 enum {
    359     ANDROID_FLASH_OFF = 0,
    360     ANDROID_FLASH_SINGLE,
    361     ANDROID_FLASH_TORCH
    362 };
    363 
    364 // General processing block modes
    365 enum {
    366     ANDROID_PROCESSING_OFF = 0,
    367     ANDROID_PROCESSING_FAST,
    368     ANDROID_PROCESSING_HIGH_QUALITY
    369 };
    370 
    371 // ANDROID_DEMOSAIC_MODE
    372 enum {
    373     ANDROID_DEMOSAIC_FAST = 1,
    374     ANDROID_DEMOSAIC_HIGH_QUALITY
    375 };
    376 
    377 // ANDROID_COLOR_MODE
    378 enum {
    379     ANDROID_COLOR_FAST = 1,
    380     ANDROID_COLOR_HIGH_QUALITY,
    381     ANDROID_COLOR_TRANSFORM_MATRIX
    382 };
    383 
    384 // ANDROID_TONEMAP_MODE
    385 enum {
    386     ANDROID_TONEMAP_FAST = 1,
    387     ANDROID_TONEMAP_HIGH_QUALITY,
    388     ANDROID_TONEMAP_CONTRAST_CURVE
    389 };
    390 
    391 // ANDROID_SCALER_AVAILABLE_FORMATS uses HAL_PIXEL_FORMAT_* from
    392 // system/graphics.h
    393 
    394 // ANDROID_STATS_FACE_DETECTION_MODE
    395 enum {
    396     ANDROID_STATS_FACE_DETECTION_OFF = 0,
    397     ANDROID_STATS_FACE_DETECTION_SIMPLE,
    398     ANDROID_STATS_FACE_DETECTION_FULL
    399 };
    400 
    401 // ANDROID_STATS_HISTOGRAM/SHARPNESS_MAP_MODE
    402 enum {
    403     ANDROID_STATS_OFF = 0,
    404     ANDROID_STATS_ON
    405 };
    406 
    407 // ANDROID_CONTROL_CAPTURE_INTENT
    408 enum {
    409     ANDROID_CONTROL_INTENT_CUSTOM = 0,
    410     ANDROID_CONTROL_INTENT_PREVIEW,
    411     ANDROID_CONTROL_INTENT_STILL_CAPTURE,
    412     ANDROID_CONTROL_INTENT_VIDEO_RECORD,
    413     ANDROID_CONTROL_INTENT_VIDEO_SNAPSHOT,
    414     ANDROID_CONTROL_INTENT_ZERO_SHUTTER_LAG
    415 };
    416 
    417 // ANDROID_CONTROL_MODE
    418 enum {
    419     ANDROID_CONTROL_OFF = 0,
    420     ANDROID_CONTROL_AUTO,
    421     ANDROID_CONTROL_USE_SCENE_MODE
    422 };
    423 
    424 // ANDROID_CONTROL_SCENE_MODE
    425 enum {
    426     ANDROID_CONTROL_SCENE_MODE_UNSUPPORTED = 0, // Only for availableSceneModes
    427     ANDROID_CONTROL_SCENE_MODE_FACE_PRIORITY,
    428     ANDROID_CONTROL_SCENE_MODE_ACTION,
    429     ANDROID_CONTROL_SCENE_MODE_PORTRAIT,
    430     ANDROID_CONTROL_SCENE_MODE_LANDSCAPE,
    431     ANDROID_CONTROL_SCENE_MODE_NIGHT,
    432     ANDROID_CONTROL_SCENE_MODE_NIGHT_PORTRAIT,
    433     ANDROID_CONTROL_SCENE_MODE_THEATRE,
    434     ANDROID_CONTROL_SCENE_MODE_BEACH,
    435     ANDROID_CONTROL_SCENE_MODE_SNOW,
    436     ANDROID_CONTROL_SCENE_MODE_SUNSET,
    437     ANDROID_CONTROL_SCENE_MODE_STEADYPHOTO,
    438     ANDROID_CONTROL_SCENE_MODE_FIREWORKS,
    439     ANDROID_CONTROL_SCENE_MODE_SPORTS,
    440     ANDROID_CONTROL_SCENE_MODE_PARTY,
    441     ANDROID_CONTROL_SCENE_MODE_CANDLELIGHT,
    442     ANDROID_CONTROL_SCENE_MODE_BARCODE
    443 };
    444 
    445 // ANDROID_CONTROL_EFFECT_MODE
    446 enum {
    447     ANDROID_CONTROL_EFFECT_OFF = 0,
    448     ANDROID_CONTROL_EFFECT_MONO,
    449     ANDROID_CONTROL_EFFECT_NEGATIVE,
    450     ANDROID_CONTROL_EFFECT_SOLARIZE,
    451     ANDROID_CONTROL_EFFECT_SEPIA,
    452     ANDROID_CONTROL_EFFECT_POSTERIZE,
    453     ANDROID_CONTROL_EFFECT_WHITEBOARD,
    454     ANDROID_CONTROL_EFFECT_BLACKBOARD,
    455     ANDROID_CONTROL_EFFECT_AQUA
    456 };
    457 
    458 // ANDROID_CONTROL_AE_MODE
    459 enum {
    460     ANDROID_CONTROL_AE_OFF = 0,
    461     ANDROID_CONTROL_AE_ON,
    462     ANDROID_CONTROL_AE_ON_AUTO_FLASH,
    463     ANDROID_CONTROL_AE_ON_ALWAYS_FLASH,
    464     ANDROID_CONTROL_AE_ON_AUTO_FLASH_REDEYE
    465 };
    466 
    467 // ANDROID_CONTROL_AE_LOCK
    468 enum {
    469     ANDROID_CONTROL_AE_LOCK_OFF = 0,
    470     ANDROID_CONTROL_AE_LOCK_ON
    471 };
    472 
    473 // ANDROID_CONTROL_AE_ANTIBANDING_MODE
    474 enum {
    475     ANDROID_CONTROL_AE_ANTIBANDING_OFF = 0,
    476     ANDROID_CONTROL_AE_ANTIBANDING_50HZ,
    477     ANDROID_CONTROL_AE_ANTIBANDING_60HZ,
    478     ANDROID_CONTROL_AE_ANTIBANDING_AUTO
    479 };
    480 
    481 // ANDROID_CONTROL_AE_STATE
    482 enum {
    483     ANDROID_CONTROL_AE_STATE_INACTIVE = 0,
    484     ANDROID_CONTROL_AE_STATE_SEARCHING,
    485     ANDROID_CONTROL_AE_STATE_CONVERGED,
    486     ANDROID_CONTROL_AE_STATE_LOCKED,
    487     ANDROID_CONTROL_AE_STATE_FLASH_REQUIRED,
    488     ANDROID_CONTROL_AE_STATE_PRECAPTURE
    489 };
    490 
    491 // ANDROID_CONTROL_AWB_MODE
    492 enum {
    493     ANDROID_CONTROL_AWB_OFF = 0,
    494     ANDROID_CONTROL_AWB_AUTO,
    495     ANDROID_CONTROL_AWB_INCANDESCENT,
    496     ANDROID_CONTROL_AWB_FLUORESCENT,
    497     ANDROID_CONTROL_AWB_WARM_FLUORESCENT,
    498     ANDROID_CONTROL_AWB_DAYLIGHT,
    499     ANDROID_CONTROL_AWB_CLOUDY_DAYLIGHT,
    500     ANDROID_CONTROL_AWB_TWILIGHT,
    501     ANDROID_CONTROL_AWB_SHADE
    502 };
    503 
    504 // ANDROID_CONTROL_AWB_LOCK
    505 enum {
    506     ANDROID_CONTROL_AWB_LOCK_OFF = 0,
    507     ANDROID_CONTROL_AWB_LOCK_ON
    508 };
    509 
    510 // ANDROID_CONTROL_AWB_STATE
    511 enum {
    512     ANDROID_CONTROL_AWB_STATE_INACTIVE = 0,
    513     ANDROID_CONTROL_AWB_STATE_SEARCHING,
    514     ANDROID_CONTROL_AWB_STATE_CONVERGED,
    515     ANDROID_CONTROL_AWB_STATE_LOCKED,
    516 };
    517 
    518 // ANDROID_CONTROL_AF_MODE
    519 enum {
    520     ANDROID_CONTROL_AF_OFF = 0,
    521     ANDROID_CONTROL_AF_AUTO,
    522     ANDROID_CONTROL_AF_MACRO,
    523     ANDROID_CONTROL_AF_CONTINUOUS_VIDEO,
    524     ANDROID_CONTROL_AF_CONTINUOUS_PICTURE,
    525     ANDROID_CONTROL_AF_EDOF
    526 };
    527 
    528 // ANDROID_CONTROL_AF_STATE
    529 enum {
    530     ANDROID_CONTROL_AF_STATE_INACTIVE = 0,
    531     ANDROID_CONTROL_AF_STATE_PASSIVE_SCAN,
    532     ANDROID_CONTROL_AF_STATE_PASSIVE_FOCUSED,
    533     ANDROID_CONTROL_AF_STATE_ACTIVE_SCAN,
    534     ANDROID_CONTROL_AF_STATE_FOCUSED_LOCKED,
    535     ANDROID_CONTROL_AF_STATE_NOT_FOCUSED_LOCKED
    536 };
    537 
    538 // ANDROID_CONTROL_VIDEO_STABILIZATION
    539 enum {
    540     ANDROID_CONTROL_VIDEO_STABILIZATION_OFF = 0,
    541     ANDROID_CONTROL_VIDEO_STABILIZATION_ON
    542 };
    543