FrameSnapSink
ビデオストリームから不定期にフレームを取得する際に使用するSinkタイプです。
このSinkは、ユーザーが任意のタイミングで、1枚、または複数枚のフレームを取得する際に有用です。ライブ表示はデバイスから取得された映像がそのまま表示されます。
// FrameSnapSinkを、バッファタイプ RGB32、確保領域1バッファで作成します。
auto pSink = FrameSnapSink::create( MEDIASUBTYPE_RGB32, 1 );
// sinkを使用してキャプチャを開始します。
grabber.setSinkType( pSink );
grabber.startLive();
// タイムアウト時間を3秒>snapSingle( 3000 );
// 取得したイメージを保存します。
saveToFileBMP( *pBuffer, "test.bmp" );
ここで、FrameSnapSink::createクラスライブラリリファレンス>クラス>FrameSnapSink>FrameSnapSink::Create MethodをコールすることでSinkを作成しています。1つ目のパラメータによって、RGB32カラー画像のバッファを、2番目のパラメータで事前に確保するバッファ量を指定しています。
snapSingleクラスライブラリリファレンス>クラス>FrameSnapSink>FrameSnapSink::snapSingle Methodのコールで、次に入ってくる画像を待ちます。画像が取得されると、FrameQueueBufferクラスライブラリリファレンス>クラス>FrameQueueBufferに返します。
インフォメーション
ヘッダファイル: tisudshl.h
ネームスペース: DShowLib
ICImagingControl3.5より実装
継承
GrabberSinkTypeクラスライブラリリファレンス>クラス>GrabberSinkType
FrameSnapSink