次の方法で共有


CBaseStreamControl クラス

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

cbasestreamcontrol クラス階層

このクラスは、入力ピンと出力ピン用の IAMStreamControl インターフェイスを実装します。 フィルターの個々のピンの開始と停止を制御できます。 IAMStreamControl をサポートするピンは、この基本クラスから継承する必要があります。 入力ピンの一般的な宣言を次に示します。

class CMyInputPin : public CBaseInputPin, public CBaseStreamControl

IAMStreamControl を公開するには、必ず NonDelegatingQueryInteface をオーバーライドしてください。 詳細については、「 IUnknown を実装する方法」を参照してください。

パブリック メソッド 説明
CBaseStreamControl コンストラクター メソッド。
~CBaseStreamControl デストラクター メソッド。
CheckStreamState メディア サンプルを配信するか破棄するかを決定します。
フラッシュ ピンがフラッシュを開始または停止したことを基本クラスに通知します。
NotifyFilterState フィルターの状態が変化したときにピンに通知します。
SetFilterGraph ストリーム 制御イベントのイベント シンクを指定します。
SetSyncSource 現在の参照クロックの基底クラスに通知します。
IAMStreamControl メソッド 説明
GetInfo 開始時刻と停止時刻など、現在のストリーム制御設定に関する情報を取得します。
Startat データの配信を開始するタイミングをピンに通知します。
Stopat データの配信を停止するタイミングをピンに通知します。

解説

このクラスでは、グラフの結合や新しい参照クロックの受信など、さまざまなイベントが発生したときに、ピンと所有フィルターがクラスに通知する必要があります。 次のクラス メソッドを呼び出す必要があります。

クラスは CBaseStreamControl 、フィルター グラフの参照クロックを使用して、フィルターを配信するサンプルと破棄するサンプルを決定します。 ピンの IMemInputPin::Receive メソッドで、受信メディア サンプルへのポインターを使用して CBaseStreamControl::CheckStreamState メソッドを呼び出します。 メソッドがSTREAM_FLOWING値を返す場合は、サンプルをダウンストリームに配信します。 それ以外の場合は、破棄します。

要件

要件
ヘッダー
Strmctl.h (Streams.h を含む)
ライブラリ
Strmbase.lib (製品版ビルド);
Strmbasd.lib (デバッグ ビルド)