解碼器的需求
[與此頁面相關的功能 DirectShow是舊版功能。 它已被 MediaPlayer、 IMFMediaEngine和 Media Foundation 中的音訊/視訊擷取取代。 這些功能已針對Windows 10和Windows 11進行優化。 Microsoft 強烈建議新程式碼盡可能使用 MediaPlayer、 IMFMediaEngine 和 音訊/視訊擷取 ,而不是 DirectShow。 Microsoft 建議使用舊版 API 的現有程式碼盡可能重寫為使用新的 API。
將範例傳遞至 VMR 的解碼器必須觀察下列規則:
- 每個視訊畫面都應該有一個傳遞至 VMR 的子畫面。 這兩個畫面應該具有相同的時間戳記。
- 如果子圖形尚未變更,請使用 IMemAllocator::GetBuffer 方法中的 AM_GBF_NOTASYNCPOINT 旗標,強制配置器傳回緩衝區,其中包含傳遞至 VMR 的最後一個畫面格。 只要將新的時間戳記放在範例上,再將其傳遞至 VMR 即可。 如果子圖片是空白的,您仍應該提供它。 VMR 會偵測空的畫面,而不會與視訊混合。 此測試是由 VGA 晶片執行,且不會影響播放效能。
- 除了即時串流之外,所有範例都必須附加有效的開始和停止時間戳記。 (DVD 不是即時串流。)
- 媒體範例時間戳記必須是連續的
- 解碼器必須將其識別為能夠供圖形產生器使用的 VMR。
- 子圖形資料流程現在應該包含內嵌的個別圖元 Alpha 值。 ARGB4444 介面類別型非常適合子圖形。
- 請勿假設子圖片的步幅與表面寬度相同。 這不一定是 VMR 的情況。
相關主題