CBaseFilter クラス

[このページに関連付けられている機能 DirectShow は、従来の機能です。 MediaPlayerIMFMediaEngine、および Media Foundation のオーディオ/ビデオ キャプチャに置き換わりました。 これらの機能は、Windows 10とWindows 11用に最適化されています。 新しいコードでは、可能であれば、DirectShow ではなく Media Foundation で MediaPlayerIMFMediaEngineAudio/Video Capture を使用することを強くお勧めします。 Microsoft は、従来の API を使用する既存のコードを、可能であれば新しい API を使用するように書き直すよう提案しています。]

cbasefilter クラス階層

クラスは CBaseFilter 、フィルターを実装するための抽象クラスです。 このクラスを使用してフィルターを実装するには、少なくとも次の手順を実行する必要があります。

  • から CBaseFilter新しいクラスを派生させます。
  • フィルターのピンを定義するメンバー変数を含めます。 ピンは CBasePin クラスから継承する必要があります。
  • フィルターのピンを取得する純粋仮想メソッド CBaseFilter::GetPin をオーバーライドします。
  • 純粋仮想メソッド CBaseFilter::GetPinCount をオーバーライドします。これにより、ピンの数が取得されます。
  • メディア サンプルを生成、処理、またはレンダリングするためのメソッドを提供します。

CSourceCBaseRendererCTransformFilter など、いくつかの基底クラスが から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 レジストリからフィルターを削除します。

要件

要件
ヘッダー
Amfilter.h (Stream.h を含む)
ライブラリ
Strmbase.lib (小売ビルド);
Strmbasd.lib (デバッグ ビルド)