CBaseFilter クラス

cbasefilter class hierarchy

この 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 フィルターが使用している参照クロックを取得します。
Stop フィルターを停止します。
[一時停止] フィルターを一時停止します。
[実行] フィルタを実行します。
IBaseFilter メソッド 説明
EnumPins このフィルターのピンを列挙します。
FindPin 指定した識別子を持つピンを取得します。
QueryFilterInfo フィルターに関する情報を取得します。
JoinFilterGraph フィルター グラフが結合または残されたことをフィルターに通知します。
QueryVendorInfo ベンダー情報を含む文字列を取得します。
IAMovieSetup メソッド 説明
[登録] レジストリにフィルターを追加します。
解除 レジストリからフィルターを削除します。

要件

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