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,需要發出多個 GetFormats,直到收到 total_format_count

要求

名稱類型
index uint32

回應

名稱類型
formats vector<VideoFormat>
total_format_count uint32
status zx/Status

管理員

定義於 fuchsia.camera/manager.fidl

相機管理員會授予個別或一組相機的存取權

  1. 要求攝影機清單,以便提供攝影機說明
  2. 您可以要求系統提供要連線的相機可用的格式清單。
  3. 您使用 CreateStream 要求 Stream 介面。

CreateStream

建立具有指定存取權的訊息串。這項操作可能無法成功。如果直播成功,聊天室就會標明權限。 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、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

開始

開始串流影格。

要求

&lt;EMPTY&gt;

停止

停止影格串流。

要求

&lt;EMPTY&gt;

STRUCTS

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

相機管理員可提供的串流。影片串流會參照攝影機,但可能會受到 ISP 或其他處理單元的額外硬體和頻寬限制。這項政策已淘汰,請改用 VideoStreamV2 (下方)。

欄位類型說明預設
camera_id uint64

camera_id 會對應至從 GetDevices 收到的 DeviceInfo 中所提供的 camera_id。

無預設
format VideoFormat

要求的影片格式。請注意,即使在呼叫 CreateStream 時,也必須使用這個欄位來設定影格速率。呼叫 CreateStream 時,format.format 應與 buffer_info.format 相符。

無預設

VideoStreamV2

定義於 fuchsia.camera/manager.fidl

串流的偏好版本。採用 VideoFormat 定義的串流版本 fuchsia.hardware.camera.串流參照了攝影機,但可能含有額外 網際網路服務供應商或其他處理單元的硬體和頻寬限制。 新程式碼應依附此版本,因為在移除依附元件時,其他版本將會淘汰。

欄位類型說明預設
camera_id uint64

camera_id 與 DeviceInfo 中指定的 camera_id 對應 接收來自 GetDevice 的通訊內容。

無預設
format VideoFormat

要求的影片格式。請注意,您必須填寫此欄位,才能設定 即使呼叫 CreateStream 也不例外呼叫 CreateStream 時,format.format 應與 buffer_info.format 相符。

無預設

ENUMS

FrameStatus strict

類型: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