変換フィルターの記述
[このページに関連付けられている機能 DirectShow は、従来の機能です。 MediaPlayer、IMFMediaEngine、Media Foundation のオーディオ/ビデオ キャプチャに置き換わりました。 これらの機能は、Windows 10とWindows 11用に最適化されています。 新しいコードでは、可能であれば、DirectShow ではなく Media Foundation で MediaPlayer、IMFMediaEngine、Audio/Video Capture を使用することを強くお勧めします。 Microsoft は、レガシ API を使用する既存のコードを、可能であれば新しい API を使用するように書き換えるよう提案しています。]
このセクションでは、1 つの入力ピンと 1 つの出力ピンを持つフィルターとして定義された変換フィルターを記述する方法について説明します。 手順を説明するために、このセクションでは、実行長エンコード (RLE) ビデオを出力する架空の変換フィルターについて説明します。 RLE エンコード アルゴリズム自体は記述せず、DirectShow に固有のタスクのみを記述します。 (DirectShow は、 AVI コンプレッサー フィルターを介して RLE コーデックを既に提供しています。
このセクションでは、DirectShow 基本クラス ライブラリを使用してフィルターを作成することを前提としています。 フィルターは記述せずに記述できますが、基底クラス ライブラリを強くお勧めします。
注意
変換フィルターを作成する前に、DirectX Media Object (DMO) が要件を満たしているかどうかを検討してください。 DMO はフィルターと同じ処理の多くを実行でき、DMO のプログラミング モデルの方が簡単です。 DMO ラッパー フィルターを使用して DirectShow で DMO がホストされますが、DirectShow の外部でも使用できます。 DMO は、エンコーダーとデコーダーに推奨されるソリューションになりました。
ここでは、次のトピックについて説明します。
- 手順 1. 基本クラスを選択する
- 手順 2. フィルター クラスを宣言する
- 手順 3. メディアの種類のネゴシエーションをサポートする
- 手順 4. アロケーターのプロパティを設定する
- 手順 5. イメージを変換する
- 手順 6. COM のサポートを追加する
関連トピック