CBaseFilter クラス
CBaseFilter クラスは、フィルタを実装する抽象クラスである。このクラスを使ってフィルタを実装するには、最低限次のステップを実行しなければならない。
- CBaseFilter から新しいクラスを派生させる。
- フィルタのピンを定義するメンバ変数をインクルードする。このピンは CBasePin クラスから与えられなければならない。
- フィルタのピンを取得する純粋仮想メソッド CBaseFilter::GetPin をオーバーライドする。
- ピンの数を取得する純粋仮想メソッド CBaseFilter::GetPinCount をオーバーライドする。
- メディア サンプルの生成、処理、またはレンダリング メソッドを提供する。
CSource、CBaseRenderer、CTransformFilter などのいくつかの基底クラスが CBaseFilter から派生する。通常、CBaseFilter を直接使用するよりも、これらのクラスの 1 つを指定してフィルタを実装する方が簡単である。
要件
ヘッダー: Amfilter.h で宣言し、Streams.h をインクルードする。
ライブラリ: Strmbase.lib (リテール ビルド) または Strmbasd.lib (デバッグ ビルド)。
プロテクト メンバ変数 | |
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 | フィルタを停止する。 |
Pause | フィルタをポーズする。 |
Run | フィルタを実行する。 |
IBaseFilter メソッド | |
EnumPins | フィルタのピンを列挙する。 |
FindPin | 指定した識別子でピンを取得する。 |
QueryFilterInfo | フィルタについての情報を取得する。 |
JoinFilterGraph | フィルタ グラフに参加したこと、またはフィルタ グラフから離れたことをフィルタに通知する。 |
QueryVendorInfo | ベンダー情報を含む文字列を取得する。 |
IAMovieSetup メソッド | |
Register | レジストリにフィルタを追加する。 |
Unregister | レジストリからフィルタを削除する。 |