[與此頁面相關聯的功能,DirectShow是舊版功能。 它已被 MediaPlayer、imfMediaEngine 取代,並在媒體基金會 音訊/視訊擷取。 這些功能已針對 Windows 10 和 Windows 11 進行優化。 Microsoft強烈建議新程式代碼盡可能在媒體 基礎中使用 MediaPlayer、IMFMediaEngine 和 音訊/視訊擷取,而不是 DirectShow。 Microsoft建議使用舊版 API 的現有程式代碼,盡可能改寫成使用新的 API。]
品質訊息是使用 Quality 結構來定義。 此結構包含下列成員:
- 類型: 由 QualityMessageType 列舉所定義;無論是饑荒,表示篩選收到的數據太少,或洪水,表示篩選收到太多數據。
- 比例:從 1000 的基準 數據速率中要求的調整。 例如,750 表示 75%,1500 表示 150%。
- 延遲: 參考時間,指出最近樣本到達的時間。 如果樣本早到,則值為負值。
- TimeStamp: 最新範例上的時間戳。
例如,假設時間戳為 240 毫秒 (ms) 的範例在數據流時間 280 毫秒到達轉譯器。 轉譯器會建立饑荒類型的品質訊息。 樣本已晚抵達 40 毫秒,因此 延遲 成員為 400000。 (所有參考時間均以 100 奈秒為單位。TimeStamp 成員為 2400000。
針對 比例 成員,轉譯器可能會使用執行中的平均值來計算值。 也許樣本已經準時到達,而這個範例是異常的。 在此情況下,轉譯器可能只要求小型更正。 另一方面,如果樣本持續遲到,轉譯器可能會要求較大的更正。
品質控制是透過 IQualityControl 介面來處理。 它包含兩種方法。
實作 IQualityControl 實作 IQualityControl 的物件會透過其 Notify 方法接收品質訊息。 它可以處理訊息,或將訊息傳遞至另一個物件。 如果應用程式呼叫物件的 SetSink 方法,對象應該將品質控制委派給指定的品質管理員。