camera_metadata_tags.h revision 52a64a571f037c5b519b98c69a3b47466d4accce
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 */
37typedef 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_GEOMETRIC,
45    ANDROID_HOT_PIXEL,
46    ANDROID_HOT_PIXEL_INFO,
47    ANDROID_JPEG,
48    ANDROID_LENS,
49    ANDROID_LENS_INFO,
50    ANDROID_NOISE_REDUCTION,
51    ANDROID_QUIRKS,
52    ANDROID_REQUEST,
53    ANDROID_SCALER,
54    ANDROID_SENSOR,
55    ANDROID_SENSOR_INFO,
56    ANDROID_SHADING,
57    ANDROID_STATISTICS,
58    ANDROID_STATISTICS_INFO,
59    ANDROID_TONEMAP,
60    ANDROID_LED,
61    ANDROID_INFO,
62    ANDROID_BLACK_LEVEL,
63    ANDROID_SECTION_COUNT,
64
65    VENDOR_SECTION = 0x8000
66} camera_metadata_section_t;
67
68/**
69 * Hierarchy positions in enum space. All vendor extension tags must be
70 * defined with tag >= VENDOR_SECTION_START
71 */
72typedef enum camera_metadata_section_start {
73    ANDROID_COLOR_CORRECTION_START = ANDROID_COLOR_CORRECTION  << 16,
74    ANDROID_CONTROL_START          = ANDROID_CONTROL           << 16,
75    ANDROID_DEMOSAIC_START         = ANDROID_DEMOSAIC          << 16,
76    ANDROID_EDGE_START             = ANDROID_EDGE              << 16,
77    ANDROID_FLASH_START            = ANDROID_FLASH             << 16,
78    ANDROID_FLASH_INFO_START       = ANDROID_FLASH_INFO        << 16,
79    ANDROID_GEOMETRIC_START        = ANDROID_GEOMETRIC         << 16,
80    ANDROID_HOT_PIXEL_START        = ANDROID_HOT_PIXEL         << 16,
81    ANDROID_HOT_PIXEL_INFO_START   = ANDROID_HOT_PIXEL_INFO    << 16,
82    ANDROID_JPEG_START             = ANDROID_JPEG              << 16,
83    ANDROID_LENS_START             = ANDROID_LENS              << 16,
84    ANDROID_LENS_INFO_START        = ANDROID_LENS_INFO         << 16,
85    ANDROID_NOISE_REDUCTION_START  = ANDROID_NOISE_REDUCTION   << 16,
86    ANDROID_QUIRKS_START           = ANDROID_QUIRKS            << 16,
87    ANDROID_REQUEST_START          = ANDROID_REQUEST           << 16,
88    ANDROID_SCALER_START           = ANDROID_SCALER            << 16,
89    ANDROID_SENSOR_START           = ANDROID_SENSOR            << 16,
90    ANDROID_SENSOR_INFO_START      = ANDROID_SENSOR_INFO       << 16,
91    ANDROID_SHADING_START          = ANDROID_SHADING           << 16,
92    ANDROID_STATISTICS_START       = ANDROID_STATISTICS        << 16,
93    ANDROID_STATISTICS_INFO_START  = ANDROID_STATISTICS_INFO   << 16,
94    ANDROID_TONEMAP_START          = ANDROID_TONEMAP           << 16,
95    ANDROID_LED_START              = ANDROID_LED               << 16,
96    ANDROID_INFO_START             = ANDROID_INFO              << 16,
97    ANDROID_BLACK_LEVEL_START      = ANDROID_BLACK_LEVEL       << 16,
98    VENDOR_SECTION_START           = VENDOR_SECTION            << 16
99} camera_metadata_section_start_t;
100
101/**
102 * Main enum for defining camera metadata tags.  New entries must always go
103 * before the section _END tag to preserve existing enumeration values.  In
104 * addition, the name and type of the tag needs to be added to
105 * system/media/camera/src/camera_metadata_tag_info.c
106 */
107typedef enum camera_metadata_tag {
108    ANDROID_COLOR_CORRECTION_MODE =                   // enum         | public
109            ANDROID_COLOR_CORRECTION_START,
110    ANDROID_COLOR_CORRECTION_TRANSFORM,               // rational[]   | public
111    ANDROID_COLOR_CORRECTION_GAINS,                   // float[]      | public
112    ANDROID_COLOR_CORRECTION_END,
113
114    ANDROID_CONTROL_AE_ANTIBANDING_MODE =             // enum         | public
115            ANDROID_CONTROL_START,
116    ANDROID_CONTROL_AE_EXPOSURE_COMPENSATION,         // int32        | public
117    ANDROID_CONTROL_AE_LOCK,                          // enum         | public
118    ANDROID_CONTROL_AE_MODE,                          // enum         | public
119    ANDROID_CONTROL_AE_REGIONS,                       // int32[]      | public
120    ANDROID_CONTROL_AE_TARGET_FPS_RANGE,              // int32[]      | public
121    ANDROID_CONTROL_AE_PRECAPTURE_TRIGGER,            // enum         | public
122    ANDROID_CONTROL_AF_MODE,                          // enum         | public
123    ANDROID_CONTROL_AF_REGIONS,                       // int32[]      | public
124    ANDROID_CONTROL_AF_TRIGGER,                       // enum         | public
125    ANDROID_CONTROL_AWB_LOCK,                         // enum         | public
126    ANDROID_CONTROL_AWB_MODE,                         // enum         | public
127    ANDROID_CONTROL_AWB_REGIONS,                      // int32[]      | public
128    ANDROID_CONTROL_CAPTURE_INTENT,                   // enum         | public
129    ANDROID_CONTROL_EFFECT_MODE,                      // enum         | public
130    ANDROID_CONTROL_MODE,                             // enum         | public
131    ANDROID_CONTROL_SCENE_MODE,                       // enum         | public
132    ANDROID_CONTROL_VIDEO_STABILIZATION_MODE,         // enum         | public
133    ANDROID_CONTROL_AE_AVAILABLE_ANTIBANDING_MODES,   // byte[]       | public
134    ANDROID_CONTROL_AE_AVAILABLE_MODES,               // byte[]       | system
135    ANDROID_CONTROL_AE_AVAILABLE_TARGET_FPS_RANGES,   // int32[]      | public
136    ANDROID_CONTROL_AE_COMPENSATION_RANGE,            // int32[]      | public
137    ANDROID_CONTROL_AE_COMPENSATION_STEP,             // rational     | public
138    ANDROID_CONTROL_AF_AVAILABLE_MODES,               // byte[]       | public
139    ANDROID_CONTROL_AVAILABLE_EFFECTS,                // byte[]       | public
140    ANDROID_CONTROL_AVAILABLE_SCENE_MODES,            // byte[]       | public
141    ANDROID_CONTROL_AVAILABLE_VIDEO_STABILIZATION_MODES,
142                                                      // byte[]       | public
143    ANDROID_CONTROL_AWB_AVAILABLE_MODES,              // byte[]       | public
144    ANDROID_CONTROL_MAX_REGIONS,                      // int32        | public
145    ANDROID_CONTROL_SCENE_MODE_OVERRIDES,             // byte[]       | system
146    ANDROID_CONTROL_AE_PRECAPTURE_ID,                 // int32        | hidden
147    ANDROID_CONTROL_AE_STATE,                         // enum         | public
148    ANDROID_CONTROL_AF_STATE,                         // enum         | public
149    ANDROID_CONTROL_AF_TRIGGER_ID,                    // int32        | hidden
150    ANDROID_CONTROL_AWB_STATE,                        // enum         | public
151    ANDROID_CONTROL_END,
152
153    ANDROID_DEMOSAIC_MODE =                           // enum         | system
154            ANDROID_DEMOSAIC_START,
155    ANDROID_DEMOSAIC_END,
156
157    ANDROID_EDGE_MODE =                               // enum         | public
158            ANDROID_EDGE_START,
159    ANDROID_EDGE_STRENGTH,                            // byte         | system
160    ANDROID_EDGE_END,
161
162    ANDROID_FLASH_FIRING_POWER =                      // byte         | system
163            ANDROID_FLASH_START,
164    ANDROID_FLASH_FIRING_TIME,                        // int64        | system
165    ANDROID_FLASH_MODE,                               // enum         | public
166    ANDROID_FLASH_COLOR_TEMPERATURE,                  // byte         | system
167    ANDROID_FLASH_MAX_ENERGY,                         // byte         | system
168    ANDROID_FLASH_STATE,                              // enum         | public
169    ANDROID_FLASH_END,
170
171    ANDROID_FLASH_INFO_AVAILABLE =                    // byte         | public
172            ANDROID_FLASH_INFO_START,
173    ANDROID_FLASH_INFO_CHARGE_DURATION,               // int64        | system
174    ANDROID_FLASH_INFO_END,
175
176    ANDROID_GEOMETRIC_MODE =                          // enum         | system
177            ANDROID_GEOMETRIC_START,
178    ANDROID_GEOMETRIC_STRENGTH,                       // byte         | system
179    ANDROID_GEOMETRIC_END,
180
181    ANDROID_HOT_PIXEL_MODE =                          // enum         | system
182            ANDROID_HOT_PIXEL_START,
183    ANDROID_HOT_PIXEL_END,
184
185    ANDROID_HOT_PIXEL_INFO_MAP =                      // int32[]      | system
186            ANDROID_HOT_PIXEL_INFO_START,
187    ANDROID_HOT_PIXEL_INFO_END,
188
189    ANDROID_JPEG_GPS_COORDINATES =                    // double[]     | public
190            ANDROID_JPEG_START,
191    ANDROID_JPEG_GPS_PROCESSING_METHOD,               // byte         | public
192    ANDROID_JPEG_GPS_TIMESTAMP,                       // int64        | public
193    ANDROID_JPEG_ORIENTATION,                         // int32        | public
194    ANDROID_JPEG_QUALITY,                             // byte         | public
195    ANDROID_JPEG_THUMBNAIL_QUALITY,                   // byte         | public
196    ANDROID_JPEG_THUMBNAIL_SIZE,                      // int32[]      | public
197    ANDROID_JPEG_AVAILABLE_THUMBNAIL_SIZES,           // int32[]      | public
198    ANDROID_JPEG_MAX_SIZE,                            // int32        | system
199    ANDROID_JPEG_SIZE,                                // int32        | system
200    ANDROID_JPEG_END,
201
202    ANDROID_LENS_APERTURE =                           // float        | public
203            ANDROID_LENS_START,
204    ANDROID_LENS_FILTER_DENSITY,                      // float        | public
205    ANDROID_LENS_FOCAL_LENGTH,                        // float        | public
206    ANDROID_LENS_FOCUS_DISTANCE,                      // float        | public
207    ANDROID_LENS_OPTICAL_STABILIZATION_MODE,          // enum         | public
208    ANDROID_LENS_FACING,                              // enum         | public
209    ANDROID_LENS_OPTICAL_AXIS_ANGLE,                  // float[]      | system
210    ANDROID_LENS_POSITION,                            // float[]      | system
211    ANDROID_LENS_FOCUS_RANGE,                         // float[]      | public
212    ANDROID_LENS_STATE,                               // enum         | public
213    ANDROID_LENS_END,
214
215    ANDROID_LENS_INFO_AVAILABLE_APERTURES =           // float[]      | public
216            ANDROID_LENS_INFO_START,
217    ANDROID_LENS_INFO_AVAILABLE_FILTER_DENSITIES,     // float[]      | public
218    ANDROID_LENS_INFO_AVAILABLE_FOCAL_LENGTHS,        // float[]      | public
219    ANDROID_LENS_INFO_AVAILABLE_OPTICAL_STABILIZATION,// byte[]       | public
220    ANDROID_LENS_INFO_GEOMETRIC_CORRECTION_MAP,       // float[]      | system
221    ANDROID_LENS_INFO_GEOMETRIC_CORRECTION_MAP_SIZE,  // int32[]      | system
222    ANDROID_LENS_INFO_HYPERFOCAL_DISTANCE,            // float        | public
223    ANDROID_LENS_INFO_MINIMUM_FOCUS_DISTANCE,         // float        | public
224    ANDROID_LENS_INFO_SHADING_MAP_SIZE,               // int32[]      | public
225    ANDROID_LENS_INFO_END,
226
227    ANDROID_NOISE_REDUCTION_MODE =                    // enum         | public
228            ANDROID_NOISE_REDUCTION_START,
229    ANDROID_NOISE_REDUCTION_STRENGTH,                 // byte         | system
230    ANDROID_NOISE_REDUCTION_END,
231
232    ANDROID_QUIRKS_METERING_CROP_REGION =             // byte         | system
233            ANDROID_QUIRKS_START,
234    ANDROID_QUIRKS_TRIGGER_AF_WITH_AUTO,              // byte         | system
235    ANDROID_QUIRKS_USE_ZSL_FORMAT,                    // byte         | system
236    ANDROID_QUIRKS_USE_PARTIAL_RESULT,                // byte         | hidden
237    ANDROID_QUIRKS_PARTIAL_RESULT,                    // enum         | hidden
238    ANDROID_QUIRKS_END,
239
240    ANDROID_REQUEST_FRAME_COUNT =                     // int32        | public
241            ANDROID_REQUEST_START,
242    ANDROID_REQUEST_ID,                               // int32        | hidden
243    ANDROID_REQUEST_INPUT_STREAMS,                    // int32[]      | system
244    ANDROID_REQUEST_METADATA_MODE,                    // enum         | system
245    ANDROID_REQUEST_OUTPUT_STREAMS,                   // int32[]      | system
246    ANDROID_REQUEST_TYPE,                             // enum         | system
247    ANDROID_REQUEST_MAX_NUM_OUTPUT_STREAMS,           // int32[]      | public
248    ANDROID_REQUEST_MAX_NUM_REPROCESS_STREAMS,        // int32[]      | system
249    ANDROID_REQUEST_END,
250
251    ANDROID_SCALER_CROP_REGION =                      // int32[]      | public
252            ANDROID_SCALER_START,
253    ANDROID_SCALER_AVAILABLE_FORMATS,                 // enum[]       | public
254    ANDROID_SCALER_AVAILABLE_JPEG_MIN_DURATIONS,      // int64[]      | public
255    ANDROID_SCALER_AVAILABLE_JPEG_SIZES,              // int32[]      | public
256    ANDROID_SCALER_AVAILABLE_MAX_DIGITAL_ZOOM,        // float        | public
257    ANDROID_SCALER_AVAILABLE_PROCESSED_MIN_DURATIONS, // int64[]      | public
258    ANDROID_SCALER_AVAILABLE_PROCESSED_SIZES,         // int32[]      | public
259    ANDROID_SCALER_AVAILABLE_RAW_MIN_DURATIONS,       // int64[]      | system
260    ANDROID_SCALER_AVAILABLE_RAW_SIZES,               // int32[]      | system
261    ANDROID_SCALER_END,
262
263    ANDROID_SENSOR_EXPOSURE_TIME =                    // int64        | public
264            ANDROID_SENSOR_START,
265    ANDROID_SENSOR_FRAME_DURATION,                    // int64        | public
266    ANDROID_SENSOR_SENSITIVITY,                       // int32        | public
267    ANDROID_SENSOR_BASE_GAIN_FACTOR,                  // rational     | public
268    ANDROID_SENSOR_BLACK_LEVEL_PATTERN,               // int32[]      | system
269    ANDROID_SENSOR_CALIBRATION_TRANSFORM1,            // rational[]   | system
270    ANDROID_SENSOR_CALIBRATION_TRANSFORM2,            // rational[]   | system
271    ANDROID_SENSOR_COLOR_TRANSFORM1,                  // rational[]   | system
272    ANDROID_SENSOR_COLOR_TRANSFORM2,                  // rational[]   | system
273    ANDROID_SENSOR_FORWARD_MATRIX1,                   // rational[]   | system
274    ANDROID_SENSOR_FORWARD_MATRIX2,                   // rational[]   | system
275    ANDROID_SENSOR_MAX_ANALOG_SENSITIVITY,            // int32        | public
276    ANDROID_SENSOR_NOISE_MODEL_COEFFICIENTS,          // float[]      | system
277    ANDROID_SENSOR_ORIENTATION,                       // int32        | public
278    ANDROID_SENSOR_REFERENCE_ILLUMINANT1,             // enum         | system
279    ANDROID_SENSOR_REFERENCE_ILLUMINANT2,             // byte         | system
280    ANDROID_SENSOR_TIMESTAMP,                         // int64        | public
281    ANDROID_SENSOR_TEMPERATURE,                       // float        | public
282    ANDROID_SENSOR_END,
283
284    ANDROID_SENSOR_INFO_ACTIVE_ARRAY_SIZE =           // int32[]      | public
285            ANDROID_SENSOR_INFO_START,
286    ANDROID_SENSOR_INFO_SENSITIVITY_RANGE,            // int32[]      | public
287    ANDROID_SENSOR_INFO_COLOR_FILTER_ARRANGEMENT,     // enum         | system
288    ANDROID_SENSOR_INFO_EXPOSURE_TIME_RANGE,          // int64[]      | public
289    ANDROID_SENSOR_INFO_MAX_FRAME_DURATION,           // int64        | public
290    ANDROID_SENSOR_INFO_PHYSICAL_SIZE,                // float[]      | public
291    ANDROID_SENSOR_INFO_PIXEL_ARRAY_SIZE,             // int32[]      | system
292    ANDROID_SENSOR_INFO_WHITE_LEVEL,                  // int32        | system
293    ANDROID_SENSOR_INFO_END,
294
295    ANDROID_SHADING_MODE =                            // enum         | system
296            ANDROID_SHADING_START,
297    ANDROID_SHADING_STRENGTH,                         // byte         | system
298    ANDROID_SHADING_END,
299
300    ANDROID_STATISTICS_FACE_DETECT_MODE =             // enum         | public
301            ANDROID_STATISTICS_START,
302    ANDROID_STATISTICS_HISTOGRAM_MODE,                // enum         | system
303    ANDROID_STATISTICS_SHARPNESS_MAP_MODE,            // enum         | system
304    ANDROID_STATISTICS_FACE_IDS,                      // int32[]      | public
305    ANDROID_STATISTICS_FACE_LANDMARKS,                // int32[]      | public
306    ANDROID_STATISTICS_FACE_RECTANGLES,               // int32[]      | public
307    ANDROID_STATISTICS_FACE_SCORES,                   // byte[]       | public
308    ANDROID_STATISTICS_HISTOGRAM,                     // int32[]      | system
309    ANDROID_STATISTICS_SHARPNESS_MAP,                 // int32[]      | system
310    ANDROID_STATISTICS_LENS_SHADING_MAP,              // float[]      | public
311    ANDROID_STATISTICS_PREDICTED_COLOR_GAINS,         // float[]      | public
312    ANDROID_STATISTICS_PREDICTED_COLOR_TRANSFORM,     // rational[]   | public
313    ANDROID_STATISTICS_SCENE_FLICKER,                 // enum         | public
314    ANDROID_STATISTICS_LENS_SHADING_MAP_MODE,         // enum         | public
315    ANDROID_STATISTICS_END,
316
317    ANDROID_STATISTICS_INFO_AVAILABLE_FACE_DETECT_MODES =
318                                                      // byte[]       | public
319            ANDROID_STATISTICS_INFO_START,
320    ANDROID_STATISTICS_INFO_HISTOGRAM_BUCKET_COUNT,   // int32        | system
321    ANDROID_STATISTICS_INFO_MAX_FACE_COUNT,           // int32        | public
322    ANDROID_STATISTICS_INFO_MAX_HISTOGRAM_COUNT,      // int32        | system
323    ANDROID_STATISTICS_INFO_MAX_SHARPNESS_MAP_VALUE,  // int32        | system
324    ANDROID_STATISTICS_INFO_SHARPNESS_MAP_SIZE,       // int32[]      | system
325    ANDROID_STATISTICS_INFO_END,
326
327    ANDROID_TONEMAP_CURVE_BLUE =                      // float[]      | public
328            ANDROID_TONEMAP_START,
329    ANDROID_TONEMAP_CURVE_GREEN,                      // float[]      | public
330    ANDROID_TONEMAP_CURVE_RED,                        // float[]      | public
331    ANDROID_TONEMAP_MODE,                             // enum         | public
332    ANDROID_TONEMAP_MAX_CURVE_POINTS,                 // int32        | public
333    ANDROID_TONEMAP_END,
334
335    ANDROID_LED_TRANSMIT =                            // enum         | hidden
336            ANDROID_LED_START,
337    ANDROID_LED_AVAILABLE_LEDS,                       // enum[]       | hidden
338    ANDROID_LED_END,
339
340    ANDROID_INFO_SUPPORTED_HARDWARE_LEVEL =           // enum         | public
341            ANDROID_INFO_START,
342    ANDROID_INFO_END,
343
344    ANDROID_BLACK_LEVEL_LOCK =                        // enum         | public
345            ANDROID_BLACK_LEVEL_START,
346    ANDROID_BLACK_LEVEL_END,
347
348} camera_metadata_tag_t;
349
350/**
351 * Enumeration definitions for the various entries that need them
352 */
353
354// ANDROID_COLOR_CORRECTION_MODE
355typedef enum camera_metadata_enum_android_color_correction_mode {
356    ANDROID_COLOR_CORRECTION_MODE_TRANSFORM_MATRIX,
357    ANDROID_COLOR_CORRECTION_MODE_FAST,
358    ANDROID_COLOR_CORRECTION_MODE_HIGH_QUALITY,
359} camera_metadata_enum_android_color_correction_mode_t;
360
361
362// ANDROID_CONTROL_AE_ANTIBANDING_MODE
363typedef enum camera_metadata_enum_android_control_ae_antibanding_mode {
364    ANDROID_CONTROL_AE_ANTIBANDING_MODE_OFF,
365    ANDROID_CONTROL_AE_ANTIBANDING_MODE_50HZ,
366    ANDROID_CONTROL_AE_ANTIBANDING_MODE_60HZ,
367    ANDROID_CONTROL_AE_ANTIBANDING_MODE_AUTO,
368} camera_metadata_enum_android_control_ae_antibanding_mode_t;
369
370// ANDROID_CONTROL_AE_LOCK
371typedef enum camera_metadata_enum_android_control_ae_lock {
372    ANDROID_CONTROL_AE_LOCK_OFF,
373    ANDROID_CONTROL_AE_LOCK_ON,
374} camera_metadata_enum_android_control_ae_lock_t;
375
376// ANDROID_CONTROL_AE_MODE
377typedef enum camera_metadata_enum_android_control_ae_mode {
378    ANDROID_CONTROL_AE_MODE_OFF,
379    ANDROID_CONTROL_AE_MODE_ON,
380    ANDROID_CONTROL_AE_MODE_ON_AUTO_FLASH,
381    ANDROID_CONTROL_AE_MODE_ON_ALWAYS_FLASH,
382    ANDROID_CONTROL_AE_MODE_ON_AUTO_FLASH_REDEYE,
383} camera_metadata_enum_android_control_ae_mode_t;
384
385// ANDROID_CONTROL_AE_PRECAPTURE_TRIGGER
386typedef enum camera_metadata_enum_android_control_ae_precapture_trigger {
387    ANDROID_CONTROL_AE_PRECAPTURE_TRIGGER_IDLE,
388    ANDROID_CONTROL_AE_PRECAPTURE_TRIGGER_START,
389} camera_metadata_enum_android_control_ae_precapture_trigger_t;
390
391// ANDROID_CONTROL_AF_MODE
392typedef enum camera_metadata_enum_android_control_af_mode {
393    ANDROID_CONTROL_AF_MODE_OFF,
394    ANDROID_CONTROL_AF_MODE_AUTO,
395    ANDROID_CONTROL_AF_MODE_MACRO,
396    ANDROID_CONTROL_AF_MODE_CONTINUOUS_VIDEO,
397    ANDROID_CONTROL_AF_MODE_CONTINUOUS_PICTURE,
398    ANDROID_CONTROL_AF_MODE_EDOF,
399} camera_metadata_enum_android_control_af_mode_t;
400
401// ANDROID_CONTROL_AF_TRIGGER
402typedef enum camera_metadata_enum_android_control_af_trigger {
403    ANDROID_CONTROL_AF_TRIGGER_IDLE,
404    ANDROID_CONTROL_AF_TRIGGER_START,
405    ANDROID_CONTROL_AF_TRIGGER_CANCEL,
406} camera_metadata_enum_android_control_af_trigger_t;
407
408// ANDROID_CONTROL_AWB_LOCK
409typedef enum camera_metadata_enum_android_control_awb_lock {
410    ANDROID_CONTROL_AWB_LOCK_OFF,
411    ANDROID_CONTROL_AWB_LOCK_ON,
412} camera_metadata_enum_android_control_awb_lock_t;
413
414// ANDROID_CONTROL_AWB_MODE
415typedef enum camera_metadata_enum_android_control_awb_mode {
416    ANDROID_CONTROL_AWB_MODE_OFF,
417    ANDROID_CONTROL_AWB_MODE_AUTO,
418    ANDROID_CONTROL_AWB_MODE_INCANDESCENT,
419    ANDROID_CONTROL_AWB_MODE_FLUORESCENT,
420    ANDROID_CONTROL_AWB_MODE_WARM_FLUORESCENT,
421    ANDROID_CONTROL_AWB_MODE_DAYLIGHT,
422    ANDROID_CONTROL_AWB_MODE_CLOUDY_DAYLIGHT,
423    ANDROID_CONTROL_AWB_MODE_TWILIGHT,
424    ANDROID_CONTROL_AWB_MODE_SHADE,
425} camera_metadata_enum_android_control_awb_mode_t;
426
427// ANDROID_CONTROL_CAPTURE_INTENT
428typedef enum camera_metadata_enum_android_control_capture_intent {
429    ANDROID_CONTROL_CAPTURE_INTENT_CUSTOM,
430    ANDROID_CONTROL_CAPTURE_INTENT_PREVIEW,
431    ANDROID_CONTROL_CAPTURE_INTENT_STILL_CAPTURE,
432    ANDROID_CONTROL_CAPTURE_INTENT_VIDEO_RECORD,
433    ANDROID_CONTROL_CAPTURE_INTENT_VIDEO_SNAPSHOT,
434    ANDROID_CONTROL_CAPTURE_INTENT_ZERO_SHUTTER_LAG,
435} camera_metadata_enum_android_control_capture_intent_t;
436
437// ANDROID_CONTROL_EFFECT_MODE
438typedef enum camera_metadata_enum_android_control_effect_mode {
439    ANDROID_CONTROL_EFFECT_MODE_OFF,
440    ANDROID_CONTROL_EFFECT_MODE_MONO,
441    ANDROID_CONTROL_EFFECT_MODE_NEGATIVE,
442    ANDROID_CONTROL_EFFECT_MODE_SOLARIZE,
443    ANDROID_CONTROL_EFFECT_MODE_SEPIA,
444    ANDROID_CONTROL_EFFECT_MODE_POSTERIZE,
445    ANDROID_CONTROL_EFFECT_MODE_WHITEBOARD,
446    ANDROID_CONTROL_EFFECT_MODE_BLACKBOARD,
447    ANDROID_CONTROL_EFFECT_MODE_AQUA,
448} camera_metadata_enum_android_control_effect_mode_t;
449
450// ANDROID_CONTROL_MODE
451typedef enum camera_metadata_enum_android_control_mode {
452    ANDROID_CONTROL_MODE_OFF,
453    ANDROID_CONTROL_MODE_AUTO,
454    ANDROID_CONTROL_MODE_USE_SCENE_MODE,
455} camera_metadata_enum_android_control_mode_t;
456
457// ANDROID_CONTROL_SCENE_MODE
458typedef enum camera_metadata_enum_android_control_scene_mode {
459    ANDROID_CONTROL_SCENE_MODE_UNSUPPORTED                      = 0,
460    ANDROID_CONTROL_SCENE_MODE_FACE_PRIORITY,
461    ANDROID_CONTROL_SCENE_MODE_ACTION,
462    ANDROID_CONTROL_SCENE_MODE_PORTRAIT,
463    ANDROID_CONTROL_SCENE_MODE_LANDSCAPE,
464    ANDROID_CONTROL_SCENE_MODE_NIGHT,
465    ANDROID_CONTROL_SCENE_MODE_NIGHT_PORTRAIT,
466    ANDROID_CONTROL_SCENE_MODE_THEATRE,
467    ANDROID_CONTROL_SCENE_MODE_BEACH,
468    ANDROID_CONTROL_SCENE_MODE_SNOW,
469    ANDROID_CONTROL_SCENE_MODE_SUNSET,
470    ANDROID_CONTROL_SCENE_MODE_STEADYPHOTO,
471    ANDROID_CONTROL_SCENE_MODE_FIREWORKS,
472    ANDROID_CONTROL_SCENE_MODE_SPORTS,
473    ANDROID_CONTROL_SCENE_MODE_PARTY,
474    ANDROID_CONTROL_SCENE_MODE_CANDLELIGHT,
475    ANDROID_CONTROL_SCENE_MODE_BARCODE,
476} camera_metadata_enum_android_control_scene_mode_t;
477
478// ANDROID_CONTROL_VIDEO_STABILIZATION_MODE
479typedef enum camera_metadata_enum_android_control_video_stabilization_mode {
480    ANDROID_CONTROL_VIDEO_STABILIZATION_MODE_OFF,
481    ANDROID_CONTROL_VIDEO_STABILIZATION_MODE_ON,
482} camera_metadata_enum_android_control_video_stabilization_mode_t;
483
484// ANDROID_CONTROL_AE_STATE
485typedef enum camera_metadata_enum_android_control_ae_state {
486    ANDROID_CONTROL_AE_STATE_INACTIVE,
487    ANDROID_CONTROL_AE_STATE_SEARCHING,
488    ANDROID_CONTROL_AE_STATE_CONVERGED,
489    ANDROID_CONTROL_AE_STATE_LOCKED,
490    ANDROID_CONTROL_AE_STATE_FLASH_REQUIRED,
491    ANDROID_CONTROL_AE_STATE_PRECAPTURE,
492} camera_metadata_enum_android_control_ae_state_t;
493
494// ANDROID_CONTROL_AF_STATE
495typedef enum camera_metadata_enum_android_control_af_state {
496    ANDROID_CONTROL_AF_STATE_INACTIVE,
497    ANDROID_CONTROL_AF_STATE_PASSIVE_SCAN,
498    ANDROID_CONTROL_AF_STATE_PASSIVE_FOCUSED,
499    ANDROID_CONTROL_AF_STATE_ACTIVE_SCAN,
500    ANDROID_CONTROL_AF_STATE_FOCUSED_LOCKED,
501    ANDROID_CONTROL_AF_STATE_NOT_FOCUSED_LOCKED,
502    ANDROID_CONTROL_AF_STATE_PASSIVE_UNFOCUSED,
503} camera_metadata_enum_android_control_af_state_t;
504
505// ANDROID_CONTROL_AWB_STATE
506typedef enum camera_metadata_enum_android_control_awb_state {
507    ANDROID_CONTROL_AWB_STATE_INACTIVE,
508    ANDROID_CONTROL_AWB_STATE_SEARCHING,
509    ANDROID_CONTROL_AWB_STATE_CONVERGED,
510    ANDROID_CONTROL_AWB_STATE_LOCKED,
511} camera_metadata_enum_android_control_awb_state_t;
512
513
514// ANDROID_DEMOSAIC_MODE
515typedef enum camera_metadata_enum_android_demosaic_mode {
516    ANDROID_DEMOSAIC_MODE_FAST,
517    ANDROID_DEMOSAIC_MODE_HIGH_QUALITY,
518} camera_metadata_enum_android_demosaic_mode_t;
519
520
521// ANDROID_EDGE_MODE
522typedef enum camera_metadata_enum_android_edge_mode {
523    ANDROID_EDGE_MODE_OFF,
524    ANDROID_EDGE_MODE_FAST,
525    ANDROID_EDGE_MODE_HIGH_QUALITY,
526} camera_metadata_enum_android_edge_mode_t;
527
528
529// ANDROID_FLASH_MODE
530typedef enum camera_metadata_enum_android_flash_mode {
531    ANDROID_FLASH_MODE_OFF,
532    ANDROID_FLASH_MODE_SINGLE,
533    ANDROID_FLASH_MODE_TORCH,
534} camera_metadata_enum_android_flash_mode_t;
535
536// ANDROID_FLASH_STATE
537typedef enum camera_metadata_enum_android_flash_state {
538    ANDROID_FLASH_STATE_UNAVAILABLE,
539    ANDROID_FLASH_STATE_CHARGING,
540    ANDROID_FLASH_STATE_READY,
541    ANDROID_FLASH_STATE_FIRED,
542} camera_metadata_enum_android_flash_state_t;
543
544
545
546// ANDROID_GEOMETRIC_MODE
547typedef enum camera_metadata_enum_android_geometric_mode {
548    ANDROID_GEOMETRIC_MODE_OFF,
549    ANDROID_GEOMETRIC_MODE_FAST,
550    ANDROID_GEOMETRIC_MODE_HIGH_QUALITY,
551} camera_metadata_enum_android_geometric_mode_t;
552
553
554// ANDROID_HOT_PIXEL_MODE
555typedef enum camera_metadata_enum_android_hot_pixel_mode {
556    ANDROID_HOT_PIXEL_MODE_OFF,
557    ANDROID_HOT_PIXEL_MODE_FAST,
558    ANDROID_HOT_PIXEL_MODE_HIGH_QUALITY,
559} camera_metadata_enum_android_hot_pixel_mode_t;
560
561
562
563
564// ANDROID_LENS_OPTICAL_STABILIZATION_MODE
565typedef enum camera_metadata_enum_android_lens_optical_stabilization_mode {
566    ANDROID_LENS_OPTICAL_STABILIZATION_MODE_OFF,
567    ANDROID_LENS_OPTICAL_STABILIZATION_MODE_ON,
568} camera_metadata_enum_android_lens_optical_stabilization_mode_t;
569
570// ANDROID_LENS_FACING
571typedef enum camera_metadata_enum_android_lens_facing {
572    ANDROID_LENS_FACING_FRONT,
573    ANDROID_LENS_FACING_BACK,
574} camera_metadata_enum_android_lens_facing_t;
575
576// ANDROID_LENS_STATE
577typedef enum camera_metadata_enum_android_lens_state {
578    ANDROID_LENS_STATE_STATIONARY,
579    ANDROID_LENS_STATE_MOVING,
580} camera_metadata_enum_android_lens_state_t;
581
582
583
584// ANDROID_NOISE_REDUCTION_MODE
585typedef enum camera_metadata_enum_android_noise_reduction_mode {
586    ANDROID_NOISE_REDUCTION_MODE_OFF,
587    ANDROID_NOISE_REDUCTION_MODE_FAST,
588    ANDROID_NOISE_REDUCTION_MODE_HIGH_QUALITY,
589} camera_metadata_enum_android_noise_reduction_mode_t;
590
591
592// ANDROID_QUIRKS_PARTIAL_RESULT
593typedef enum camera_metadata_enum_android_quirks_partial_result {
594    ANDROID_QUIRKS_PARTIAL_RESULT_FINAL,
595    ANDROID_QUIRKS_PARTIAL_RESULT_PARTIAL,
596} camera_metadata_enum_android_quirks_partial_result_t;
597
598
599// ANDROID_REQUEST_METADATA_MODE
600typedef enum camera_metadata_enum_android_request_metadata_mode {
601    ANDROID_REQUEST_METADATA_MODE_NONE,
602    ANDROID_REQUEST_METADATA_MODE_FULL,
603} camera_metadata_enum_android_request_metadata_mode_t;
604
605// ANDROID_REQUEST_TYPE
606typedef enum camera_metadata_enum_android_request_type {
607    ANDROID_REQUEST_TYPE_CAPTURE,
608    ANDROID_REQUEST_TYPE_REPROCESS,
609} camera_metadata_enum_android_request_type_t;
610
611
612// ANDROID_SCALER_AVAILABLE_FORMATS
613typedef enum camera_metadata_enum_android_scaler_available_formats {
614    ANDROID_SCALER_AVAILABLE_FORMATS_RAW_SENSOR                 = 0x20,
615    ANDROID_SCALER_AVAILABLE_FORMATS_YV12                       = 0x32315659,
616    ANDROID_SCALER_AVAILABLE_FORMATS_YCrCb_420_SP               = 0x11,
617    ANDROID_SCALER_AVAILABLE_FORMATS_IMPLEMENTATION_DEFINED     = 0x22,
618    ANDROID_SCALER_AVAILABLE_FORMATS_YCbCr_420_888              = 0x23,
619    ANDROID_SCALER_AVAILABLE_FORMATS_BLOB                       = 0x21,
620} camera_metadata_enum_android_scaler_available_formats_t;
621
622
623// ANDROID_SENSOR_REFERENCE_ILLUMINANT1
624typedef enum camera_metadata_enum_android_sensor_reference_illuminant1 {
625    ANDROID_SENSOR_REFERENCE_ILLUMINANT1_DAYLIGHT               = 1,
626    ANDROID_SENSOR_REFERENCE_ILLUMINANT1_FLUORESCENT            = 2,
627    ANDROID_SENSOR_REFERENCE_ILLUMINANT1_TUNGSTEN               = 3,
628    ANDROID_SENSOR_REFERENCE_ILLUMINANT1_FLASH                  = 4,
629    ANDROID_SENSOR_REFERENCE_ILLUMINANT1_FINE_WEATHER           = 9,
630    ANDROID_SENSOR_REFERENCE_ILLUMINANT1_CLOUDY_WEATHER         = 10,
631    ANDROID_SENSOR_REFERENCE_ILLUMINANT1_SHADE                  = 11,
632    ANDROID_SENSOR_REFERENCE_ILLUMINANT1_DAYLIGHT_FLUORESCENT   = 12,
633    ANDROID_SENSOR_REFERENCE_ILLUMINANT1_DAY_WHITE_FLUORESCENT  = 13,
634    ANDROID_SENSOR_REFERENCE_ILLUMINANT1_COOL_WHITE_FLUORESCENT = 14,
635    ANDROID_SENSOR_REFERENCE_ILLUMINANT1_WHITE_FLUORESCENT      = 15,
636    ANDROID_SENSOR_REFERENCE_ILLUMINANT1_STANDARD_A             = 17,
637    ANDROID_SENSOR_REFERENCE_ILLUMINANT1_STANDARD_B             = 18,
638    ANDROID_SENSOR_REFERENCE_ILLUMINANT1_STANDARD_C             = 19,
639    ANDROID_SENSOR_REFERENCE_ILLUMINANT1_D55                    = 20,
640    ANDROID_SENSOR_REFERENCE_ILLUMINANT1_D65                    = 21,
641    ANDROID_SENSOR_REFERENCE_ILLUMINANT1_D75                    = 22,
642    ANDROID_SENSOR_REFERENCE_ILLUMINANT1_D50                    = 23,
643    ANDROID_SENSOR_REFERENCE_ILLUMINANT1_ISO_STUDIO_TUNGSTEN    = 24,
644} camera_metadata_enum_android_sensor_reference_illuminant1_t;
645
646
647// ANDROID_SENSOR_INFO_COLOR_FILTER_ARRANGEMENT
648typedef enum camera_metadata_enum_android_sensor_info_color_filter_arrangement {
649    ANDROID_SENSOR_INFO_COLOR_FILTER_ARRANGEMENT_RGGB,
650    ANDROID_SENSOR_INFO_COLOR_FILTER_ARRANGEMENT_GRBG,
651    ANDROID_SENSOR_INFO_COLOR_FILTER_ARRANGEMENT_GBRG,
652    ANDROID_SENSOR_INFO_COLOR_FILTER_ARRANGEMENT_BGGR,
653    ANDROID_SENSOR_INFO_COLOR_FILTER_ARRANGEMENT_RGB,
654} camera_metadata_enum_android_sensor_info_color_filter_arrangement_t;
655
656
657// ANDROID_SHADING_MODE
658typedef enum camera_metadata_enum_android_shading_mode {
659    ANDROID_SHADING_MODE_OFF,
660    ANDROID_SHADING_MODE_FAST,
661    ANDROID_SHADING_MODE_HIGH_QUALITY,
662} camera_metadata_enum_android_shading_mode_t;
663
664
665// ANDROID_STATISTICS_FACE_DETECT_MODE
666typedef enum camera_metadata_enum_android_statistics_face_detect_mode {
667    ANDROID_STATISTICS_FACE_DETECT_MODE_OFF,
668    ANDROID_STATISTICS_FACE_DETECT_MODE_SIMPLE,
669    ANDROID_STATISTICS_FACE_DETECT_MODE_FULL,
670} camera_metadata_enum_android_statistics_face_detect_mode_t;
671
672// ANDROID_STATISTICS_HISTOGRAM_MODE
673typedef enum camera_metadata_enum_android_statistics_histogram_mode {
674    ANDROID_STATISTICS_HISTOGRAM_MODE_OFF,
675    ANDROID_STATISTICS_HISTOGRAM_MODE_ON,
676} camera_metadata_enum_android_statistics_histogram_mode_t;
677
678// ANDROID_STATISTICS_SHARPNESS_MAP_MODE
679typedef enum camera_metadata_enum_android_statistics_sharpness_map_mode {
680    ANDROID_STATISTICS_SHARPNESS_MAP_MODE_OFF,
681    ANDROID_STATISTICS_SHARPNESS_MAP_MODE_ON,
682} camera_metadata_enum_android_statistics_sharpness_map_mode_t;
683
684// ANDROID_STATISTICS_SCENE_FLICKER
685typedef enum camera_metadata_enum_android_statistics_scene_flicker {
686    ANDROID_STATISTICS_SCENE_FLICKER_NONE,
687    ANDROID_STATISTICS_SCENE_FLICKER_50HZ,
688    ANDROID_STATISTICS_SCENE_FLICKER_60HZ,
689} camera_metadata_enum_android_statistics_scene_flicker_t;
690
691// ANDROID_STATISTICS_LENS_SHADING_MAP_MODE
692typedef enum camera_metadata_enum_android_statistics_lens_shading_map_mode {
693    ANDROID_STATISTICS_LENS_SHADING_MAP_MODE_OFF,
694    ANDROID_STATISTICS_LENS_SHADING_MAP_MODE_ON,
695} camera_metadata_enum_android_statistics_lens_shading_map_mode_t;
696
697
698
699// ANDROID_TONEMAP_MODE
700typedef enum camera_metadata_enum_android_tonemap_mode {
701    ANDROID_TONEMAP_MODE_CONTRAST_CURVE,
702    ANDROID_TONEMAP_MODE_FAST,
703    ANDROID_TONEMAP_MODE_HIGH_QUALITY,
704} camera_metadata_enum_android_tonemap_mode_t;
705
706
707// ANDROID_LED_TRANSMIT
708typedef enum camera_metadata_enum_android_led_transmit {
709    ANDROID_LED_TRANSMIT_OFF,
710    ANDROID_LED_TRANSMIT_ON,
711} camera_metadata_enum_android_led_transmit_t;
712
713// ANDROID_LED_AVAILABLE_LEDS
714typedef enum camera_metadata_enum_android_led_available_leds {
715    ANDROID_LED_AVAILABLE_LEDS_TRANSMIT,
716} camera_metadata_enum_android_led_available_leds_t;
717
718
719// ANDROID_INFO_SUPPORTED_HARDWARE_LEVEL
720typedef enum camera_metadata_enum_android_info_supported_hardware_level {
721    ANDROID_INFO_SUPPORTED_HARDWARE_LEVEL_LIMITED,
722    ANDROID_INFO_SUPPORTED_HARDWARE_LEVEL_FULL,
723} camera_metadata_enum_android_info_supported_hardware_level_t;
724
725
726// ANDROID_BLACK_LEVEL_LOCK
727typedef enum camera_metadata_enum_android_black_level_lock {
728    ANDROID_BLACK_LEVEL_LOCK_OFF,
729    ANDROID_BLACK_LEVEL_LOCK_ON,
730} camera_metadata_enum_android_black_level_lock_t;
731
732
733