[このページに関連付けられている機能 DirectShow は、従来の機能です。 MediaPlayer、IMFMediaEngine、および Media Foundation のオーディオ/ビデオ キャプチャに置き換わりました。 これらの機能は、Windows 10とWindows 11用に最適化されています。 新しいコードでは、可能であれば、DirectShow ではなく Media Foundation で MediaPlayer、IMFMediaEngine、Audio/Video Capture を使用することを強くお勧めします。 Microsoft は、従来の API を使用する既存のコードを、可能であれば新しい API を使用するように書き直すよう提案しています。]
クラスは CBaseFilter 、フィルターを実装するための抽象クラスです。 このクラスを使用してフィルターを実装するには、少なくとも次の手順を実行する必要があります。
- から
CBaseFilter新しいクラスを派生させます。 - フィルターのピンを定義するメンバー変数を含めます。 ピンは CBasePin クラスから継承する必要があります。
- フィルターのピンを取得する純粋仮想メソッド CBaseFilter::GetPin をオーバーライドします。
- 純粋仮想メソッド CBaseFilter::GetPinCount をオーバーライドします。これにより、ピンの数が取得されます。
- メディア サンプルを生成、処理、またはレンダリングするためのメソッドを提供します。
CSource、CBaseRenderer、CTransformFilter など、いくつかの基底クラスが からCBaseFilter派生します。 通常は、直接使用 CBaseFilter するのではなく、これらの特殊なクラスのいずれかを使用してフィルターを実装する方が簡単です。
| 保護されたメンバー変数 | 説明 |
|---|---|
| m_State | フィルターの現在の状態。 |
| m_pClock | フィルターの参照クロックへのポインター。 |
| m_tStart | ストリーム時間 0 に対応する参照時刻。 |
| m_clsid | フィルターのクラス識別子 (CLSID)。 |
| m_pLock | 状態の変更をシリアル化するために使用されるクリティカル セクションへのポインター。 |
| m_pName | フィルター名。 |
| m_pGraph | フィルター グラフ マネージャーへのポインター。 |
| m_pSink | フィルター グラフ マネージャーの IMediaEventSink インターフェイスへのポインター。 |
| m_PinVersion | このフィルターのピンセットの現在のバージョン。 |
| パブリック メソッド | 説明 |
| CBaseFilter | コンストラクター メソッド。 |
| ~ CBaseFilter | デストラクター メソッド。 |
| StreamTime | 現在のストリーム時刻を取得します。 仮想。 |
| IsActive | フィルターが現在アクティブ (実行中または一時停止中) かどうかを判断します。 |
| IsStopped | フィルターが現在停止されているかどうかを判断します。 |
| NotifyEvent | フィルター グラフ マネージャーにイベント通知を送信します。 |
| GetFilterGraph | フィルター グラフ マネージャーへのポインターを取得します。 |
| ReconnectPin | 既存のピン接続を切断し、指定したメディアタイプを使用して同じピンに再接続します。 |
| GetPinVersion | このフィルターのピンセットのバージョン番号を取得します。 仮想。 |
| IncrementPinVersion | ピンのセットのバージョン番号をインクリメントします。 |
| GetSetupData | フィルターの登録データを取得します。 仮想。 |
| 純粋仮想メソッド | 説明 |
| GetPinCount | ピンの数を取得します。 |
| GetPin | ピンを取得します。 |
| IPersist メソッド | 説明 |
| GetClassID | クラス識別子を取得します。 |
| IMediaFilter メソッド | 説明 |
| GetState | フィルターの状態 (実行中、停止、または一時停止) を取得します。 |
| SetSyncSource | フィルターの参照クロックを設定します。 |
| GetSyncSource | フィルターで使用されている参照クロックを取得します。 |
| 停止 | フィルターを停止します。 |
| 一時 停止 | フィルターを一時停止します。 |
| [実行] | フィルタを実行します。 |
| IBaseFilter メソッド | 説明 |
| EnumPins | このフィルターのピンを列挙します。 |
| FindPin | 指定した識別子を持つピンを取得します。 |
| QueryFilterInfo | フィルターに関する情報を取得します。 |
| JoinFilterGraph | フィルターグラフが結合または削除されたことをフィルターに通知します。 |
| QueryVendorInfo | ベンダー情報を含む文字列を取得します。 |
| IAMovieSetup メソッド | 説明 |
| [登録] | レジストリにフィルターを追加します。 |
| Unregister | レジストリからフィルターを削除します。 |
要件
| 要件 | 値 |
|---|---|
| ヘッダー |
|
| ライブラリ |
|