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

取得格式

取得這部裝置的可用格式類型 請注意:這些格式會分頁至 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 要求串流介面。

建立訊息串

建立具備指定存取權限的訊息串。這可能不會成功。如果成功,串流將取得指示的權利。 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>

取得裝置

傳回目前連接並列舉的所有視訊裝置清單。DeviceInfo 的 camera_id 欄位是用來在 GetFormats、GetStream 和 GetStreamAndBufferCollection 指定裝置。

要求

<空白>

回應

名稱類型
descriptions vector<DeviceInfo>

取得格式

取得相機的所有可用格式。 系統會從 Get Devices 傳回的 DeviceInfo 取得 camera_id

要求

名稱類型
camera_id uint64
index uint32

回應

名稱類型
formats vector<VideoFormat>
total_format_count uint32

湖水綠

定義位置:fuchsia.camera/camera.fidl

OnFrameAvailable

在有可用於處理的影格或發生錯誤時,驅動程式庫將訊息傳送至用戶端。

回應

名稱類型
frame FrameAvailableEvent

發行框架

解鎖指定影格,允許驅動程式庫重複使用記憶體。

要求

名稱類型
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 無預設

FrameAvailable 事件

定義於 fuchsia.camera/camera.fidl

在有可用於處理的影格或發生錯誤時,驅動程式庫將訊息傳送至用戶端。

欄位類型說明預設
frame_status FrameStatus

如果發生錯誤,則為非零。

無預設
buffer_id uint32

緩衝區集合中的緩衝區索引。

無預設
metadata Metadata 無預設

畫面更新率

定義位置:fuchsia.camera/camera.fidl

欄位類型說明預設
frames_per_sec_numerator uint32

畫面更新率是 frame_per_sec_numerator / frame_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 會對應至從 Get 裝置接收的 DeviceInfo 中所提供的 camera_id。

無預設
format VideoFormat

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

無預設

VideoStreamV2

定義於 fuchsia.camera/manager.fidl

偏好的串流版本。需要定義影片格式 (來自 fuchsia.hardware.camera) 的串流版本。串流會參照攝影機,但可能來自網際網路服務供應商 (ISP) 或其他處理單元的額外硬體和頻寬限制。新的程式碼應依附於此,因為移除依附元件時,另一個版本也會淘汰。

欄位類型說明預設
camera_id uint64

Camera_id 會對應至從 Get 裝置接收的 DeviceInfo 中所提供的 camera_id。

無預設
format VideoFormat

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

無預設

表情符號

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_回應 16 uint32