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より実装

メソッド

メソッド 説明
allocAndQueueBufferCacheクラスライブラリリファレンス>クラス>FrameSnapSink>FrameSnapSink::allocAndQueueBufferCache Method 指定したバッファ数を予め確保します。このバッファは後に、snapSingleクラスライブラリリファレンス>クラス>FrameSnapSink>FrameSnapSink::snapSingle Method, snapSequenceクラスライブラリリファレンス>クラス>FrameSnapSink>FrameSnapSink::snapSequence Methodで使用されます。
createクラスライブラリリファレンス>クラス>FrameSnapSink>FrameSnapSink::Create Method 新しいFrameSnapSinkクラスライブラリリファレンス>クラス>FrameSnapSinkを作成します。
getOutputFrameTypeクラスライブラリリファレンス>クラス>FrameSnapSink>FrameSnapSink::getOutputFrameType Method 現在接続されているFrameTypeInfoクラスライブラリリファレンス>クラス>FrameTypeInfoを取得します。
snapSequenceクラスライブラリリファレンス>クラス>FrameSnapSink>FrameSnapSink::snapSequence Method FrameSnapSinkクラスライブラリリファレンス>クラス>FrameSnapSinkが、デバイスから次から受け取る複数枚の画像をFrameQueueBufferクラスライブラリリファレンス>クラス>FrameQueueBuffer集合体にコピーします。
snapSingleクラスライブラリリファレンス>クラス>FrameSnapSink>FrameSnapSink::snapSingle Method FrameSnapSinkクラスライブラリリファレンス>クラス>FrameSnapSinkが、デバイスから次に受け取る画像をFrameQueueBufferクラスライブラリリファレンス>クラス>FrameQueueBufferにコピーします。