• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
2  * Copyright (c) 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 /**
17  * @addtogroup OH_Camera
18  * @{
19  *
20  * @brief Provide the definition of the C interface for the camera module.
21  *
22  * @syscap SystemCapability.Multimedia.Camera.Core
23  *
24  * @since 11
25  * @version 1.0
26  */
27 
28 /**
29  * @file camera.h
30  *
31  * @brief Declare the camera base concepts.
32  *
33  * @library libohcamera.so
34  * @kit CameraKit
35  * @syscap SystemCapability.Multimedia.Camera.Core
36  * @since 11
37  * @version 1.0
38  */
39 
40 #ifndef NATIVE_INCLUDE_CAMERA_CAMERA_H
41 #define NATIVE_INCLUDE_CAMERA_CAMERA_H
42 
43 #include <stdint.h>
44 #include <stdio.h>
45 #include <stdbool.h>
46 
47 #ifdef __cplusplus
48 extern "C" {
49 #endif
50 
51 /**
52  * @brief camera manager object.
53  *
54  * A pointer can be created using {@link OH_Camera_GetCameraManager} method.
55  *
56  * @since 11
57  * @version 1.0
58  */
59 typedef struct Camera_Manager Camera_Manager;
60 
61 /**
62  * @brief Enum for camera error code.
63  *
64  * @since 11
65  * @version 1.0
66  */
67 typedef enum Camera_ErrorCode {
68     /**
69      * Camera result is ok.
70      */
71     CAMERA_OK = 0,
72 
73     /**
74      * Parameter missing or parameter type incorrect.
75      */
76     CAMERA_INVALID_ARGUMENT = 7400101,
77 
78     /**
79      * Operation not allowed.
80      */
81     CAMERA_OPERATION_NOT_ALLOWED = 7400102,
82 
83     /**
84      * Session not config.
85      */
86     CAMERA_SESSION_NOT_CONFIG = 7400103,
87 
88     /**
89      * Session not running.
90      */
91     CAMERA_SESSION_NOT_RUNNING = 7400104,
92 
93     /**
94      * Session config locked.
95      */
96     CAMERA_SESSION_CONFIG_LOCKED = 7400105,
97 
98     /**
99      * Device setting locked.
100      */
101     CAMERA_DEVICE_SETTING_LOCKED = 7400106,
102 
103     /**
104      * Can not use camera cause of conflict.
105      */
106     CAMERA_CONFLICT_CAMERA = 7400107,
107 
108     /**
109      * Camera disabled cause of security reason.
110      */
111     CAMERA_DEVICE_DISABLED = 7400108,
112 
113     /**
114      * Can not use camera cause of preempted.
115      */
116     CAMERA_DEVICE_PREEMPTED = 7400109,
117 
118     /**
119      * Unresolved conflicts with current configurations.
120      * @since 12
121      */
122     CAMERA_UNRESOLVED_CONFLICTS_WITH_CURRENT_CONFIGURATIONS = 7400110,
123 
124     /**
125      * Camera service fatal error.
126      */
127     CAMERA_SERVICE_FATAL_ERROR = 7400201
128 } Camera_ErrorCode;
129 
130 /**
131  * @brief Enum for camera status.
132  *
133  * @since 11
134  * @version 1.0
135  */
136 typedef enum Camera_Status {
137     /**
138      * Appear status.
139      */
140     CAMERA_STATUS_APPEAR = 0,
141 
142     /**
143      * Disappear status.
144      */
145     CAMERA_STATUS_DISAPPEAR = 1,
146 
147     /**
148      * Available status.
149      */
150     CAMERA_STATUS_AVAILABLE = 2,
151 
152     /**
153      * Unavailable status.
154      */
155     CAMERA_STATUS_UNAVAILABLE = 3
156 } Camera_Status;
157 
158 /**
159  * @brief Enum for scence mode.
160  *
161  * @since 12
162  * @version 1.0
163  */
164 typedef enum Camera_SceneMode {
165     /**
166      * Normal photo mode.
167      */
168     NORMAL_PHOTO = 1,
169 
170     /**
171      * Normal video mode.
172      */
173     NORMAL_VIDEO = 2,
174 
175     /**
176      * Secure camera mode.
177      */
178     SECURE_PHOTO = 12
179 } Camera_SceneMode;
180 
181 /**
182  * @brief Enum for camera position.
183  *
184  * @since 11
185  * @version 1.0
186  */
187 typedef enum Camera_Position {
188     /**
189      * Unspecified position.
190      */
191     CAMERA_POSITION_UNSPECIFIED = 0,
192 
193     /**
194      * Back position.
195      */
196     CAMERA_POSITION_BACK = 1,
197 
198     /**
199      * Front position.
200      */
201     CAMERA_POSITION_FRONT = 2
202 } Camera_Position;
203 
204 /**
205  * @brief Enum for camera type.
206  *
207  * @since 11
208  * @version 1.0
209  */
210 typedef enum Camera_Type {
211     /**
212      * Default camera type.
213      */
214     CAMERA_TYPE_DEFAULT = 0,
215 
216     /**
217      * Wide camera.
218      */
219     CAMERA_TYPE_WIDE_ANGLE = 1,
220 
221     /**
222      * Ultra wide camera.
223      */
224     CAMERA_TYPE_ULTRA_WIDE = 2,
225 
226     /**
227      * Telephoto camera.
228      */
229     CAMERA_TYPE_TELEPHOTO = 3,
230 
231     /**
232      * True depth camera.
233      */
234     CAMERA_TYPE_TRUE_DEPTH = 4
235 } Camera_Type;
236 
237 /**
238  * @brief Enum for camera connection type.
239  *
240  * @since 11
241  * @version 1.0
242  */
243 typedef enum Camera_Connection {
244     /**
245      * Built-in camera.
246      */
247     CAMERA_CONNECTION_BUILT_IN = 0,
248 
249     /**
250      * Camera connected using USB.
251      */
252     CAMERA_CONNECTION_USB_PLUGIN = 1,
253 
254     /**
255      * Remote camera.
256      */
257     CAMERA_CONNECTION_REMOTE = 2
258 } Camera_Connection;
259 
260 /**
261  * @brief Enum for camera format type.
262  *
263  * @since 11
264  * @version 1.0
265  */
266 typedef enum Camera_Format {
267     /**
268      * RGBA 8888 Format.
269      */
270     CAMERA_FORMAT_RGBA_8888 = 3,
271 
272     /**
273      * YUV 420 Format.
274      */
275     CAMERA_FORMAT_YUV_420_SP = 1003,
276 
277     /**
278      * JPEG Format.
279      */
280     CAMERA_FORMAT_JPEG = 2000,
281 
282     /**
283      * YCBCR P010 Format.
284      * @since 12
285      */
286     CAMERA_FORMAT_YCBCR_P010 = 2001,
287 
288     /**
289      * YCRCB P010 Format.
290      * @since 12
291      */
292     CAMERA_FORMAT_YCRCB_P010 = 2002
293 } Camera_Format;
294 
295 /**
296  * @brief Enum for flash mode.
297  *
298  * @since 11
299  * @version 1.0
300  */
301 typedef enum Camera_FlashMode {
302     /**
303      * Close mode.
304      */
305     FLASH_MODE_CLOSE = 0,
306 
307     /**
308      * Open mode.
309      */
310     FLASH_MODE_OPEN = 1,
311 
312     /**
313      * Auto mode.
314      */
315     FLASH_MODE_AUTO = 2,
316 
317     /**
318      * Always open mode.
319      */
320     FLASH_MODE_ALWAYS_OPEN = 3
321 } Camera_FlashMode;
322 
323 /**
324  * @brief Enum for exposure mode.
325  *
326  * @since 11
327  * @version 1.0
328  */
329 typedef enum Camera_ExposureMode {
330     /**
331      * Lock exposure mode.
332      */
333     EXPOSURE_MODE_LOCKED = 0,
334 
335     /**
336      * Auto exposure mode.
337      */
338     EXPOSURE_MODE_AUTO = 1,
339 
340     /**
341      * Continuous automatic exposure.
342      */
343     EXPOSURE_MODE_CONTINUOUS_AUTO = 2
344 } Camera_ExposureMode;
345 
346 /**
347  * @brief Enum for focus mode.
348  *
349  * @since 11
350  * @version 1.0
351  */
352 typedef enum Camera_FocusMode {
353     /**
354      * Manual mode.
355      */
356     FOCUS_MODE_MANUAL = 0,
357 
358     /**
359      * Continuous auto mode.
360      */
361     FOCUS_MODE_CONTINUOUS_AUTO = 1,
362 
363     /**
364      * Auto mode.
365      */
366     FOCUS_MODE_AUTO = 2,
367 
368     /**
369      * Locked mode.
370      */
371     FOCUS_MODE_LOCKED = 3
372 } Camera_FocusMode;
373 
374 /**
375  * @brief Enum for focus state.
376  *
377  * @since 11
378  * @version 1.0
379  */
380 typedef enum Camera_FocusState {
381     /**
382      * Scan state.
383      */
384     FOCUS_STATE_SCAN = 0,
385 
386     /**
387      * Focused state.
388      */
389     FOCUS_STATE_FOCUSED = 1,
390 
391     /**
392      * Unfocused state.
393      */
394     FOCUS_STATE_UNFOCUSED = 2
395 } Camera_FocusState;
396 
397 /**
398  * @brief Enum for video stabilization mode.
399  *
400  * @since 11
401  * @version 1.0
402  */
403 typedef enum Camera_VideoStabilizationMode {
404     /**
405      * Turn off video stablization.
406      */
407     STABILIZATION_MODE_OFF = 0,
408 
409     /**
410      * LOW mode provides basic stabilization effect.
411      */
412     STABILIZATION_MODE_LOW = 1,
413 
414     /**
415      * MIDDLE mode means algorithms can achieve better effects than LOW mode.
416      */
417     STABILIZATION_MODE_MIDDLE = 2,
418 
419     /**
420      * HIGH mode means algorithms can achieve better effects than MIDDLE mode.
421      */
422     STABILIZATION_MODE_HIGH = 3,
423 
424     /**
425      * Camera HDF can select mode automatically.
426      */
427     STABILIZATION_MODE_AUTO = 4
428 } Camera_VideoStabilizationMode;
429 
430 /**
431  * @brief Enum for the image rotation angles.
432  *
433  * @since 11
434  * @version 1.0
435  */
436 typedef enum Camera_ImageRotation {
437     /**
438      * The capture image rotates 0 degrees.
439      */
440     IAMGE_ROTATION_0 = 0,
441 
442     /**
443      * The capture image rotates 90 degrees.
444      */
445     IAMGE_ROTATION_90 = 90,
446 
447     /**
448      * The capture image rotates 180 degrees.
449      */
450     IAMGE_ROTATION_180 = 180,
451 
452     /**
453      * The capture image rotates 270 degrees.
454      */
455     IAMGE_ROTATION_270 = 270
456 } Camera_ImageRotation;
457 
458 /**
459  * @brief Enum for the image quality levels.
460  *
461  * @since 11
462  * @version 1.0
463  */
464 typedef enum Camera_QualityLevel {
465     /**
466      * High image quality.
467      */
468     QUALITY_LEVEL_HIGH = 0,
469 
470     /**
471      * Medium image quality.
472      */
473     QUALITY_LEVEL_MEDIUM = 1,
474 
475     /**
476      * Low image quality.
477      */
478     QUALITY_LEVEL_LOW = 2
479 } Camera_QualityLevel;
480 
481 /**
482  * @brief Enum for metadata object type.
483  *
484  * @since 11
485  * @version 1.0
486  */
487 typedef enum Camera_MetadataObjectType {
488     /**
489      * Face detection.
490      */
491     FACE_DETECTION = 0
492 } Camera_MetadataObjectType;
493 
494 /**
495  * @brief Enum for torch mode.
496  *
497  * @since 12
498  * @version 1.0
499  */
500 typedef enum Camera_TorchMode {
501     /**
502      * The device torch is always off.
503      */
504     OFF = 0,
505 
506     /**
507      * The device torch is always on.
508      */
509     ON = 1,
510 
511     /**
512      * The device continuously monitors light levels and
513      * uses the torch when necessary.
514      */
515     AUTO = 2
516 } Camera_TorchMode;
517 
518 /**
519  * @brief Enum for smooth zoom mode.
520  *
521  * @since 12
522  * @version 1.0
523  */
524 typedef enum Camera_SmoothZoomMode {
525     /**
526      * Normal zoom mode.
527      */
528     NORMAL = 0
529 } Camera_SmoothZoomMode;
530 
531 /**
532  * @brief Enum for preconfig type.
533  *
534  * @since 12
535  * @version 1.0
536  */
537 typedef enum Camera_PreconfigType {
538     /**
539      * The preconfig type is 720P.
540      */
541     PRECONFIG_720P = 0,
542 
543     /**
544      * The preconfig type is 1080P.
545      */
546     PRECONFIG_1080P = 1,
547 
548     /**
549      * The preconfig type is 4K.
550      */
551     PRECONFIG_4K = 2,
552 
553     /**
554      * The preconfig type is high quality.
555      */
556     PRECONFIG_HIGH_QUALITY = 3
557 } Camera_PreconfigType;
558 
559 /**
560  * @brief Enum for preconfig ratio.
561  *
562  * @since 12
563  * @version 1.0
564  */
565 typedef enum Camera_PreconfigRatio {
566     /**
567      * The preconfig ratio is 1:1.
568      */
569     PRECONFIG_RATIO_1_1 = 0,
570 
571     /**
572      * The preconfig ratio 4:3.
573      */
574     PRECONFIG_RATIO_4_3 = 1,
575 
576     /**
577      * The preconfig ratio 16:9.
578      */
579     PRECONFIG_RATIO_16_9 = 2
580 } Camera_PreconfigRatio;
581 
582 /**
583  * @brief Size parameter.
584  *
585  * @since 11
586  * @version 1.0
587  */
588 typedef struct Camera_Size {
589     /**
590      * Width.
591      */
592     uint32_t width;
593 
594     /**
595      * Height.
596      */
597     uint32_t height;
598 } Camera_Size;
599 
600 /**
601  * @brief Profile for camera streams.
602  *
603  * @since 11
604  * @version 1.0
605  */
606 typedef struct Camera_Profile {
607     /**
608      * Camera format.
609      */
610     Camera_Format format;
611 
612     /**
613      * Picture size.
614      */
615     Camera_Size size;
616 } Camera_Profile;
617 
618 /**
619  * @brief Frame rate range.
620  *
621  * @since 11
622  * @version 1.0
623  */
624 typedef struct Camera_FrameRateRange {
625     /**
626      * Min frame rate.
627      */
628     uint32_t min;
629 
630     /**
631      * Max frame rate.
632      */
633     uint32_t max;
634 } Camera_FrameRateRange;
635 
636 /**
637  * @brief Video profile.
638  *
639  * @since 11
640  * @version 1.0
641  */
642 typedef struct Camera_VideoProfile {
643     /**
644      * Camera format.
645      */
646     Camera_Format format;
647 
648     /**
649      * Picture size.
650      */
651     Camera_Size size;
652 
653     /**
654      * Frame rate in unit fps (frames per second).
655      */
656     Camera_FrameRateRange range;
657 } Camera_VideoProfile;
658 
659 /**
660  * @brief Camera output capability.
661  *
662  * @since 11
663  * @version 1.0
664  */
665 typedef struct Camera_OutputCapability {
666     /**
667      * Preview profiles list.
668      */
669     Camera_Profile** previewProfiles;
670 
671     /**
672      * Size of preview profiles list.
673      */
674     uint32_t previewProfilesSize;
675 
676     /**
677      * Photo profiles list.
678      */
679     Camera_Profile** photoProfiles;
680 
681     /**
682      * Size of photo profiles list.
683      */
684     uint32_t photoProfilesSize;
685 
686     /**
687      * Video profiles list.
688      */
689     Camera_VideoProfile** videoProfiles;
690 
691     /**
692      * Size of video profiles list.
693      */
694     uint32_t videoProfilesSize;
695 
696     /**
697      * Metadata object types list.
698      */
699     Camera_MetadataObjectType** supportedMetadataObjectTypes;
700 
701     /**
702      * Size of metadata object types list.
703      */
704     uint32_t metadataProfilesSize;
705 } Camera_OutputCapability;
706 
707 /**
708  * @brief Camera device object.
709  *
710  * @since 11
711  * @version 1.0
712  */
713 typedef struct Camera_Device {
714     /**
715      * Camera id attribute.
716      */
717     char* cameraId;
718 
719     /**
720      * Camera position attribute.
721      */
722     Camera_Position cameraPosition;
723 
724     /**
725      * Camera type attribute.
726      */
727     Camera_Type cameraType;
728 
729     /**
730      * Camera connection type attribute.
731      */
732     Camera_Connection connectionType;
733 
734     /**
735      * Camera orientation.
736      */
737     uint32_t cameraOrientation;
738 } Camera_Device;
739 
740 /**
741  * @brief Camera status info.
742  *
743  * @since 11
744  * @version 1.0
745  */
746 typedef struct Camera_StatusInfo {
747     /**
748      * Camera instance.
749      */
750     Camera_Device* camera;
751 
752     /**
753      * Current camera status.
754      */
755     Camera_Status status;
756 } Camera_StatusInfo;
757 
758 /**
759  * @brief Point parameter.
760  *
761  * @since 11
762  * @version 1.0
763  */
764 typedef struct Camera_Point {
765     /**
766      * X co-ordinate.
767      */
768     double x;
769 
770     /**
771      * Y co-ordinate.
772      */
773     double y;
774 } Camera_Point;
775 
776 /**
777  * @brief Photo capture location.
778  *
779  * @since 11
780  * @version 1.0
781  */
782 typedef struct Camera_Location {
783     /**
784      * Latitude.
785      */
786     double latitude;
787 
788     /**
789      * Longitude.
790      */
791     double longitude;
792 
793     /**
794      * Altitude.
795      */
796     double altitude;
797 } Camera_Location;
798 
799 /**
800  * @brief Photo capture options to set.
801  *
802  * @since 11
803  * @version 1.0
804  */
805 typedef struct Camera_PhotoCaptureSetting {
806     /**
807      * Photo image quality.
808      */
809     Camera_QualityLevel quality;
810 
811     /**
812      * Photo rotation.
813      */
814     Camera_ImageRotation rotation;
815 
816     /**
817      * Photo location.
818      */
819     Camera_Location* location;
820 
821     /**
822      * Set the mirror photo function switch, default to false.
823      */
824     bool mirror;
825 } Camera_PhotoCaptureSetting;
826 
827 /**
828  * @brief Frame shutter callback info.
829  *
830  * @since 11
831  * @version 1.0
832  */
833 typedef struct Camera_FrameShutterInfo {
834     /**
835      * Capture id.
836      */
837     int32_t captureId;
838 
839     /**
840      * Timestamp for frame.
841      */
842     uint64_t timestamp;
843 } Camera_FrameShutterInfo;
844 
845 /**
846  * @brief Capture end info.
847  *
848  * @since 11
849  * @version 1.0
850  */
851 typedef struct Camera_CaptureEndInfo {
852     /**
853      * Capture id.
854      */
855     int32_t captureId;
856 
857     /**
858      * Frame count.
859      */
860     int64_t frameCount;
861 } Camera_CaptureEndInfo;
862 
863 /**
864  * @brief Rectangle definition.
865  *
866  * @since 11
867  * @version 1.0
868  */
869 typedef struct Camera_Rect {
870     /**
871      * X coordinator of top left point.
872      */
873     int32_t topLeftX;
874 
875     /**
876      * Y coordinator of top left point.
877      */
878     int32_t topLeftY;
879 
880     /**
881      * Width of this rectangle.
882      */
883     int32_t width;
884 
885     /**
886      * Height of this rectangle.
887      */
888     int32_t height;
889 } Camera_Rect;
890 
891 /**
892  * @brief Metadata object basis.
893  *
894  * @since 11
895  * @version 1.0
896  */
897 typedef struct Camera_MetadataObject {
898     /**
899      * Metadata object type.
900      */
901     Camera_MetadataObjectType type;
902 
903     /**
904      * Metadata object timestamp in milliseconds.
905      */
906     int64_t timestamp;
907 
908     /**
909      * The axis-aligned bounding box of detected metadata object.
910      */
911     Camera_Rect* boundingBox;
912 } Camera_MetadataObject;
913 
914 /**
915  * @brief Torch Status Info.
916  *
917  * @since 12
918  * @version 1.0
919  */
920 typedef struct Camera_TorchStatusInfo {
921     /**
922      * is torch available.
923      */
924     bool isTorchAvailable;
925 
926     /**
927      * is torch active.
928      */
929     bool isTorchActive;
930 
931     /**
932      * the current torch brightness level.
933      */
934     float torchLevel;
935 } Camera_TorchStatusInfo;
936 
937 /**
938  * @brief SmoothZoomInfo object.
939  *
940  * @since 12
941  * @version 1.0
942  */
943 typedef struct Camera_SmoothZoomInfo {
944     /**
945      * The duration of smooth zoom.
946      */
947     int32_t duration;
948 } Camera_SmoothZoomInfo;
949 
950 /**
951  * @brief Capture start info.
952  *
953  * @since 12
954  * @version 1.0
955  */
956 typedef struct Camera_CaptureStartInfo {
957     /**
958      * Capture id.
959      */
960     int32_t captureId;
961 
962     /**
963      * Time(in milliseconds) is the shutter time for the photo.
964      */
965     int64_t time;
966 } Camera_CaptureStartInfo;
967 
968 /**
969  * @brief Frame shutter end callback info.
970  *
971  * @since 12
972  * @version 1.0
973  */
974 typedef struct Camera_FrameShutterEndInfo {
975     /**
976      * Capture id.
977      */
978     int32_t captureId;
979 } Camera_FrameShutterEndInfo;
980 
981 /**
982 * @brief Enum for fold status.
983 *
984 * @since 13
985 * @version 1.0
986 */
987 typedef enum Camera_FoldStatus {
988     /**
989      * Non_foldable status.
990      */
991     NON_FOLDABLE = 0,
992 
993     /**
994      * Expanded status.
995      */
996     EXPANDED = 1,
997 
998     /**
999      * Folded status.
1000      */
1001     FOLDED = 2
1002 } Camera_FoldStatus;
1003 
1004 /**
1005  * @brief Fold status info.
1006  *
1007  * @since 13
1008  * @version 1.0
1009  */
1010 typedef struct Camera_FoldStatusInfo {
1011     /**
1012      * Camera instance list.
1013      */
1014     Camera_Device** supportedCameras;
1015 
1016     /**
1017      * Size of camera list.
1018      */
1019     uint32_t cameraSize;
1020 
1021     /**
1022      * Current fold status.
1023      */
1024     Camera_FoldStatus foldStatus;
1025 } Camera_FoldStatusInfo;
1026 
1027 /**
1028  * @brief Auto device switch status info.
1029  *
1030  * @since 13
1031  * @version 1.0
1032  */
1033 typedef struct Camera_AutoDeviceSwitchStatusInfo {
1034     /**
1035      * is device switched.
1036      */
1037     bool isDeviceSwitched;
1038 
1039     /**
1040      * is device capability changed.
1041      */
1042     bool isDeviceCapabilityChanged;
1043 } Camera_AutoDeviceSwitchStatusInfo;
1044 
1045 /**
1046  * @brief Creates a CameraManager instance.
1047  *
1048  * @param cameraManager the output {@link Camera_Manager} cameraManager will be created
1049  *        if the method call succeeds.
1050  * @return {@link #CAMERA_OK} if the method call succeeds.
1051  *         {@link #INVALID_ARGUMENT} if parameter missing or parameter type incorrect.
1052  *         {@link #CAMERA_SERVICE_FATAL_ERROR} if camera service fatal error.
1053  * @since 11
1054  */
1055 Camera_ErrorCode OH_Camera_GetCameraManager(Camera_Manager** cameraManager);
1056 
1057 /**
1058  * @brief Delete the CameraManager instance.
1059  *
1060  * @param cameraManager the {@link Camera_Manager} cameraManager instance to be deleted.
1061  * @return {@link #CAMERA_OK} if the method call succeeds.
1062  *         {@link #INVALID_ARGUMENT} if parameter missing or parameter type incorrect.
1063  *         {@link #CAMERA_SERVICE_FATAL_ERROR} if camera service fatal error.
1064  * @since 11
1065  */
1066 Camera_ErrorCode OH_Camera_DeleteCameraManager(Camera_Manager* cameraManager);
1067 
1068 #ifdef __cplusplus
1069 }
1070 #endif
1071 
1072 #endif // NATIVE_INCLUDE_CAMERA_CAMERA_H
1073 /** @} */