# OH_Camera
## Overview
The **OH_Camera** module provides C APIs for the camera service.
**System capability**: SystemCapability.Multimedia.Camera.Core
**Since**: 11
## Summary
### File
| Name| Description|
| -------- | -------- |
| [camera.h](camera_8h.md) | Declares the basic concepts of the camera.
**Library**: libohcamera.so
**File to include**: <multimedia/camera_framework/camera.h> |
| [camera_input.h](camera__input_8h.md) | Declares the camera input concepts.
**Library**: libohcamera.so
**File to include**: <multimedia/camera_framework/camera_input.h>|
| [camera_manager.h](camera__manager_8h.md) | Declares the camera manager concepts.
**Library**: libohcamera.so
**File to include**: <multimedia/camera_framework/camera_manager.h>|
| [capture_session.h](capture__session_8h.md) | Declares the session capture concepts.
**Library**: libohcamera.so
**File to include**: <multimedia/camera_framework/capture_session.h>|
| [metadata_output.h](metadata__output_8h.md) | Declares the metadata output concepts.
**Library**: libohcamera.so
**File to include**: <multimedia/camera_framework/metadata_output.h>|
| [photo_output.h](photo__output_8h.md) | Declares the photo output concepts.
**Library**: libohcamera.so
**File to include**: <multimedia/camera_framework/photo_output.h>|
| [preview_output.h](preview__output_8h.md) | Declares the preview output concepts.
**Library**: libohcamera.so
**File to include**: <multimedia/camera_framework/preview_output.h>|
| [video_output.h](video__output_8h.md) | Declares the video output concepts.
**Library**: libohcamera.so
**File to include**: <multimedia/camera_framework/video_output.h>|
### Structs
| Name| Description|
| -------- | -------- |
| [Camera_Size](_camera___size.md) | Defines the parameters that describe the size.|
| [Camera_Profile](_camera___profile.md) | Defines the profile of the camera stream.|
| [Camera_FrameRateRange](_camera___frame_rate_range.md) | Defines the frame rate range.|
| [Camera_VideoProfile](_camera___video_profile.md) | Defines the video profile.|
| [Camera_OutputCapability](_camera___output_capability.md) | Defines the camera output capability.|
| [Camera_Device](_camera___device.md) | Defines the camera device.|
| [Camera_StatusInfo](_camera___status_info.md) | Defines the camera status information.|
| [Camera_Point](_camera___point.md) | Defines the parameters that describe a point.|
| [Camera_Location](_camera___location.md) | Defines the location where the photo is taken.|
| [Camera_PhotoCaptureSetting](_camera___photo_capture_setting.md) | Defines the photographing parameters.|
| [Camera_FrameShutterInfo](_camera___frame_shutter_info.md) | Defines the frame shutter callback.|
| [Camera_CaptureEndInfo](_camera___capture_end_info.md) | Defines the capture end information.|
| [Camera_Rect](_camera___rect.md) | Defines the rectangle.|
| [Camera_MetadataObject](_camera___metadata_object.md) | Defines the camera metadata.|
| [CameraInput_Callbacks](_camera_input___callbacks.md) | Defines the callbacks used to listen for camera input errors.|
| [CameraManager_Callbacks](_camera_manager___callbacks.md) | Defines the callbacks used to listen for camera status changes.|
| [CaptureSession_Callbacks](_capture_session___callbacks.md) | Defines the callbacks used for session capture.|
| [MetadataOutput_Callbacks](_metadata_output___callbacks.md) | Defines the callback functions of metadata output.|
| [PhotoOutput_Callbacks](_photo_output___callbacks.md) | Defines the callbacks used for photo output.|
| [PreviewOutput_Callbacks](_preview_output___callbacks.md) | Defines the callbacks used for preview output.|
| [VideoOutput_Callbacks](_video_output___callbacks.md) | Defines the callbacks used for video output.|
### Types
| Name| Description|
| -------- | -------- |
| [Camera_Manager](#camera_manager) | Defines the camera manager.|
| [Camera_ErrorCode](#camera_errorcode) | Defines an enum that enumerates the camera error codes.|
| [Camera_Status](#camera_status) | Defines an enum that enumerates the camera statuses.|
| [Camera_Position](#camera_position) | Defines an enum that enumerates the camera positions.|
| [Camera_Type](#camera_type) | Defines an enum that enumerates the camera types.|
| [Camera_Connection](#camera_connection) | Defines an enum that enumerates the camera connection types.|
| [Camera_Format](#camera_format) | Defines an enum that enumerates the camera output formats.|
| [Camera_FlashMode](#camera_flashmode) | Defines an enum that enumerates the flash modes.|
| [Camera_ExposureMode](#camera_exposuremode) | Defines an enum that enumerates the exposure modes.|
| [Camera_FocusMode](#camera_focusmode) | Defines an enum that enumerates the focus modes.|
| [Camera_FocusState](#camera_focusstate) | Defines an enum that enumerates the focus states.|
| [Camera_VideoStabilizationMode](#camera_videostabilizationmode) | Defines an enum that enumerates the video stabilization modes.|
| [Camera_ImageRotation](#camera_imagerotation) | Defines an enum that enumerates the image rotation angles.|
| [Camera_QualityLevel](#camera_qualitylevel) | Defines an enum that enumerates the image quality levels.|
| [Camera_MetadataObjectType](#camera_metadataobjecttype) | Defines an enum that enumerates the metadata object types.|
| [Camera_Size](#camera_size) | Defines the parameters that describe the size.|
| [Camera_Profile](#camera_profile) | Defines the profile of the camera stream.|
| [Camera_FrameRateRange](#camera_frameraterange) | Defines the frame rate range.|
| [Camera_VideoProfile](#camera_videoprofile) | Defines the video profile.|
| [Camera_OutputCapability](#camera_outputcapability) | Defines the camera output capability.|
| [Camera_Device](#camera_device) | Defines the camera device.|
| [Camera_StatusInfo](#camera_statusinfo) | Defines the camera status information.|
| [Camera_Point](#camera_point) | Defines the parameters that describe a point.|
| [Camera_Location](#camera_location) | Defines the location where the photo is taken.|
| [Camera_PhotoCaptureSetting](#camera_photocapturesetting) | Defines the photographing parameters.|
| [Camera_FrameShutterInfo](#camera_frameshutterinfo) | Defines the frame shutter callback.|
| [Camera_CaptureEndInfo](#camera_captureendinfo) | Defines the capture end information.|
| [Camera_Rect](#camera_rect) | Defines the rectangle.|
| [Camera_MetadataObject](#camera_metadataobject) | Defines the camera metadata.|
| [Camera_Input](#camera_input) | Defines the camera input object.|
| (\*[OH_CameraInput_OnError](#oh_camerainput_onerror)) (const [Camera_Input](#camera_input) \*cameraInput, [Camera_ErrorCode](#camera_errorcode) errorCode) | Defines the pointer to the callback defined in the [CameraInput_Callbacks](_camera_input___callbacks.md) struct and used to report camera input errors.|
| [CameraInput_Callbacks](#camerainput_callbacks) | Defines the callbacks used to listen for camera input errors.|
| (\*[OH_CameraManager_StatusCallback](#oh_cameramanager_statuscallback)) ([Camera_Manager](#camera_manager) \*cameraManager, [Camera_StatusInfo](_camera___status_info.md) \*status) | Defines the pointer to the callback defined in the [CameraManager_Callbacks](_camera_manager___callbacks.md) struct and used to report the camera manager status.|
| [CameraManager_Callbacks](#cameramanager_callbacks) | Defines the callbacks used to listen for camera status changes.|
| [Camera_CaptureSession](#camera_capturesession) | Defines the session capture object.|
| (\*[OH_CaptureSession_OnFocusStateChange](#oh_capturesession_onfocusstatechange)) ([Camera_CaptureSession](#camera_capturesession) \*session, [Camera_FocusState](#camera_focusstate) focusState) | Defines the pointer to the callback defined in the [CaptureSession_Callbacks](_capture_session___callbacks.md) struct and used to report session capture focus status changes.|
| (\*[OH_CaptureSession_OnError](#oh_capturesession_onerror)) ([Camera_CaptureSession](#camera_capturesession) \*session, [Camera_ErrorCode](#camera_errorcode) errorCode) | Defines the pointer to the callback defined in the [CaptureSession_Callbacks](_capture_session___callbacks.md) struct and used to report capture session errors.|
| [CaptureSession_Callbacks](#capturesession_callbacks) | Defines the callbacks used for session capture.|
| [Camera_MetadataOutput](#camera_metadataoutput) | Defines the metadata output object.|
| (\*[OH_MetadataOutput_OnMetadataObjectAvailable](#oh_metadataoutput_onmetadataobjectavailable)) ([Camera_MetadataOutput](#camera_metadataoutput) \*metadataOutput, [Camera_MetadataObject](_camera___metadata_object.md) \*metadataObject, uint32_t size) | Defines the pointer to the callback defined in the [MetadataOutput_Callbacks](_metadata_output___callbacks.md) struct and used to report metadata output data.|
| (\*[OH_MetadataOutput_OnError](#oh_metadataoutput_onerror)) ([Camera_MetadataOutput](#camera_metadataoutput) \*metadataOutput, [Camera_ErrorCode](#camera_errorcode) errorCode) | Defines the pointer to the callback defined in the [MetadataOutput_Callbacks](_metadata_output___callbacks.md) struct and used to report metadata output errors.|
| [MetadataOutput_Callbacks](#metadataoutput_callbacks) | Defines the callback functions of metadata output.|
| [Camera_PhotoOutput](#camera_photooutput) | Defines the photo output object.|
| (\*[OH_PhotoOutput_OnFrameStart](#oh_photooutput_onframestart)) ([Camera_PhotoOutput](#camera_photooutput) \*photoOutput) | Defines the pointer to the callback defined in the **PhotoOutput_Callbacks** struct and used to report photo output frame start events.|
| (\*[OH_PhotoOutput_OnFrameShutter](#oh_photooutput_onframeshutter)) ([Camera_PhotoOutput](#camera_photooutput) \*photoOutput, [Camera_FrameShutterInfo](_camera___frame_shutter_info.md) \*info) | Defines the pointer to the callback defined in the **PhotoOutput_Callbacks** struct and used to report frame shutter events.|
| (\*[OH_PhotoOutput_OnFrameEnd](#oh_photooutput_onframeend)) ([Camera_PhotoOutput](#camera_photooutput) \*photoOutput, int32_t frameCount) | Defines the pointer to the callback defined in the **PhotoOutput_Callbacks** struct and used to report photo output frame end events.|
| (\*[OH_PhotoOutput_OnError](#oh_photooutput_onerror)) ([Camera_PhotoOutput](#camera_photooutput) \*photoOutput, [Camera_ErrorCode](#camera_errorcode) errorCode) | Defines the pointer to the callback defined in the **PhotoOutput_Callbacks** struct and used to report photo output errors.|
| [PhotoOutput_Callbacks](#photooutput_callbacks) | Defines the callbacks used for photo output.|
| [Camera_PreviewOutput](#camera_previewoutput) | Defines the preview output object.|
| (\*[OH_PreviewOutput_OnFrameStart](#oh_previewoutput_onframestart)) ([Camera_PreviewOutput](#camera_previewoutput) \*previewOutput) | Defines the pointer to the callback defined in the [PreviewOutput_Callbacks](_preview_output___callbacks.md) struct and used to report preview output frame start events.|
| (\*[OH_PreviewOutput_OnFrameEnd](#oh_previewoutput_onframeend)) ([Camera_PreviewOutput](#camera_previewoutput) \*previewOutput, int32_t frameCount) | Defines the pointer to the callback defined in the [PreviewOutput_Callbacks](_preview_output___callbacks.md) struct and used to report preview output frame end events.|
| (\*[OH_PreviewOutput_OnError](#oh_previewoutput_onerror)) ([Camera_PreviewOutput](#camera_previewoutput) \*previewOutput, [Camera_ErrorCode](#camera_errorcode) errorCode) | Defines the pointer to the callback defined in the [PreviewOutput_Callbacks](_preview_output___callbacks.md) struct and used to report preview output errors.|
| [PreviewOutput_Callbacks](#previewoutput_callbacks) | Defines the callbacks used for preview output.|
| [Camera_VideoOutput](#camera_videooutput) | Defines the video output object.|
| (\*[OH_VideoOutput_OnFrameStart](#oh_videooutput_onframestart)) ([Camera_VideoOutput](#camera_videooutput) \*videoOutput) | Defines the pointer to the callback defined in the [VideoOutput_Callbacks](_video_output___callbacks.md) struct and used to report video output frame start events.|
| (\*[OH_VideoOutput_OnFrameEnd](#oh_videooutput_onframeend)) ([Camera_VideoOutput](#camera_videooutput) \*videoOutput, int32_t frameCount) | Defines the pointer to the callback defined in the [VideoOutput_Callbacks](_video_output___callbacks.md) struct and used to report video output frame end events.|
| (\*[OH_VideoOutput_OnError](#oh_videooutput_onerror)) ([Camera_VideoOutput](#camera_videooutput) \*videoOutput, [Camera_ErrorCode](#camera_errorcode) errorCode) | Defines the pointer to the callback defined in the [VideoOutput_Callbacks](_video_output___callbacks.md) struct and used to report video output errors.|
| [VideoOutput_Callbacks](#videooutput_callbacks) | Defines the callbacks used for video output.|
### Enums
| Name| Description|
| -------- | -------- |
| [Camera_ErrorCode](#camera_errorcode) {
CAMERA_OK = 0, CAMERA_INVALID_ARGUMENT = 7400101, CAMERA_OPERATION_NOT_ALLOWED = 7400102, CAMERA_SESSION_NOT_CONFIG = 7400103,
CAMERA_SESSION_NOT_RUNNING = 7400104, CAMERA_SESSION_CONFIG_LOCKED = 7400105, CAMERA_DEVICE_SETTING_LOCKED = 7400106, CAMERA_CONFLICT_CAMERA = 7400107,
CAMERA_DEVICE_DISABLED = 7400108, CAMERA_DEVICE_PREEMPTED = 7400109, CAMERA_SERVICE_FATAL_ERROR = 7400201
} | Enumerates the camera error codes.|
| [Camera_Status](#camera_status) { CAMERA_STATUS_APPEAR = 0, CAMERA_STATUS_DISAPPEAR = 1, CAMERA_STATUS_AVAILABLE = 2, CAMERA_STATUS_UNAVAILABLE = 3 } | Enumerates the camera statuses.|
| [Camera_Position](#camera_position) { CAMERA_POSITION_UNSPECIFIED = 0, CAMERA_POSITION_BACK = 1, CAMERA_POSITION_FRONT = 2 } | Enumerates the camera positions.|
| [Camera_Type](#camera_type) {
CAMERA_TYPE_DEFAULT = 0, CAMERA_TYPE_WIDE_ANGLE = 1, CAMERA_TYPE_ULTRA_WIDE = 2, CAMERA_TYPE_TELEPHOTO = 3,
CAMERA_TYPE_TRUE_DEPTH = 4
} | Enumerates the camera types.|
| [Camera_Connection](#camera_connection) { CAMERA_CONNECTION_BUILT_IN = 0, CAMERA_CONNECTION_USB_PLUGIN = 1, CAMERA_CONNECTION_REMOTE = 2 } | Enumerates the camera connection types.|
| [Camera_Format](#camera_format) { CAMERA_FORMAT_RGBA_8888 = 3, CAMERA_FORMAT_YUV_420_SP = 1003, CAMERA_FORMAT_JPEG = 2000 } | Enumerates the camera output formats.|
| [Camera_FlashMode](#camera_flashmode) { FLASH_MODE_CLOSE = 0, FLASH_MODE_OPEN = 1, FLASH_MODE_AUTO = 2, FLASH_MODE_ALWAYS_OPEN = 3 } | Enumerates the flash modes.|
| [Camera_ExposureMode](#camera_exposuremode) { EXPOSURE_MODE_LOCKED = 0, EXPOSURE_MODE_AUTO = 1, EXPOSURE_MODE_CONTINUOUS_AUTO = 2 } | Enumerates the exposure modes.|
| [Camera_FocusMode](#camera_focusmode) { FOCUS_MODE_MANUAL = 0, FOCUS_MODE_CONTINUOUS_AUTO = 1, FOCUS_MODE_AUTO = 2, FOCUS_MODE_LOCKED = 3 } | Enumerates the focus modes.|
| [Camera_FocusState](#camera_focusstate) { FOCUS_STATE_SCAN = 0, FOCUS_STATE_FOCUSED = 1, FOCUS_STATE_UNFOCUSED = 2 } | Enumerates the focus states.|
| [Camera_VideoStabilizationMode](#camera_videostabilizationmode) {
STABILIZATION_MODE_OFF = 0, STABILIZATION_MODE_LOW = 1, STABILIZATION_MODE_MIDDLE = 2, STABILIZATION_MODE_HIGH = 3,
STABILIZATION_MODE_AUTO = 4
} | Enumerates the video stabilization modes.|
| [Camera_ImageRotation](#camera_imagerotation) { IAMGE_ROTATION_0 = 0, IAMGE_ROTATION_90 = 90, IAMGE_ROTATION_180 = 180, IAMGE_ROTATION_270 = 270 } | Enumerates the image rotation angles.|
| [Camera_QualityLevel](#camera_qualitylevel) { QUALITY_LEVEL_HIGH = 0, QUALITY_LEVEL_MEDIUM = 1, QUALITY_LEVEL_LOW = 2 } | Enumerates the image quality levels.|
| [Camera_MetadataObjectType](#camera_metadataobjecttype) { FACE_DETECTION = 0 } | Enumerates the metadata object types.|
### Functions
| Name| Description|
| -------- | -------- |
| [OH_Camera_GetCameraManager](#oh_camera_getcameramanager) ([Camera_Manager](#camera_manager) \*\*cameraManager) | Obtains a **CameraManager** instance.|
| [OH_Camera_DeleteCameraManager](#oh_camera_deletecameramanager) ([Camera_Manager](#camera_manager) \*cameraManager) | Deletes a **CameraManager** instance.|
| [OH_CameraInput_RegisterCallback](#oh_camerainput_registercallback) ([Camera_Input](#camera_input) \*cameraInput, [CameraInput_Callbacks](_camera_input___callbacks.md) \*callback) | Registers a callback to listen for camera input changes.|
| [OH_CameraInput_UnregisterCallback](#oh_camerainput_unregistercallback) ([Camera_Input](#camera_input) \*cameraInput, [CameraInput_Callbacks](_camera_input___callbacks.md) \*callback) | Unregisters the callback used to listen for camera input events.|
| [OH_CameraInput_Open](#oh_camerainput_open) ([Camera_Input](#camera_input) \*cameraInput) | Opens a camera.|
| [OH_CameraInput_Close](#oh_camerainput_close) ([Camera_Input](#camera_input) \*cameraInput) | Closes a camera.|
| [OH_CameraInput_Release](#oh_camerainput_release) ([Camera_Input](#camera_input) \*cameraInput) | Releases a **CameraInput** instance.|
| [OH_CameraManager_RegisterCallback](#oh_cameramanager_registercallback) ([Camera_Manager](#camera_manager) \*cameraManager, [CameraManager_Callbacks](_camera_manager___callbacks.md) \*callback) | Registers a callback to listen for camera status changes.|
| [OH_CameraManager_UnregisterCallback](#oh_cameramanager_unregistercallback) ([Camera_Manager](#camera_manager) \*cameraManager, [CameraManager_Callbacks](_camera_manager___callbacks.md) \*callback) | Unregisters the callback used to listen for camera status changes.|
| [OH_CameraManager_GetSupportedCameras](#oh_cameramanager_getsupportedcameras) ([Camera_Manager](#camera_manager) \*cameraManager, [Camera_Device](_camera___device.md) \*\*cameras, uint32_t \*size) | Obtains supported cameras.|
| [OH_CameraManager_DeleteSupportedCameras](#oh_cameramanager_deletesupportedcameras) ([Camera_Manager](#camera_manager) \*cameraManager, [Camera_Device](_camera___device.md) \*cameras, uint32_t size) | Deletes supported cameras.|
| [OH_CameraManager_GetSupportedCameraOutputCapability](#oh_cameramanager_getsupportedcameraoutputcapability) ([Camera_Manager](#camera_manager) \*cameraManager, const [Camera_Device](_camera___device.md) \*camera, [Camera_OutputCapability](_camera___output_capability.md) \*\*cameraOutputCapability) | Obtains the output capability supported by a camera in the specified mode.|
| [OH_CameraManager_DeleteSupportedCameraOutputCapability](#oh_cameramanager_deletesupportedcameraoutputcapability) ([Camera_Manager](#camera_manager) \*cameraManager, [Camera_OutputCapability](_camera___output_capability.md) \*cameraOutputCapability) | Deletes the output capability supported by a camera.|
| [OH_CameraManager_IsCameraMuted](#oh_cameramanager_iscameramuted) ([Camera_Manager](#camera_manager) \*cameraManager, bool \*isCameraMuted) | Checks whether a camera is muted.|
| [OH_CameraManager_CreateCaptureSession](#oh_cameramanager_createcapturesession) ([Camera_Manager](#camera_manager) \*cameraManager, [Camera_CaptureSession](#camera_capturesession) \*\*captureSession) | Creates a **CaptureSession** instance.|
| [OH_CameraManager_CreateCameraInput](#oh_cameramanager_createcamerainput) ([Camera_Manager](#camera_manager) \*cameraManager, const [Camera_Device](_camera___device.md) \*camera, [Camera_Input](#camera_input) \*\*cameraInput) | Creates a **CameraInput** instance.|
| [OH_CameraManager_CreateCameraInput_WithPositionAndType](#oh_cameramanager_createcamerainput_withpositionandtype) ([Camera_Manager](#camera_manager) \*cameraManager, [Camera_Position](#camera_position) position, [Camera_Type](#camera_type) type, [Camera_Input](#camera_input) \*\*cameraInput) | Creates a **CameraInput** instance with the specified location and type.|
| [OH_CameraManager_CreatePreviewOutput](#oh_cameramanager_createpreviewoutput) ([Camera_Manager](#camera_manager) \*cameraManager, const [Camera_Profile](_camera___profile.md) \*profile, const char \*surfaceId, [Camera_PreviewOutput](#camera_previewoutput) \*\*previewOutput) | Creates a **PreviewOutput** instance.|
| [OH_CameraManager_CreatePhotoOutput](#oh_cameramanager_createphotooutput) ([Camera_Manager](#camera_manager) \*cameraManager, const [Camera_Profile](_camera___profile.md) \*profile, const char \*surfaceId, [Camera_PhotoOutput](#camera_photooutput) \*\*photoOutput) | Creates a **PhotoOutput** instance.|
| [OH_CameraManager_CreateVideoOutput](#oh_cameramanager_createvideooutput) ([Camera_Manager](#camera_manager) \*cameraManager, const [Camera_VideoProfile](_camera___video_profile.md) \*profile, const char \*surfaceId, [Camera_VideoOutput](#camera_videooutput) \*\*videoOutput) | Creates a **VideoOutput** instance.|
| [OH_CameraManager_CreateMetadataOutput](#oh_cameramanager_createmetadataoutput) ([Camera_Manager](#camera_manager) \*cameraManager, const [Camera_MetadataObjectType](#camera_metadataobjecttype) \*profile, [Camera_MetadataOutput](#camera_metadataoutput) \*\*metadataOutput) | Creates a **MetadataOutput** instance.|
| [OH_CaptureSession_RegisterCallback](#oh_capturesession_registercallback) ([Camera_CaptureSession](#camera_capturesession) \*session, [CaptureSession_Callbacks](_capture_session___callbacks.md) \*callback) | Registers a callback to listen for session capture events.|
| [OH_CaptureSession_UnregisterCallback](#oh_capturesession_unregistercallback) ([Camera_CaptureSession](#camera_capturesession) \*session, [CaptureSession_Callbacks](_capture_session___callbacks.md) \*callback) | Unregisters the callback used to listen for session capture events.|
| [OH_CaptureSession_BeginConfig](#oh_capturesession_beginconfig) ([Camera_CaptureSession](#camera_capturesession) \*session) | Starts the configuration for session capture.|
| [OH_CaptureSession_CommitConfig](#oh_capturesession_commitconfig) ([Camera_CaptureSession](#camera_capturesession) \*session) | Commits the configuration for session capture.|
| [OH_CaptureSession_AddInput](#oh_capturesession_addinput) ([Camera_CaptureSession](#camera_capturesession) \*session, [Camera_Input](#camera_input) \*cameraInput) | Adds a **CameraInput** instance to a session.|
| [OH_CaptureSession_RemoveInput](#oh_capturesession_removeinput) ([Camera_CaptureSession](#camera_capturesession) \*session, [Camera_Input](#camera_input) \*cameraInput) | Removes a **CameraInput** instance from a session.|
| [OH_CaptureSession_AddPreviewOutput](#oh_capturesession_addpreviewoutput) ([Camera_CaptureSession](#camera_capturesession) \*session, [Camera_PreviewOutput](#camera_previewoutput) \*previewOutput) | Adds a **PreviewOutput** instance to a session.|
| [OH_CaptureSession_RemovePreviewOutput](#oh_capturesession_removepreviewoutput) ([Camera_CaptureSession](#camera_capturesession) \*session, [Camera_PreviewOutput](#camera_previewoutput) \*previewOutput) | Removes a **PreviewOutput** instance from a session.|
| [OH_CaptureSession_AddPhotoOutput](#oh_capturesession_addphotooutput) ([Camera_CaptureSession](#camera_capturesession) \*session, [Camera_PhotoOutput](#camera_photooutput) \*photoOutput) | Adds a **PhotoOutput** instance to a session.|
| [OH_CaptureSession_RemovePhotoOutput](#oh_capturesession_removephotooutput) ([Camera_CaptureSession](#camera_capturesession) \*session, [Camera_PhotoOutput](#camera_photooutput) \*photoOutput) | Removes a **PhotoOutput** instance from a session.|
| [OH_CaptureSession_AddVideoOutput](#oh_capturesession_addvideooutput) ([Camera_CaptureSession](#camera_capturesession) \*session, [Camera_VideoOutput](#camera_videooutput) \*videoOutput) | Adds a **VideoOutput** instance to a session.|
| [OH_CaptureSession_RemoveVideoOutput](#oh_capturesession_removevideooutput) ([Camera_CaptureSession](#camera_capturesession) \*session, [Camera_VideoOutput](#camera_videooutput) \*videoOutput) | Removes a **VideoOutput** instance from a session.|
| [OH_CaptureSession_AddMetadataOutput](#oh_capturesession_addmetadataoutput) ([Camera_CaptureSession](#camera_capturesession) \*session, [Camera_MetadataOutput](#camera_metadataoutput) \*metadataOutput) | Adds a **MetadataOutput** instance to a session.|
| [OH_CaptureSession_RemoveMetadataOutput](#oh_capturesession_removemetadataoutput) ([Camera_CaptureSession](#camera_capturesession) \*session, [Camera_MetadataOutput](#camera_metadataoutput) \*metadataOutput) | Removes a **MetadataOutput** instance from a session.|
| [OH_CaptureSession_Start](#oh_capturesession_start) ([Camera_CaptureSession](#camera_capturesession) \*session) | Starts session capture.|
| [OH_CaptureSession_Stop](#oh_capturesession_stop) ([Camera_CaptureSession](#camera_capturesession) \*session) | Stops session capture.|
| [OH_CaptureSession_Release](#oh_capturesession_release) ([Camera_CaptureSession](#camera_capturesession) \*session) | Releases a **CaptureSession** instance.|
| [OH_CaptureSession_HasFlash](#oh_capturesession_hasflash) ([Camera_CaptureSession](#camera_capturesession) \*session, bool \*hasFlash) | Checks whether the device has flash.|
| [OH_CaptureSession_IsFlashModeSupported](#oh_capturesession_isflashmodesupported) ([Camera_CaptureSession](#camera_capturesession) \*session, [Camera_FlashMode](#camera_flashmode) flashMode, bool \*isSupported) | Checks whether a flash mode is supported.|
| [OH_CaptureSession_GetFlashMode](#oh_capturesession_getflashmode) ([Camera_CaptureSession](#camera_capturesession) \*session, [Camera_FlashMode](#camera_flashmode) \*flashMode) | Obtains the flash mode in use.|
| [OH_CaptureSession_SetFlashMode](#oh_capturesession_setflashmode) ([Camera_CaptureSession](#camera_capturesession) \*session, [Camera_FlashMode](#camera_flashmode) flashMode) | Sets a flash mode for the device.|
| [OH_CaptureSession_IsExposureModeSupported](#oh_capturesession_isexposuremodesupported) ([Camera_CaptureSession](#camera_capturesession) \*session, [Camera_ExposureMode](#camera_exposuremode) exposureMode, bool \*isSupported) | Checks whether an exposure mode is supported.|
| [OH_CaptureSession_GetExposureMode](#oh_capturesession_getexposuremode) ([Camera_CaptureSession](#camera_capturesession) \*session, [Camera_ExposureMode](#camera_exposuremode) \*exposureMode) | Obtains the exposure mode in use.|
| [OH_CaptureSession_SetExposureMode](#oh_capturesession_setexposuremode) ([Camera_CaptureSession](#camera_capturesession) \*session, [Camera_ExposureMode](#camera_exposuremode) exposureMode) | Sets an exposure mode for the device.|
| [OH_CaptureSession_GetMeteringPoint](#oh_capturesession_getmeteringpoint) ([Camera_CaptureSession](#camera_capturesession) \*session, [Camera_Point](_camera___point.md) \*point) | Obtains the metering point in use.|
| [OH_CaptureSession_SetMeteringPoint](#oh_capturesession_setmeteringpoint) ([Camera_CaptureSession](#camera_capturesession) \*session, [Camera_Point](_camera___point.md) point) | Sets the metering point, which is the center point of the metering rectangle.|
| [OH_CaptureSession_GetExposureBiasRange](#oh_capturesession_getexposurebiasrange) ([Camera_CaptureSession](#camera_capturesession) \*session, float \*minExposureBias, float \*maxExposureBias, float \*step) | Obtains the exposure compensation values of the device.|
| [OH_CaptureSession_SetExposureBias](#oh_capturesession_setexposurebias) ([Camera_CaptureSession](#camera_capturesession) \*session, float exposureBias) | Sets an exposure compensation value for the device.|
| [OH_CaptureSession_GetExposureBias](#oh_capturesession_getexposurebias) ([Camera_CaptureSession](#camera_capturesession) \*session, float \*exposureBias) | Obtains the exposure compensation value in use.|
| [OH_CaptureSession_IsFocusModeSupported](#oh_capturesession_isfocusmodesupported) ([Camera_CaptureSession](#camera_capturesession) \*session, [Camera_FocusMode](#camera_focusmode) focusMode, bool \*isSupported) | Checks whether a focus mode is supported.|
| [OH_CaptureSession_GetFocusMode](#oh_capturesession_getfocusmode) ([Camera_CaptureSession](#camera_capturesession) \*session, [Camera_FocusMode](#camera_focusmode) \*focusMode) | Obtains the focus mode in use.|
| [OH_CaptureSession_SetFocusMode](#oh_capturesession_setfocusmode) ([Camera_CaptureSession](#camera_capturesession) \*session, [Camera_FocusMode](#camera_focusmode) focusMode) | Sets a focus mode for the device.|
| [OH_CaptureSession_GetFocusPoint](#oh_capturesession_getfocuspoint) ([Camera_CaptureSession](#camera_capturesession) \*session, [Camera_Point](_camera___point.md) \*focusPoint) | Obtains the focal point in use.|
| [OH_CaptureSession_SetFocusPoint](#oh_capturesession_setfocuspoint) ([Camera_CaptureSession](#camera_capturesession) \*session, [Camera_Point](_camera___point.md) focusPoint) | Sets a focal point for the device.|
| [OH_CaptureSession_GetZoomRatioRange](#oh_capturesession_getzoomratiorange) ([Camera_CaptureSession](#camera_capturesession) \*session, float \*minZoom, float \*maxZoom) | Obtains the supported zoom ratio range.|
| [OH_CaptureSession_GetZoomRatio](#oh_capturesession_getzoomratio) ([Camera_CaptureSession](#camera_capturesession) \*session, float \*zoom) | Obtains the zoom ratio in use.|
| [OH_CaptureSession_SetZoomRatio](#oh_capturesession_setzoomratio) ([Camera_CaptureSession](#camera_capturesession) \*session, float zoom) | Sets a zoom ratio for the device. |
| [OH_CaptureSession_IsVideoStabilizationModeSupported](#oh_capturesession_isvideostabilizationmodesupported) ([Camera_CaptureSession](#camera_capturesession) \*session, [Camera_VideoStabilizationMode](#camera_videostabilizationmode) mode, bool \*isSupported) | Checks whether a video stabilization mode is supported. |
| [OH_CaptureSession_GetVideoStabilizationMode](#oh_capturesession_getvideostabilizationmode) ([Camera_CaptureSession](#camera_capturesession) \*session, [Camera_VideoStabilizationMode](#camera_videostabilizationmode) \*mode) | Obtains the video stabilization mode in use.|
| [OH_CaptureSession_SetVideoStabilizationMode](#oh_capturesession_setvideostabilizationmode) ([Camera_CaptureSession](#camera_capturesession) \*session, [Camera_VideoStabilizationMode](#camera_videostabilizationmode) mode) | Sets a video stabilization mode for the device.|
| [OH_MetadataOutput_RegisterCallback](#oh_metadataoutput_registercallback) ([Camera_MetadataOutput](#camera_metadataoutput) \*metadataOutput, [MetadataOutput_Callbacks](_metadata_output___callbacks.md) \*callback) | Registers a callback to listen for metadata output events.|
| [OH_MetadataOutput_UnregisterCallback](#oh_metadataoutput_unregistercallback) ([Camera_MetadataOutput](#camera_metadataoutput) \*metadataOutput, [MetadataOutput_Callbacks](_metadata_output___callbacks.md) \*callback) | Unregisters the callback used to listen for metadata output events.|
| [OH_MetadataOutput_Start](#oh_metadataoutput_start) ([Camera_MetadataOutput](#camera_metadataoutput) \*metadataOutput) | Starts metadata output.|
| [OH_MetadataOutput_Stop](#oh_metadataoutput_stop) ([Camera_MetadataOutput](#camera_metadataoutput) \*metadataOutput) | Stops metadata output.|
| [OH_MetadataOutput_Release](#oh_metadataoutput_release) ([Camera_MetadataOutput](#camera_metadataoutput) \*metadataOutput) | Releases a **MetadataOutput** instance.|
| [OH_PhotoOutput_RegisterCallback](#oh_photooutput_registercallback) ([Camera_PhotoOutput](#camera_photooutput) \*photoOutput, [PhotoOutput_Callbacks](_photo_output___callbacks.md) \*callback) | Registers a callback to listen for photo output events.|
| [OH_PhotoOutput_UnregisterCallback](#oh_photooutput_unregistercallback) ([Camera_PhotoOutput](#camera_photooutput) \*photoOutput, [PhotoOutput_Callbacks](_photo_output___callbacks.md) \*callback) | Unregisters the callback used to listen for photo output events.|
| [OH_PhotoOutput_Capture](#oh_photooutput_capture) ([Camera_PhotoOutput](#camera_photooutput) \*photoOutput) | Captures a photo.|
| [OH_PhotoOutput_Capture_WithCaptureSetting](#oh_photooutput_capture_withcapturesetting) ([Camera_PhotoOutput](#camera_photooutput) \*photoOutput, [Camera_PhotoCaptureSetting](_camera___photo_capture_setting.md) setting) | Captures a photo with the photographing parameters.|
| [OH_PhotoOutput_Release](#oh_photooutput_release) ([Camera_PhotoOutput](#camera_photooutput) \*photoOutput) | Releases a **PhotoOutput** instance.|
| [OH_PhotoOutput_IsMirrorSupported](#oh_photooutput_ismirrorsupported) ([Camera_PhotoOutput](#camera_photooutput) \*photoOutput, bool \*isSupported) | Checks whether mirroring is supported.|
| [OH_PreviewOutput_RegisterCallback](#oh_previewoutput_registercallback) ([Camera_PreviewOutput](#camera_previewoutput) \*previewOutput, [PreviewOutput_Callbacks](_preview_output___callbacks.md) \*callback) | Registers a callback to listen for preview output events.|
| [OH_PreviewOutput_UnregisterCallback](#oh_previewoutput_unregistercallback) ([Camera_PreviewOutput](#camera_previewoutput) \*previewOutput, [PreviewOutput_Callbacks](_preview_output___callbacks.md) \*callback) | Unregisters the callback used to listen for preview output events.|
| [OH_PreviewOutput_Start](#oh_previewoutput_start) ([Camera_PreviewOutput](#camera_previewoutput) \*previewOutput) | Starts preview output.|
| [OH_PreviewOutput_Stop](#oh_previewoutput_stop) ([Camera_PreviewOutput](#camera_previewoutput) \*previewOutput) | Stops preview output.|
| [OH_PreviewOutput_Release](#oh_previewoutput_release) ([Camera_PreviewOutput](#camera_previewoutput) \*previewOutput) | Releases a **PreviewOutput** instance.|
| [OH_VideoOutput_RegisterCallback](#oh_videooutput_registercallback) ([Camera_VideoOutput](#camera_videooutput) \*videoOutput, [VideoOutput_Callbacks](_video_output___callbacks.md) \*callback) | Registers a callback to listen for video output events.|
| [OH_VideoOutput_UnregisterCallback](#oh_videooutput_unregistercallback) ([Camera_VideoOutput](#camera_videooutput) \*videoOutput, [VideoOutput_Callbacks](_video_output___callbacks.md) \*callback) | Unregisters the callback used to listen for video output events.|
| [OH_VideoOutput_Start](#oh_videooutput_start) ([Camera_VideoOutput](#camera_videooutput) \*videoOutput) | Starts video output.|
| [OH_VideoOutput_Stop](#oh_videooutput_stop) ([Camera_VideoOutput](#camera_videooutput) \*videoOutput) | Stops video output.|
| [OH_VideoOutput_Release](#oh_videooutput_release) ([Camera_VideoOutput](#camera_videooutput) \*videoOutput) | Releases a **VideoOutput** instance.|
## Type Description
### Camera_CaptureEndInfo
```
typedef struct Camera_CaptureEndInfoCamera_CaptureEndInfo
```
**Description**
Defines the capture end information.
**Since**: 11
### Camera_CaptureSession
```
typedef struct Camera_CaptureSessionCamera_CaptureSession
```
**Description**
Defines the session capture object.
You can call [Camera_CaptureSession](#camera_capturesession) to create such an object.
**Since**: 11
### Camera_Connection
```
typedef enum Camera_ConnectionCamera_Connection
```
**Description**
Defines an enum that enumerates the camera connection types.
**Since**: 11
### Camera_Device
```
typedef struct Camera_DeviceCamera_Device
```
**Description**
Defines the camera device.
**Since**: 11
### Camera_ErrorCode
```
typedef enum Camera_ErrorCodeCamera_ErrorCode
```
**Description**
Defines an enum that enumerates the camera error codes.
**Since**: 11
### Camera_ExposureMode
```
typedef enum Camera_ExposureModeCamera_ExposureMode
```
**Description**
Defines an enum that enumerates the exposure modes.
**Since**: 11
### Camera_FlashMode
```
typedef enum Camera_FlashModeCamera_FlashMode
```
**Description**
Defines an enum that enumerates the flash modes.
**Since**: 11
### Camera_FocusMode
```
typedef enum Camera_FocusModeCamera_FocusMode
```
**Description**
Defines an enum that enumerates the focus modes.
**Since**: 11
### Camera_FocusState
```
typedef enum Camera_FocusStateCamera_FocusState
```
**Description**
Defines an enum that enumerates the focus states.
**Since**: 11
### Camera_Format
```
typedef enum Camera_FormatCamera_Format
```
**Description**
Defines an enum that enumerates the camera output formats.
**Since**: 11
### Camera_FrameRateRange
```
typedef struct Camera_FrameRateRangeCamera_FrameRateRange
```
**Description**
Defines the frame rate range.
**Since**: 11
### Camera_FrameShutterInfo
```
typedef struct Camera_FrameShutterInfoCamera_FrameShutterInfo
```
**Description**
Defines the frame shutter callback.
**Since**: 11
### Camera_ImageRotation
```
typedef enum Camera_ImageRotationCamera_ImageRotation
```
**Description**
Defines an enum that enumerates the image rotation angles.
**Since**: 11
### Camera_Input
```
typedef struct Camera_InputCamera_Input
```
**Description**
Defines the camera input object.
You can call [OH_CameraManager_CreateCameraInput](#oh_cameramanager_createcamerainput) to create such an object.
**Since**: 11
### Camera_Location
```
typedef struct Camera_LocationCamera_Location
```
**Description**
Defines the location where the photo is taken.
**Since**: 11
### Camera_Manager
```
typedef struct Camera_ManagerCamera_Manager
```
**Description**
Defines the camera manager.
You can call [OH_Camera_GetCameraManager](#oh_camera_getcameramanager) to create such an object.
**Since**: 11
### Camera_MetadataObject
```
typedef struct Camera_MetadataObjectCamera_MetadataObject
```
**Description**
Defines the camera metadata.
**Since**: 11
### Camera_MetadataObjectType
```
typedef enum Camera_MetadataObjectTypeCamera_MetadataObjectType
```
**Description**
Defines an enum that enumerates the metadata object types.
**Since**: 11
### Camera_MetadataOutput
```
typedef struct Camera_MetadataOutputCamera_MetadataOutput
```
**Description**
Defines the metadata output object.
You can call [Camera_MetadataOutput](#camera_metadataoutput) to create such an object.
**Since**: 11
### Camera_OutputCapability
```
typedef struct Camera_OutputCapabilityCamera_OutputCapability
```
**Description**
Defines the camera output capability.
**Since**: 11
### Camera_PhotoCaptureSetting
```
typedef struct Camera_PhotoCaptureSettingCamera_PhotoCaptureSetting
```
**Description**
Defines the photographing parameters.
**Since**: 11
### Camera_PhotoOutput
```
typedef struct Camera_PhotoOutputCamera_PhotoOutput
```
**Description**
Defines the photo output object.
You can call **Camera_PhotoOutput** to create such an object.
**Since**: 11
### Camera_Point
```
typedef struct Camera_PointCamera_Point
```
**Description**
Defines the parameters that describe a point.
**Since**: 11
### Camera_Position
```
typedef enum Camera_PositionCamera_Position
```
**Description**
Defines an enum that enumerates the camera positions.
**Since**: 11
### Camera_PreviewOutput
```
typedef struct Camera_PreviewOutputCamera_PreviewOutput
```
**Description**
Defines the preview output object.
You can call [Camera_PreviewOutput](#camera_previewoutput) to create such an object.
**Since**: 11
### Camera_Profile
```
typedef struct Camera_ProfileCamera_Profile
```
**Description**
Defines the profile of the camera stream.
**Since**: 11
### Camera_QualityLevel
```
typedef enum Camera_QualityLevelCamera_QualityLevel
```
**Description**
Defines an enum that enumerates the image quality levels.
**Since**: 11
### Camera_Rect
```
typedef struct Camera_RectCamera_Rect
```
**Description**
Defines the rectangle.
**Since**: 11
### Camera_Size
```
typedef struct Camera_SizeCamera_Size
```
**Description**
Defines the parameters that describe the size.
**Since**: 11
### Camera_Status
```
typedef enum Camera_StatusCamera_Status
```
**Description**
Defines an enum that enumerates the camera statuses.
**Since**: 11
### Camera_StatusInfo
```
typedef struct Camera_StatusInfoCamera_StatusInfo
```
**Description**
Defines the camera status information.
**Since**: 11
### Camera_Type
```
typedef enum Camera_TypeCamera_Type
```
**Description**
Defines an enum that enumerates the camera types.
**Since**: 11
### Camera_VideoOutput
```
typedef struct Camera_VideoOutputCamera_VideoOutput
```
**Description**
Defines the video output object.
You can call [Camera_VideoOutput](#camera_videooutput) to create such an object.
**Since**: 11
### Camera_VideoProfile
```
typedef struct Camera_VideoProfileCamera_VideoProfile
```
**Description**
Defines the video profile.
**Since**: 11
### Camera_VideoStabilizationMode
```
typedef enum Camera_VideoStabilizationModeCamera_VideoStabilizationMode
```
**Description**
Defines an enum that enumerates the video stabilization modes.
**Since**: 11
### CameraInput_Callbacks
```
typedef struct CameraInput_CallbacksCameraInput_Callbacks
```
**Description**
Defines the callbacks used to listen for camera input errors.
**Since**: 11
**See**
[OH_CameraInput_RegisterCallback](#oh_camerainput_registercallback)
### CameraManager_Callbacks
```
typedef struct CameraManager_CallbacksCameraManager_Callbacks
```
**Description**
Defines the callbacks used to listen for camera status changes.
**Since**: 11
**See**
[OH_CameraManager_RegisterCallback](#oh_cameramanager_registercallback)
### CaptureSession_Callbacks
```
typedef struct CaptureSession_CallbacksCaptureSession_Callbacks
```
**Description**
Defines the callbacks used for session capture.
**Since**: 11
**See**
[OH_CaptureSession_RegisterCallback](#oh_capturesession_registercallback)
### MetadataOutput_Callbacks
```
typedef struct MetadataOutput_CallbacksMetadataOutput_Callbacks
```
**Description**
Defines the callback functions of metadata output.
**Since**: 11
**See**
[OH_MetadataOutput_RegisterCallback](#oh_metadataoutput_registercallback)
### OH_CameraInput_OnError
```
typedef void(* OH_CameraInput_OnError) (const Camera_Input *cameraInput, Camera_ErrorCode errorCode)
```
**Description**
Defines the pointer to the callback defined in the [CameraInput_Callbacks](_camera_input___callbacks.md) struct and used to report camera input errors.
**Since**: 11
**Parameters**
| Name| Description|
| -------- | -------- |
| cameraInput | Pointer to the [Camera_Input](#camera_input) instance that transfers the callback.|
| errorCode | Error code reported during camera input and defined in [Camera_ErrorCode](#camera_errorcode).|
**See**
CAMERA_CONFLICT_CAMERA
CAMERA_DEVICE_DISABLED
CAMERA_DEVICE_PREEMPTED
CAMERA_SERVICE_FATAL_ERROR
### OH_CameraManager_StatusCallback
```
typedef void(* OH_CameraManager_StatusCallback) (Camera_Manager *cameraManager, Camera_StatusInfo *status)
```
**Description**
Defines the pointer to the callback defined in the [CameraManager_Callbacks](_camera_manager___callbacks.md) struct and used to report the camera manager status.
**Since**: 11
**Parameters**
| Name| Description|
| -------- | -------- |
| cameraManager | Pointer to the [Camera_Manager](#camera_manager) instance that transfers the callback.|
| status | Pointer to the camera manager status, which is defined in the [Camera_StatusInfo](_camera___status_info.md) struct.|
### OH_CaptureSession_OnError
```
typedef void(* OH_CaptureSession_OnError) (Camera_CaptureSession *session, Camera_ErrorCode errorCode)
```
**Description**
Defines the pointer to the callback defined in the [CaptureSession_Callbacks](_capture_session___callbacks.md) struct and used to report capture session errors.
**Since**: 11
**Parameters**
| Name| Description|
| -------- | -------- |
| session | Pointer to the [Camera_CaptureSession](#camera_capturesession) instance that transfers the callback.|
| errorCode | Error code reported during session capture and defined in [Camera_ErrorCode](#camera_errorcode).|
**See**
CAMERA_SERVICE_FATAL_ERROR
### OH_CaptureSession_OnFocusStateChange
```
typedef void(* OH_CaptureSession_OnFocusStateChange) (Camera_CaptureSession *session, Camera_FocusState focusState)
```
**Description**
Defines the pointer to the callback defined in the [CaptureSession_Callbacks](_capture_session___callbacks.md) struct and used to report session capture focus status changes.
**Since**: 11
**Parameters**
| Name| Description|
| -------- | -------- |
| session | Pointer to the [Camera_CaptureSession](#camera_capturesession) instance that transfers the callback.|
| focusState | Focus state, which is defined in [Camera_FocusState](#camera_focusstate).|
### OH_MetadataOutput_OnError
```
typedef void(* OH_MetadataOutput_OnError) (Camera_MetadataOutput *metadataOutput, Camera_ErrorCode errorCode)
```
**Description**
Defines the pointer to the callback defined in the [MetadataOutput_Callbacks](_metadata_output___callbacks.md) struct and used to report metadata output errors.
**Since**: 11
**Parameters**
| Name| Description|
| -------- | -------- |
| metadataOutput | Pointer to the [Camera_MetadataOutput](#camera_metadataoutput) instance that transfers the callback.|
| errorCode | Error code reported during metadata output and defined in [Camera_ErrorCode](#camera_errorcode).|
**See**
CAMERA_SERVICE_FATAL_ERROR
### OH_MetadataOutput_OnMetadataObjectAvailable
```
typedef void(* OH_MetadataOutput_OnMetadataObjectAvailable) (Camera_MetadataOutput *metadataOutput, Camera_MetadataObject *metadataObject, uint32_t size)
```
**Description**
Defines the pointer to the callback defined in the [MetadataOutput_Callbacks](_metadata_output___callbacks.md) struct and used to report metadata output data.
**Since**: 11
**Parameters**
| Name| Description|
| -------- | -------- |
| metadataOutput | Pointer to the [Camera_MetadataOutput](#camera_metadataoutput) instance that transfers the callback.|
| metadataObject | Pointer to the metadata output data, which is defined in the [Camera_MetadataObject](_camera___metadata_object.md) struct.|
| size | Size of the metadata object.|
### OH_PhotoOutput_OnError
```
typedef void(* OH_PhotoOutput_OnError) (Camera_PhotoOutput *photoOutput, Camera_ErrorCode errorCode)
```
**Description**
Defines the pointer to the callback defined in the **PhotoOutput_Callbacks** struct and used to report photo output errors.
**Since**: 11
**Parameters**
| Name| Description|
| -------- | -------- |
| photoOutput | Pointer to the [Camera_PhotoOutput](#camera_photooutput) instance that transfers the callback.|
| errorCode | Error code reported during photo output and defined in [Camera_ErrorCode](#camera_errorcode).|
**See**
CAMERA_SERVICE_FATAL_ERROR
### OH_PhotoOutput_OnFrameEnd
```
typedef void(* OH_PhotoOutput_OnFrameEnd) (Camera_PhotoOutput *photoOutput, int32_t frameCount)
```
**Description**
Defines the pointer to the callback defined in the **PhotoOutput_Callbacks** struct and used to report photo output frame end events.
**Since**: 11
**Parameters**
| Name| Description|
| -------- | -------- |
| photoOutput | Pointer to the [Camera_PhotoOutput](#camera_photooutput) instance that transfers the callback.|
| frameCount | Number of frames to be included in the callback.|
### OH_PhotoOutput_OnFrameShutter
```
typedef void(* OH_PhotoOutput_OnFrameShutter) (Camera_PhotoOutput *photoOutput, Camera_FrameShutterInfo *info)
```
**Description**
Defines the pointer to the callback defined in the **PhotoOutput_Callbacks** struct and used to report frame shutter events.
**Since**: 11
**Parameters**
| Name| Description|
| -------- | -------- |
| photoOutput | Pointer to the [Camera_PhotoOutput](#camera_photooutput) instance that transfers the callback.|
| info | Pointer to the frame shutter information, which is defined in the [Camera_FrameShutterInfo](_camera___frame_shutter_info.md) struct.|
### OH_PhotoOutput_OnFrameStart
```
typedef void(* OH_PhotoOutput_OnFrameStart) (Camera_PhotoOutput *photoOutput)
```
**Description**
Defines the pointer to the callback defined in the **PhotoOutput_Callbacks** struct and used to report photo output frame start events.
**Since**: 11
**Parameters**
| Name| Description|
| -------- | -------- |
| photoOutput | Pointer to the [Camera_PhotoOutput](#camera_photooutput) instance that transfers the callback.|
### OH_PreviewOutput_OnError
```
typedef void(* OH_PreviewOutput_OnError) (Camera_PreviewOutput *previewOutput, Camera_ErrorCode errorCode)
```
**Description**
Defines the pointer to the callback defined in the [PreviewOutput_Callbacks](_preview_output___callbacks.md) struct and used to report preview output errors.
**Since**: 11
**Parameters**
| Name| Description|
| -------- | -------- |
| previewOutput | Pointer to the [Camera_PreviewOutput](#camera_previewoutput) instance that transfers the callback.|
| errorCode | Error code reported during preview output and defined in [Camera_ErrorCode](#camera_errorcode).|
**See**
CAMERA_SERVICE_FATAL_ERROR
### OH_PreviewOutput_OnFrameEnd
```
typedef void(* OH_PreviewOutput_OnFrameEnd) (Camera_PreviewOutput *previewOutput, int32_t frameCount)
```
**Description**
Defines the pointer to the callback defined in the [PreviewOutput_Callbacks](_preview_output___callbacks.md) struct and used report preview output frame end events.
**Since**: 11
**Parameters**
| Name| Description|
| -------- | -------- |
| previewOutput | Pointer to the [Camera_PreviewOutput](#camera_previewoutput) instance that transfers the callback.|
| frameCount | Number of frames to be included in the callback.|
### OH_PreviewOutput_OnFrameStart
```
typedef void(* OH_PreviewOutput_OnFrameStart) (Camera_PreviewOutput *previewOutput)
```
**Description**
Defines the pointer to the callback defined in the [PreviewOutput_Callbacks](_preview_output___callbacks.md) struct and used to report preview output frame start events.
**Since**: 11
**Parameters**
| Name| Description|
| -------- | -------- |
| previewOutput | Pointer to the [Camera_PreviewOutput](#camera_previewoutput) instance that transfers the callback.|
### OH_VideoOutput_OnError
```
typedef void(* OH_VideoOutput_OnError) (Camera_VideoOutput *videoOutput, Camera_ErrorCode errorCode)
```
**Description**
Defines the pointer to the callback defined in the [VideoOutput_Callbacks](_video_output___callbacks.md) struct and used to report video output errors.
**Since**: 11
**Parameters**
| Name| Description|
| -------- | -------- |
| videoOutput | Pointer to the [Camera_VideoOutput](#camera_videooutput) instance that transfers the callback.|
| errorCode | Error code reported during video output and defined in [Camera_ErrorCode](#camera_errorcode).|
**See**
CAMERA_SERVICE_FATAL_ERROR
### OH_VideoOutput_OnFrameEnd
```
typedef void(* OH_VideoOutput_OnFrameEnd) (Camera_VideoOutput *videoOutput, int32_t frameCount)
```
**Description**
Defines the pointer to the callback defined in the [VideoOutput_Callbacks](_video_output___callbacks.md) struct and used to report video output frame end events.
**Since**: 11
**Parameters**
| Name| Description|
| -------- | -------- |
| videoOutput | Pointer to the [Camera_VideoOutput](#camera_videooutput) instance that transfers the callback.|
| frameCount | Number of frames to be included in the callback.|
### OH_VideoOutput_OnFrameStart
```
typedef void(* OH_VideoOutput_OnFrameStart) (Camera_VideoOutput *videoOutput)
```
**Description**
Defines the pointer to the callback defined in the [VideoOutput_Callbacks](_video_output___callbacks.md) struct and used to report video output frame start events.
**Since**: 11
**Parameters**
| Name| Description|
| -------- | -------- |
| videoOutput | Pointer to the [Camera_VideoOutput](#camera_videooutput) instance that transfers the callback.|
### PhotoOutput_Callbacks
```
typedef struct PhotoOutput_CallbacksPhotoOutput_Callbacks
```
**Description**
Defines the callbacks used for photo output.
**Since**: 11
**See**
[OH_PhotoOutput_RegisterCallback](#oh_photooutput_registercallback)
### PreviewOutput_Callbacks
```
typedef struct PreviewOutput_CallbacksPreviewOutput_Callbacks
```
**Description**
Defines the callbacks used for preview output.
**Since**: 11
**See**
[OH_PreviewOutput_RegisterCallback](#oh_previewoutput_registercallback)
### VideoOutput_Callbacks
```
typedef struct VideoOutput_CallbacksVideoOutput_Callbacks
```
**Description**
Defines the callbacks used for video output.
**Since**: 11
**See**
[OH_VideoOutput_RegisterCallback](#oh_videooutput_registercallback)
## Enum Description
### Camera_Connection
```
enum Camera_Connection
```
**Description**
Enumerates the camera connection types.
**Since**: 11
| Value| Description|
| -------- | -------- |
| CAMERA_CONNECTION_BUILT_IN | Built-in camera.|
| CAMERA_CONNECTION_USB_PLUGIN | Camera connected using USB.|
| CAMERA_CONNECTION_REMOTE | Remote camera.|
### Camera_ErrorCode
```
enum Camera_ErrorCode
```
**Description**
Enumerates the camera error codes.
**Since**: 11
| Value| Description|
| -------- | -------- |
| CAMERA_OK | The camera is normal.|
| CAMERA_INVALID_ARGUMENT | A parameter is missing or the parameter type is incorrect.|
| CAMERA_OPERATION_NOT_ALLOWED | The operation is not allowed.|
| CAMERA_SESSION_NOT_CONFIG | The session is not configured.|
| CAMERA_SESSION_NOT_RUNNING | The session is not running.|
| CAMERA_SESSION_CONFIG_LOCKED | The session configuration is locked.|
| CAMERA_DEVICE_SETTING_LOCKED | The device setting is locked.|
| CAMERA_CONFLICT_CAMERA | The device is already started.|
| CAMERA_DEVICE_DISABLED | The camera is disabled for security reasons.|
| CAMERA_DEVICE_PREEMPTED | The camera is preempted.|
| CAMERA_SERVICE_FATAL_ERROR | A fatal error occurs in the camera service.|
### Camera_ExposureMode
```
enum Camera_ExposureMode
```
**Description**
Enumerates the exposure modes.
**Since**: 11
| Value| Description|
| -------- | -------- |
| EXPOSURE_MODE_LOCKED | Exposure locked.|
| EXPOSURE_MODE_AUTO | Auto exposure.|
| EXPOSURE_MODE_CONTINUOUS_AUTO | Continuous auto exposure.|
### Camera_FlashMode
```
enum Camera_FlashMode
```
**Description**
Enumerates the flash modes.
**Since**: 11
| Value| Description|
| -------- | -------- |
| FLASH_MODE_CLOSE | The flash is off.|
| FLASH_MODE_OPEN | The flash is on.|
| FLASH_MODE_AUTO | The flash mode is auto.|
| FLASH_MODE_ALWAYS_OPEN | The flash is steady on.|
### Camera_FocusMode
```
enum Camera_FocusMode
```
**Description**
Enumerates the focus modes.
**Since**: 11
| Value| Description|
| -------- | -------- |
| FOCUS_MODE_MANUAL | Manual focus.|
| FOCUS_MODE_CONTINUOUS_AUTO | Continuous auto focus.|
| FOCUS_MODE_AUTO | Auto focus.|
| FOCUS_MODE_LOCKED | Focus locked.|
### Camera_FocusState
```
enum Camera_FocusState
```
**Description**
Enumerates the focus states.
**Since**: 11
| Value| Description|
| -------- | -------- |
| FOCUS_STATE_SCAN | Focusing.|
| FOCUS_STATE_FOCUSED | Focused.|
| FOCUS_STATE_UNFOCUSED | Unfocused.|
### Camera_Format
```
enum Camera_Format
```
**Description**
Enumerates the camera output formats.
**Since**: 11
| Value| Description|
| -------- | -------- |
| CAMERA_FORMAT_RGBA_8888 | RGBA 8888.|
| CAMERA_FORMAT_YUV_420_SP | YUV 420 SP.|
| CAMERA_FORMAT_JPEG | JPEG.|
### Camera_ImageRotation
```
enum Camera_ImageRotation
```
**Description**
Enumerates the image rotation angles.
**Since**: 11
| Value| Description|
| -------- | -------- |
| IAMGE_ROTATION_0 | The image rotates 0 degrees.|
| IAMGE_ROTATION_90 | The image rotates 90 degrees.|
| IAMGE_ROTATION_180 | The image rotates 180 degrees.|
| IAMGE_ROTATION_270 | The image rotates 270 degrees.|
### Camera_MetadataObjectType
```
enum Camera_MetadataObjectType
```
**Description**
Enumerates the metadata object types.
**Since**: 11
| Value| Description|
| -------- | -------- |
| FACE_DETECTION | Face detection.|
### Camera_Position
```
enum Camera_Position
```
**Description**
Enumerates the camera positions.
**Since**: 11
| Value| Description|
| -------- | -------- |
| CAMERA_POSITION_UNSPECIFIED | Unspecified position.|
| CAMERA_POSITION_BACK | Rear camera.|
| CAMERA_POSITION_FRONT | Front camera.|
### Camera_QualityLevel
```
enum Camera_QualityLevel
```
**Description**
Enumerates the image quality levels.
**Since**: 11
| Value| Description|
| -------- | -------- |
| QUALITY_LEVEL_HIGH | High image quality.|
| QUALITY_LEVEL_MEDIUM | Medium image quality.|
| QUALITY_LEVEL_LOW | Low image quality.|
### Camera_Status
```
enum Camera_Status
```
**Description**
Enumerates the camera statuses.
**Since**: 11
| Value| Description|
| -------- | -------- |
| CAMERA_STATUS_APPEAR | A camera appears.|
| CAMERA_STATUS_DISAPPEAR | The camera disappears.|
| CAMERA_STATUS_AVAILABLE | The camera is available.|
| CAMERA_STATUS_UNAVAILABLE | The camera is unavailable.|
### Camera_Type
```
enum Camera_Type
```
**Description**
Enumerates the camera types.
**Since**: 11
| Value| Description|
| -------- | -------- |
| CAMERA_TYPE_DEFAULT | Default camera type.|
| CAMERA_TYPE_WIDE_ANGLE | Wide camera.|
| CAMERA_TYPE_ULTRA_WIDE | Ultra wide camera.|
| CAMERA_TYPE_TELEPHOTO | Telephone camera.|
| CAMERA_TYPE_TRUE_DEPTH | Camera with depth of field information.|
### Camera_VideoStabilizationMode
```
enum Camera_VideoStabilizationMode
```
**Description**
Enumerates the video stabilization modes.
**Since**: 11
| Value| Description|
| -------- | -------- |
| STABILIZATION_MODE_OFF | Video stabilization is disabled.|
| STABILIZATION_MODE_LOW | The basic video stabilization algorithm is used.|
| STABILIZATION_MODE_MIDDLE | A video stabilization algorithm with a stabilization effect better than that of the **LOW** type is used.|
| STABILIZATION_MODE_HIGH | A video stabilization algorithm with a stabilization effect better than that of the **MIDDLE** type is used.|
| STABILIZATION_MODE_AUTO | Automatic video stabilization is used. This value is available for HDF cameras.|
## Function Description
### OH_Camera_DeleteCameraManager()
```
Camera_ErrorCode OH_Camera_DeleteCameraManager (Camera_Manager * cameraManager)
```
**Description**
Deletes a **CameraManager** instance.
**Since**: 11
**Parameters**
| Name| Description|
| -------- | -------- |
| cameraManager | Pointer to the target [Camera_Manager](#camera_manager) instance.|
**Returns**
Returns **CAMERA_OK** if the function is successfully called; returns **INVALID_ARGUMENT** if a parameter is missing or the parameter type is incorrect; returns **CAMERA_SERVICE_FATAL_ERROR** if a fatal error occurs in the camera service.
### OH_Camera_GetCameraManager()
```
Camera_ErrorCode OH_Camera_GetCameraManager (Camera_Manager ** cameraManager)
```
**Description**
Obtains a **CameraManager** instance.
**Since**: 11
**Parameters**
| Name| Description|
| -------- | -------- |
| cameraManager | Double pointer to the [Camera_Manager](#camera_manager) instance if the function is successfully called.|
**Returns**
Returns **CAMERA_OK** if the function is successfully called; returns **INVALID_ARGUMENT** if a parameter is missing or the parameter type is incorrect; returns **CAMERA_SERVICE_FATAL_ERROR** if a fatal error occurs in the camera service.
### OH_CameraInput_Close()
```
Camera_ErrorCode OH_CameraInput_Close (Camera_Input * cameraInput)
```
**Description**
Closes a camera.
**Since**: 11
**Parameters**
| Name| Description|
| -------- | -------- |
| cameraInput | Pointer to the target [Camera_Input](#camera_input) instance.|
**Returns**
Returns **CAMERA_OK** if the function is successfully called; returns **INVALID_ARGUMENT** if a parameter is missing or the parameter type is incorrect; returns **CAMERA_SERVICE_FATAL_ERROR** if a fatal error occurs in the camera service.
### OH_CameraInput_Open()
```
Camera_ErrorCode OH_CameraInput_Open (Camera_Input * cameraInput)
```
**Description**
Opens a camera.
**Since**: 11
**Parameters**
| Name| Description|
| -------- | -------- |
| cameraInput | Pointer to the target [Camera_Input](#camera_input) instance.|
**Returns**
Returns **CAMERA_OK** if the function is successfully called; returns **INVALID_ARGUMENT** if a parameter is missing or the parameter type is incorrect; returns **CAMERA_CONFLICT_CAMERA** if the camera device is already started; returns **CAMERA_DEVICE_DISABLED** if the camera is disabled for security reasons; returns **CAMERA_SERVICE_FATAL_ERROR** if a fatal error occurs in the camera service.
### OH_CameraInput_RegisterCallback()
```
Camera_ErrorCode OH_CameraInput_RegisterCallback (Camera_Input * cameraInput, CameraInput_Callbacks * callback )
```
**Description**
Registers a callback to listen for camera input events.
**Since**: 11
**Parameters**
| Name| Description|
| -------- | -------- |
| cameraInput | Pointer to a [Camera_Input](#camera_input) instance.|
| callback | Pointer to the target callback, which is defined in the [CameraInput_Callbacks](_camera_input___callbacks.md) struct.|
**Returns**
Returns **CAMERA_OK** if the function is successfully called; returns **INVALID_ARGUMENT** if a parameter is missing or the parameter type is incorrect.
### OH_CameraInput_Release()
```
Camera_ErrorCode OH_CameraInput_Release (Camera_Input * cameraInput)
```
**Description**
Releases a **CameraInput** instance.
**Since**: 11
**Parameters**
| Name| Description|
| -------- | -------- |
| cameraInput | Pointer to the target [Camera_Input](#camera_input) instance.|
**Returns**
Returns **CAMERA_OK** if the function is successfully called; returns **INVALID_ARGUMENT** if a parameter is missing or the parameter type is incorrect; returns **CAMERA_SERVICE_FATAL_ERROR** if a fatal error occurs in the camera service.
### OH_CameraInput_UnregisterCallback()
```
Camera_ErrorCode OH_CameraInput_UnregisterCallback (Camera_Input * cameraInput, CameraInput_Callbacks * callback )
```
**Description**
Unregisters the callback used to listen for camera input events.
**Since**: 11
**Parameters**
| Name| Description|
| -------- | -------- |
| cameraInput | Pointer to a [Camera_Input](#camera_input) instance.|
| callback | Pointer to the target callback, which is defined in the [CameraInput_Callbacks](_camera_input___callbacks.md) struct.|
**Returns**
Returns **CAMERA_OK** if the function is successfully called; returns **INVALID_ARGUMENT** if a parameter is missing or the parameter type is incorrect.
### OH_CameraManager_CreateCameraInput()
```
Camera_ErrorCode OH_CameraManager_CreateCameraInput (Camera_Manager * cameraManager, const Camera_Device * camera, Camera_Input ** cameraInput )
```
**Description**
Creates a **CameraInput** instance.
**Since**: 11
**Parameters**
| Name| Description|
| -------- | -------- |
| cameraManager | Pointer to a [Camera_Manager](#camera_manager) instance.|
| camera | Pointer to the target camera, which is defined in the [Camera_Device](_camera___device.md) struct.|
| cameraInput | Double pointer to the [Camera_Input](#camera_input) instance if the function is successfully called.|
**Returns**
Returns **CAMERA_OK** if the function is successfully called; returns **INVALID_ARGUMENT** if a parameter is missing or the parameter type is incorrect; returns **CAMERA_SERVICE_FATAL_ERROR** if a fatal error occurs in the camera service.
**Required Permissions**
ohos.permission.CAMERA
### OH_CameraManager_CreateCameraInput_WithPositionAndType()
```
Camera_ErrorCode OH_CameraManager_CreateCameraInput_WithPositionAndType (Camera_Manager * cameraManager, Camera_Position position, Camera_Type type, Camera_Input ** cameraInput )
```
**Description**
Creates a **CameraInput** instance with the specified location and type.
**Since**: 11
**Parameters**
| Name| Description|
| -------- | -------- |
| cameraManager | Pointer to a [Camera_Manager](#camera_manager) instance.|
| position | Camera position, which is defined in the [Camera_Position](#camera_position) struct.|
| type | Camera type, which is defined in the [Camera_Type](#camera_type) struct.|
| cameraInput | Double pointer to the [Camera_Input](#camera_input) instance if the function is successfully called.|
**Returns**
Returns **CAMERA_OK** if the function is successfully called; returns **INVALID_ARGUMENT** if a parameter is missing or the parameter type is incorrect; returns **CAMERA_SERVICE_FATAL_ERROR** if a fatal error occurs in the camera service.
**Required Permissions**
ohos.permission.CAMERA
### OH_CameraManager_CreateCaptureSession()
```
Camera_ErrorCode OH_CameraManager_CreateCaptureSession (Camera_Manager * cameraManager, Camera_CaptureSession ** captureSession )
```
**Description**
Creates a **CaptureSession** instance.
**Since**: 11
**Parameters**
| Name| Description|
| -------- | -------- |
| cameraManager | Pointer to a [Camera_Manager](#camera_manager) instance.|
| captureSession | Double pointer to the [Camera_CaptureSession](#camera_capturesession) instance if the function is successfully called.|
**Returns**
Returns **CAMERA_OK** if the function is successfully called; returns **INVALID_ARGUMENT** if a parameter is missing or the parameter type is incorrect; returns **CAMERA_SERVICE_FATAL_ERROR** if a fatal error occurs in the camera service.
### OH_CameraManager_CreateMetadataOutput()
```
Camera_ErrorCode OH_CameraManager_CreateMetadataOutput (Camera_Manager * cameraManager, const Camera_MetadataObjectType * profile, Camera_MetadataOutput ** metadataOutput )
```
**Description**
Creates a **MetadataOutput** instance.
**Since**: 11
**Parameters**
| Name| Description|
| -------- | -------- |
| cameraManager | Pointer to a [Camera_Manager](#camera_manager) instance.|
| profile | Pointer to the profile, which is defined in [Camera_MetadataObjectType](#camera_metadataobjecttype).|
| metadataOutput | Double pointer to the [Camera_MetadataOutput](#camera_metadataoutput) instance if the function is successfully called.|
**Returns**
Returns **CAMERA_OK** if the function is successfully called; returns **INVALID_ARGUMENT** if a parameter is missing or the parameter type is incorrect; returns **CAMERA_SERVICE_FATAL_ERROR** if a fatal error occurs in the camera service.
### OH_CameraManager_CreatePhotoOutput()
```
Camera_ErrorCode OH_CameraManager_CreatePhotoOutput (Camera_Manager * cameraManager, const Camera_Profile * profile, const char * surfaceId, Camera_PhotoOutput ** photoOutput )
```
**Description**
Creates a **PhotoOutput** instance.
**Since**: 11
**Parameters**
| Name| Description|
| -------- | -------- |
| cameraManager | Pointer to a [Camera_Manager](#camera_manager) instance.|
| profile | Pointer to the profile, which is defined in the [Camera_Profile](_camera___profile.md) struct.|
| surfaceId | Pointer to the surface ID.|
| photoOutput | Double pointer to the [Camera_PhotoOutput](#camera_photooutput) instance if the function is successfully called.|
**Returns**
Returns **CAMERA_OK** if the function is successfully called; returns **INVALID_ARGUMENT** if a parameter is missing or the parameter type is incorrect; returns **CAMERA_SERVICE_FATAL_ERROR** if a fatal error occurs in the camera service.
### OH_CameraManager_CreatePreviewOutput()
```
Camera_ErrorCode OH_CameraManager_CreatePreviewOutput (Camera_Manager * cameraManager, const Camera_Profile * profile, const char * surfaceId, Camera_PreviewOutput ** previewOutput )
```
**Description**
Creates a **PreviewOutput** instance.
**Since**: 11
**Parameters**
| Name| Description|
| -------- | -------- |
| cameraManager | Pointer to a [Camera_Manager](#camera_manager) instance.|
| profile | Pointer to the profile, which is defined in the [Camera_Profile](_camera___profile.md) struct.|
| surfaceId | Pointer to the surface ID.|
| previewOutput | Double pointer to the [Camera_PreviewOutput](#camera_previewoutput) instance if the function is successfully called.|
**Returns**
Returns **CAMERA_OK** if the function is successfully called; returns **INVALID_ARGUMENT** if a parameter is missing or the parameter type is incorrect; returns **CAMERA_SERVICE_FATAL_ERROR** if a fatal error occurs in the camera service.
### OH_CameraManager_CreateVideoOutput()
```
Camera_ErrorCode OH_CameraManager_CreateVideoOutput (Camera_Manager * cameraManager, const Camera_VideoProfile * profile, const char * surfaceId, Camera_VideoOutput ** videoOutput )
```
**Description**
Creates a **VideoOutput** instance.
**Since**: 11
**Parameters**
| Name| Description|
| -------- | -------- |
| cameraManager | Pointer to a [Camera_Manager](#camera_manager) instance.|
| profile | Pointer to the profile, which is defined in the [Camera_VideoProfile](_camera___video_profile.md) struct.|
| surfaceId | Pointer to the surface ID.|
| videoOutput | Double pointer to the [Camera_VideoOutput](#camera_videooutput) instance if the function is successfully called.|
**Returns**
Returns **CAMERA_OK** if the function is successfully called; returns **INVALID_ARGUMENT** if a parameter is missing or the parameter type is incorrect; returns **CAMERA_SERVICE_FATAL_ERROR** if a fatal error occurs in the camera service.
### OH_CameraManager_DeleteSupportedCameraOutputCapability()
```
Camera_ErrorCode OH_CameraManager_DeleteSupportedCameraOutputCapability (Camera_Manager * cameraManager, Camera_OutputCapability * cameraOutputCapability )
```
**Description**
Deletes the output capability supported by a camera.
**Since**: 11
**Parameters**
| Name| Description|
| -------- | -------- |
| cameraManager | Pointer to a [Camera_Manager](#camera_manager) instance.|
| cameraOutputCapability | Pointer to the output capability, which is defined in the [Camera_OutputCapability](_camera___output_capability.md) struct.|
**Returns**
Returns **CAMERA_OK** if the function is successfully called; returns **INVALID_ARGUMENT** if a parameter is missing or the parameter type is incorrect.
### OH_CameraManager_DeleteSupportedCameras()
```
Camera_ErrorCode OH_CameraManager_DeleteSupportedCameras (Camera_Manager * cameraManager, Camera_Device * cameras, uint32_t size )
```
**Description**
Deletes supported cameras.
**Since**: 11
**Parameters**
| Name| Description|
| -------- | -------- |
| cameraManager | Pointer to a [Camera_Manager](#camera_manager) instance.|
| cameras | Pointer to the list of cameras, which is defined in the [Camera_Device](_camera___device.md) struct.|
**Returns**
Returns **CAMERA_OK** if the function is successfully called; returns **INVALID_ARGUMENT** if a parameter is missing or the parameter type is incorrect.
### OH_CameraManager_GetSupportedCameraOutputCapability()
```
Camera_ErrorCode OH_CameraManager_GetSupportedCameraOutputCapability (Camera_Manager * cameraManager, const Camera_Device * camera, Camera_OutputCapability ** cameraOutputCapability )
```
**Description**
Obtains the output capability supported by a camera in the specified mode.
**Since**: 11
**Parameters**
| Name| Description|
| -------- | -------- |
| cameraManager | Pointer to a [Camera_Manager](#camera_manager) instance.|
| cameras | Pointer to the list of cameras, which is defined in the [Camera_Device](_camera___device.md) struct.|
| cameraOutputCapability | Double pointer to the [Camera_OutputCapability](_camera___output_capability.md) struct if the function is successfully called.|
**Returns**
Returns **CAMERA_OK** if the function is successfully called; returns **INVALID_ARGUMENT** if a parameter is missing or the parameter type is incorrect.
### OH_CameraManager_GetSupportedCameras()
```
Camera_ErrorCode OH_CameraManager_GetSupportedCameras (Camera_Manager * cameraManager, Camera_Device ** cameras, uint32_t * size )
```
**Description**
Obtains supported cameras.
**Since**: 11
**Parameters**
| Name| Description|
| -------- | -------- |
| cameraManager | Pointer to a [Camera_Manager](#camera_manager) instance.|
| cameras | Double pointer to the list of cameras, which is defined in the [Camera_Device](_camera___device.md) struct, if the function is successfully called.|
| size | Pointer to the size of the list of cameras.|
**Returns**
Returns **CAMERA_OK** if the function is successfully called; returns **INVALID_ARGUMENT** if a parameter is missing or the parameter type is incorrect.
### OH_CameraManager_IsCameraMuted()
```
Camera_ErrorCode OH_CameraManager_IsCameraMuted (Camera_Manager * cameraManager, bool * isCameraMuted )
```
**Description**
Checks whether a camera is muted.
**Since**: 11
**Parameters**
| Name| Description|
| -------- | -------- |
| cameraManager | Pointer to a [Camera_Manager](#camera_manager) instance.|
| isCameraMuted | Pointer to the result that specifies whether the camera is muted if the function is successfully called.|
**Returns**
Returns **CAMERA_OK** if the function is successfully called; returns **INVALID_ARGUMENT** if a parameter is missing or the parameter type is incorrect.
### OH_CameraManager_RegisterCallback()
```
Camera_ErrorCode OH_CameraManager_RegisterCallback (Camera_Manager * cameraManager, CameraManager_Callbacks * callback )
```
**Description**
Registers a callback to listen for camera status changes.
**Since**: 11
**Parameters**
| Name| Description|
| -------- | -------- |
| cameraManager | Pointer to a [Camera_Manager](#camera_manager) instance.|
| callback | Pointer to the target callback, which is defined in the [CameraManager_Callbacks](_camera_manager___callbacks.md) struct.|
**Returns**
Returns **CAMERA_OK** if the function is successfully called; returns **INVALID_ARGUMENT** if a parameter is missing or the parameter type is incorrect.
### OH_CameraManager_UnregisterCallback()
```
Camera_ErrorCode OH_CameraManager_UnregisterCallback (Camera_Manager * cameraManager, CameraManager_Callbacks * callback )
```
**Description**
Unregisters the callback used to listen for camera status changes.
**Since**: 11
**Parameters**
| Name| Description|
| -------- | -------- |
| cameraManager | Pointer to a [Camera_Manager](#camera_manager) instance.|
| callback | Pointer to the target callback, which is defined in the [CameraManager_Callbacks](_camera_manager___callbacks.md) struct.|
**Returns**
Returns **CAMERA_OK** if the function is successfully called; returns **INVALID_ARGUMENT** if a parameter is missing or the parameter type is incorrect.
### OH_CaptureSession_AddInput()
```
Camera_ErrorCode OH_CaptureSession_AddInput (Camera_CaptureSession * session, Camera_Input * cameraInput )
```
**Description**
Adds a **CameraInput** instance to a session.
**Since**: 11
**Parameters**
| Name| Description|
| -------- | -------- |
| session | Pointer to the target [Camera_CaptureSession](#camera_capturesession) instance.|
| cameraInput | Pointer to the target [Camera_Input](#camera_input) instance.|
**Returns**
Returns **CAMERA_OK** if the function is successfully called; returns **INVALID_ARGUMENT** if a parameter is missing or the parameter type is incorrect; returns **CAMERA_OPERATION_NOT_ALLOWED** if the operation is not allowed.
### OH_CaptureSession_AddMetadataOutput()
```
Camera_ErrorCode OH_CaptureSession_AddMetadataOutput (Camera_CaptureSession * session, Camera_MetadataOutput * metadataOutput )
```
**Description**
Adds a **MetadataOutput** instance to a session.
**Since**: 11
**Parameters**
| Name| Description|
| -------- | -------- |
| session | Pointer to the target [Camera_CaptureSession](#camera_capturesession) instance.|
| metadataOutput | Pointer to the target [Camera_MetadataOutput](#camera_metadataoutput) instance.|
**Returns**
Returns **CAMERA_OK** if the function is successfully called; returns **INVALID_ARGUMENT** if a parameter is missing or the parameter type is incorrect; returns **CAMERA_OPERATION_NOT_ALLOWED** if the operation is not allowed.
### OH_CaptureSession_AddPhotoOutput()
```
Camera_ErrorCode OH_CaptureSession_AddPhotoOutput (Camera_CaptureSession * session, Camera_PhotoOutput * photoOutput )
```
**Description**
Adds a **PhotoOutput** instance to a session.
**Since**: 11
**Parameters**
| Name| Description|
| -------- | -------- |
| session | Pointer to the target [Camera_CaptureSession](#camera_capturesession) instance.|
| photoOutput | Pointer to the target [Camera_PhotoOutput](#camera_photooutput) instance.|
**Returns**
Returns **CAMERA_OK** if the function is successfully called; returns **INVALID_ARGUMENT** if a parameter is missing or the parameter type is incorrect; returns **CAMERA_OPERATION_NOT_ALLOWED** if the operation is not allowed.
### OH_CaptureSession_AddPreviewOutput()
```
Camera_ErrorCode OH_CaptureSession_AddPreviewOutput (Camera_CaptureSession * session, Camera_PreviewOutput * previewOutput )
```
**Description**
Adds a **PreviewOutput** instance to a session.
**Since**: 11
**Parameters**
| Name| Description|
| -------- | -------- |
| session | Pointer to the target [Camera_CaptureSession](#camera_capturesession) instance.|
| previewOutput | Pointer to the target [Camera_PreviewOutput](#camera_previewoutput) instance.|
**Returns**
Returns **CAMERA_OK** if the function is successfully called; returns **INVALID_ARGUMENT** if a parameter is missing or the parameter type is incorrect; returns **CAMERA_OPERATION_NOT_ALLOWED** if the operation is not allowed.
### OH_CaptureSession_AddVideoOutput()
```
Camera_ErrorCode OH_CaptureSession_AddVideoOutput (Camera_CaptureSession * session, Camera_VideoOutput * videoOutput )
```
**Description**
Adds a **VideoOutput** instance to a session.
**Since**: 11
**Parameters**
| Name| Description|
| -------- | -------- |
| session | Pointer to the target [Camera_CaptureSession](#camera_capturesession) instance.|
| videoOutput | Pointer to the target [Camera_VideoOutput](#camera_videooutput) instance.|
**Returns**
Returns **CAMERA_OK** if the function is successfully called; returns **INVALID_ARGUMENT** if a parameter is missing or the parameter type is incorrect; returns **CAMERA_OPERATION_NOT_ALLOWED** if the operation is not allowed.
### OH_CaptureSession_BeginConfig()
```
Camera_ErrorCode OH_CaptureSession_BeginConfig (Camera_CaptureSession * session)
```
**Description**
Starts the configuration for session capture.
**Since**: 11
**Parameters**
| Name| Description|
| -------- | -------- |
| session | Pointer to the target [Camera_CaptureSession](#camera_capturesession) instance.|
**Returns**
Returns **CAMERA_OK** if the function is successfully called; returns **INVALID_ARGUMENT** if a parameter is missing or the parameter type is incorrect; returns **CAMERA_SESSION_CONFIG_LOCKED** if the session configuration is locked.
### OH_CaptureSession_CommitConfig()
```
Camera_ErrorCode OH_CaptureSession_CommitConfig (Camera_CaptureSession * session)
```
**Description**
Commits the configuration for session capture.
**Since**: 11
**Parameters**
| Name| Description|
| -------- | -------- |
| session | Pointer to the target [Camera_CaptureSession](#camera_capturesession) instance.|
**Returns**
Returns **CAMERA_OK** if the function is successfully called; returns **INVALID_ARGUMENT** if a parameter is missing or the parameter type is incorrect; returns **CAMERA_OPERATION_NOT_ALLOWED** if the operation is not allowed; returns **CAMERA_SERVICE_FATAL_ERROR** if a fatal error occurs in the camera service.
### OH_CaptureSession_GetExposureBias()
```
Camera_ErrorCode OH_CaptureSession_GetExposureBias (Camera_CaptureSession * session, float * exposureBias )
```
**Description**
Obtains the exposure compensation value in use.
**Since**: 11
**Parameters**
| Name| Description|
| -------- | -------- |
| session | Pointer to the target [Camera_CaptureSession](#camera_capturesession) instance.|
| exposureBias | Pointer to the exposure compensation value.|
**Returns**
Returns **CAMERA_OK** if the function is successfully called; returns **INVALID_ARGUMENT** if a parameter is missing or the parameter type is incorrect; returns **CAMERA_SESSION_NOT_CONFIG** if the session is not configured.
### OH_CaptureSession_GetExposureBiasRange()
```
Camera_ErrorCode OH_CaptureSession_GetExposureBiasRange (Camera_CaptureSession * session, float * minExposureBias, float * maxExposureBias, float * step )
```
**Description**
Obtains the exposure compensation values of the device.
**Since**: 11
**Parameters**
| Name| Description|
| -------- | -------- |
| session | Pointer to the target [Camera_CaptureSession](#camera_capturesession) instance.|
| minExposureBias | Pointer to the minimum exposure compensation value.|
| maxExposureBias | Pointer to the maximum exposure compensation value.|
| step | Pointer to the exposure compensation step.|
**Returns**
Returns **CAMERA_OK** if the function is successfully called; returns **INVALID_ARGUMENT** if a parameter is missing or the parameter type is incorrect; returns **CAMERA_SESSION_NOT_CONFIG** if the session is not configured.
### OH_CaptureSession_GetExposureMode()
```
Camera_ErrorCode OH_CaptureSession_GetExposureMode (Camera_CaptureSession * session, Camera_ExposureMode * exposureMode )
```
**Description**
Obtains the exposure mode in use.
**Since**: 11
**Parameters**
| Name| Description|
| -------- | -------- |
| session | Pointer to the target [Camera_CaptureSession](#camera_capturesession) instance.|
| exposureMode | Pointer to the exposure mode, which is defined in the [Camera_ExposureMode](#camera_exposuremode) struct.|
**Returns**
Returns **CAMERA_OK** if the function is successfully called; returns **INVALID_ARGUMENT** if a parameter is missing or the parameter type is incorrect; returns **CAMERA_SESSION_NOT_CONFIG** if the session is not configured.
### OH_CaptureSession_GetFlashMode()
```
Camera_ErrorCode OH_CaptureSession_GetFlashMode (Camera_CaptureSession * session, Camera_FlashMode * flashMode )
```
**Description**
Obtains the flash mode in use.
**Since**: 11
**Parameters**
| Name| Description|
| -------- | -------- |
| session | Pointer to the target [Camera_CaptureSession](#camera_capturesession) instance.|
| flashMode | Pointer to the flash mode, which is defined in the [Camera_FlashMode](#camera_flashmode) struct.|
**Returns**
Returns **CAMERA_OK** if the function is successfully called; returns **INVALID_ARGUMENT** if a parameter is missing or the parameter type is incorrect; returns **CAMERA_SESSION_NOT_CONFIG** if the session is not configured.
### OH_CaptureSession_GetFocusMode()
```
Camera_ErrorCode OH_CaptureSession_GetFocusMode (Camera_CaptureSession * session, Camera_FocusMode * focusMode )
```
**Description**
Obtains the focus mode in use.
**Since**: 11
**Parameters**
| Name| Description|
| -------- | -------- |
| session | Pointer to the target [Camera_CaptureSession](#camera_capturesession) instance.|
| exposureBias | Pointer to the focus mode, which is defined in the [Camera_FocusMode](#camera_focusmode) struct.|
**Returns**
Returns **CAMERA_OK** if the function is successfully called; returns **INVALID_ARGUMENT** if a parameter is missing or the parameter type is incorrect; returns **CAMERA_SESSION_NOT_CONFIG** if the session is not configured.
### OH_CaptureSession_GetFocusPoint()
```
Camera_ErrorCode OH_CaptureSession_GetFocusPoint (Camera_CaptureSession * session, Camera_Point * focusPoint )
```
**Description**
Obtains the focal point in use.
**Since**: 11
**Parameters**
| Name| Description|
| -------- | -------- |
| session | Pointer to the target [Camera_CaptureSession](#camera_capturesession) instance.|
| focusPoint | Pointer to the focal point, which is defined in the [Camera_Point](_camera___point.md) struct.|
**Returns**
Returns **CAMERA_OK** if the function is successfully called; returns **INVALID_ARGUMENT** if a parameter is missing or the parameter type is incorrect; returns **CAMERA_SESSION_NOT_CONFIG** if the session is not configured.
### OH_CaptureSession_GetMeteringPoint()
```
Camera_ErrorCode OH_CaptureSession_GetMeteringPoint (Camera_CaptureSession * session, Camera_Point * point )
```
**Description**
Obtains the metering point in use.
**Since**: 11
**Parameters**
| Name| Description|
| -------- | -------- |
| session | Pointer to the target [Camera_CaptureSession](#camera_capturesession) instance.|
| point | Pointer to the metering point, which is defined in the [Camera_Point](_camera___point.md) struct.|
**Returns**
Returns **CAMERA_OK** if the function is successfully called; returns **INVALID_ARGUMENT** if a parameter is missing or the parameter type is incorrect; returns **CAMERA_SESSION_NOT_CONFIG** if the session is not configured.
### OH_CaptureSession_GetVideoStabilizationMode()
```
Camera_ErrorCode OH_CaptureSession_GetVideoStabilizationMode (Camera_CaptureSession * session, Camera_VideoStabilizationMode * mode )
```
**Description**
Obtains the video stabilization mode in use.
**Since**: 11
**Parameters**
| Name| Description|
| -------- | -------- |
| session | Pointer to the target [Camera_CaptureSession](#camera_capturesession) instance.|
| mode | Pointer to the video stabilization mode, which is defined in the [Camera_VideoStabilizationMode](#camera_videostabilizationmode) struct.|
**Returns**
Returns **CAMERA_OK** if the function is successfully called; returns **INVALID_ARGUMENT** if a parameter is missing or the parameter type is incorrect; returns **CAMERA_SESSION_NOT_CONFIG** if the session is not configured.
### OH_CaptureSession_GetZoomRatio()
```
Camera_ErrorCode OH_CaptureSession_GetZoomRatio (Camera_CaptureSession * session, float * zoom )
```
**Description**
Obtains the zoom ratio in use.
**Since**: 11
**Parameters**
| Name| Description|
| -------- | -------- |
| session | Pointer to the target [Camera_CaptureSession](#camera_capturesession) instance.|
| zoom | Pointer to the zoom ratio.|
**Returns**
Returns **CAMERA_OK** if the function is successfully called; returns **INVALID_ARGUMENT** if a parameter is missing or the parameter type is incorrect; returns **CAMERA_SESSION_NOT_CONFIG** if the session is not configured.
### OH_CaptureSession_GetZoomRatioRange()
```
Camera_ErrorCode OH_CaptureSession_GetZoomRatioRange (Camera_CaptureSession * session, float * minZoom, float * maxZoom )
```
**Description**
Obtains the supported zoom ratio range.
**Since**: 11
**Parameters**
| Name| Description|
| -------- | -------- |
| session | Pointer to the target [Camera_CaptureSession](#camera_capturesession) instance.|
| minZoom | Pointer to the minimum zoom ratio.|
| maxZoom | Pointer to the maximum zoom ratio.|
**Returns**
Returns **CAMERA_OK** if the function is successfully called; returns **INVALID_ARGUMENT** if a parameter is missing or the parameter type is incorrect; returns **CAMERA_SESSION_NOT_CONFIG** if the session is not configured.
### OH_CaptureSession_HasFlash()
```
Camera_ErrorCode OH_CaptureSession_HasFlash (Camera_CaptureSession * session, bool * hasFlash )
```
**Description**
Checks whether the device has flash.
**Since**: 11
**Parameters**
| Name| Description|
| -------- | -------- |
| session | Pointer to the target [Camera_CaptureSession](#camera_capturesession) instance.|
| hasFlash | Pointer to the result that specifies whether the device has flash.|
**Returns**
Returns **CAMERA_OK** if the function is successfully called; returns **INVALID_ARGUMENT** if a parameter is missing or the parameter type is incorrect; returns **CAMERA_SESSION_NOT_CONFIG** if the session is not configured.
### OH_CaptureSession_IsExposureModeSupported()
```
Camera_ErrorCode OH_CaptureSession_IsExposureModeSupported (Camera_CaptureSession * session, Camera_ExposureMode exposureMode, bool * isSupported )
```
**Description**
Checks whether an exposure mode is supported.
**Since**: 11
**Parameters**
| Name| Description|
| -------- | -------- |
| session | Pointer to the target [Camera_CaptureSession](#camera_capturesession) instance.|
| exposureMode | Target exposure mode, which is defined in the [Camera_ExposureMode](#camera_exposuremode) struct.|
| isSupported | Pointer to the result that specifies whether the exposure mode is supported.|
**Returns**
Returns **CAMERA_OK** if the function is successfully called; returns **INVALID_ARGUMENT** if a parameter is missing or the parameter type is incorrect; returns **CAMERA_SESSION_NOT_CONFIG** if the session is not configured.
### OH_CaptureSession_IsFlashModeSupported()
```
Camera_ErrorCode OH_CaptureSession_IsFlashModeSupported (Camera_CaptureSession * session, Camera_FlashMode flashMode, bool * isSupported )
```
**Description**
Checks whether a flash mode is supported.
**Since**: 11
**Parameters**
| Name| Description|
| -------- | -------- |
| session | Pointer to the target [Camera_CaptureSession](#camera_capturesession) instance.|
| flashMode | Target flash mode, which is defined in the [Camera_FlashMode](#camera_flashmode) struct.|
| isSupported | Pointer to the result that specifies whether the flash mode is supported.|
**Returns**
Returns **CAMERA_OK** if the function is successfully called; returns **INVALID_ARGUMENT** if a parameter is missing or the parameter type is incorrect; returns **CAMERA_SESSION_NOT_CONFIG** if the session is not configured.
### OH_CaptureSession_IsFocusModeSupported()
```
Camera_ErrorCode OH_CaptureSession_IsFocusModeSupported (Camera_CaptureSession * session, Camera_FocusMode focusMode, bool * isSupported )
```
**Description**
Checks whether a focus mode is supported.
**Since**: 11
**Parameters**
| Name| Description|
| -------- | -------- |
| session | Pointer to the target [Camera_CaptureSession](#camera_capturesession) instance.|
| focusMode | Target focus mode, which is defined in the [Camera_FocusMode](#camera_focusmode) struct.|
| isSupported | Pointer to the result that specifies whether the focus mode is supported.|
**Returns**
Returns **CAMERA_OK** if the function is successfully called; returns **INVALID_ARGUMENT** if a parameter is missing or the parameter type is incorrect; returns **CAMERA_SESSION_NOT_CONFIG** if the session is not configured.
### OH_CaptureSession_IsVideoStabilizationModeSupported()
```
Camera_ErrorCode OH_CaptureSession_IsVideoStabilizationModeSupported (Camera_CaptureSession * session, Camera_VideoStabilizationMode mode, bool * isSupported )
```
**Description**
Checks whether a video stabilization mode is supported.
**Since**: 11
**Parameters**
| Name| Description|
| -------- | -------- |
| session | Pointer to the target [Camera_CaptureSession](#camera_capturesession) instance.|
| mode | Target video stabilization mode, which is defined in the [Camera_VideoStabilizationMode](#camera_videostabilizationmode) struct.|
| isSupported | Pointer to the result that specifies whether the video stabilization mode is supported.|
**Returns**
Returns **CAMERA_OK** if the function is successfully called; returns **INVALID_ARGUMENT** if a parameter is missing or the parameter type is incorrect; returns **CAMERA_SESSION_NOT_CONFIG** if the session is not configured.
### OH_CaptureSession_RegisterCallback()
```
Camera_ErrorCode OH_CaptureSession_RegisterCallback (Camera_CaptureSession * session, CaptureSession_Callbacks * callback )
```
**Description**
Registers a callback to listen for session capture events.
**Since**: 11
**Parameters**
| Name| Description|
| -------- | -------- |
| session | Pointer to the target [Camera_CaptureSession](#camera_capturesession) instance.|
| callback | Pointer to the target callback, which is defined in the [CaptureSession_Callbacks](_capture_session___callbacks.md) struct.|
**Returns**
Returns **CAMERA_OK** if the function is successfully called; returns **INVALID_ARGUMENT** if a parameter is missing or the parameter type is incorrect.
### OH_CaptureSession_Release()
```
Camera_ErrorCode OH_CaptureSession_Release (Camera_CaptureSession * session)
```
**Description**
Releases a **CaptureSession** instance.
**Since**: 11
**Parameters**
| Name| Description|
| -------- | -------- |
| session | Pointer to the target [Camera_CaptureSession](#camera_capturesession) instance.|
**Returns**
Returns **CAMERA_OK** if the function is successfully called; returns **INVALID_ARGUMENT** if a parameter is missing or the parameter type is incorrect; returns **CAMERA_SERVICE_FATAL_ERROR** if a fatal error occurs in the camera service.
### OH_CaptureSession_RemoveInput()
```
Camera_ErrorCode OH_CaptureSession_RemoveInput (Camera_CaptureSession * session, Camera_Input * cameraInput )
```
**Description**
Removes a **CameraInput** instance from a session.
**Since**: 11
**Parameters**
| Name| Description|
| -------- | -------- |
| session | Pointer to the target [Camera_CaptureSession](#camera_capturesession) instance.|
| cameraInput | Pointer to the target [Camera_Input](#camera_input) instance.|
**Returns**
Returns **CAMERA_OK** if the function is successfully called; returns **INVALID_ARGUMENT** if a parameter is missing or the parameter type is incorrect; returns **CAMERA_OPERATION_NOT_ALLOWED** if the operation is not allowed.
### OH_CaptureSession_RemoveMetadataOutput()
```
Camera_ErrorCode OH_CaptureSession_RemoveMetadataOutput (Camera_CaptureSession * session, Camera_MetadataOutput * metadataOutput )
```
**Description**
Removes a **MetadataOutput** instance from a session.
**Since**: 11
**Parameters**
| Name| Description|
| -------- | -------- |
| session | Pointer to the target [Camera_CaptureSession](#camera_capturesession) instance.|
| metadataOutput | Pointer to the target [Camera_MetadataOutput](#camera_metadataoutput) instance.|
**Returns**
Returns **CAMERA_OK** if the function is successfully called; returns **INVALID_ARGUMENT** if a parameter is missing or the parameter type is incorrect; returns **CAMERA_OPERATION_NOT_ALLOWED** if the operation is not allowed.
### OH_CaptureSession_RemovePhotoOutput()
```
Camera_ErrorCode OH_CaptureSession_RemovePhotoOutput (Camera_CaptureSession * session, Camera_PhotoOutput * photoOutput )
```
**Description**
Removes a **PhotoOutput** instance from a session.
**Since**: 11
**Parameters**
| Name| Description|
| -------- | -------- |
| session | Pointer to the target [Camera_CaptureSession](#camera_capturesession) instance.|
| photoOutput | Pointer to the target [Camera_PhotoOutput](#camera_photooutput) instance.|
**Returns**
Returns **CAMERA_OK** if the function is successfully called; returns **INVALID_ARGUMENT** if a parameter is missing or the parameter type is incorrect; returns **CAMERA_OPERATION_NOT_ALLOWED** if the operation is not allowed.
### OH_CaptureSession_RemovePreviewOutput()
```
Camera_ErrorCode OH_CaptureSession_RemovePreviewOutput (Camera_CaptureSession * session, Camera_PreviewOutput * previewOutput )
```
**Description**
Removes a **PreviewOutput** instance from a session.
**Since**: 11
**Parameters**
| Name| Description|
| -------- | -------- |
| session | Pointer to the target [Camera_CaptureSession](#camera_capturesession) instance.|
| previewOutput | Pointer to the target [Camera_PreviewOutput](#camera_previewoutput) instance.|
**Returns**
Returns **CAMERA_OK** if the function is successfully called; returns **INVALID_ARGUMENT** if a parameter is missing or the parameter type is incorrect; returns **CAMERA_OPERATION_NOT_ALLOWED** if the operation is not allowed.
### OH_CaptureSession_RemoveVideoOutput()
```
Camera_ErrorCode OH_CaptureSession_RemoveVideoOutput (Camera_CaptureSession * session, Camera_VideoOutput * videoOutput )
```
**Description**
Removes a **VideoOutput** instance from a session.
**Since**: 11
**Parameters**
| Name| Description|
| -------- | -------- |
| session | Pointer to the target [Camera_CaptureSession](#camera_capturesession) instance.|
| videoOutput | Pointer to the target [Camera_VideoOutput](#camera_videooutput) instance.|
**Returns**
Returns **CAMERA_OK** if the function is successfully called; returns **INVALID_ARGUMENT** if a parameter is missing or the parameter type is incorrect; returns **CAMERA_OPERATION_NOT_ALLOWED** if the operation is not allowed.
### OH_CaptureSession_SetExposureBias()
```
Camera_ErrorCode OH_CaptureSession_SetExposureBias (Camera_CaptureSession * session, float exposureBias )
```
**Description**
Sets an exposure compensation value for the device.
**Since**: 11
**Parameters**
| Name| Description|
| -------- | -------- |
| session | Pointer to the target [Camera_CaptureSession](#camera_capturesession) instance.|
| exposureBias | Target exposure compensation value.|
**Returns**
Returns **CAMERA_OK** if the function is successfully called; returns **INVALID_ARGUMENT** if a parameter is missing or the parameter type is incorrect; returns **CAMERA_SESSION_NOT_CONFIG** if the session is not configured.
### OH_CaptureSession_SetExposureMode()
```
Camera_ErrorCode OH_CaptureSession_SetExposureMode (Camera_CaptureSession * session, Camera_ExposureMode exposureMode )
```
**Description**
Sets an [Camera_VideoOutput](#camera_videooutput) for the device.
**Since**: 11
**Parameters**
| Name| Description|
| -------- | -------- |
| session | Pointer to the target [Camera_CaptureSession](#camera_capturesession) instance.|
| exposureMode | Target exposure mode, which is defined in the [Camera_ExposureMode](#camera_exposuremode) struct.|
**Returns**
Returns **CAMERA_OK** if the function is successfully called; returns **INVALID_ARGUMENT** if a parameter is missing or the parameter type is incorrect; returns **CAMERA_SESSION_NOT_CONFIG** if the session is not configured.
### OH_CaptureSession_SetFlashMode()
```
Camera_ErrorCode OH_CaptureSession_SetFlashMode (Camera_CaptureSession * session, Camera_FlashMode flashMode )
```
**Description**
Sets a flash mode for the device.
**Since**: 11
**Parameters**
| Name| Description|
| -------- | -------- |
| session | Pointer to the target [Camera_CaptureSession](#camera_capturesession) instance.|
| flashMode | Target flash mode, which is defined in the [Camera_FlashMode](#camera_flashmode) struct.|
**Returns**
Returns **CAMERA_OK** if the function is successfully called; returns **INVALID_ARGUMENT** if a parameter is missing or the parameter type is incorrect; returns **CAMERA_SESSION_NOT_CONFIG** if the session is not configured.
### OH_CaptureSession_SetFocusMode()
```
Camera_ErrorCode OH_CaptureSession_SetFocusMode (Camera_CaptureSession * session, Camera_FocusMode focusMode )
```
**Description**
Sets a focus mode for the device.
**Since**: 11
**Parameters**
| Name| Description|
| -------- | -------- |
| session | Pointer to the target [Camera_CaptureSession](#camera_capturesession) instance.|
| focusMode | Target focus mode, which is defined in the [Camera_FocusMode](#camera_focusmode) struct.|
**Returns**
Returns **CAMERA_OK** if the function is successfully called; returns **INVALID_ARGUMENT** if a parameter is missing or the parameter type is incorrect; returns **CAMERA_SESSION_NOT_CONFIG** if the session is not configured.
### OH_CaptureSession_SetFocusPoint()
```
Camera_ErrorCode OH_CaptureSession_SetFocusPoint (Camera_CaptureSession * session, Camera_Point focusPoint )
```
**Description**
Sets a focal point for the device.
**Since**: 11
**Parameters**
| Name| Description|
| -------- | -------- |
| session | Pointer to the target [Camera_CaptureSession](#camera_capturesession) instance.|
| focusPoint | Target focal point, which is defined in the [Camera_Point](_camera___point.md) struct.|
**Returns**
Returns **CAMERA_OK** if the function is successfully called; returns **INVALID_ARGUMENT** if a parameter is missing or the parameter type is incorrect; returns **CAMERA_SESSION_NOT_CONFIG** if the session is not configured.
### OH_CaptureSession_SetMeteringPoint()
```
Camera_ErrorCode OH_CaptureSession_SetMeteringPoint (Camera_CaptureSession * session, Camera_Point point )
```
**Description**
Sets the metering point, which is the center point of the metering rectangle.
**Since**: 11
**Parameters**
| Name| Description|
| -------- | -------- |
| session | Pointer to the target [Camera_CaptureSession](#camera_capturesession) instance.|
| point | Target metering point, which is defined in the [Camera_Point](_camera___point.md) struct.|
**Returns**
Returns **CAMERA_OK** if the function is successfully called; returns **INVALID_ARGUMENT** if a parameter is missing or the parameter type is incorrect; returns **CAMERA_SESSION_NOT_CONFIG** if the session is not configured.
### OH_CaptureSession_SetVideoStabilizationMode()
```
Camera_ErrorCode OH_CaptureSession_SetVideoStabilizationMode (Camera_CaptureSession * session, Camera_VideoStabilizationMode mode )
```
**Description**
Sets a video stabilization mode for the device.
**Since**: 11
**Parameters**
| Name| Description|
| -------- | -------- |
| session | Pointer to the target [Camera_CaptureSession](#camera_capturesession) instance.|
| mode | Target video stabilization mode, which is defined in the **Camera_VideoStatizationMode** struct.|
**Returns**
Returns **CAMERA_OK** if the function is successfully called; returns **INVALID_ARGUMENT** if a parameter is missing or the parameter type is incorrect; returns **CAMERA_SESSION_NOT_CONFIG** if the session is not configured.
### OH_CaptureSession_SetZoomRatio()
```
Camera_ErrorCode OH_CaptureSession_SetZoomRatio (Camera_CaptureSession * session, float zoom )
```
**Description**
Sets a zoom ratio for the device.
**Since**: 11
**Parameters**
| Name| Description|
| -------- | -------- |
| session | Pointer to the target [Camera_CaptureSession](#camera_capturesession) instance.|
| zoom | Target zoom ratio.|
**Returns**
Returns **CAMERA_OK** if the function is successfully called; returns **INVALID_ARGUMENT** if a parameter is missing or the parameter type is incorrect; returns **CAMERA_SESSION_NOT_CONFIG** if the session is not configured.
### OH_CaptureSession_Start()
```
Camera_ErrorCode OH_CaptureSession_Start (Camera_CaptureSession * session)
```
**Description**
Starts session capture.
**Since**: 11
**Parameters**
| Name| Description|
| -------- | -------- |
| session | Pointer to the target [Camera_CaptureSession](#camera_capturesession) instance.|
**Returns**
Returns **CAMERA_OK** if the function is successfully called; returns **INVALID_ARGUMENT** if a parameter is missing or the parameter type is incorrect; returns **CAMERA_SESSION_NOT_CONFIG** if the session is not configured; returns **CAMERA_SERVICE_FATAL_ERROR** if a fatal error occurs in the camera service.
### OH_CaptureSession_Stop()
```
Camera_ErrorCode OH_CaptureSession_Stop (Camera_CaptureSession * session)
```
**Description**
Stops session capture.
**Since**: 11
**Parameters**
| Name| Description|
| -------- | -------- |
| session | Pointer to the target [Camera_CaptureSession](#camera_capturesession) instance.|
**Returns**
Returns **CAMERA_OK** if the function is successfully called; returns **INVALID_ARGUMENT** if a parameter is missing or the parameter type is incorrect; returns **CAMERA_SERVICE_FATAL_ERROR** if a fatal error occurs in the camera service.
### OH_CaptureSession_UnregisterCallback()
```
Camera_ErrorCode OH_CaptureSession_UnregisterCallback (Camera_CaptureSession * session, CaptureSession_Callbacks * callback )
```
**Description**
Unregisters the callback used to listen for session capture events.
**Since**: 11
**Parameters**
| Name| Description|
| -------- | -------- |
| session | Pointer to the target [Camera_CaptureSession](#camera_capturesession) instance.|
| callback | Pointer to the target callback, which is defined in the [CaptureSession_Callbacks](_capture_session___callbacks.md) struct.|
**Returns**
Returns **CAMERA_OK** if the function is successfully called; returns **INVALID_ARGUMENT** if a parameter is missing or the parameter type is incorrect.
### OH_MetadataOutput_RegisterCallback()
```
Camera_ErrorCode OH_MetadataOutput_RegisterCallback (Camera_MetadataOutput * metadataOutput, MetadataOutput_Callbacks * callback )
```
**Description**
Registers a callback to listen for metadata output events.
**Since**: 11
**Parameters**
| Name| Description|
| -------- | -------- |
| metadataOutput | Pointer to the target [Camera_MetadataOutput](#camera_metadataoutput) instance.|
| callback | Pointer to the target callback, which is defined in the [MetadataOutput_Callbacks](_metadata_output___callbacks.md) struct.|
**Returns**
Returns **CAMERA_OK** if the function is successfully called; returns **INVALID_ARGUMENT** if a parameter is missing or the parameter type is incorrect.
### OH_MetadataOutput_Release()
```
Camera_ErrorCode OH_MetadataOutput_Release (Camera_MetadataOutput * metadataOutput)
```
**Description**
Releases a **MetadataOutput** instance.
**Since**: 11
**Parameters**
| Name| Description|
| -------- | -------- |
| metadataOutput | Pointer to the target [Camera_MetadataOutput](#camera_metadataoutput) instance.|
**Returns**
Returns **CAMERA_OK** if the function is successfully called; returns **INVALID_ARGUMENT** if a parameter is missing or the parameter type is incorrect; returns **CAMERA_SERVICE_FATAL_ERROR** if a fatal error occurs in the camera service.
### OH_MetadataOutput_Start()
```
Camera_ErrorCode OH_MetadataOutput_Start (Camera_MetadataOutput * metadataOutput)
```
**Description**
Starts metadata output.
**Since**: 11
**Parameters**
| Name| Description|
| -------- | -------- |
| metadataOutput | Pointer to the target [Camera_MetadataOutput](#camera_metadataoutput) instance.|
**Returns**
Returns **CAMERA_OK** if the function is successfully called; returns **INVALID_ARGUMENT** if a parameter is missing or the parameter type is incorrect; returns **CAMERA_SESSION_NOT_CONFIG** if the session is not configured; returns **CAMERA_SERVICE_FATAL_ERROR** if a fatal error occurs in the camera service.
### OH_MetadataOutput_Stop()
```
Camera_ErrorCode OH_MetadataOutput_Stop (Camera_MetadataOutput * metadataOutput)
```
**Description**
Stops metadata output.
**Since**: 11
**Parameters**
| Name| Description|
| -------- | -------- |
| metadataOutput | Pointer to the target [Camera_MetadataOutput](#camera_metadataoutput) instance.|
**Returns**
Returns **CAMERA_OK** if the function is successfully called; returns **INVALID_ARGUMENT** if a parameter is missing or the parameter type is incorrect; returns **CAMERA_SERVICE_FATAL_ERROR** if a fatal error occurs in the camera service.
### OH_MetadataOutput_UnregisterCallback()
```
Camera_ErrorCode OH_MetadataOutput_UnregisterCallback (Camera_MetadataOutput * metadataOutput, MetadataOutput_Callbacks * callback )
```
**Description**
Unregisters the callback used to listen for metadata output events.
**Since**: 11
**Parameters**
| Name| Description|
| -------- | -------- |
| metadataOutput | Pointer to the target [Camera_MetadataOutput](#camera_metadataoutput) instance.|
| callback | Pointer to the target callback, which is defined in the [MetadataOutput_Callbacks](_metadata_output___callbacks.md) struct.|
**Returns**
Returns **CAMERA_OK** if the function is successfully called; returns **INVALID_ARGUMENT** if a parameter is missing or the parameter type is incorrect.
### OH_PhotoOutput_Capture()
```
Camera_ErrorCode OH_PhotoOutput_Capture (Camera_PhotoOutput * photoOutput)
```
**Description**
Captures a photo.
**Since**: 11
**Parameters**
| Name| Description|
| -------- | -------- |
| photoOutput | Pointer to the target [Camera_PhotoOutput](#camera_photooutput) instance.|
**Returns**
Returns **CAMERA_OK** if the function is successfully called; returns **INVALID_ARGUMENT** if a parameter is missing or the parameter type is incorrect; returns **CAMERA_SESSION_NOT_CONFIG** if the session is not configured; returns **CAMERA_SERVICE_FATAL_ERROR** if a fatal error occurs in the camera service.
### OH_PhotoOutput_Capture_WithCaptureSetting()
```
Camera_ErrorCode OH_PhotoOutput_Capture_WithCaptureSetting (Camera_PhotoOutput * photoOutput, Camera_PhotoCaptureSetting setting )
```
**Description**
Captures a photo with the photographing parameters.
**Parameters**
| Name| Description|
| -------- | -------- |
| photoOutput | Pointer to the target [Camera_PhotoOutput](#camera_photooutput) instance.|
| setting | Photographing parameters, which are defined in the [Camera_PhotoCaptureSetting](_camera___photo_capture_setting.md) struct.|
**Returns**
Returns **CAMERA_OK** if the function is successfully called; returns **INVALID_ARGUMENT** if a parameter is missing or the parameter type is incorrect; returns **CAMERA_SESSION_NOT_CONFIG** if the session is not configured; returns **CAMERA_SERVICE_FATAL_ERROR** if a fatal error occurs in the camera service.
### OH_PhotoOutput_IsMirrorSupported()
```
Camera_ErrorCode OH_PhotoOutput_IsMirrorSupported (Camera_PhotoOutput * photoOutput, bool * isSupported )
```
**Description**
Checks whether mirroring is supported.
**Since**: 11
**Parameters**
| Name| Description|
| -------- | -------- |
| photoOutput | Pointer to the [Camera_PhotoOutput](#camera_photooutput) instance, which is used to check whether mirroring is supported.|
| isSupported | Pointer to the result that specifies whether mirroring is supported.|
**Returns**
Returns **CAMERA_OK** if the function is successfully called; returns **INVALID_ARGUMENT** if a parameter is missing or the parameter type is incorrect; returns **CAMERA_SERVICE_FATAL_ERROR** if a fatal error occurs in the camera service.
### OH_PhotoOutput_RegisterCallback()
```
Camera_ErrorCode OH_PhotoOutput_RegisterCallback (Camera_PhotoOutput * photoOutput, PhotoOutput_Callbacks * callback )
```
**Description**
Registers a callback to listen for photo output events.
**Since**: 11
**Parameters**
| Name| Description|
| -------- | -------- |
| photoOutput | Pointer to the target [Camera_PhotoOutput](#camera_photooutput) instance.|
| callback | Pointer to the target callback, which is defined in the [PhotoOutput_Callbacks](_photo_output___callbacks.md) struct.|
**Returns**
Returns **CAMERA_OK** if the function is successfully called; returns **INVALID_ARGUMENT** if a parameter is missing or the parameter type is incorrect.
### OH_PhotoOutput_Release()
```
Camera_ErrorCode OH_PhotoOutput_Release (Camera_PhotoOutput * photoOutput)
```
**Description**
Releases a **PhotoOutput** instance.
**Since**: 11
**Parameters**
| Name| Description|
| -------- | -------- |
| photoOutput | Pointer to the target [Camera_PhotoOutput](#camera_photooutput) instance.|
**Returns**
Returns **CAMERA_OK** if the function is successfully called; returns **INVALID_ARGUMENT** if a parameter is missing or the parameter type is incorrect; returns **CAMERA_SERVICE_FATAL_ERROR** if a fatal error occurs in the camera service.
### OH_PhotoOutput_UnregisterCallback()
```
Camera_ErrorCode OH_PhotoOutput_UnregisterCallback (Camera_PhotoOutput * photoOutput, PhotoOutput_Callbacks * callback )
```
**Description**
Unregisters the callback used to listen for photo output events.
**Parameters**
| Name| Description|
| -------- | -------- |
| photoOutput | Pointer to the target [Camera_PhotoOutput](#camera_photooutput) instance.|
| callback | Pointer to the target callback, which is defined in the [PhotoOutput_Callbacks](_photo_output___callbacks.md) struct.|
**Returns**
Returns **CAMERA_OK** if the function is successfully called; returns **INVALID_ARGUMENT** if a parameter is missing or the parameter type is incorrect.
### OH_PreviewOutput_RegisterCallback()
```
Camera_ErrorCode OH_PreviewOutput_RegisterCallback (Camera_PreviewOutput * previewOutput, PreviewOutput_Callbacks * callback )
```
**Description**
Registers a callback to listen for preview output events.
**Since**: 11
**Parameters**
| Name| Description|
| -------- | -------- |
| previewOutput | Pointer to the target [Camera_PreviewOutput](#camera_previewoutput) instance.|
| callback | Pointer to the target callback, which is defined in the [PreviewOutput_Callbacks](_preview_output___callbacks.md) struct.|
**Returns**
Returns **CAMERA_OK** if the function is successfully called; returns **INVALID_ARGUMENT** if a parameter is missing or the parameter type is incorrect.
### OH_PreviewOutput_Release()
```
Camera_ErrorCode OH_PreviewOutput_Release (Camera_PreviewOutput * previewOutput)
```
**Description**
Releases a **PreviewOutput** instance.
**Since**: 11
**Parameters**
| Name| Description|
| -------- | -------- |
| previewOutput | Pointer to the target [Camera_PreviewOutput](#camera_previewoutput) instance.|
**Returns**
Returns **CAMERA_OK** if the function is successfully called; returns **INVALID_ARGUMENT** if a parameter is missing or the parameter type is incorrect; returns **CAMERA_SERVICE_FATAL_ERROR** if a fatal error occurs in the camera service.
### OH_PreviewOutput_Start()
```
Camera_ErrorCode OH_PreviewOutput_Start (Camera_PreviewOutput * previewOutput)
```
**Description**
Starts preview output.
**Since**: 11
**Parameters**
| Name| Description|
| -------- | -------- |
| previewOutput | Pointer to the target [Camera_PreviewOutput](#camera_previewoutput) instance.|
**Returns**
Returns **CAMERA_OK** if the function is successfully called; returns **INVALID_ARGUMENT** if a parameter is missing or the parameter type is incorrect; returns **CAMERA_SESSION_NOT_CONFIG** if the session is not configured; returns **CAMERA_SERVICE_FATAL_ERROR** if a fatal error occurs in the camera service.
### OH_PreviewOutput_Stop()
```
Camera_ErrorCode OH_PreviewOutput_Stop (Camera_PreviewOutput * previewOutput)
```
**Description**
Stops preview output.
**Since**: 11
**Parameters**
| Name| Description|
| -------- | -------- |
| previewOutput | Pointer to the target [Camera_PreviewOutput](#camera_previewoutput) instance.|
**Returns**
Returns **CAMERA_OK** if the function is successfully called; returns **INVALID_ARGUMENT** if a parameter is missing or the parameter type is incorrect; returns **CAMERA_SERVICE_FATAL_ERROR** if a fatal error occurs in the camera service.
### OH_PreviewOutput_UnregisterCallback()
```
Camera_ErrorCode OH_PreviewOutput_UnregisterCallback (Camera_PreviewOutput * previewOutput, PreviewOutput_Callbacks * callback )
```
**Description**
Unregisters the callback used to listen for preview output events.
**Since**: 11
**Parameters**
| Name| Description|
| -------- | -------- |
| previewOutput | Pointer to the target [Camera_PreviewOutput](#camera_previewoutput) instance.|
| callback | Pointer to the target callback, which is defined in the [PreviewOutput_Callbacks](_preview_output___callbacks.md) struct.|
**Returns**
Returns **CAMERA_OK** if the function is successfully called; returns **INVALID_ARGUMENT** if a parameter is missing or the parameter type is incorrect.
### OH_VideoOutput_RegisterCallback()
```
Camera_ErrorCode OH_VideoOutput_RegisterCallback (Camera_VideoOutput * videoOutput, VideoOutput_Callbacks * callback )
```
**Description**
Registers a callback to listen for video output events.
**Since**: 11
**Parameters**
| Name| Description|
| -------- | -------- |
| videoOutput | Pointer to a [Camera_VideoOutput](#camera_videooutput) instance.|
| callback | Pointer to the target callback, which is defined in the [VideoOutput_Callbacks](_video_output___callbacks.md) struct.|
**Returns**
Returns **CAMERA_OK** if the function is successfully called; returns **INVALID_ARGUMENT** if a parameter is missing or the parameter type is incorrect.
### OH_VideoOutput_Release()
```
Camera_ErrorCode OH_VideoOutput_Release (Camera_VideoOutput * videoOutput)
```
**Description**
Releases a **VideoOutput** instance.
**Since**: 11
**Parameters**
| Name| Description|
| -------- | -------- |
| videoOutput | Pointer to the target [Camera_VideoOutput](#camera_videooutput) instance.|
**Returns**
Returns **CAMERA_OK** if the function is successfully called; returns **INVALID_ARGUMENT** if a parameter is missing or the parameter type is incorrect; returns **CAMERA_SERVICE_FATAL_ERROR** if a fatal error occurs in the camera service.
### OH_VideoOutput_Start()
```
Camera_ErrorCode OH_VideoOutput_Start (Camera_VideoOutput * videoOutput)
```
**Description**
Starts video output.
**Since**: 11
**Parameters**
| Name| Description|
| -------- | -------- |
| videoOutput | Pointer to the target [Camera_VideoOutput](#camera_videooutput) instance.|
**Returns**
Returns **CAMERA_OK** if the function is successfully called; returns **INVALID_ARGUMENT** if a parameter is missing or the parameter type is incorrect; returns **CAMERA_SESSION_NOT_CONFIG** if the session is not configured; returns **CAMERA_SERVICE_FATAL_ERROR** if a fatal error occurs in the camera service.
### OH_VideoOutput_Stop()
```
Camera_ErrorCode OH_VideoOutput_Stop (Camera_VideoOutput * videoOutput)
```
**Description**
Stops video output.
**Since**: 11
**Parameters**
| Name| Description|
| -------- | -------- |
| videoOutput | Pointer to the target [Camera_VideoOutput](#camera_videooutput) instance.|
**Returns**
Returns **CAMERA_OK** if the function is successfully called; returns **INVALID_ARGUMENT** if a parameter is missing or the parameter type is incorrect; returns **CAMERA_SERVICE_FATAL_ERROR** if a fatal error occurs in the camera service.
### OH_VideoOutput_UnregisterCallback()
```
Camera_ErrorCode OH_VideoOutput_UnregisterCallback (Camera_VideoOutput * videoOutput, VideoOutput_Callbacks * callback )
```
**Description**
Unregisters the callback used to listen for video output events.
**Since**: 11
**Parameters**
| Name| Description|
| -------- | -------- |
| videoOutput | Pointer to a [Camera_VideoOutput](#camera_videooutput) instance.|
| callback | Pointer to the target callback, which is defined in the [VideoOutput_Callbacks](_video_output___callbacks.md) struct.|
**Returns**
Returns **CAMERA_OK** if the function is successfully called; returns **INVALID_ARGUMENT** if a parameter is missing or the parameter type is incorrect.