Fuchsia.camera

添加时间:7

协议

控制

fuchsia.camera/camera.fidl 中定义

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

CreateStream

由客户端发送,用于指明所需的数据流特征。 如果设置格式成功,系统会执行流式传输请求。流令牌用于通过相机管理器对接口进行进一步控制。驱动程序可保证: 1) 如果流令牌收到 PEER_CLOSED 事件,驱动程序将关闭 直播 2) 如果关闭了 Stream 接口,驱动程序将关闭事件对。

请求

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

GetDeviceInfo

请求

<EMPTY>

响应

名称类型
device_info DeviceInfo

GetFormats

获取此设备的可用格式类型 注意:格式分页为 MAX_FORMATS_PER_RESPONSE,多个格式 在收到 total_format_count 之前需要发出 GetFormats

请求

名称类型
index uint32

响应

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

管理员

fuchsia.camera/manager.fidl 中定义

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

  1. 您请求相机列表,系统会提供相机说明
  2. 您请求获取要连接的相机支持的格式列表。
  3. 您可以使用 CreateStream 请求 Stream 界面。

CreateStream

创建具有指定访问权限的俱乐部。此操作可能不会成功。如果成功,该直播将拥有所指明的权限。buffer_info 包含一组要与数据流一起使用的缓冲区。此 API 即将弃用,请改用 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 中指定设备。

请求

<EMPTY>

响应

名称类型
descriptions vector<DeviceInfo>

GetFormats

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

请求

名称类型
camera_id uint64
index uint32

响应

名称类型
formats vector<VideoFormat>
total_format_count uint32

在线播放

fuchsia.camera/camera.fidl 中定义

OnFrameAvailable

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

响应

名称类型
frame FrameAvailableEvent

ReleaseFrame

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

请求

名称类型
buffer_id uint32

开始

开始流式传输帧。

请求

<EMPTY>

停止

停止帧流式传输。

请求

&lt;EMPTY&gt;

结构体

DeviceInfo

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 无默认值

FrameRate

fuchsia.camera/camera.fidl 中定义

字段类型说明默认
frames_per_sec_numerator uint32

帧速率为 frames_per_sec_numerator / frames_per_sec_denominator。

无默认设置
frames_per_sec_denominator uint32 无默认值

元数据

fuchsia.camera/camera.fidl 中定义

字段类型说明默认
timestamp int64 无默认设置
data_size uint32
添加日期:11
无默认设置

VideoFormat

fuchsia.camera/camera.fidl 中定义

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

VideoStream

fuchsia.camera/manager.fidl 中定义

摄像头管理器可以提供的视频流。视频串流会引用 但可能会受到其他硬件和带宽限制 或互联网服务提供商或其他处理单元 此 API 即将弃用 - 请使用 VideoStreamV2(见下文)。

字段类型说明默认
camera_id uint64

camera_id 对应于从 GetDevices 收到的 DeviceInfo 中给出的 camera_id。

无默认设置
format VideoFormat

请求的视频格式。请注意,即使调用 CreateStream,也必须设置此字段才能设置帧速率。调用 CreateStream 时,format.format 应与剩余缓冲区_info.format 匹配。

无默认值

VideoStreamV2

fuchsia.camera/manager.fidl 中定义

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

字段类型说明默认
camera_id uint64

Camera_id 与 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_RESPONSE 16 uint32