FrameSnapSink

The FrameSnapSink is a sink type used to grab a number frames from the video stream on demand.

This sink is useful in situations where the application only needs access to the image data of some of the images, for example as part of a snapshot operation or at regular intervals. Live video can still be displayed as it is received by the device. If the application needs to process all images, the FrameQueueSink is the preferred option.

A simple example is shown here:

// Create a FrameSnapSink, specify buffer type as RGB32, pre-allocate one buffer on connect
auto pSink = FrameSnapSink::create( MEDIASUBTYPE_RGB32, 1 );
// Use the sink and start grabber
grabber.setSinkType( pSink );
grabber.startLive();
// Snap 1 image with 3 second timeout
auto pBuffer = pSink->snapSingle( 3000 );
// Save image
saveToFileBMP( *pBuffer, "test.bmp" );

The sink is created by calling FrameSnapSink::create, and is passed MEDIASUBTYPE_RGB32 to specify that the sink wants to capture RGB32 color images. The second parameter instructs the sink to pre-allocate image buffers, instead having to create them on demand when snapSingle or snapSequence is called without a destination buffer.

The call to snapSingle blocks until a new image is received from the video capture device, and returns that image in a FrameQueueBuffer.

Information

    Header File: tisudshl.h
    Namespace: DShowLib
    Introduced in version 3.5

Inheritance

    GrabberSinkType
            FrameSnapSink

Methods

Method Description
allocAndQueueBufferCache

This function is used to pre-allocate a number of buffers so that subsequent calls to snapSingle or snapSequence do not have to allocate memory.

create

Creates a new FrameSnapSink.

getOutputFrameType

Retrieves the FrameTypeInfo of the current connection.

snapSequence

This method lets the FrameSnapSink copy the next images to be recevied from the device into a collection of FrameQueueBuffers.

snapSingle

This method lets the FrameSnapSink copy the next image to be recevied from the device into a FrameQueueBuffer.

<< Classes