FrameHandlerSink
イメージストリームからのフレームを取り込む(コピーする)ためのSinkTypeです。以前のFrameGrabberSinkの代わりとなるもので、MemBufferCollectionクラスライブラリリファレンス>クラス>MemBufferCollectionを保持し、画像データをバッファにコピーする役割を持つIFrameFilterクラスライブラリリファレンス>クラス>IFrameFilterを指定できるようになります。IFrameFilterの実装はデータのコピー中にユーザー定義の変換処理を行うことを可能にし、さらに不要なフレームを除去することもできるようになります。
いずれのフレームフィルタも登録されない場合、フレームはMemBufferCollectionにそのままコピーされます。
フレームはMemBufferCollection内のバッファに順番にコピーされていきます。最後のバッファにフレームがコピーされると、次のフレームはまた最初のバッファにコピーされ、その後同じように続きます。
FrameHandlerSinkはsnap modeもしくはgrab modeのどちらかで動作することが可能です。
そのモードはsetSnapModeクラスライブラリリファレンス>クラス>FrameHandlerSink::>FrameHandlerSink::setSnapMode Methodをコールすることで切り替えが可能です。grab modeではGrabber::startLiveクラスライブラリリファレンス>クラス>Grabber>Grabber::startLive MethodがコールされるとすぐにフレームがMemBufferCollectionに継続的にコピーされていきます。Grabber::stopLiveクラスライブラリリファレンス>クラス>Grabber>Grabber::topLive Method へのコールがこのコピー処理を終了させます。
一方snap modeでは FrameHandlerSink::snapImagesクラスライブラリリファレンス>クラス>FrameHandlerSink::>FrameHandlerSink::snapImages Method もしくは FrameHandlerSink::snapImagesAsyncクラスライブラリリファレンス>クラス>FrameHandlerSink::>FrameHandlerSink::snapImagesAsync Method へのコールによってMemBufferCollectionに指定されたフレーム数がコピーされることになります。
FrameHandlerSink::snapImagesをコールする前にGrabber::startLiveをコールする必要があります。
インフォメーション
ヘッダファイル: tisudshl.h
ネームスペース: DShowLib
IC Imaging Control 3.0より導入
継承
GrabberSinkTypeクラスライブラリリファレンス>クラス>GrabberSinkType
FrameHandlerSink
メソッド
構造体
構造体 | 説明 |
---|---|
tCreateDataクラスライブラリリファレンス>クラス>FrameHandlerSink::>FrameHandlerSink::tCreateData Structure | FrameHandlerSinkクラスライブラリリファレンス>クラス>FrameHandlerSinkを作成するのに使用されたパラメータを表す構造体です。FrameHandlerSink のtCreateDataへはFrameHandlerSink::getCreateDataクラスライブラリリファレンス>クラス>FrameHandlerSink>FrameHandlerSink::getCreateData Methodをコールし、それをFrameHandlerSink::createクラスライブラリリファレンス>クラス>FrameHandlerSink>FrameHandlerSink::create Methodへ渡して同様のFrameHandlerSinkを作成することでアクセスできます。。 |