新區段
[與此頁面 相關的功能 DirectShow是舊版功能。 它已被 MediaPlayer、 IMFMediaEngine和 Media Foundation 中的音訊/視訊擷取取代。 這些功能已針對Windows 10和Windows 11進行優化。 Microsoft 強烈建議新程式碼盡可能使用 MediaPlayer、 IMFMediaEngine 和 音訊/視訊擷取 ,而不是 DirectShow。 Microsoft 建議盡可能重寫使用舊版 API 的現有程式碼,以使用新的 API。]
區 段 是一組共用一般開始時間、停止時間和播放速率的媒體範例。 IPin::NewSegment方法會向新區段的開頭髮出訊號。 它提供一種方式,讓來源篩選準則通知下游篩選的時間和速率資訊已變更。 例如,如果來源篩選準則搜尋資料流程中的新點,它會使用新的開始時間呼叫 NewSegment 。
有些下游篩選會在處理樣本時使用區段資訊。 例如,使用框架間壓縮的格式,如果停止時間落在差異框架上,來源篩選準則可能需要在停止時間之後傳送其他樣本。 這可讓解碼器解碼最終的差異框架。 若要判斷正確的最終框架,解碼器會參考區段停止時間。 另一個範例是,音訊轉譯器會使用區段速率以及音訊取樣率來產生正確的音訊輸出。
在推送模型中,來源篩選會起始 NewSegment 呼叫。 在提取模型中,這會由剖析器篩選來完成。 不論是哪一種情況,篩選準則都會在下游輸入針腳上呼叫 NewSegment ,以將呼叫傳播至下一個篩選準則,直到呼叫到達轉譯器為止。 篩選準則必須以其他串流呼叫序列化 NewSegment 呼叫,例如 IMemInputPin::Receive。
資料流程時間會在每個新區段之後重設為零。 區段從零開始之後所傳遞樣本的時間戳記。