Fuchsia.camera2

添加数量:7

协议

经理

fuchsia.camera2/manager.fidl 中定义

AcknowledgeDeviceEvent

必须在上述任一事件之后调用 AcKnowledgeDeviceEvent,才能发送更多事件。

请求

<EMPTY>

ConnectToStream

连接到相机数据流:device_id 是指 OnDeviceAvailable 通告的特定 device_id。constraints 包含针对所请求数据流的一组限制条件。相机管理器会尝试查找符合约束条件的数据流。如果多个数据流匹配,其中一个匹配的数据流将连接。token 是指将用于使用 Stream 协议传递图片的 Sysmem 缓冲区分配。相机管理器会应用与图片格式相关的 BufferCollectionContraints,因此客户端不需要应用任何 ImageFormatConstraints。同步被传递到 ConnectToStream 之前,假定已在 token 上调用同步。由于 constraints 可能无法指定特定格式,因此响应中会指明数据流中图片的初始格式。获得响应后,除非 stream 关闭,否则连接被视为成功。

请求

名称类型
device_id int32
constraints StreamConstraints
token fuchsia.sysmem/BufferCollectionToken
stream server_end<Stream>

响应

名称类型
format fuchsia.sysmem/ImageFormat_2

OnDeviceAvailable

当摄像头可用时通知客户端。当客户端首次连接到此协议时,系统会发送其中的多个事件。device_id 用于识别相机。device_id 在摄像头的整个生命周期内不应发生变化。当相机管理器已通知客户端它当前知道的所有设备时,last_known_camera 会被设为 true。description 描述镜头的属性。

响应

名称类型
device_id int32
description DeviceInfo
last_known_camera bool

OnDeviceMuteChanged

在摄像头变为静音或取消静音时通知客户端。 device_id 是指上一次 OnDeviceAvailable 调用说明中的 device_id。

响应

名称类型
device_id int32
currently_muted bool

OnDeviceUnavailable

在摄像头不可用时通知客户端。

响应

名称类型
device_id int32

MuteControl

fuchsia.camera2/manager.fidl 中定义

静音

将摄像头静音。这与停止或关闭数据流无关。在调用“取消静音”方法之前,已静音的摄像头不会生成更多图像。您仍然可以从静音的摄像头连接到视频流,但直到摄像头取消静音之前才会生成帧。device_id 是指来自上一次 OnDeviceAvailable 调用的 device_id。

请求

名称类型
device_id int32

响应

名称类型
status zx/Status

取消静音

请求

名称类型
device_id int32

响应

名称类型
status zx/Status

水蓝色

fuchsia.camera2/stream.fidl 中定义

AcknowledgeFrameError

提供用于接收帧错误的流控制。请参阅 OnFrameAvailable 注释。

请求

<EMPTY>

GetBuffers

将令牌返回给用于在视频流中输出帧的缓冲区。该令牌为 dispensable,这意味着无需上交 sysmem 即可完成分配。这也意味着,对返回的令牌的任何 SetConstraints 调用都不能与 StreamConfig 中的约束条件冲突,否则尝试等待令牌上的缓冲区将失败。

请求

<EMPTY>

响应

名称类型
token fuchsia.sysmem/BufferCollectionToken

GetImageFormats

获取此数据流支持的图片格式。

请求

<EMPTY>

响应

名称类型
image_formats vector<fuchsia.sysmem/ImageFormat_2>[256]

OnFrameAvailable

在帧可供处理或发生错误时,由驱动程序发送给客户端。收到此消息后,客户端会将该帧视为已读取。客户端必须调用 ReleaseFrame 以解除非错误帧的读取锁,否则使用方最终会耗尽缓冲区。如果某个帧存在错误,客户端必须先调用 AcVerifiedFrameError,然后才能使用错误帧调用另一个 OnFrameAvailable。

响应

名称类型
frame FrameAvailableInfo

ReleaseFrame

解锁指定帧,允许驱动程序重复使用内存。

请求

名称类型
buffer_id uint32

SetImageFormat

更改视频流的图片格式。如果客户端希望在流式传输期间动态更改视频流的分辨率,将调用此方法。

请求

名称类型
image_format_index uint32

响应

名称类型
s zx/Status

SetRegionOfInterest

数据操作 客户端使用它来为选择感兴趣的区域提供输入。 输入是新边界框的 x 和 y 坐标。对于不支持智能取景功能的视频流,这将返回错误。

请求

名称类型
x_min float32
y_min float32
x_max float32
y_max float32

响应

名称类型
s zx/Status

开始

控制操作:开始帧流式传输。

请求

<EMPTY>

停止

停止流式传输帧。

请求

<EMPTY>

结构

FrameAvailableInfo

fuchsia.camera2/stream.fidl 中定义

在帧可供处理或发生错误时,由驱动程序发送给客户端。

字段类型说明默认
frame_status FrameStatus

如果发生错误,则为非零值。

无默认值
buffer_id uint32

缓冲区集合中缓冲区的索引。

无默认值
metadata FrameMetadata 无默认值

FrameRate

fuchsia.camera2/stream.fidl 中定义

字段类型说明默认
frames_per_sec_numerator uint32

帧速率为 Frameworks_per_sec_numerator / frames_per_sec_denominator。

无默认值
frames_per_sec_denominator uint32 无默认值

枚举

DeviceType 严格

类型:uint32

fuchsia.camera2/manager.fidl 中定义

名称说明
1
2

FrameStatus 严格

类型:uint32

fuchsia.camera2/stream.fidl 中定义

当帧有信号可用时要设置的状态。

名称说明
0
1

生成帧时出错。 与此通知对应的数据缓冲区中不会有任何数据。

2

数据缓冲区空间不足,导致丢帧。

表格

DeviceInfo

fuchsia.camera2/manager.fidl 中定义

识别设备的相关信息。

序数字段类型说明
vendor_id uint16

来自实体设备枚举的信息:

vendor_name string[255]
product_id uint16
product_name string[255]
type DeviceType

设备类型的相关信息:

FrameMetadata

fuchsia.camera2/stream.fidl 中定义

序数字段类型说明
timestamp int64
image_format_index uint32

|image_format_index| 会将索引引用到数据流支持的可用格式的矢量中。

capture_timestamp int64

从 ISP 接收用于构建此帧的缓冲区时系统单调时钟的值。

StreamConstraints

fuchsia.camera2/manager.fidl 中定义

系统会在请求视频流时为相机管理器指定这些约束条件。相机管理器会使用这些约束条件来匹配相应的数据流。

序数字段类型说明
properties StreamProperties

描述数据流属性的表。指定的任何属性都将被视为匹配数据流的要求。

format_index uint32

如果指定,系统将使用此索引作为初始格式索引创建流。如果未指定,系统将使用第一种数据流格式。

StreamProperties

fuchsia.camera2/stream.fidl 中定义

序数字段类型说明
stream_type CameraStreamType

可以是上述一种或多种直播类型

BITS

CameraStreamType 严格

类型:uint32

fuchsia.camera2/stream.fidl 中定义

相机堆栈提供的不同数据流类型。

名称说明
1

适用于安全使用场景的机器学习请求 FR(完整分辨率)数据流以及具有固定分辨率的 DS(向下扩展分辨率)数据流

2

这是可在运行时支持多种分辨率的安全视频流。

4
8

机器学习请求为视频会议提供 DS 视频流,该视频流具有固定分辨率

16

这就是视频会议视频流,它在运行时可支持多种分辨率。

32

视野更宽广的直播。

常量

名称类型说明
MAX_IMAGE_FORMATS 256 uint64

每个视频流的图片格式数量上限。