# Camera (V1_2)
## 概述
Camera模块接口定义。Camera模块涉及相机设备的操作、流的操作、离线流的操作和各种回调等。
**起始版本:** 4.1
## 汇总
### 文件
| 名称 | 描述 |
| -------- | -------- |
| [ICameraDevice.idl](_i_camera_device_8idl_v12.md) | Camera设备操作接口。 |
| [ICameraHost.idl](_i_camera_host_8idl_v12.md) | Camera服务的管理类,对上层提供HDI接口。 |
| [ICameraHostCallback.idl](_i_camera_host_callback_8idl_v12.md) | ICameraHost的回调接口,提供Camera设备和闪关灯状态变化的回调函数,回调函数由调用者实现。 |
| [IImageProcessService.idl](_i_image_process_service_8idl_v12.md) | 声明用于图像处理服务的API。 |
| [IStreamOperator.idl](_i_stream_operator_8idl_v12.md) | 流的操作接口。 |
| [IStreamOperatorCallback.idl](_i_stream_operator_callback_8idl_v12.md) | [IStreamOperator](interface_i_stream_operator_v12.md)相关的回调,这些回调均由调用者实现。 |
| [Types.idl](camera_types_8idl_v12.md) | Camera模块HDI接口使用的数据类型。 |
### 类
| 名称 | 描述 |
| -------- | -------- |
| interface [ICameraDevice](interface_i_camera_device_v12.md) | 定义Camera设备基本的操作。 |
| interface [ICameraHost](interface_i_camera_host_v12.md) | 定义Camera设备功能操作。 |
| interface [ICameraHostCallback](interface_i_camera_host_callback_v12.md) | 定义Camera设备功能回调操作。 |
| interface [IImageProcessCallback](interface_i_image_process_callback_v12.md) | 定义声明图像处理回调。 |
| interface [IImageProcessService](interface_i_image_process_service_v12.md) | 声明图像处理进程服务。 |
| interface [IImageProcessSession](interface_i_image_process_session_v12.md) | 图像处理会话进程。 |
| interface [IStreamOperator](interface_i_stream_operator_v12.md) | 定义Camera设备流操作。 |
| interface [IStreamOperatorCallback](interface_i_stream_operator_callback_v12.md) | 定义Camera设备流回调操作。 |
| struct [ImageBufferInfo](_image_buffer_info_v12.md) | 定义 ImageBufferInfo,它由[IImageProcessCallback::OnProcessDone](interface_i_image_process_callback_v12.md#onprocessdone) 使用。 |
| struct [CaptureStartedInfo](_capture_started_info_v12.md) | 定义CaptureStartedInfo,该信息由[IStreamOperatorCallback::OnCaptureStartedV1_2](interface_i_stream_operator_callback_v12.md#oncapturestartedv1_2)使用。 |
### 枚举
| 名称 | 描述 |
| -------- | -------- |
| [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 ,DEVICE_CONFLICT = -8
} | HDI接口的返回值。 |
| [ExtendedStreamInfoType_V1_2](#extendedstreaminfotype_v1_2) { EXTENDED_STREAM_INFO_QUICK_THUMBNAIL = 0 , EXTENDED_STREAM_INFO_SKETCH = 1 } | 扩展流信息的类型。 |
| [OperationMode_V1_2](#operationmode_v1_2) {
NORMAL = 0 , CAPTURE = 1 , VIDEO = 2 , PORTRAIT = 3 ,
NIGHT = 4 , PROFESSIONAL = 5 , SLOW_MOTION = 6 , SCAN_CODE = 7 , CAPTURE_MACRO = 8 , VIDEO_MACRO = 9 , SUPER_STAB = 10
} | 流使用模式。 |
| [DeferredDeliveryImageType](#deferreddeliveryimagetype) { NONE = 0 , STILL_IMAGE = 1 , MOVING_IMAGE = 2 } | 延迟拍照的类型。 |
| [SessionStatus](#sessionstatus) {
SESSION_STATUS_READY = 0 , SESSION_STATUS_READY_SPACE_LIMIT_REACHED = 1 , SESSSON_STATUS_NOT_READY_TEMPORARILY = 2 , SESSION_STATUS_NOT_READY_OVERHEAT = 3 ,
SESSION_STATUS_NOT_READY_PREEMPTED = 4
} | 会话状态的类型。 |
| [ErrorCode](#errorcode) {
TIMEOUT = 0 , ERROR = 1 , BUSY = 3 , HIGH_TEMPERATURE = 4 ,
ABORT = 5
} | 错误代码的类型。 |
| [ExecutionMode](#executionmode) { HIGH_PREFORMANCE = 0 , BALANCED = 1 , LOW_POWER = 2 } | 执行模式的类型。 |
## 枚举类型说明
### CamRetCode
```
enum CamRetCode
```
**描述**
HDI接口的返回值。
**起始版本:** 4.1
| 枚举值 | 描述 |
| -------- | -------- |
| NO_ERROR | 调用成功。 |
| CAMERA_BUSY | 设备当前忙。 |
| INSUFFICIENT_RESOURCES | 资源不足。 |
| INVALID_ARGUMENT | 参数错误。 |
| METHOD_NOT_SUPPORTED | 不支持当前调用方法。 |
| CAMERA_CLOSED | Camera设备已经关闭。 |
| DEVICE_ERROR | 驱动层发生严重错误。 |
| NO_PERMISSION | 无权限访问设备。 |
| DEVICE_CONFLICT | 设备冲突。 |
### DeferredDeliveryImageType
```
enum DeferredDeliveryImageType
```
**描述**
延迟拍照的类型。
**起始版本:** 4.1
| 枚举值 | 描述 |
| -------- | -------- |
| NONE | 不支持延迟拍照。 |
| STILL_IMAGE | 支持静止图像。 |
| MOVING_IMAGE | 支持动态图像。 |
### ErrorCode
```
enum ErrorCode
```
**描述**
错误代码的类型。
**起始版本:** 4.1
| 枚举值 | 描述 |
| -------- | -------- |
| TIMEOUT | 超时。 |
| ERROR | 错误。 |
| BUSY | 忙碌。 |
| HIGH_TEMPERATURE | 高温。 |
| ABORT | 中止。 |
### ExecutionMode
```
enum ExecutionMode
```
**描述**
执行模式的类型。
**起始版本:** 4.1
| 枚举值 | 描述 |
| -------- | -------- |
| HIGH_PREFORMANCE | 高性能模式。 |
| BALANCED | 平衡模式。 |
| LOW_POWER | 低功耗模式。 |
### ExtendedStreamInfoType_V1_2
```
enum ExtendedStreamInfoType_V1_2
```
**描述**
扩展流信息的类型。
**起始版本:** 4.1
| 枚举值 | 描述 |
| -------- | -------- |
| EXTENDED_STREAM_INFO_QUICK_THUMBNAIL | 快速缩略图的扩展流信息。 |
| EXTENDED_STREAM_INFO_SKETCH | sketch的扩展流信息。 |
### OperationMode_V1_2
```
enum OperationMode_V1_2
```
**描述**
流使用模式。
**起始版本:** 4.1
| 枚举值 | 描述 |
| -------- | -------- |
| NORMAL | 普通模式,支持照片和视频场景 |
| CAPTURE | 拍摄模式,专用于照片场景 如果实现了此模式,则不应再实现 NORMAL 模式 |
| VIDEO | 视频模式,专用于视频秒控 如果实现了此模式,则不应再实现 NORMAL 模式 |
| PORTRAIT | 人像模式,专用于人像照片拍摄 |
| NIGHT | 夜间模式,专用于夜间拍摄场景 |
| PROFESSIONAL | 专业模式,专用于专业拍照场景 |
| SLOW_MOTION | 慢动作模式,专用于捕捉慢动作 |
| SCAN_CODE | 扫描模式,专用于扫码 |
| CAPTURE_MACRO | 微距模式,专用于微距拍照 |
| VIDEO_MACRO | 微距模式,专用于微距录像 |
| SUPER_STAB | 超级防抖模式,专用于使用超级防抖模式 |
### SessionStatus
```
enum SessionStatus
```
**描述**
会话状态的类型。
**起始版本:** 4.1
| 枚举值 | 描述 |
| -------- | -------- |
| SESSION_STATUS_READY | 会话已准备就绪。 |
| SESSION_STATUS_READY_SPACE_LIMIT_REACHED | 会话已准备就绪,但已达到存储限制。 |
| SESSSON_STATUS_NOT_READY_TEMPORARILY | 会话暂时未就绪。 |
| SESSION_STATUS_NOT_READY_OVERHEAT | 由于过热,会话未就绪。 |
| SESSION_STATUS_NOT_READY_PREEMPTED | 由于被抢占,会话未就绪。 |