解碼器的要求
[與此頁面相關聯的功能,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 的情況。
相關主題