Video Mixing Renderer の使い方

機能のパフォーマンスと豊富さの点で、Video Mixing Renderer (VMR) フィルタは、Windows プラットフォームにおけるビデオ レンダリングの次世代を代表するフィルタである。VMR はオーバーレイ ミキサービデオ レンダラに置き換わり、多くの新しいミキシング機能を加える。

当初、VMR は Windows XP プラットフォームでのみ利用可能だった。DirectX 9.0 からは、VMR-9 と呼ばれる VMR の別バージョンが、DirectX でサポートされているすべてのプラットフォームで利用できるようになった。これら 2 つの VMR フィルタの実装と公開するインターフェイスはよく似ている。主な違いは、元の VMR (現在は VMR-7 と呼ばれる) はビデオ ハードウェアを制御するため内部的に DirectDraw 7 を使い、VMR の新しいバージョン (VMR-9 と呼ばれる) は Direct3D 9 を使う点にある。

VMR-9 は独自の CLSID を持ち、独自のインターフェイス、構造体、および列挙型の集合を持つが、DirectDraw 7 と Direct3D 9 間にある基本的な違いのため、これらは VMR-7 で対応するデータ型と必ずしも同じではない。VMR-9 のインターフェイスは、IVMRStreamConfig9 のように、すべて "9" で終わる。VMR-9 の構造体と列挙型には、VMR-7 で使われるデータ型と区別するため、名前にすべて "VMR9" が入っている。

下位互換性を保つため、いずれのシステムでも VMR-9 はデフォルト レンダラではない。VMR-9 を使うには、IFilterGraph::AddFilter メソッドを使ってフィルタ グラフに明示的に VMR-9 を追加し、アップストリーム フィルタに接続する前に設定する必要がある。

ここでは次の内容について説明する。特に指定がない限り、次の内容は VMR-7 と VMR-9 のどちらのフィルタにも適用される。