VMR のフィルタ コンポーネント

VMR はモジュール式設計を採用しているため、アプリケーションは多くの異なるレンダリング シナリオ用に設定できる。設定に応じて、VMR には 2 ~ 5 個のサブコンポーネントが含まれる (さらに入力ピンがある)。

複数のストリームを持つウィンドウ モードの VMR

ミキサー : ミキサーは、複数の入力ストリームが検出されたときに VMR によってロードされる COM オブジェクトである。ミキサーは各入力ストリームに関する情報を収集し、ストリームを正しい Z 順にソートする。ミキサーは、各入力ピンがいつサンプルを受け取るかを判断し、イメージ コンポジタが適切なタイミングで実際のブレンディングを実行するように指示する。また、ミキサーは各出力イメージに適用されるタイム スタンプを計算する。アプリケーションが合成イメージの上に表示するビットマップを提供するとき、ミキサーにより、入力ストリームの Z 順が変更されてもビットマップが上に表示されるように確認する。

イメージ コンポジタ : イメージ コンポジタは、アロケータ プレゼンタにより提供された 1 つの DirectDraw または Direct3D サーフェイスに入力ストリームを実際にブレンドする COM オブジェクトである。VMR は、2-D アルファ ブレンディング エフェクトを行うデフォルトのイメージ コンポジタを備えている。アプリケーションではイメージの一部へのテクスチャ適用、ピクセル単位のアルファ ブレンディング、静止または移動 3-D オブジェクトへのイメージのマッピングなど、他の 2-D および 3-D のエフェクトを可能にするカスタム イメージ コンポジタを提供できる。

アロケータ プレゼンタ : アロケータ プレゼンタは、DirectDraw オブジェクトまたは Direct3D オブジェクトを割り当て、グラフィック カードとの通信を処理する COM オブジェクトである。描画はフリップまたはブリットとして実行できる。DirectDraw オブジェクトまたは Direct3D オブジェクトの作成と制御を行ったり、プレゼンテーション タイムにビデオ ビットにアクセスするため、独自のアロケータ プレゼンタをプラグインできる。

コア同期ユニット : コア同期ユニットは、各フレームが正しい時間に表示されるようにする COM オブジェクトである。フィルタ グラフ マネージャが提供する IReferenceClock インターフェイスを使い、品質管理とフレーム報告機能を実行する。

ウィンドウ マネージャ : ウィンドウ マネージャは、VMR がウィンドウ モードで動作している場合にのみ使われる。ウィンドウ マネージャは静的ライブラリとして実装され、下位互換性のため、DirectShow の古い IVideoWindow インターフェイスと IBasicVideo インターフェイスをサポートしている。