1# Camera (V1_0) 2 3 4## 概述 5 6Camera模块接口定义。 7 8Camera模块涉及相机设备的操作、流的操作、离线流的操作和各种回调等。 9 10**起始版本:** 3.2 11 12 13## 汇总 14 15 16### 文件 17 18| 名称 | 描述 | 19| -------- | -------- | 20| [ICameraDevice.idl](_i_camera_device_8idl_v10.md) | Camera设备操作接口。 | 21| [ICameraDeviceCallback.idl](_i_camera_device_callback_8idl_v10.md) | Camera设备的回调接口,主要包含Camera设备发生错误时和上报metadata的回调函数。 | 22| [ICameraHost.idl](_i_camera_host_8idl_v10.md) | Camera服务的管理类,对上层提供HDI接口。 | 23| [ICameraHostCallback.idl](_i_camera_host_callback_8idl_v10.md) | ICameraHost的回调接口,提供Camera设备和闪关灯状态变化的回调函数,回调函数由调用者实现。 | 24| [IOfflineStreamOperator.idl](_i_offline_stream_operator_8idl_v10.md) | 离线流的操作接口。 | 25| [IStreamOperator.idl](_i_stream_operator_8idl_v10.md) | 流的操作接口。 | 26| [IStreamOperatorCallback.idl](_i_stream_operator_callback_8idl_v10.md) | [IStreamOperator](interface_i_stream_operator_v10.md)相关的回调,这些回调均由调用者实现。 | 27| [Types.idl](camera_types_8idl_v10.md) | Camera模块HDI接口使用的数据类型。 | 28 29 30### 类 31 32| 名称 | 描述 | 33| -------- | -------- | 34| interface [ICameraDevice](interface_i_camera_device_v10.md) | 定义Camera设备基本的操作。 | 35| interface [ICameraDeviceCallback](interface_i_camera_device_callback_v10.md) | 定义Camera设备回调操作。 | 36| interface [ICameraHost](interface_i_camera_host_v10.md) | 定义Camera设备功能操作。 | 37| interface [ICameraHostCallback](interface_i_camera_host_callback_v10.md) | 定义Camera设备功能回调操作。 | 38| interface [IOfflineStreamOperator](interface_i_offline_stream_operator_v10.md) | 定义Camera设备离线流操作。 | 39| interface [IStreamOperator](interface_i_stream_operator_v10.md) | 定义Camera设备流操作。 | 40| interface [IStreamOperatorCallback](interface_i_stream_operator_callback_v10.md) | 定义Camera设备流回调操作。 | 41| struct [StreamInfo](_stream_info_v10.md) | 流信息,用于创建流时传入相关的配置参数。 | 42| struct [StreamAttribute](_stream_attribute_v10.md) | 流的属性。 | 43| struct [CaptureInfo](_capture_info_v10.md) | 捕获请求的相关信息。 | 44| struct [CaptureEndedInfo](_capture_ended_info_v10.md) | 捕获结束相关信息,用于捕获结束回调[OnCaptureEnded](interface_i_stream_operator_callback_v10.md#oncaptureended)。 | 45| struct [CaptureErrorInfo](_capture_error_info_v10.md) | 流错误信息,用于回调[OnCaptureError](interface_i_stream_operator_callback_v10.md#oncaptureerror)。 | 46 47 48### 枚举 49 50| 名称 | 描述 | 51| -------- | -------- | 52| [CamRetCode](#camretcode) { NO_ERROR = 0, CAMERA_BUSY = -1, INSUFFICIENT_RESOURCES = -2, INVALID_ARGUMENT = -3, METHOD_NOT_SUPPORTED = -4, CAMERA_CLOSED = -5, DEVICE_ERROR = -6, NO_PERMISSION = -7 } | HDI接口的返回值。 | 53| [ResultCallbackMode](#resultcallbackmode) { PER_FRAME = 0, ON_CHANGED = 1 } | metadata的上报模式。 | 54| [OperationMode](#operationmode) { NORMAL = 0 } | 流的使用模式。 | 55| [StreamIntent](#streamintent) { PREVIEW = 0, VIDEO = 1, STILL_CAPTURE = 2, POST_VIEW = 3, ANALYZE = 4, CUSTOM = 5 } | 流的类型。 | 56| [EncodeType](#encodetype) { ENCODE_TYPE_NULL = 0, ENCODE_TYPE_H264 = 1, ENCODE_TYPE_H265 = 2, ENCODE_TYPE_JPEG = 3 } | 流数据的编码类型。 | 57| [StreamSupportType](#streamsupporttype) { DYNAMIC_SUPPORTED = 0, RE_CONFIGURED_REQUIRED = 1, NOT_SUPPORTED = 2 } | 对动态配置流的支持类型,使用场景参考[IsStreamsSupported](interface_i_stream_operator_v10.md#isstreamssupported)。 | 58| [CameraStatus](#camerastatus) { UN_AVAILABLE = 0, AVAILABLE = 1 } | Camera设备状态。 | 59| [FlashlightStatus](#flashlightstatus) { FLASHLIGHT_OFF = 0, FLASHLIGHT_ON = 1, FLASHLIGHT_UNAVAILABLE = 2 } | 闪光灯状态。 | 60| [CameraEvent](#cameraevent) { CAMERA_EVENT_DEVICE_ADD = 0, CAMERA_EVENT_DEVICE_RMV = 1 } | Camera事件。 | 61| [ErrorType](#errortype) { FATAL_ERROR = 0, REQUEST_TIMEOUT = 1, DRIVER_ERROR = 2, DEVICE_PREEMPT = 3, DEVICE_DISCONNECT = 4, DCAMERA_ERROR_BEGIN = 1024, DCAMERA_ERROR_DEVICE_IN_USE, DCAMERA_ERROR_NO_PERMISSION } | 设备错误类型,用于设备错误回调 [OnError](interface_i_camera_device_callback_v10.md#onerror)。 | 62| [StreamError](#streamerror) { UNKNOWN_ERROR = 0, BUFFER_LOST = 1 } | 流错误类型,用于流错误类型[CaptureErrorInfo](_capture_error_info_v10.md)。 | 63 64 65## 枚举类型说明 66 67 68### CameraEvent 69 70``` 71enum CameraEvent 72``` 73 74**描述** 75 76Camera事件。 77 78**起始版本:** 3.2 79 80| 枚举值 | 描述 | 81| -------- | -------- | 82| CAMERA_EVENT_DEVICE_ADD | Camera设备增加事件。 | 83| CAMERA_EVENT_DEVICE_RMV | Camera设备删除事件。 | 84 85 86### CameraStatus 87 88``` 89enum CameraStatus 90``` 91 92**描述** 93 94Camera设备状态。 95 96**起始版本:** 3.2 97 98| 枚举值 | 描述 | 99| -------- | -------- | 100| UN_AVAILABLE | 设备当前不在位或者不可用。 | 101| AVAILABLE | 设备当前可用。 | 102 103 104### CamRetCode 105 106``` 107enum CamRetCode 108``` 109 110**描述** 111 112HDI接口的返回值。 113 114**起始版本:** 3.2 115 116| 枚举值 | 描述 | 117| -------- | -------- | 118| NO_ERROR | 调用成功。 | 119| CAMERA_BUSY | 设备当前忙。 | 120| INSUFFICIENT_RESOURCES | 资源不足。 | 121| INVALID_ARGUMENT | 参数错误。 | 122| METHOD_NOT_SUPPORTED | 不支持当前调用方法。 | 123| CAMERA_CLOSED | Camera设备已经关闭。 | 124| DEVICE_ERROR | 驱动层发生严重错误。 | 125| NO_PERMISSION | 无权限访问设备。 | 126 127 128### EncodeType 129 130``` 131enum EncodeType 132``` 133 134**描述** 135 136流数据的编码类型。 137 138**起始版本:** 3.2 139 140| 枚举值 | 描述 | 141| -------- | -------- | 142| ENCODE_TYPE_NULL | 未设置编码类型 | 143| ENCODE_TYPE_H264 | 编码类型为H264。 | 144| ENCODE_TYPE_H265 | 编码类型为H265。 | 145| ENCODE_TYPE_JPEG | 编码类型为JPEG。 | 146 147 148### ErrorType 149 150``` 151enum ErrorType 152``` 153 154**描述** 155 156设备错误类型,用于设备错误回调[OnError](interface_i_camera_device_callback_v10.md#onerror)。 157 158**起始版本:** 3.2 159 160| 枚举值 | 描述 | 161| -------- | -------- | 162| FATAL_ERROR | 严重错误,需要关闭Camera设备。 | 163| REQUEST_TIMEOUT | 请求超时,需要关闭Camera设备。 | 164| DRIVER_ERROR | 驱动程序中发生错误。 | 165| DEVICE_PREEMPT | 设备被抢占。 | 166| DEVICE_DISCONNECT | 设备已断开连接。 | 167| DCAMERA_ERROR_BEGIN | 分布式像机错误开始的标识。 | 168| DCAMERA_ERROR_DEVICE_IN_USE | 分布式像机设备忙。 | 169| DCAMERA_ERROR_NO_PERMISSION | 没有访问分布式摄像机设备的权限。 | 170 171 172### FlashlightStatus 173 174``` 175enum FlashlightStatus 176``` 177 178**描述** 179 180闪光灯状态。 181 182**起始版本:** 3.2 183 184| 枚举值 | 描述 | 185| -------- | -------- | 186| FLASHLIGHT_OFF | 闪光灯关闭。 | 187| FLASHLIGHT_ON | 闪光灯开启。 | 188| FLASHLIGHT_UNAVAILABLE | 闪光灯当前不可用。 | 189 190 191### OperationMode 192 193``` 194enum OperationMode 195``` 196 197**描述** 198 199流的使用模式。 200 201**起始版本:** 3.2 202 203| 枚举值 | 描述 | 204| -------- | -------- | 205| NORMAL | 普通模式。 | 206 207 208### ResultCallbackMode 209 210``` 211enum ResultCallbackMode 212``` 213 214**描述** 215 216metadata的上报模式。 217 218**起始版本:** 3.2 219 220| 枚举值 | 描述 | 221| -------- | -------- | 222| PER_FRAME | 逐帧上报。 | 223| ON_CHANGED | 设备状态变化时上报。 | 224 225 226### StreamError 227 228``` 229enum StreamError 230``` 231 232**描述** 233 234流错误类型,用于流错误类型[CaptureErrorInfo](_capture_error_info_v10.md)。 235 236**起始版本:** 3.2 237 238| 枚举值 | 描述 | 239| -------- | -------- | 240| UNKNOWN_ERROR | 流未知错误。 | 241| BUFFER_LOST | 丢包。 | 242 243 244### StreamIntent 245 246``` 247enum StreamIntent 248``` 249 250**描述** 251 252流的类型。 253 254**起始版本:** 3.2 255 256| 枚举值 | 描述 | 257| -------- | -------- | 258| PREVIEW | 流数据用于显示,即预览流。 | 259| VIDEO | 流数据用于编码生成录像,即录像流。 | 260| STILL_CAPTURE | 流数据用于编码生成照片,即拍照流。 | 261| POST_VIEW | 流数据用于保存缩略图。 | 262| ANALYZE | 流数据用于图像分析。 | 263| CUSTOM | 自定义类型。 | 264 265 266### StreamSupportType 267 268``` 269enum StreamSupportType 270``` 271 272**描述** 273 274对动态配置流的支持类型,使用场景参考[IsStreamsSupported](interface_i_stream_operator_v10.md#isstreamssupported)。 275 276**起始版本:** 3.2 277 278| 枚举值 | 描述 | 279| -------- | -------- | 280| DYNAMIC_SUPPORTED | 支持动态配置流,对应的流参数直接生效。 | 281| RE_CONFIGURED_REQUIRED | 不支持动态配置流,对应的参数需要停止流然后重新配置流才能生效。 | 282| NOT_SUPPORTED | 不支持对应的流参数配置。 | 283