• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
2  * Copyright (c) 2021-2023 Huawei Device Co., Ltd.
3  * Licensed under the Apache License, Version 2.0 (the "License");
4  * you may not use this file except in compliance with the License.
5  * You may obtain a copy of the License at
6  *
7  *     http://www.apache.org/licenses/LICENSE-2.0
8  *
9  * Unless required by applicable law or agreed to in writing, software
10  * distributed under the License is distributed on an "AS IS" BASIS,
11  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12  * See the License for the specific language governing permissions and
13  * limitations under the License.
14  */
15 
16 #ifndef CAMERA_DEVICE_ABILITY_ITEMS_H
17 #define CAMERA_DEVICE_ABILITY_ITEMS_H
18 
19 typedef enum camera_ability_section {
20     // Camera attribute information: position(facing), type, connection, description, sensor, lens description
21     OHOS_CAMERA_PROPERTIES = 0,
22     OHOS_CAMERA_LENS,
23     OHOS_CAMERA_SENSOR,
24     OHOS_CAMERA_SENSOR_INFO,
25     OHOS_CAMERA_STATISTICS,
26 
27     // Camera device image acquisition
28     OHOS_DEVICE_CONTROL = 0x1000, // Overall control, such as turning off automatic 3A, operating mode
29     OHOS_DEVICE_EXPOSURE,
30     OHOS_DEVICE_FOCUS,
31     OHOS_DEVICE_WHITE_BLANCE,
32     OHOS_DEVICE_FLASH,
33     OHOS_DEVICE_ZOOM,
34 
35     // Camera effects & algorithms
36     OHOS_CAMERA_EFFECT = 0x2000,
37 
38     // Camera flow control related
39     OHOS_STREAM_ABILITY = 0x3000,
40     OHOS_STREAM_CONTROL, // General control: frame rate, resolution, mirroring
41     OHOS_STREAM_JPEG,
42     OHOS_STREAM_VIDEO, // Video encoding related
43     OHOS_STREAM_DEPTH,
44     OHOS_STREAM_METADATA,
45     OHOS_STREAM_METADATA_FACE,
46     OHOS_STREAM_METADATA_BODY,
47 
48     // Secure camera control related
49     OHOS_CAMERA_SECURE = 0x4000,
50 
51     OHOS_ABILITY_SECTION_END
52 } camera_ability_section_t;
53 
54 typedef enum camera_device_metadata_section_start {
55     OHOS_CAMERA_PROPERTIES_START = OHOS_CAMERA_PROPERTIES << 16,
56     OHOS_CAMERA_LENS_START = OHOS_CAMERA_LENS << 16,
57     OHOS_CAMERA_SENSOR_START = OHOS_CAMERA_SENSOR << 16,
58     OHOS_CAMERA_SENSOR_INFO_START = OHOS_CAMERA_SENSOR_INFO << 16,
59     OHOS_CAMERA_STATISTICS_START = OHOS_CAMERA_STATISTICS << 16,
60 
61     OHOS_DEVICE_CONTROL_START = OHOS_DEVICE_CONTROL << 16,
62     OHOS_DEVICE_EXPOSURE_START = OHOS_DEVICE_EXPOSURE << 16,
63     OHOS_DEVICE_FOCUS_START = OHOS_DEVICE_FOCUS << 16,
64     OHOS_DEVICE_WHITE_BLANCE_START = OHOS_DEVICE_WHITE_BLANCE << 16,
65     OHOS_DEVICE_FLASH_START = OHOS_DEVICE_FLASH << 16,
66     OHOS_DEVICE_ZOOM_START = OHOS_DEVICE_ZOOM << 16,
67 
68     OHOS_CAMERA_EFFECT_START = OHOS_CAMERA_EFFECT << 16,
69 
70     OHOS_STREAM_ABILITY_START = OHOS_STREAM_ABILITY << 16,
71     OHOS_STREAM_CONTROL_START = OHOS_STREAM_CONTROL << 16,
72     OHOS_STREAM_JPEG_START = OHOS_STREAM_JPEG << 16,
73     OHOS_STREAM_VIDEO_START = OHOS_STREAM_VIDEO << 16,
74     OHOS_STREAM_DEPTH_START = OHOS_STREAM_DEPTH << 16,
75     OHOS_STREAM_METADATA_START = OHOS_STREAM_METADATA << 16,
76     OHOS_STREAM_METADATA_FACE_START = OHOS_STREAM_METADATA_FACE << 16,
77     OHOS_STREAM_METADATA_BODY_START = OHOS_STREAM_METADATA_BODY << 16,
78 
79     OHOS_CAMERA_SECURE_START = OHOS_CAMERA_SECURE << 16,
80 } camera_device_info_section_start_t;
81 
82 typedef enum camera_device_metadata_tag {
83     // Camera attribute related item
84     OHOS_ABILITY_CAMERA_POSITION = OHOS_CAMERA_PROPERTIES_START,
85     OHOS_ABILITY_CAMERA_TYPE,
86     OHOS_ABILITY_CAMERA_CONNECTION_TYPE,
87     OHOS_ABILITY_MEMORY_TYPE,
88     OHOS_ABILITY_FPS_RANGES,
89     OHOS_ABILITY_FLASH_AVAILABLE,
90     OHOS_CAMERA_STREAM_ID,
91     OHOS_ABILITY_PRELAUNCH_AVAILABLE,
92     OHOS_ABILITY_CUSTOM_VIDEO_FPS,
93     OHOS_ABILITY_CAMERA_MODES,
94     OHOS_CAMERA_PROPERTIES_END,
95 
96     OHOS_SENSOR_EXPOSURE_TIME = OHOS_CAMERA_SENSOR_START,
97     OHOS_SENSOR_COLOR_CORRECTION_GAINS,
98     OHOS_SENSOR_ORIENTATION,
99     OHOS_ABILITY_MUTE_MODES,
100     OHOS_CONTROL_MUTE_MODE,
101     OHOS_CAMERA_SENSOR_END,
102 
103     OHOS_SENSOR_INFO_ACTIVE_ARRAY_SIZE = OHOS_CAMERA_SENSOR_INFO_START,
104     OHOS_SENSOR_INFO_SENSITIVITY_RANGE,
105     OHOS_SENSOR_INFO_MAX_FRAME_DURATION,
106     OHOS_SENSOR_INFO_PHYSICAL_SIZE,
107     OHOS_SENSOR_INFO_PIXEL_ARRAY_SIZE,
108     OHOS_SENSOR_INFO_TIMESTAMP,
109     OHOS_CAMERA_SENSOR_INFO_END,
110 
111     OHOS_STATISTICS_FACE_DETECT_MODE = OHOS_CAMERA_STATISTICS_START,
112     OHOS_STATISTICS_FACE_DETECT_SWITCH,
113     OHOS_STATISTICS_FACE_DETECT_MAX_NUM,
114     OHOS_STATISTICS_HISTOGRAM_MODE,
115     OHOS_STATISTICS_FACE_IDS,
116     OHOS_STATISTICS_FACE_LANDMARKS,
117     OHOS_STATISTICS_FACE_RECTANGLES,
118     OHOS_STATISTICS_FACE_SCORES,
119     OHOS_CAMERA_STATISTICS_END,
120 
121     OHOS_CONTROL_AE_ANTIBANDING_MODE = OHOS_DEVICE_CONTROL_START,
122     OHOS_CONTROL_AE_EXPOSURE_COMPENSATION,
123     OHOS_CONTROL_AE_LOCK,
124     OHOS_CONTROL_AE_MODE,
125     OHOS_CONTROL_AE_REGIONS,
126     OHOS_CONTROL_AE_TARGET_FPS_RANGE,
127     OHOS_CONTROL_FPS_RANGES,
128     OHOS_CONTROL_AF_MODE,
129     OHOS_CONTROL_AF_REGIONS,
130     OHOS_CONTROL_AF_TRIGGER,
131     OHOS_CONTROL_AF_TRIGGER_ID,
132     OHOS_CONTROL_AF_STATE,
133     OHOS_CONTROL_AWB_LOCK,
134     OHOS_CONTROL_AWB_MODE,
135     OHOS_CONTROL_AWB_REGIONS,
136     OHOS_CONTROL_AE_AVAILABLE_ANTIBANDING_MODES,
137     OHOS_CONTROL_AE_AVAILABLE_MODES,
138     OHOS_CONTROL_AE_AVAILABLE_TARGET_FPS_RANGES,
139     OHOS_CONTROL_AE_COMPENSATION_RANGE,
140     OHOS_CONTROL_AE_COMPENSATION_STEP,
141     OHOS_CONTROL_AF_AVAILABLE_MODES,
142     OHOS_CONTROL_AWB_AVAILABLE_MODES,
143     OHOS_CONTROL_CAPTURE_MIRROR_SUPPORTED,
144     OHOS_CONTROL_CAPTURE_MIRROR,
145     OHOS_CONTROL_FOCUS_STATE,
146     OHOS_CONTROL_METER_POINT,
147     OHOS_CONTROL_METER_MODE,
148     OHOS_CONTROL_EXPOSURE_STATE,
149     OHOS_CONTROL_FOCUSED_POINT,
150     OHOS_DEVICE_CONTROL_END,
151 
152     // Camera device image acquisition related
153     OHOS_ABILITY_DEVICE_AVAILABLE_EXPOSUREMODES = OHOS_DEVICE_EXPOSURE_START,
154     OHOS_CONTROL_EXPOSUREMODE,
155     OHOS_ABILITY_EXPOSURE_MODES,
156     OHOS_CONTROL_EXPOSURE_MODE,
157     OHOS_ABILITY_METER_MODES,
158     OHOS_ABILITY_SCENE_EXPOSURE_MODES,
159     OHOS_DEVICE_EXPOSURE_END,
160 
161     OHOS_ABILITY_DEVICE_AVAILABLE_FOCUSMODES = OHOS_DEVICE_FOCUS_START,
162     OHOS_CONTROL_FOCUSMODE,
163     OHOS_ABILITY_FOCUS_MODES,
164     OHOS_CONTROL_FOCUS_MODE,
165     OHOS_ABILITY_FOCAL_LENGTH,
166     OHOS_ABILITY_SCENE_FOCUS_MODES,
167     OHOS_DEVICE_FOCUS_END,
168 
169     OHOS_ABILITY_DEVICE_AVAILABLE_FLASHMODES = OHOS_DEVICE_FLASH_START,
170     OHOS_CONTROL_FLASHMODE,
171     OHOS_ABILITY_FLASH_MODES,
172     OHOS_CONTROL_FLASH_MODE,
173     OHOS_CONTROL_FLASH_STATE,
174     OHOS_ABILITY_SCENE_FLASH_MODES,
175     OHOS_DEVICE_FLASH_END,
176 
177     OHOS_ABILITY_ZOOM_RATIO_RANGE = OHOS_DEVICE_ZOOM_START,
178     OHOS_CONTROL_ZOOM_RATIO,
179     OHOS_CONTROL_ZOOM_CROP_REGION,
180     OHOS_ABILITY_ZOOM_CAP,
181     OHOS_ABILITY_SCENE_ZOOM_CAP,
182     OHOS_DEVICE_ZOOM_END,
183 
184     // Camera flow control related
185     OHOS_ABILITY_STREAM_AVAILABLE_BASIC_CONFIGURATIONS = OHOS_STREAM_ABILITY_START,
186     OHOS_STREAM_AVAILABLE_FORMATS,
187     OHOS_ABILITY_STREAM_AVAILABLE_EXTEND_CONFIGURATIONS,
188     OHOS_ABILITY_STREAM_QUICK_THUMBNAIL_AVAILABLE,
189     OHOS_ABILITY_PORTRAIT_RESOLUSION,
190     OHOS_ABILITY_SCENE_STREAM_QUICK_THUMBNAIL_AVAILABLE,
191     OHOS_STREAM_ABILITY_END,
192 
193     OHOS_JPEG_GPS_COORDINATES = OHOS_STREAM_JPEG_START,
194     OHOS_JPEG_GPS_PROCESSING_METHOD,
195     OHOS_JPEG_GPS_TIMESTAMP,
196     OHOS_JPEG_ORIENTATION,
197     OHOS_JPEG_QUALITY,
198     OHOS_JPEG_THUMBNAIL_QUALITY,
199     OHOS_JPEG_THUMBNAIL_SIZE,
200     OHOS_JPEG_AVAILABLE_THUMBNAIL_SIZES,
201     OHOS_JPEG_MAX_SIZE,
202     OHOS_JPEG_SIZE,
203     OHOS_STREAM_JPEG_END,
204 
205     OHOS_ABILITY_VIDEO_STABILIZATION_MODES = OHOS_STREAM_VIDEO_START,
206     OHOS_CONTROL_VIDEO_STABILIZATION_MODE,
207     OHOS_STREAM_VIDEO_END,
208 
209     // camera effects & algorithms
210     OHOS_ABILITY_SCENE_FILTER_TYPES = OHOS_CAMERA_EFFECT_START,
211     OHOS_CONTROL_FILTER_TYPE,
212     OHOS_ABILITY_SCENE_PORTRAIT_EFFECT_TYPES,
213     OHOS_CONTROL_PORTRAIT_EFFECT_TYPE,
214     OHOS_ABILITY_SCENE_BEAUTY_TYPES,
215     OHOS_CONTROL_BEAUTY_TYPE,
216     OHOS_ABILITY_BEAUTY_AUTO_VALUES,
217     OHOS_CONTROL_BEAUTY_AUTO_VALUE,
218     OHOS_ABILITY_BEAUTY_FACE_SLENDER_VALUES,
219     OHOS_CONTROL_BEAUTY_FACE_SLENDER_VALUE,
220     OHOS_ABILITY_BEAUTY_SKIN_TONE_VALUES,
221     OHOS_CONTROL_BEAUTY_SKIN_TONE_VALUE,
222     OHOS_ABILITY_BEAUTY_SKIN_SMOOTH_VALUES,
223     OHOS_CONTROL_BEAUTY_SKIN_SMOOTH_VALUE,
224     OHOS_CAMERA_EFFECT_END,
225 
226     // camera secure related
227     OHOS_CONTROL_SECURE_FACE_MODE = OHOS_CAMERA_SECURE_START,
228     OHOS_CONTROL_SECURE_FACE_INFO,
229     OHOS_CONTROL_SECURE_FACE_AUTH_RESULT,
230     OHOS_CONTROL_SECURE_FLASH_SEQ,
231     OHOS_CONTROL_SECURE_IR_LED_SWITCH,
232     OHOS_CONTROL_SECURE_IR_LOCKAE_SWITCH,
233     OHOS_CAMERA_SECURE_END,
234 } camera_device_metadata_tag_t;
235 
236 // OHOS_ABILITY_CAMERA_POSITION enumeration values
237 typedef enum camera_position_enum {
238     OHOS_CAMERA_POSITION_FRONT = 0,
239     OHOS_CAMERA_POSITION_BACK,
240     OHOS_CAMERA_POSITION_OTHER
241 } camera_position_enum_t;
242 
243 // OHOS_ABILITY_CAMERA_TYPE enumeration values
244 typedef enum camera_type_enum {
245     OHOS_CAMERA_TYPE_WIDE_ANGLE = 0,
246     OHOS_CAMERA_TYPE_ULTRA_WIDE,
247     OHOS_CAMERA_TYPE_TELTPHOTO,
248     OHOS_CAMERA_TYPE_TRUE_DEAPTH,
249     OHOS_CAMERA_TYPE_LOGICAL,
250     OHOS_CAMERA_TYPE_UNSPECIFIED,
251 } camera_type_enum_t;
252 
253 // OHOS_ABILITY_CAMERA_CONNECTION_TYPE enumeration values
254 typedef enum camera_connection_type {
255     OHOS_CAMERA_CONNECTION_TYPE_BUILTIN = 0,
256     OHOS_CAMERA_CONNECTION_TYPE_USB_PLUGIN,
257     OHOS_CAMERA_CONNECTION_TYPE_REMOTE,
258 } camera_connection_type_t;
259 
260 // OHOS_CONTROL_EXPOSUREMODE
261 // and OHOS_ABILITY_EXPOSURE_MODES enumeration values
262 typedef enum camera_exposure_mode_enum {
263     OHOS_CAMERA_EXPOSURE_MODE_MANUAL = 0,
264     OHOS_CAMERA_EXPOSURE_MODE_CONTINUOUS_AUTO,
265     OHOS_CAMERA_EXPOSURE_MODE_LOCKED,
266     OHOS_CAMERA_EXPOSURE_MODE_AUTO
267 } camera_exposure_mode_enum_t;
268 
269 // OHOS_CONTROL_FOCUS_MODE and OHOS_ABILITY_FOCUS_MODES enumeration values
270 typedef enum camera_focus_mode_enum {
271     OHOS_CAMERA_FOCUS_MODE_MANUAL = 0,
272     OHOS_CAMERA_FOCUS_MODE_CONTINUOUS_AUTO,
273     OHOS_CAMERA_FOCUS_MODE_AUTO,
274     OHOS_CAMERA_FOCUS_MODE_LOCKED
275 } camera_focus_mode_enum_t;
276 
277 // OHOS_CONTROL_FLASHMODE and OHOS_ABILITY_FLASH_MODES enumeration values
278 typedef enum camera_flash_mode_enum {
279     OHOS_CAMERA_FLASH_MODE_CLOSE = 0,
280     OHOS_CAMERA_FLASH_MODE_OPEN,
281     OHOS_CAMERA_FLASH_MODE_AUTO,
282     OHOS_CAMERA_FLASH_MODE_ALWAYS_OPEN
283 } camera_flash_mode_enum_t;
284 
285 // OHOS_CONTROL_FLASH_STATE enumeration values
286 typedef enum camera_flash_state_enum {
287     OHOS_CAMERA_FLASH_STATE_UNAVAILABLE = 0,
288     OHOS_CAMERA_FLASH_STATE_CHARGING,
289     OHOS_CAMERA_FLASH_STATE_READY,
290     OHOS_CAMERA_FLASH_STATE_FLASHING,
291     OHOS_CAMERA_FLASH_STATE_UNKNOWN
292 } camera_flash_state_enum_t;
293 
294 // OHOS_CONTROL_AE_ANTIBANDING_MODE enumeration values
295 typedef enum camera_ae_antibanding_mode {
296     OHOS_CAMERA_AE_ANTIBANDING_MODE_OFF,
297     OHOS_CAMERA_AE_ANTIBANDING_MODE_50HZ,
298     OHOS_CAMERA_AE_ANTIBANDING_MODE_60HZ,
299     OHOS_CAMERA_AE_ANTIBANDING_MODE_AUTO,
300 } camera_ae_antibanding_mode_t;
301 
302 // OHOS_CONTROL_AE_LOCK enumeration values
303 typedef enum camera_ae_lock {
304     OHOS_CAMERA_AE_LOCK_OFF,
305     OHOS_CAMERA_AE_LOCK_ON,
306 } camera_ae_lock_t;
307 
308 // OHOS_CONTROL_AE_MODE enumeration values
309 typedef enum camera_ae_mode {
310     OHOS_CAMERA_AE_MODE_OFF,
311     OHOS_CAMERA_AE_MODE_ON,
312     OHOS_CAMERA_AE_MODE_ON_AUTO_FLASH,
313     OHOS_CAMERA_AE_MODE_ON_ALWAYS_FLASH,
314     OHOS_CAMERA_AE_MODE_ON_AUTO_FLASH_REDEYE,
315     OHOS_CAMERA_AE_MODE_ON_EXTERNAL_FLASH,
316 } camera_ae_mode_t;
317 
318 // OHOS_CONTROL_AF_MODE
319 // and OHOS_CONTROL_AF_AVAILABLE_MODES enumeration values
320 typedef enum camera_af_mode {
321     OHOS_CAMERA_AF_MODE_OFF,
322     OHOS_CAMERA_AF_MODE_AUTO,
323     OHOS_CAMERA_AF_MODE_MACRO,
324     OHOS_CAMERA_AF_MODE_CONTINUOUS_VIDEO,
325     OHOS_CAMERA_AF_MODE_CONTINUOUS_PICTURE,
326     OHOS_CAMERA_AF_MODE_EDOF,
327 } camera_af_mode_t;
328 
329 // OHOS_CONTROL_AF_TRIGGER enumeration values
330 typedef enum camera_af_trigger {
331     OHOS_CAMERA_AF_TRIGGER_IDLE,
332     OHOS_CAMERA_AF_TRIGGER_START,
333     OHOS_CAMERA_AF_TRIGGER_CANCEL,
334 } camera_af_trigger_t;
335 
336 // OHOS_CONTROL_AF_STATE enumeration values
337 typedef enum camera_af_state {
338     OHOS_CAMERA_AF_STATE_INACTIVE,
339     OHOS_CAMERA_AF_STATE_PASSIVE_SCAN,
340     OHOS_CAMERA_AF_STATE_PASSIVE_FOCUSED,
341     OHOS_CAMERA_AF_STATE_ACTIVE_SCAN,
342     OHOS_CAMERA_AF_STATE_FOCUSED_LOCKED,
343     OHOS_CAMERA_AF_STATE_NOT_FOCUSED_LOCKED,
344     OHOS_CAMERA_AF_STATE_PASSIVE_UNFOCUSED,
345 } camera_af_state_t;
346 
347 // OHOS_CONTROL_AWB_LOCK enumeration values
348 typedef enum camera_awb_lock {
349     OHOS_CAMERA_AWB_LOCK_OFF,
350     OHOS_CAMERA_AWB_LOCK_ON,
351 } camera_awb_lock_t;
352 
353 // OHOS_CONTROL_AWB_MODE enumeration values
354 typedef enum camera_awb_mode {
355     OHOS_CAMERA_AWB_MODE_OFF,
356     OHOS_CAMERA_AWB_MODE_AUTO,
357     OHOS_CAMERA_AWB_MODE_INCANDESCENT,
358     OHOS_CAMERA_AWB_MODE_FLUORESCENT,
359     OHOS_CAMERA_AWB_MODE_WARM_FLUORESCENT,
360     OHOS_CAMERA_AWB_MODE_DAYLIGHT,
361     OHOS_CAMERA_AWB_MODE_CLOUDY_DAYLIGHT,
362     OHOS_CAMERA_AWB_MODE_TWILIGHT,
363     OHOS_CAMERA_AWB_MODE_SHADE,
364 } camera_awb_mode_t;
365 
366 // OHOS_STATISTICS_FACE_DETECT_MODE
367 // and OHOS_STATISTICS_FACE_DETECT_SWITCH enumeration values
368 typedef enum camera_face_detect_mode {
369     OHOS_CAMERA_FACE_DETECT_MODE_OFF,
370     OHOS_CAMERA_FACE_DETECT_MODE_SIMPLE
371 } camera_face_detect_mode_t;
372 
373 // OHOS_STATISTICS_HISTOGRAM_MODE enumeration values
374 typedef enum camera_histogram_mode {
375     OHOS_CAMERA_HISTOGRAM_MODE_OFF,
376     OHOS_CAMERA_HISTOGRAM_MODE_ON,
377 } camera_histogram_mode_t;
378 
379 // OHOS_STREAM_AVAILABLE_FORMATS
380 // and OHOS_ABILITY_STREAM_AVAILABLE_BASIC_CONFIGURATIONS enumeration values
381 typedef enum camera_format {
382     OHOS_CAMERA_FORMAT_RGBA_8888 = 1,
383     OHOS_CAMERA_FORMAT_YCBCR_420_888,
384     OHOS_CAMERA_FORMAT_YCRCB_420_SP,
385     OHOS_CAMERA_FORMAT_JPEG,
386 } camera_format_t;
387 
388 // OHOS_ABILITY_STREAM_QUICK_THUMBNAIL_AVAILABLE enumeration values
389 typedef enum camera_quick_thumbnail_available {
390     OHOS_CAMERA_QUICK_THUMBNAIL_FALSE = 0,
391     OHOS_CAMERA_QUICK_THUMBNAIL_TRUE,
392 } camera_quick_thumbnail_available_t;
393 
394 // OHOS_CONTROL_FOCUS_STATE enumeration values
395 typedef enum camera_focus_state {
396     OHOS_CAMERA_FOCUS_STATE_SCAN,
397     OHOS_CAMERA_FOCUS_STATE_FOCUSED,
398     OHOS_CAMERA_FOCUS_STATE_UNFOCUSED,
399 } camera_focus_state_t;
400 
401 // OHOS_CONTROL_METER_MODE and OHOS_ABILITY_METER_MODES enumeration values
402 typedef enum camera_meter_mode {
403     OHOS_CAMERA_SPOT_METERING = 0,
404     OHOS_CAMERA_REGION_METERING,
405     OHOS_CAMERA_OVERALL_METERING,
406 } camera_meter_mode_t;
407 
408 typedef enum camera_exposure_state {
409     OHOS_CAMERA_EXPOSURE_STATE_SCAN,
410     OHOS_CAMERA_EXPOSURE_STATE_CONVERGED,
411 } camera_exposure_state_t;
412 
413 // OHOS_CONTROL_CAPTURE_MIRROR
414 // and OHOS_CONTROL_CAPTURE_MIRROR_SUPPORTED enumeration values
415 typedef enum camera_mirror {
416     OHOS_CAMERA_MIRROR_OFF = 0,
417     OHOS_CAMERA_MIRROR_ON,
418 } camera_mirror_t;
419 
420 // OHOS_JPEG_ORIENTATION enumeration values
421 typedef enum camera_jpeg_orientation {
422     OHOS_CAMERA_JPEG_ROTATION_0 = 0,
423     OHOS_CAMERA_JPEG_ROTATION_90 = 90,
424     OHOS_CAMERA_JPEG_ROTATION_180 = 180,
425     OHOS_CAMERA_JPEG_ROTATION_270 = 270,
426 } camera_jpeg_orientation_t;
427 
428 // OHOS_JPEG_QUALITY enumeration values
429 typedef enum camera_jpeg_quality {
430     OHOS_CAMERA_JPEG_LEVEL_LOW = 0,
431     OHOS_CAMERA_JPEG_LEVEL_MIDDLE,
432     OHOS_CAMERA_JPEG_LEVEL_HIGH,
433 } camera_jpeg_quality_t;
434 
435 // OHOS_ABILITY_VIDEO_STABILIZATION_MODES
436 // and OHOS_CONTROL_VIDEO_STABILIZATION_MODE enumeration values
437 typedef enum camera_video_stabilization_mode {
438     OHOS_CAMERA_VIDEO_STABILIZATION_OFF = 0,
439     OHOS_CAMERA_VIDEO_STABILIZATION_LOW,
440     OHOS_CAMERA_VIDEO_STABILIZATION_MIDDLE,
441     OHOS_CAMERA_VIDEO_STABILIZATION_HIGH,
442     OHOS_CAMERA_VIDEO_STABILIZATION_AUTO,
443 } CameraVideoStabilizationMode;
444 
445 // OHOS_ABILITY_FLASH_AVAILABLE enumeration values
446 typedef enum camera_flash_available {
447     OHOS_CAMERA_FLASH_FALSE = 0,
448     OHOS_CAMERA_FLASH_TRUE,
449 } CameraFlashAvailable;
450 
451 // OHOS_ABILITY_MEMORY_TYPE enumeration values
452 typedef enum camera_memory_type_enum {
453     OHOS_CAMERA_MEMORY_MMAP = 1,
454     OHOS_CAMERA_MEMORY_USERPTR,
455     OHOS_CAMERA_MEMORY_OVERLAY,
456     OHOS_CAMERA_MEMORY_DMABUF,
457 } camera_memory_type_enum_t;
458 
459 // OHOS_ABILITY_MUTE_MODES and OHOS_CONTROL_MUTE_MODE enumeration values
460 typedef enum camera_mute_mode {
461     OHOS_CAMERA_MUTE_MODE_OFF,
462     OHOS_CAMERA_MUTE_MODE_SOLID_COLOR_BLACK,
463 } camera_mute_mode_t;
464 
465 // OHOS_ABILITY_SCENE_FILTER_TYPES enumeration values
466 typedef enum camera_filter_type {
467     OHOS_CAMERA_FILTER_TYPE_OFF = 0,
468     OHOS_CAMERA_FILTER_TYPE_NODE,
469     OHOS_CAMERA_FILTER_TYPE_CLASSIC,
470     OHOS_CAMERA_FILTER_TYPE_DAWN,
471     OHOS_CAMERA_FILTER_TYPE_PURE,
472     OHOS_CAMERA_FILTER_TYPE_GREY,
473     OHOS_CAMERA_FILTER_TYPE_NATURAL,
474     OHOS_CAMERA_FILTER_TYPE_MORI,
475     OHOS_CAMERA_FILTER_TYPE_FAIR,
476     OHOS_CAMERA_FILTER_TYPE_PINK,
477 } camera_filter_type_t;
478 
479 // OHOS_ABILITY_SCENE_PORTRAIT_EFFECT_TYPES enumeration values
480 typedef enum camera_portrait_effect_type {
481     OHOS_CAMERA_PORTRAIT_EFFECT_OFF = 0,
482     OHOS_CAMERA_PORTRAIT_CIRCLES,
483 } camera_portrait_effect_type_t;
484 
485 // OHOS_ABILITY_SCENE_BEAUTY_TYPES enumeration values
486 typedef enum camera_beauty_type {
487     OHOS_CAMERA_BEAUTY_TYPE_OFF = 0,
488     OHOS_CAMERA_BEAUTY_TYPE_AUTO,
489     OHOS_CAMERA_BEAUTY_TYPE_SKIN_SMOOTH,
490     OHOS_CAMERA_BEAUTY_TYPE_FACE_SLENDER,
491     OHOS_CAMERA_BEAUTY_TYPE_SKIN_TONE,
492 } camera_beauty_type_t;
493 #endif
494