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