Fuchsia.camera

添加数量:7

协议

控制

fuchsia.camera/camera.fidl 中定义

这些是原始接口,用于实现兼容性。这些名称会保留在 camera.h 中的名称中,以方便移植。

创建数据流

由客户端发送,用于指示所需的数据流特征。 如果格式设置成功,系统将遵循视频流请求。数据流令牌用于从相机管理器提供对接口的额外控制。驱动程序保证: 1) 如果流令牌收到 PEER_CLOSED 事件,驱动程序将关闭流。 2) 如果流界面已关闭,驱动程序将关闭事件对。

请求

名称类型
buffer_collection fuchsia.sysmem/BufferCollectionInfo
rate FrameRate
stream server_end<Stream>
stream_token handle<eventpair>

获取设备信息

请求

<空>

回复

名称类型
device_info DeviceInfo

GetFormats

获取此设备的可用格式类型 注意:这些格式会分页到 MAX_FORMATS_PER_RESPONSE,需要发出多个 GetFormat,直到收到 total_format_count

请求

名称类型
index uint32

回复

名称类型
formats vector<VideoFormat>
total_format_count uint32
status zx/Status

经理

fuchsia.camera/manager.fidl 中定义

相机管理器授予对单个或多组相机的访问权限

  1. 您请求摄像头列表,以便获取摄像头说明
  2. 您可以请求要连接的摄像头的可用格式列表。
  3. 您可以使用 CreateStream 请求 Stream 接口。

创建数据流

创建具有指定访问权限的俱乐部。此操作可能不会成功。 如果成功,直播将获得所示的权利。 buffer_info 包含一组要用于数据流的缓冲区。此版本即将弃用,请使用 CreateStreamV2。

请求

名称类型
request VideoStream
buffer_info fuchsia.sysmem/BufferCollectionInfo
stream server_end<Stream>
client_token handle<eventpair>

CreateStreamV2

创建具有指定访问权限的俱乐部。此操作可能不会成功。 如果成功,直播将获得所示的权利。 buffer_info 包含一组要用于数据流的缓冲区。

请求

名称类型
request VideoStreamV2
buffer_info fuchsia.sysmem/BufferCollectionInfo
stream server_end<Stream>
client_token handle<eventpair>

GetDevices

返回当前插入并枚举的所有视频设备的列表。DeviceInfo 的 camera_id 字段用于在 GetFormats、GetStream 和 GetStreamAndBufferCollection 中指定设备。

请求

<空>

回复

名称类型
descriptions vector<DeviceInfo>

GetFormats

获取相机的所有可用格式。 系统会从 GetDevices 返回的 DeviceInfo 中获取 camera_id

请求

名称类型
camera_id uint64
index uint32

回复

名称类型
formats vector<VideoFormat>
total_format_count uint32

水蓝色

fuchsia.camera/camera.fidl 中定义

OnFrameAvailable

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

回复

名称类型
frame FrameAvailableEvent

ReleaseFrame

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

请求

名称类型
buffer_id uint32

开始

开始帧流式传输。

请求

<空>

停止

停止流式传输帧。

请求

<空>

结构

设备信息

fuchsia.camera/camera.fidl 中定义

识别设备的相关信息。

字段类型说明默认
camera_id uint64 无默认值
vendor_id uint16 无默认值
vendor_name string 无默认值
product_id uint16 无默认值
product_name string 无默认值
max_stream_count uint16

设备可以同时支持的流接口数量上限。

无默认值
output_capabilities uint32 无默认值

FrameAvailableEvent 类中的方法

fuchsia.camera/camera.fidl 中定义

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

字段类型说明默认
frame_status FrameStatus

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

无默认值
buffer_id uint32

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

无默认值
metadata Metadata 无默认值

帧速率

fuchsia.camera/camera.fidl 中定义

字段类型说明默认
frames_per_sec_numerator uint32

帧速率为 Frameworks_per_sec_numerator / frames_per_sec_denominator。

无默认值
frames_per_sec_denominator uint32 无默认值

元数据

fuchsia.camera/camera.fidl 中定义

字段类型说明默认
timestamp int64 无默认值
data_size uint32
添加数量:11
无默认值

视频格式

fuchsia.camera/camera.fidl 中定义

字段类型说明默认
format fuchsia.sysmem/ImageFormat 无默认值
rate FrameRate 无默认值

视频流

fuchsia.camera/manager.fidl 中定义

相机管理器可以提供的信息流。视频串流会引用摄像头,但可能受到来自 ISP 或其他处理单元的额外硬件和带宽限制。 此功能将被弃用 - 请使用 VideoStreamV2(见下文)。

字段类型说明默认
camera_id uint64

camera_id 与从 GetDevices 接收的 DeviceInfo 中提供的 camera_id 相对应。

无默认值
format VideoFormat

请求的视频格式。请注意,即使在调用 CreateStream 时,此字段也是设置帧速率所需的字段。调用 CreateStream 时,format.format 应与 buffer_info.format 匹配。

无默认值

视频串流 V2

fuchsia.camera/manager.fidl 中定义

数据流的首选版本。 依赖于来自 fuchsia.hardware.camera 的 VideoFormat 定义的数据流版本。视频流会引用摄像头,但可能受到来自 ISP 或其他处理单元的其他硬件和带宽限制。新代码应依赖此库,因为移除依赖项后,另一个版本将被废弃。

字段类型说明默认
camera_id uint64

camera_id 与从 GetDevices 接收的 DeviceInfo 中提供的 camera_id 相对应。

无默认值
format VideoFormat

请求的视频格式。请注意,即使在调用 CreateStream 时,此字段也是设置帧速率所需的字段。调用 CreateStream 时,format.format 应与 buffer_info.format 匹配。

无默认值

枚举

FrameStatus 严格

类型:uint32

fuchsia.camera/camera.fidl 中定义

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

名称说明
0
1

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

2

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

常量

名称类型说明
CAMERA_OUTPUT_BURST 2 uint32
CAMERA_OUTPUT_DEPTH 16 uint32
CAMERA_OUTPUT_HDR 8 uint32
CAMERA_OUTPUT_STEREO 32 uint32
CAMERA_OUTPUT_STILL_IMAGE 1 uint32
CAMERA_OUTPUT_STREAM 4 uint32
CAMERA_OUTPUT_UNKNOWN 0 uint32

一组粗略的功能。此结构在相机说明中用于帮助过滤掉不具备所需功能的相机。这组声明将为位字段:CameraOutputCapabilities。

MAX_FORMATS_PER_响应 16 uint32