CSource クラス

csource クラス階層

CSource クラス は、ソース フィルターを実装するための基本クラスです。 CSource から派生したフィルター には、CSourceStream クラスから派生した 1 つ以上の出力 ピンが含 まれている。 各出力ピンは、メディア サンプルをダウンストリームにプッシュするワーカー スレッドを作成します。

注意

CSource クラスは、データ フローのプッシュ モデルをサポートするように設計されています。 ファイル リーダー フィルターを作成する場合、このクラスは推奨されません。 ファイル リーダーは 、IAsyncReader インターフェイスを介してプル モデルをサポートする必要があります。 詳細については、「フィルター開発者向けのデータ Flow」を参照してください

保護されたメンバー変数 説明
m _ iPins フィルターのピンの数。
m _ paStreams ピンの配列。
m _ cStateLock フィルター状態を保護するクリティカル セクション オブジェクト。
パブリック メソッド 説明
CSource コンストラクター メソッド。
~CSource デストラクター メソッド。
GetPinCount フィルターのピンの数を取得します。
GetPin ピンを取得します。
pStateLock フィルターのクリティカル セクション オブジェクトへのポインターを取得します。
AddPin 新しい出力ピンをフィルターに追加します。
RemovePin 指定したピンをフィルターから削除します。
FindPinNumber フィルターで指定したピンの数を取得します。
IBaseFilter メソッド 説明
FindPin 指定した識別子を持つピンを取得します。

解説

出力ピンを実装するには、次の手順を実行します。

フィルターを実装するには、次の手順を実行します。

  • CSource からクラス を派生させる
  • コンストラクターで 、CSourceStreamから派生した 1 つ以上の出力ピンを作成します。 ピンは、コンストラクター メソッドのフィルターに自動的に追加され、デストラクター メソッド内で自身を削除します。

複数のスレッド間でフィルター状態を同期するには 、CSource::p StateLock メソッドを呼び出 します。 このメソッドは、フィルター状態クリティカル セクションへのポインターを返します。 CAutoLock クラスを使用して、クリティカル セクションを保持します。 ピンから、次のように、ピンの CBasePin::m _ pFilterメンバー変数から pStateLock にアクセスできます。

CAutoLock lock(m_pFilter->pStateLock());

必要条件

要件
ヘッダー
Source.h (ストリーム.h を含む)
ライブラリ
Strmbase.lib (小売りビルド)
Str str strsd.lib (デバッグ ビルド)

関連項目

ソース フィルターの書き込み