StreamConfigurationMap.GetOutputStallDuration 方法
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
多載
| 名稱 | Description |
|---|---|
| GetOutputStallDuration(Class, Size) |
取得該職業/體型組合的停滯時間(以奈秒計)。 |
| GetOutputStallDuration(Int32, Size) |
取得格式/尺寸組合的失速時間(以奈秒計)。 |
GetOutputStallDuration(Class, Size)
取得該職業/體型組合的停滯時間(以奈秒計)。
[Android.Runtime.Register("getOutputStallDuration", "(Ljava/lang/Class;Landroid/util/Size;)J", "")]
[Java.Interop.JavaTypeParameters(new System.String[] { "T" })]
public long GetOutputStallDuration(Java.Lang.Class? klass, Android.Util.Size? size);
[<Android.Runtime.Register("getOutputStallDuration", "(Ljava/lang/Class;Landroid/util/Size;)J", "")>]
[<Java.Interop.JavaTypeParameters(new System.String[] { "T" })>]
member this.GetOutputStallDuration : Java.Lang.Class * Android.Util.Size -> int64
參數
- klass
- Class
一個由 支援 #isOutputSupportedFor(Class) 且陣列非空的類別,回傳為 #getOutputSizes(Class)
- size
- Size
輸出相容的大小
傳回
最小影格持續時間 >= 為0(奈秒計)
- 屬性
備註
取得該職業/體型組合的停滯時間(以奈秒計)。
此假設 被 klass 設定為使用 ImageFormat#PRIVATE。 使用者自訂格式請使用 #getOutputMinFrameDuration(int, Size)。
klass 應該是那些由 返回 #getOutputSizes(Class)非空陣列的 。
size 應該是 由 #getOutputSizes(Class)返回的 。
請參閱#getOutputStallDuration(int, Size)EM>失速持續時間</EM>的定義<。
本頁部分內容為基於 Open Source Project 所創建與分享的作品,並依授權條款所描述的使用進行修改。
適用於
GetOutputStallDuration(Int32, Size)
取得格式/尺寸組合的失速時間(以奈秒計)。
[Android.Runtime.Register("getOutputStallDuration", "(ILandroid/util/Size;)J", "")]
public long GetOutputStallDuration(int format, Android.Util.Size? size);
[<Android.Runtime.Register("getOutputStallDuration", "(ILandroid/util/Size;)J", "")>]
member this.GetOutputStallDuration : int * Android.Util.Size -> int64
參數
- format
- Int32
一種來自 ImageFormat 或的影像格式 PixelFormat
- size
- Size
輸出相容的大小
傳回
失速持續時間 >= 為0,奈秒級
- 屬性
例外狀況
是否formatsize支持或不支持
如果 size 是 null
備註
取得格式/尺寸組合的失速時間(以奈秒計)。
format 應該是 由 #getOutputFormats()返回的 。
size 應該是 由 #getOutputSizes(int)返回的 。
停頓時間是指重複請求且有非零停頓的串流,會比正常最小幀持續時間多加多少時間。
例如,考慮具有以下特徵的 JPEG 擷取:
<ul><li>JPEG 串流在未包含它們的請求中,表現為處理過的 YUV 串流;在直接引用它們的請求中,則作為 JPEG 串流。 這是因為支援 JPEG 串流需要底層 YUV 資料隨時可供 JPEG 編碼器使用,但編碼器只會在實際參考 JPEG 串流的請求中使用(以及影響影格長度)。 <li>JPEG 處理器可與相機流程其他部分同時執行,但一次無法處理超過一張拍攝。 </ul>
換句話說,重複使用YUV請求會讓幀率穩定(假設是30 FPS)。 如果定期提交單一 JPEG 請求,幀率會維持在 30 FPS(只要我們每次都等到前一張 JPEG 回傳)。 如果我們嘗試重複提交 YUV + JPEG 請求,幀率會從 30 FPS 下降。
一般來說,提交一個非 0 停頓時間串流的新請求不會<><>造成幀率下降,除非該串流還有之前請求的緩衝區未完成。
提交重複請求(稱為 S串流)等同於將正常最小幀時長 S設定最小幀時長,加上最大停頓時長 S。
若有或無停頓時長的交錯請求,請求將停滯時間為每個可暫停串流中剩餘時間中的最大值。
這表示熄火請求在失速結束前不會有暴露開始。
這應對應於只有該串流活躍時的停滯持續時間,且所有處理(通常在 android.*.mode)都設為 FAST 或 OFF。 將任一處理模式設為 HIGH_QUALITY 有效狀態,會導致請求中所有串流的停滯時間不確定(忽略一般的停滯計算規則)。
以下格式可能始終有失速時間:<ul><li><ImageFormat#JPEG JPEGli<>ImageFormat#RAW_SENSOR RAW16li>ImageFormat#RAW_PRIVATE RAW_PRIVATE</ul>
以下格式永遠不會有停滯時間:<ul<>liImageFormat#YUV_420_888 YUV_420_888><li>ImageFormat#PRIVATE PRIVATE</ul>
其他所有格式可能有或沒有根據能力允許的失速時間;詳情請參考。CameraCharacteristics#REQUEST_AVAILABLE_CAPABILITIES android.request.availableCapabilities
</p>
關於計算最大幀率(除非卡頓)的更多資訊,請參考 CaptureRequest#SENSOR_FRAME_DURATION android.sensor.frameDuration 。
本頁部分內容為基於 Open Source Project 所創建與分享的作品,並依授權條款所描述的使用進行修改。