語言

StreamConfigurationMap.GetOutputStallDuration 方法

定義

多載

名稱 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>的定義<。

Java 文件 android.hardware.camera2.params.StreamConfigurationMap.getOutputStallDuration(java.lang.Class<T>, android.util.Size)。

本頁部分內容為基於 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 。

Java 文件 android.hardware.camera2.params.StreamConfigurationMap.getOutputStallDuration(int, android.util.Size)。

本頁部分內容為基於 Open Source Project 所創建與分享的作品,並依授權條款所描述的使用進行修改。

另請參閱

適用於