專家
經理
定義位置:fuchsia.camera2/manager.fidl
AcknowledgeDeviceEvent
必須在上述任一事件發生後呼叫 AcknowledgeDeviceEvent,之後才會傳送其他事件。
要求
<EMPTY>
ConnectToStream
連線到相機串流:
device_id 是指 OnDeviceAvailable 所宣傳的特定 device_id。
constraints 針對要求的串流含有一組限制。相機管理員會嘗試尋找符合限制條件的串流。如果有多個串流相符,系統會連結其中一個相符的串流。token 是指用於透過串流通訊協定傳送圖片的 Sysmem 緩衝區分配。相機管理員會套用與圖片格式相關的 BufferCollectionContraints,因此用戶端不需要套用任何 ImageFormatConstraint。系統會假設同步處理作業已在 token 上呼叫,然後才將其傳遞至 ConnectToStream。由於 constraints 可能無法指定特定格式,因此回應中會顯示串流圖片的初始格式。除非 stream 已關閉,否則提供回應後,系統會將連線視為成功。
要求
| 名稱 | 類型 | 
|---|---|
device_id | 
            
                int32
             | 
        
constraints | 
            
                StreamConstraints
             | 
        
token | 
            
                fuchsia.sysmem/BufferCollectionToken
             | 
        
stream | 
            
                server_end<Stream>
             | 
        
回應
| 名稱 | 類型 | 
|---|---|
format | 
            
                fuchsia.sysmem/ImageFormat_2
             | 
        
OnDeviceAvailable
有相機可供使用時通知用戶端。當用戶端首次連線至這個通訊協定時,系統會傳送其中幾個事件。device_id 是用來識別相機。在相機的整個生命週期中,device_id 不應變更。當相機管理員通知用戶端目前已知的所有裝置時,last_known_camera 會設為 true。description 會說明相機的屬性。
回應
| 名稱 | 類型 | 
|---|---|
device_id | 
            
                int32
             | 
        
description | 
            
                DeviceInfo
             | 
        
last_known_camera | 
            
                bool
             | 
        
OnDeviceMuteChanged
在攝影機設為靜音或取消靜音時通知用戶端。device_id 是指先前 OnDeviceAvailable 呼叫說明中的 device_id。
回應
| 名稱 | 類型 | 
|---|---|
device_id | 
            
                int32
             | 
        
currently_muted | 
            
                bool
             | 
        
OnDeviceUnavailable
在相機無法使用時通知用戶端。
回應
| 名稱 | 類型 | 
|---|---|
device_id | 
            
                int32
             | 
        
MuteControl
定義位置:fuchsia.camera2/manager.fidl
靜音
關閉攝影機。這與停止或關閉串流無關。在呼叫取消靜音之前,靜音相機不會產生更多圖片。您仍然可以從靜音的攝影機連線至串流,但除非攝影機取消靜音,否則不會產生畫面。device_id 是指先前的 OnDeviceAvailable 呼叫中的 device_id。
要求
| 名稱 | 類型 | 
|---|---|
device_id | 
            
                int32
             | 
        
回應
| 名稱 | 類型 | 
|---|---|
status | 
            
                zx/Status
             | 
        
取消靜音
要求
| 名稱 | 類型 | 
|---|---|
device_id | 
            
                int32
             | 
        
回應
| 名稱 | 類型 | 
|---|---|
status | 
            
                zx/Status
             | 
        
湖水綠
定義位置:fuchsia.camera2/stream.fidl
AcknowledgeFrameError
提供流量控制以接收影格錯誤。請參閱 OnFrameAvailable 註解。
要求
<EMPTY>
GetBuffers
將權杖傳回至緩衝區,用來在串流中輸出影格。符記為 dispensable,表示無須開啟 sysmem 也能完成分配作業。這也表示,傳回權杖的所有 SetConstraints 呼叫都不會與 StreamConfig 中的限制衝突,否則嘗試等待權杖上的緩衝區失敗。
要求
<EMPTY>
回應
| 名稱 | 類型 | 
|---|---|
token | 
            
                fuchsia.sysmem/BufferCollectionToken
             | 
        
GetImageFormats
取得這個串流支援的圖片格式。
要求
<EMPTY>
回應
| 名稱 | 類型 | 
|---|---|
image_formats | 
            
                vector<fuchsia.sysmem/ImageFormat_2>[256]
             | 
        
OnFrameAvailable
在有可用於處理的影格或發生錯誤時,驅動程式庫將訊息傳送至用戶端。收到這則訊息後,用戶端會將該影格視為已鎖定。用戶端必須呼叫 ReleaseFrame 來釋放非錯誤影格的讀取鎖定,否則取用端最終會用盡緩衝區。如果影格發生錯誤,用戶端必須先呼叫 AcknowledgeFrameError,再透過錯誤影格呼叫另一個 OnFrameAvailable。
回應
| 名稱 | 類型 | 
|---|---|
frame | 
            
                FrameAvailableInfo
             | 
        
ReleaseFrame
解鎖指定影格,允許驅動程式庫重複使用記憶體。
要求
| 名稱 | 類型 | 
|---|---|
buffer_id | 
            
                uint32
             | 
        
SetImageFormat
變更訊息串的圖片格式。當用戶端想在串流期間動態變更串流解析度時,就會呼叫此方法。
要求
| 名稱 | 類型 | 
|---|---|
image_format_index | 
            
                uint32
             | 
        
回應
| 名稱 | 類型 | 
|---|---|
s | 
            
                zx/Status
             | 
        
SetRegionOfInterest
資料作業 用戶端會使用這個欄位來提供選擇意願區域的輸入內容。輸入內容是新定界框的 x 和 y 座標。如果串流不支援智慧取景,則會傳回錯誤。
要求
| 名稱 | 類型 | 
|---|---|
x_min | 
            
                float32
             | 
        
y_min | 
            
                float32
             | 
        
x_max | 
            
                float32
             | 
        
y_max | 
            
                float32
             | 
        
回應
| 名稱 | 類型 | 
|---|---|
s | 
            
                zx/Status
             | 
        
開始
控制項作業會啟動影格串流。
要求
<EMPTY>
停止
停止串流影格。
要求
<EMPTY>
結構
FrameAvailableInfo
定義於 fuchsia.camera2/stream.fidl
在有可用於處理的影格或發生錯誤時,驅動程式庫將訊息傳送至用戶端。
| 欄位 | 類型 | 說明 | 預設 | 
|---|---|---|---|
frame_status | 
            
                FrameStatus
             | 
            如果發生錯誤,則為非零。  | 
            無預設 | 
buffer_id | 
            
                uint32
             | 
            緩衝區集合中的緩衝區索引。  | 
            無預設 | 
metadata | 
            
                FrameMetadata
             | 
            無預設 | 
FrameRate
定義位置:fuchsia.camera2/stream.fidl
| 欄位 | 類型 | 說明 | 預設 | 
|---|---|---|---|
frames_per_sec_numerator | 
            
                uint32
             | 
            畫面更新率是 frame_per_sec_numerator / frame_per_sec_denominator。  | 
            無預設 | 
frames_per_sec_denominator | 
            
                uint32
             | 
            無預設 | 
表情符號
DeviceType 嚴格
類型:uint32
定義位置:fuchsia.camera2/manager.fidl
| 名稱 | 值 | 說明 | 
|---|---|---|
內建 | 
            1 | 
            |
虛擬 | 
            2 | 
            
FrameStatus strict
類型:uint32
定義於 fuchsia.camera2/stream.fidl
影格已發出訊號時要設定的狀態。
| 名稱 | 值 | 說明 | 
|---|---|---|
確定 | 
            0 | 
            |
ERROR_FRAME | 
            1 | 
            建立影格時發生錯誤。與這則通知對應的資料緩衝區中不會顯示任何資料。  | 
        
ERROR_BUFFER_FULL | 
            2 | 
            資料緩衝區中沒有可用的空間,導致影格遭到捨棄。  | 
        
資料表
DeviceInfo
定義於 fuchsia.camera2/manager.fidl
裝置相關資訊。
| 序數 | 欄位 | 類型 | 說明 | 
|---|---|---|---|
1 | 
            vendor_id | 
            
                uint16
             | 
            來自實體裝置列舉的資訊:  | 
        
2 | 
            vendor_name | 
            
                string[255]
             | 
            |
3 | 
            product_id | 
            
                uint16
             | 
            |
4 | 
            product_name | 
            
                string[255]
             | 
            |
5 | 
            type | 
            
                DeviceType
             | 
            裝置類型相關資訊:  | 
        
FrameMetadata
定義位置:fuchsia.camera2/stream.fidl
| 序數 | 欄位 | 類型 | 說明 | 
|---|---|---|---|
1 | 
            timestamp | 
            
                int64
             | 
            |
2 | 
            image_format_index | 
            
                uint32
             | 
            |image_format_index| 會將索引參照至串流支援的可用格式向量。  | 
        
3 | 
            capture_timestamp | 
            
                int64
             | 
            在用來建構這個影格的緩衝區從 ISP 收到時,系統單聲道時鐘的值。  | 
        
StreamConstraints
定義於 fuchsia.camera2/manager.fidl
要求串流時,系統會將這些限制條件傳送給相機管理員。相機管理員將會使用這些限制來比對適當的串流。
| 序數 | 欄位 | 類型 | 說明 | 
|---|---|---|---|
1 | 
            properties | 
            
                StreamProperties
             | 
            這個表格用於說明串流的屬性。您指定的所有屬性都會視為相符串流的要求。  | 
        
2 | 
            format_index | 
            
                uint32
             | 
            如已指定,系統就會使用這個索引建立串流,做為初始格式索引。 如未指定,系統會使用第一個串流格式。  | 
        
StreamProperties
定義位置:fuchsia.camera2/stream.fidl
| 序數 | 欄位 | 類型 | 說明 | 
|---|---|---|---|
1 | 
            stream_type | 
            
                CameraStreamType
             | 
            這些可能是上述一或多個串流類型  | 
        
節拍
CameraStreamType 嚴格
類型:uint32
定義於 fuchsia.camera2/stream.fidl
相機堆疊提供的各種串流類型。
| 名稱 | 值 | 說明 | 
|---|---|---|
MACHINE_LEARNING | 
            1 | 機器學習要求 FR(Full Resolution) 串流,以及安全性用途的 DS(向下擴充解析度) 串流,提供固定解析度的  | 
        
監控 | 
            2 | 這是安全性視訊串流,可在執行階段支援多種解析度。  | 
        
FULL_RESOLUTION | 
            4 | |
DOWNSCALED_RESOLUTION | 
            8 | 機器學習要求 DS 串流以提供固定解析度的視訊會議  | 
        
VIDEO_CONFERENCE | 
            16 | 這是可用於執行階段的多個解析度的視訊會議串流。  | 
        
EXTENDED_FOV | 
            32 | 視野更廣的串流。  | 
        
場景
| 名稱 | 值 | 類型 | 說明 | 
|---|---|---|---|
| MAX_IMAGE_FORMATS | 
                    256
                 | 
                uint64 | 
            每個串流的圖片格式數量上限。  |