共用方式為


CVideoTransformFilter.ShouldSkipFrame 方法

[與此頁面 相關的功能 DirectShow是舊版功能。 它已被 MediaPlayerIMFMediaEngineMedia Foundation 中的音訊/視訊擷取取代。 這些功能已針對Windows 10和Windows 11進行優化。 Microsoft 強烈建議新程式碼盡可能使用 MediaPlayerIMFMediaEngine音訊/視訊擷取 ,而不是 DirectShow。 Microsoft 建議盡可能重寫使用舊版 API 的現有程式碼,以使用新的 API。]

方法 ShouldSkipFrame 會判斷篩選是否應該卸載指定的樣本。

語法

BOOL ShouldSkipFrame(
   IMediaSample *pIn
);

參數

範例 之 IMediaSample 介面的指標。

傳回值

如果篩選應該卸載此範例,則傳回 TRUE ;如果篩選準則應該處理此範例,則傳回 FALSE

備註

如果符合下列條件,這個方法會傳回 TRUE

  • 此範例具有時間戳記。
  • 平均解碼時間至少為畫面持續時間的 25%。
  • 轉譯器目前至少會延遲一個畫面格,如透過品質訊息回報。
  • 略過至下一個主要畫面格並不會讓畫面提早抵達一個以上的畫面。

為了進行這項計算,篩選會在處理資料時記錄下列資訊:

  • 過去 20 個畫面格的平均解碼時間 (m_itrAvgDecode)
  • 上一個主要畫面格之後的畫面數 (m_nFramesSinceKeyFrame)
  • 估計主要畫面格 (m_nKeyFramePeriod) 之間有多少畫面格

篩選準則卸載框架之後,它會繼續卸載畫面,直到到達下一個主要畫面格為止。 如果這個方法傳回 TRUE,它也會將 EC_QUALITY_CHANGE 事件傳送至 Filter Graph Manager。

規格需求

需求
標頭
Vtrans.h (包含 Streams.h)
程式庫
Strmbase.lib (零售組建) ;
Strmbasd.lib (偵錯組建)

另請參閱

CVideoTransformFilter 類別