共用方式為


解碼器的要求

[與此頁面相關聯的功能,DirectShow是舊版功能。 它已被 MediaPlayerIMFMediaEngine和媒體基礎架構(Media Foundation)中的 音訊/視訊擷取取代。 這些功能已針對 Windows 10 和 Windows 11 進行優化。 Microsoft強烈建議新程式代碼盡可能在媒體 基礎中使用 MediaPlayerIMFMediaEngine 音訊/視訊擷取,而不是 DirectShow。 Microsoft建議使用舊版 API 的現有程式代碼,盡可能改寫成使用新的 API。]

將範例傳遞給 VMR 的譯碼器必須遵守下列規則:

  • 每個視訊畫面應有一個子畫面傳送至 VMR。 這兩個框架應該有相同的時間戳。
  • 如果子圖片尚未變更,請使用 IMemAllocator::GetBuffer 方法中的 AM_GBF_NOTASYNCPOINT 旗標,強制配置器傳回緩衝區,其中包含傳遞至 VMR 的最後一個畫面格。 只要在範例上加上新的時間戳,再將其傳遞至 VMR 即可。 如果次圖層為空白,你仍然應該提交這個。 VMR 會偵測空框架,而不會與視訊混合。 此測試是由 VGA 晶片執行,且不會影響播放效能。
  • 除了即時串流之外,所有範例都必須附加有效的開始和停止時間戳。 (DVD 不是實時數據流。
  • 媒體範例時間戳必須是連續的
  • 解碼器必須確保自身具備VMR能力,以便圖形生成器使用。
  • 子圖片流現在應該包含內嵌的每像素 Alpha 值。 ARGB4444表面類型非常適合子圖形。
  • 請勿假設子圖片的步幅與表面寬度相同。 這不一定是 VMR 的情況。

關於 DirectX 影片加速