iMediaFilter::SetSyncSource 方法 (strmif.h)

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

方法會 SetSyncSource 設定參考時鐘。

語法

HRESULT SetSyncSource(
  [in] IReferenceClock *pClock
);

參數

[in] pClock

時鐘 IReferenceClock 介面的指標,或 Null。 如果此參數為 Null,篩選圖表不會使用參考時鐘,而且所有篩選準則都會儘快執行。

傳回值

如果成功,則傳回S_OK,或指出錯誤原因的 HRESULT 值。

備註

篩選圖形中的所有篩選都會共用相同的參考時鐘,以便保持同步。 資料流程時間是從參考時鐘計算而來。 轉譯器篩選會使用參考時鐘來排程轉譯樣本的時間。 如果沒有參考時鐘,轉譯器篩選會在到達時立即轉譯每個樣本。

這個方法是由所有 DirectShow 篩選實作,也是由 Filter Graph 管理員實作。

篩選實作

當圖表執行時,Filter Graph 管理員會在圖形中的每個篩選上呼叫這個方法,以通知它們圖形參考時鐘。 使用這個方法來儲存 IReferenceClock 指標。 遞增預存指標上的參考計數。 在從圖形中移除篩選之前,Filter Graph Manager 會再次以Null值呼叫SetSyncSource。 釋放儲存的指標,並將其設定為 Null

CBaseFilter類別會實作這個方法;請參閱CBaseFilter::SetSyncSource

請注意,篩選準則無法使用這個方法來選取圖形時鐘。 在篩選中,這個方法的唯一函式是通知時鐘的篩選正在使用圖形。 篩選準則可以藉由公開 IReferenceClock 介面來提供參考時鐘。 如需詳細資訊,請參閱 DirectShow 中的時間和時鐘

應用程式使用

應用程式可以在 Filter Graph 管理員上呼叫 SetSyncSource 來覆寫預設時鐘。 除非您有偏好另一個時鐘的特定原因,否則請勿這麼做。 您也可以使用Null值呼叫SetSyncSource,以設定圖形不要使用任何參考時鐘。 您可以執行此動作,儘快處理範例。 如需詳細資訊,請參閱 設定 Graph 時鐘

應用程式不應該在篩選上呼叫這個方法。

規格需求

   
最低支援的用戶端 Windows 2000 Professional [僅限傳統型應用程式]
最低支援的伺服器 Windows 2000 Server [僅限桌面應用程式]
目標平台 Windows
標頭 strmif.h (包含 Dshow.h)
程式庫 Strmiids.lib

另請參閱

錯誤和成功碼

IFilterGraph::SetDefaultSyncSource

IMediaFilter 介面