[DirectShow このページに関連付けられている機能は、従来の機能です。 MediaPlayer、IMFMediaEngine、および Media Foundation のオーディオ/ビデオキャプチャ に置き換えられました。 これらの機能は、Windows 10 および Windows 11 用に最適化されています。 新しいコードでは、可能な場合は、DirectShowではなく、Media Foundation の MediaPlayer、IMFMediaEngine、および Audio/Video Capture を使用することを強くお勧めします。 従来の API を使用する既存のコードは、可能であれば新しい API を使用するように書き直すよう提案しています。
これは、変換フィルター の作成チュートリアルの手順 2 です。
まず、基底クラスを継承する C++ クラスを宣言します。
class CRleFilter : public CTransformFilter
{
/* Declarations will go here. */
};
各フィルター クラスには、ピン クラスが関連付けられています。 フィルターの特定のニーズによっては、ピン クラスをオーバーライドすることが必要になる場合があります。 CTransformFilterの場合、ピンはほとんどの作業をフィルターに委任するため、ピンをオーバーライドする必要はありません。
フィルターの一意の CLSID を生成する必要があります。 Guidgen または Uuidgen ユーティリティを使用できます。既存の GUID をコピーしないでください。 CLSID を宣言するには、いくつかの方法があります。 次の例では、DEFINE_GUID マクロを使用します。
[RleFilt.h]
// {1915C5C7-02AA-415f-890F-76D94C85AAF1}
DEFINE_GUID(CLSID_RLEFilter,
0x1915c5c7, 0x2aa, 0x415f, 0x89, 0xf, 0x76, 0xd9, 0x4c, 0x85, 0xaa, 0xf1);
[RleFilt.cpp]
#include <initguid.h>
#include "RleFilt.h"
次に、フィルターのコンストラクター メソッドを記述します。
CRleFilter::CRleFilter()
: CTransformFilter(NAME("My RLE Encoder"), 0, CLSID_RLEFilter)
{
/* Initialize any private variables here. */
}
CTransformFilter コンストラクターのパラメーターの 1 つが、先ほど定義した CLSID であることに注意してください。
次へ: 手順 3. メディアタイプネゴシエーションをサポートします。
関連トピック