1# camera_input.h 2<!--Kit: Camera Kit--> 3<!--Subsystem: Multimedia--> 4<!--Owner: @qano--> 5<!--SE: @leo_ysl--> 6<!--TSE: @xchaosioda--> 7 8## Overview 9 10The file declares the camera input concepts. 11 12**File to include**: <ohcamera/camera_input.h> 13 14**Library**: libohcamera.so 15 16**System capability**: SystemCapability.Multimedia.Camera.Core 17 18**Since**: 11 19 20**Related module**: [OH_Camera](capi-oh-camera.md) 21 22## Summary 23 24### Structs 25 26| Name| typedef Keyword| Description| 27| -- | -- | -- | 28| [CameraInput_Callbacks](capi-oh-camera-camerainput-callbacks.md) | CameraInput_Callbacks | Describes the callbacks used to listen for camera input errors.| 29| [Camera_Input](capi-oh-camera-camera-input.md) | Camera_Input | Describes the camera input object. You can use [OH_CameraManager_CreateCameraInput](capi-camera-manager-h.md#oh_cameramanager_createcamerainput) to create such an object.| 30 31### Functions 32 33| Name| typedef Keyword| Description| 34| -- | -- | -- | 35| [typedef void (\*OH_CameraInput_OnError)(const Camera_Input* cameraInput, Camera_ErrorCode errorCode)](#oh_camerainput_onerror) | OH_CameraInput_OnError | Defines the callback defined in the [CameraInput_Callbacks](capi-oh-camera-camerainput-callbacks.md) struct and used to report camera input errors.| 36| [Camera_ErrorCode OH_CameraInput_RegisterCallback(Camera_Input* cameraInput, CameraInput_Callbacks* callback)](#oh_camerainput_registercallback) | - | Registers a callback to listen for camera input events.| 37| [Camera_ErrorCode OH_CameraInput_UnregisterCallback(Camera_Input* cameraInput, CameraInput_Callbacks* callback)](#oh_camerainput_unregistercallback) | - | Unregisters the callback used to listen for camera input events.| 38| [Camera_ErrorCode OH_CameraInput_Open(Camera_Input* cameraInput)](#oh_camerainput_open) | - | Opens a camera.| 39| [Camera_ErrorCode OH_CameraInput_OpenSecureCamera(Camera_Input* cameraInput, uint64_t* secureSeqId)](#oh_camerainput_opensecurecamera) | - | Opens a camera in secure mode.| 40| [Camera_ErrorCode OH_CameraInput_OpenConcurrentCameras(Camera_Input* cameraInput, Camera_ConcurrentType type)](#oh_camerainput_openconcurrentcameras) | - | Opens the camera based on the specified concurrency type.| 41| [Camera_ErrorCode OH_CameraInput_Close(Camera_Input* cameraInput)](#oh_camerainput_close) | - | Closes a camera.| 42| [Camera_ErrorCode OH_CameraInput_Release(Camera_Input* cameraInput)](#oh_camerainput_release) | - | Releases a Camera_Input instance.<br>Either this function or [OH_CameraInput_Close](capi-camera-input-h.md#oh_camerainput_close) needs to be called.| 43 44## Function Description 45 46### OH_CameraInput_OnError() 47 48``` 49typedef void (*OH_CameraInput_OnError)(const Camera_Input* cameraInput, Camera_ErrorCode errorCode) 50``` 51 52**Description** 53 54Defines the callback defined in the [CameraInput_Callbacks](capi-oh-camera-camerainput-callbacks.md) struct and used to report camera input errors. 55 56**Since**: 11 57 58 59**Parameters** 60 61| Name| Description| 62| -- | -- | 63| const [Camera_Input](capi-oh-camera-camera-input.md)* cameraInput | Pointer to the target Camera_Input instance.| 64| [Camera_ErrorCode](capi-camera-h.md#camera_errorcode) errorCode | Error code reported during camera input and defined in the Camera_ErrorCode struct.| 65 66**See also** 67 68[CAMERA_SERVICE_FATAL_ERROR](capi-camera-h.md#camera_errorcode) 69 70### OH_CameraInput_RegisterCallback() 71 72``` 73Camera_ErrorCode OH_CameraInput_RegisterCallback(Camera_Input* cameraInput, CameraInput_Callbacks* callback) 74``` 75 76**Description** 77 78Registers a callback to listen for camera input events. 79 80**Since**: 11 81 82 83**Parameters** 84 85| Name| Description| 86| -- | -- | 87| [Camera_Input](capi-oh-camera-camera-input.md)* cameraInput | Pointer to the target Camera_Input instance.| 88| [CameraInput_Callbacks](capi-oh-camera-camerainput-callbacks.md)* callback | Pointer to the target callback.| 89 90**Returns** 91 92| Type| Description| 93| -- | -- | 94| [Camera_ErrorCode](capi-camera-h.md#camera_errorcode) | **CAMERA_OK**: The operation is successful.<br>**CAMERA_INVALID_ARGUMENT**: A parameter is missing or the parameter type is incorrect.| 95 96### OH_CameraInput_UnregisterCallback() 97 98``` 99Camera_ErrorCode OH_CameraInput_UnregisterCallback(Camera_Input* cameraInput, CameraInput_Callbacks* callback) 100``` 101 102**Description** 103 104Unregisters the callback used to listen for camera input events. 105 106**Since**: 11 107 108 109**Parameters** 110 111| Name| Description| 112| -- | -- | 113| [Camera_Input](capi-oh-camera-camera-input.md)* cameraInput | Pointer to the target Camera_Input instance.| 114| [CameraInput_Callbacks](capi-oh-camera-camerainput-callbacks.md)* callback | Pointer to the target callback.| 115 116**Returns** 117 118| Type| Description| 119| -- | -- | 120| [Camera_ErrorCode](capi-camera-h.md#camera_errorcode) | **CAMERA_OK**: The operation is successful.<br>**CAMERA_INVALID_ARGUMENT**: A parameter is missing or the parameter type is incorrect.| 121 122### OH_CameraInput_Open() 123 124``` 125Camera_ErrorCode OH_CameraInput_Open(Camera_Input* cameraInput) 126``` 127 128**Description** 129 130Opens a camera. 131 132**Since**: 11 133 134 135**Parameters** 136 137| Name| Description| 138| -- | -- | 139| [Camera_Input](capi-oh-camera-camera-input.md)* cameraInput | Pointer to the target Camera_Input instance.| 140 141**Returns** 142 143| Type| Description| 144| -- | -- | 145| [Camera_ErrorCode](capi-camera-h.md#camera_errorcode) | **CAMERA_OK**: The operation is successful.<br>**CAMERA_INVALID_ARGUMENT**: A parameter is missing or the parameter type is incorrect.<br>**CAMERA_CONFLICT_CAMERA**: The camera cannot be used due to a conflict.<br>**CAMERA_DEVICE_DISABLED**: The camera is disabled due to security reasons.<br>**CAMERA_SERVICE_FATAL_ERROR**: A fatal error occurs in the camera service.| 146 147### OH_CameraInput_OpenSecureCamera() 148 149``` 150Camera_ErrorCode OH_CameraInput_OpenSecureCamera(Camera_Input* cameraInput, uint64_t* secureSeqId) 151``` 152 153**Description** 154 155Opens a camera in secure mode. 156 157**Since**: 12 158 159 160**Parameters** 161 162| Name| Description| 163| -- | -- | 164| [Camera_Input](capi-oh-camera-camera-input.md)* cameraInput | Pointer to the target Camera_Input instance.| 165| uint64_t* secureSeqId | Pointer to the sequence ID of the camera.| 166 167**Returns** 168 169| Type| Description| 170| -- | -- | 171| [Camera_ErrorCode](capi-camera-h.md#camera_errorcode) | **CAMERA_OK**: The operation is successful.<br>**CAMERA_INVALID_ARGUMENT**: A parameter is missing or the parameter type is incorrect.<br>**CAMERA_CONFLICT_CAMERA**: The camera cannot be used due to a conflict.<br>**CAMERA_DEVICE_DISABLED**: The camera is disabled due to security reasons.<br>**CAMERA_SERVICE_FATAL_ERROR**: A fatal error occurs in the camera service.| 172 173### OH_CameraInput_OpenConcurrentCameras() 174 175``` 176Camera_ErrorCode OH_CameraInput_OpenConcurrentCameras(Camera_Input* cameraInput, Camera_ConcurrentType type) 177``` 178 179**Description** 180 181Opens the camera based on the specified concurrency type. 182 183**Since**: 18 184 185 186**Parameters** 187 188| Name| Description| 189| -- | -- | 190| [Camera_Input](capi-oh-camera-camera-input.md)* cameraInput | Pointer to the target Camera_Input instance.| 191| [Camera_ConcurrentType](capi-camera-h.md#camera_concurrenttype) type | Concurrency type.| 192 193**Returns** 194 195| Type| Description| 196| -- | -- | 197| [Camera_ErrorCode](capi-camera-h.md#camera_errorcode) | **CAMERA_OK**: The operation is successful.<br>**CAMERA_INVALID_ARGUMENT**: A parameter is missing or the parameter type is incorrect.<br>**CAMERA_CONFLICT_CAMERA**: The camera cannot be used due to a conflict.<br>**CAMERA_DEVICE_DISABLED**: The camera is disabled due to security reasons.<br>**CAMERA_SERVICE_FATAL_ERROR**: A fatal error occurs in the camera service.| 198 199### OH_CameraInput_Close() 200 201``` 202Camera_ErrorCode OH_CameraInput_Close(Camera_Input* cameraInput) 203``` 204 205**Description** 206 207Closes a camera. 208 209**Since**: 11 210 211 212**Parameters** 213 214| Name| Description| 215| -- | -- | 216| [Camera_Input](capi-oh-camera-camera-input.md)* cameraInput | Pointer to the target Camera_Input instance.| 217 218**Returns** 219 220| Type| Description| 221| -- | -- | 222| [Camera_ErrorCode](capi-camera-h.md#camera_errorcode) | **CAMERA_OK**: The operation is successful.<br>**CAMERA_INVALID_ARGUMENT**: A parameter is missing or the parameter type is incorrect.<br>**CAMERA_SERVICE_FATAL_ERROR**: A fatal error occurs in the camera service.| 223 224### OH_CameraInput_Release() 225 226``` 227Camera_ErrorCode OH_CameraInput_Release(Camera_Input* cameraInput) 228``` 229 230**Description** 231 232Releases a Camera_Input instance. 233 234Either this function or [OH_CameraInput_Close](capi-camera-input-h.md#oh_camerainput_close) needs to be called. 235 236**Since**: 11 237 238 239**Parameters** 240 241| Name| Description| 242| -- | -- | 243| [Camera_Input](capi-oh-camera-camera-input.md)* cameraInput | Pointer to the target Camera_Input instance.| 244 245**Returns** 246 247| Type| Description| 248| -- | -- | 249| [Camera_ErrorCode](capi-camera-h.md#camera_errorcode) | **CAMERA_OK**: The operation is successful.<br>**CAMERA_INVALID_ARGUMENT**: A parameter is missing or the parameter type is incorrect.<br>**CAMERA_SERVICE_FATAL_ERROR**: A fatal error occurs in the camera service.| 250