通訊協定
控管
在 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
相機管理員會授予個別或一組相機的存取權
- 要求攝影機清單,以便提供攝影機說明
- 您可以要求系統提供要連線的相機可用的格式清單。
- 您使用 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
|
開始
開始串流影格。
要求
<EMPTY>
停止
停止影格串流。
要求
<EMPTY>
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 |
|
ERROR_FRAME |
1 |
製作影格時發生錯誤。 在與此通知相對應的資料緩衝區中,不會有任何可用的資料。 |
ERROR_BUFFER_FULL |
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 |