Graph-Building コンポーネント
[このページに関連付けられている機能 DirectShow は、従来の機能です。 MediaPlayer、IMFMediaEngine、および Media Foundation のオーディオ/ビデオ キャプチャに置き換わりました。 これらの機能は、Windows 10とWindows 11用に最適化されています。 新しいコードでは、可能であれば、DirectShow ではなく Media Foundation で MediaPlayer、IMFMediaEngine、Audio/Video Capture を使用することを強くお勧めします。 Microsoft は、従来の API を使用する既存のコードを、可能であれば新しい API を使用するように書き直すよう提案しています。]
DirectShow には、フィルター グラフの作成に使用できるいくつかのコンポーネントが用意されています。 これらには、次のものが含まれます。
- Graph Manager をフィルター処理します。 このオブジェクトは、フィルター グラフを制御します。 IGraphBuilder、IMediaControl、IMediaEventEx インターフェイスなどをサポートしています。 DirectShow アプリケーションはすべて、ある時点でこのオブジェクトを使用しますが、場合によっては、別のオブジェクトによってアプリケーションのフィルター グラフ マネージャーが作成されます。
- グラフ ビルダーをキャプチャします。 このオブジェクトは、フィルター グラフを構築するための追加のメソッドを提供します。 これはもともと、ビデオ キャプチャ (名前) を実行するグラフを構築するために設計されていましたが、他の多くの種類のカスタム フィルター グラフに役立ちます。 ICaptureGraphBuilder2 インターフェイスがサポートされています。
- フィルター マッパー と システム デバイス列挙子。 これらのオブジェクトは、ユーザーのシステムに登録されているフィルター、またはハードウェア デバイスを表すフィルターを検索します。
- DVD Graph Builder。 このオブジェクトは、DVD の再生とナビゲーション用のフィルター グラフを構築します。 IDvdGraphBuilder インターフェイスをサポートしています。
Intelligent Connect
"Intelligent Connect" という用語は、フィルター グラフ のすべてまたは一部を作成するためにフィルター グラフ マネージャーが使用する一連のアルゴリズムを対象とします。 フィルター グラフ マネージャーでグラフを完成させるために追加のフィルターが必要な場合は常に、次の処理がほぼ行われます。
- グラフに現在フィルターがあり、少なくとも 1 つの未接続の入力ピンがある場合、フィルター グラフ マネージャーはそのフィルターの使用を試みます。
- それ以外の場合、Filter Graph Manager はレジストリ内で、接続の正しいメディアの種類を受け入れることができるフィルターを探します。 各フィルターには"Merit" という名前のレジストリ値があります。これは、フィルターがグラフの完成に役立つ可能性が大まかに示されます。 フィルター グラフ マネージャーは、メリット値の順にフィルターを試行します。 ストリームの種類 (オーディオ、ビデオ、MIDI など) ごとに、既定のレンダラーには高いメリットがあります。 デコーダーにも高いメリットがあります。 特殊用途フィルターはメリットが低い。
フィルター グラフ マネージャーが停止した場合は、元に戻り、フィルターの別の組み合わせを試します。 正確な詳細については、 インテリジェント接続に関するトピックを参照してください。
関連トピック