サンプル グラバ フィルタ
サンプル グラバ フィルタは、サンプルがフィルタ グラフを通過するときにそれを取得する方法を提供する。このフィルタは、1 つの入力ピンと 1 つの出力ピンを持つ変換フィルタである。すべてのサンプルをそのままダウンストリームに渡すので、データ ストリームを変更せずにフィルタ グラフに挿入することができる。これにより、アプリケーションは ISampleGrabber インターフェイスでメソッドを呼び出すことで、フィルタから個々のサンプルを取得できる。
データをレンダリングせずにサンプルを取得する場合は、サンプル グラバ フィルタを Null レンダリング フィルタに接続する。
フィルタ インターフェイス | IBaseFilter、ISampleGrabber |
入力ピン メディア タイプ | 任意のメディア タイプ。 |
入力ピン インターフェイス | IMemInputPin、IPin、IQualityControl |
出力ピン メディア タイプ | 任意のメディア タイプ。入力メディア タイプと同じ。 |
出力ピン インターフェイス | IMediaPosition、IMediaSeeking、IPin、IQualityControl |
フィルタ CLSID | CLSID_SampleGrabber |
プロパティ ページ CLSID | プロパティ ページなし。 |
実行モジュール | Qedit.dll |
メリット | MERIT_DO_NOT_USE |
フィルタ カテゴリ | CLSID_LegacyAmFilterCategory |
注意
このフィルタを使うには、フィルタ グラフに追加した後、任意のメディア タイプで ISampleGrabber::SetMediaType を呼び出す。このメソッドは、フィルタの入力ピンと出力ピンの接続のメディア タイプを指定する。その後、フィルタをグラフ内の他のフィルタに接続する。
ISampleGrabber::SetBufferSamples を値 TRUE で呼び出すと、このフィルタは、受け取った各サンプルを、ダウンストリームに渡す前にバッファする。バッファの現在の内容を取得するには、ISampleGrabber::GetCurrentBuffer メソッドを呼び出す。または、ISampleGrabber::SetCallback を呼び出して、フィルタがサンプルを受け取ったときにコールバック関数を起動させることもできる。
このフィルタは、トップダウン方向 (負の biHeight) やフォーマット タイプ FORMAT_VideoInfo2 のビデオ タイプをサポートしていない。また、サーフェイスのストライドがビデオの幅と一致しないビデオ タイプを拒否する。これは、一部のビデオ タイプの場合、サンプル グラバが Video Mixing Renderer (VMR) に接続しないことを意味する。
参照