IAMStreamControl インターフェイス
IAMStreamControl インターフェイスは、フィルタ上の個々のストリームを制御するメソッドを提供する。いくつかのフィルタ上のピンは、このインターフェイスを公開している。たとえば、AVI Mux フィルタは、その入力ピンでこのインターフェイスをサポートし、オーディオ キャプチャ フィルタと WDM ビデオ キャプチャ フィルタは、それぞれの出力ピンでこのインターフェイスをサポートする。
このインターフェイスによって、アプリケーションは、指定の時間にストリームのオンとオフを切り替えることができる。たとえば、ビデオのプレビュー中にオーディオ ストリームをオフにして音声を消すことができる。キャプチャ アプリケーションの場合は、このインターフェイスを使うことで、キャプチャの正確な開始タイムと終了タイムを指定したり、キャプチャ ストリームとプレビュー ストリームを個別に制御できる。
このインターフェイスを使うには、IAMStreamControl::StartAt メソッドを呼び出してピンがデータ送信をいつ開始するかを指定し、IAMStreamControl::StopAt メソッドを呼び出して、データ送信をいつ終了するかを指定する。その後フィルタ グラフ マネージャで IMediaControl::Run を呼び出し、フィルタ グラフを実行する。すべてのタイムは、グラフの実行開始タイムに相対的である。
このインターフェイスを使う場合は、次の制限事項に注意すること。
- フィルタ グラフに基準クロックがなければならない。
- ハードウェア オーバーレイを伴うキャプチャ カード上のプレビュー ピンは、このインターフェイスをサポートしない。
- ビデオとオーディオをインターリーブ AVI ファイルにキャプチャしている場合、AVI Mux フィルタは両方のストリームを必要とする。一方のストリームを停止すると、フィルタはデータをインターリーブできない。詳細については、「IConfigInterleaving インターフェイス」を参照すること。
アプリケーションによっては、ICaptureGraphBuilder2::ControlStream メソッドの方が便利な場合がある。これは、このメソッドがグラフ レベルでのストリーム制御をサポートするため、各フィルタとピンを列挙する必要がないからである。
フィルタ開発者への注意点 : CBaseStreamControl 基底クラスは、このインターフェイスを実装する。
IAMStreamControl インターフェイスは、IUnknown から継承されるメソッドに加え、以下のメソッドを公開する。
メソッド | 説明 |
StartAt | ストリーミング データ送信の開始タイムをピンに通知する。 |
StopAt | ピンに対して処理とデータ送信の終了タイムを指定する。 |
GetInfo | 現在のストリーミングの設定に関する情報を取得する。 |
参照