Capturing Images
With unicap, there are two different methods to make image
data available to the application: system buffers and
user buffers.
By using system buffers, the image buffers are
allocated by the lowlevel driver. The application will
register a callback which is called from the capture thread
of the driver every time a new frame of image data is available.
System buffers are the most performant way to access video
data. For devices capable of performing a DMA access to a
system buffer, no video data gets copied by the CPU before
it reaches the application. Note however that some devices (
like the DFG/1394 ) are not capable of a DMA transaction of
a whole image buffer. For such a device, there is no
perfomance gain when using system buffers.
user buffers are allocated and handled by the
application. The application queues the buffers into an
input queue in unicap and synchronously waits for the
buffers to complete. For devices that are not capable of
performing a DMA transaction to a user provided buffer, this
method involves an additional memory copy operation for each
frame which costs a bit CPU performance.