FrameNotificationSink
デバイスドライバの取得した画像データに直接アクセスを行うsinkタイプです。SDKへのバッファを行わないため、シンプルで高速なアクセスが行えます。
外部のライブライへ画像を引き渡す場合に便利に使用できます。
class listener : public FrameNotificationSinkListener
{
public:
virtual void sinkConnected( const FrameTypeInfo& frameType ) override {}
virtual void sinkDisconnected() override
virtual void frameReceived( IFrame& frame ) override
{
// 画像フレームへの操作
}
};
listener listener_instance;
tFrameNotificationSinkPtr pSink = FrameNotificationSink::create( listener_instance );
grabbber.setSinkType( pSink );
Sink作成関数createクラスライブラリリファレンス>クラス>FrameNotificationSink>FrameNotificationSink::Create Methodには、FrameNotificationSinkListenerクラスライブラリリファレンス>クラス>FrameNotificationSinkListenerから派生したクラスのインスタンスが渡され ます。デバイスから取得した画像フレームが有効になると、frameReceivedクラスライブラリリファレンス>クラス>FrameNotificationSinkListener>FrameNotificationSinkListener::frameReceivedがコールされます。
このSinkではドライバへの直接アクセスを提供しているため、バッファがありません。frameReceivedクラスライブラリリファレンス>クラス>FrameNotificationSinkListener>FrameNotificationSinkListener::frameReceived関数内の処理が素早く完了 する必要があります。システムの負荷が高い場合やコールバック関数内の処理がフレーム間隔時間に対して長くかかる場合にはフレームドロップが発生します。
インフォメーション
ヘッダファイル: tisudshl.h
ネームスペース: DShowLib
ICImagingControl3.5より実装
継承
GrabberSinkTypeクラスライブラリリファレンス>クラス>GrabberSinkType
FrameNotificationSink
メソッド
メソッド | 説明 |
---|---|
createクラスライブラリリファレンス>クラス>FrameNotificationSink>FrameNotificationSink::Create Method | 新しいFrameNotificationSinkを作成します。 |
getOutputFrameTypeクラスライブラリリファレンス>クラス>FrameNotificationSink>FrameNotificationSink::getOutputFrameType Method | 現在接続されているFrameTypeInfoクラスライブラリリファレンス>クラス>FrameTypeInfoを取得します。 |
isConnectedクラスライブラリリファレンス>クラス>FrameNotificationSink>FrameNotificationSink::isConnected Method | Sinkが現在接続されているかどうかを返します。 |