Camera(V1_0)

概述

Camera模块接口定义。

Camera模块涉及相机设备的操作、流的操作、离线流的操作和各种回调等。

起始版本: 3.2

汇总

文件

名称 描述
ICameraDevice.idl Camera设备操作接口。
ICameraDeviceCallback.idl Camera设备的回调接口,主要包含Camera设备发生错误时和上报metadata的回调函数。
ICameraHost.idl Camera服务的管理类,对上层提供HDI接口。
ICameraHostCallback.idl ICameraHost的回调接口,提供Camera设备和闪关灯状态变化的回调函数,回调函数由调用者实现。
IOfflineStreamOperator.idl 离线流的操作接口。
IStreamOperator.idl 流的操作接口。
IStreamOperatorCallback.idl IStreamOperator相关的回调,这些回调均由调用者实现。
Types.idl Camera模块HDI接口使用的数据类型。

名称 描述
interface  ICameraDevice 定义Camera设备基本的操作。
interface  ICameraDeviceCallback 定义Camera设备回调操作。
interface  ICameraHost 定义Camera设备功能操作。
interface  ICameraHostCallback 定义Camera设备功能回调操作。
interface  IOfflineStreamOperator 定义Camera设备离线流操作。
interface  IStreamOperator 定义Camera设备流操作。
interface  IStreamOperatorCallback 定义Camera设备流回调操作。
struct  StreamInfo 流信息,用于创建流时传入相关的配置参数。
struct  StreamAttribute 流的属性。
struct  CaptureInfo 捕获请求的相关信息。
struct  CaptureEndedInfo 捕获结束相关信息,用于捕获结束回调OnCaptureEnded
struct  CaptureErrorInfo 流错误信息,用于回调OnCaptureError

枚举

名称 描述
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接口的返回值。
ResultCallbackMode { PER_FRAME = 0, ON_CHANGED = 1 } metadata的上报模式。
OperationMode { NORMAL = 0 } 流的使用模式。
StreamIntent { PREVIEW = 0, VIDEO = 1, STILL_CAPTURE = 2, POST_VIEW = 3,   ANALYZE = 4, CUSTOM = 5 } 流的类型。
EncodeType { ENCODE_TYPE_NULL = 0, ENCODE_TYPE_H264 = 1, ENCODE_TYPE_H265 = 2, ENCODE_TYPE_JPEG = 3 } 流数据的编码类型。
StreamSupportType { DYNAMIC_SUPPORTED = 0, RE_CONFIGURED_REQUIRED = 1, NOT_SUPPORTED = 2 } 对动态配置流的支持类型,使用场景参考IsStreamsSupported
CameraStatus { UN_AVAILABLE = 0, AVAILABLE = 1 } Camera设备状态。
FlashlightStatus { FLASHLIGHT_OFF = 0, FLASHLIGHT_ON = 1, FLASHLIGHT_UNAVAILABLE = 2 } 闪光灯状态。
CameraEvent { CAMERA_EVENT_DEVICE_ADD = 0, CAMERA_EVENT_DEVICE_RMV = 1 } Camera事件。
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
StreamError { UNKNOWN_ERROR = 0, BUFFER_LOST = 1 } 流错误类型,用于流错误类型CaptureErrorInfo

枚举类型说明

CameraEvent

enum CameraEvent

描述

Camera事件。

起始版本: 3.2

枚举值 描述
CAMERA_EVENT_DEVICE_ADD Camera设备增加事件。
CAMERA_EVENT_DEVICE_RMV Camera设备删除事件。

CameraStatus

enum CameraStatus

描述

Camera设备状态。

起始版本: 3.2

枚举值 描述
UN_AVAILABLE 设备当前不在位或者不可用。
AVAILABLE 设备当前可用。

CamRetCode

enum CamRetCode

描述

HDI接口的返回值。

起始版本: 3.2

枚举值 描述
NO_ERROR 调用成功。
CAMERA_BUSY 设备当前忙。
INSUFFICIENT_RESOURCES 资源不足。
INVALID_ARGUMENT 参数错误。
METHOD_NOT_SUPPORTED 不支持当前调用方法。
CAMERA_CLOSED Camera设备已经关闭。
DEVICE_ERROR 驱动层发生严重错误。
NO_PERMISSION 无权限访问设备。

EncodeType

enum EncodeType

描述

流数据的编码类型。

起始版本: 3.2

枚举值 描述
ENCODE_TYPE_NULL 未设置编码类型
ENCODE_TYPE_H264 编码类型为H264。
ENCODE_TYPE_H265 编码类型为H265。
ENCODE_TYPE_JPEG 编码类型为JPEG。

ErrorType

enum ErrorType

描述

设备错误类型,用于设备错误回调OnError

起始版本: 3.2

枚举值 描述
FATAL_ERROR 严重错误,需要关闭Camera设备。
REQUEST_TIMEOUT 请求超时,需要关闭Camera设备。
DRIVER_ERROR 驱动程序中发生错误。
DEVICE_PREEMPT 设备被抢占。
DEVICE_DISCONNECT 设备已断开连接。
DCAMERA_ERROR_BEGIN 分布式像机错误开始的标识。
DCAMERA_ERROR_DEVICE_IN_USE 分布式像机设备忙。
DCAMERA_ERROR_NO_PERMISSION 没有访问分布式摄像机设备的权限。

FlashlightStatus

enum FlashlightStatus

描述

闪光灯状态。

起始版本: 3.2

枚举值 描述
FLASHLIGHT_OFF 闪光灯关闭。
FLASHLIGHT_ON 闪光灯开启。
FLASHLIGHT_UNAVAILABLE 闪光灯当前不可用。

OperationMode

enum OperationMode

描述

流的使用模式。

起始版本: 3.2

枚举值 描述
NORMAL 普通模式。

ResultCallbackMode

enum ResultCallbackMode

描述

metadata的上报模式。

起始版本: 3.2

枚举值 描述
PER_FRAME 逐帧上报。
ON_CHANGED 设备状态变化时上报。

StreamError

enum StreamError

描述

流错误类型,用于流错误类型CaptureErrorInfo

起始版本: 3.2

枚举值 描述
UNKNOWN_ERROR 流未知错误。
BUFFER_LOST 丢包。

StreamIntent

enum StreamIntent

描述

流的类型。

起始版本: 3.2

枚举值 描述
PREVIEW 流数据用于显示,即预览流。
VIDEO 流数据用于编码生成录像,即录像流。
STILL_CAPTURE 流数据用于编码生成照片,即拍照流。
POST_VIEW 流数据用于保存缩略图。
ANALYZE 流数据用于图像分析。
CUSTOM 自定义类型。

StreamSupportType

enum StreamSupportType

描述

对动态配置流的支持类型,使用场景参考IsStreamsSupported

起始版本: 3.2

枚举值 描述
DYNAMIC_SUPPORTED 支持动态配置流,对应的流参数直接生效。
RE_CONFIGURED_REQUIRED 不支持动态配置流,对应的参数需要停止流然后重新配置流才能生效。
NOT_SUPPORTED 不支持对应的流参数配置。