OSDN Git Service

camera_metadata: Support metadata vendor caches
[android-x86/system-media.git] / camera / include / system / camera_metadata_tags.h
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