Transitioning from IC Imaging Control 3.5 tisgrabbery

This section contains information about the IC Imaging Control 4 C library from the perspective of a user of the IC Imaging Control 3.x tisgrabber DLL.

Differences between IC Imaging Control 3.x tisgrabber and IC Imaging Control 4

The tisgrabber library was a C wrapper around the C++ core library tisudshl. As such, it never had full feature parity with the C++ or .NET libraries.

In contrast, the IC Imaging Control 4 C Library is the core library of IC Imaging Control 4, giving it the same capabilities as its C++, .NET and Python counterparts.

The IC Imaging Control 4 C Library is available for both Windows and multiple Linux platforms.

While tisgrabber supported DirectShow devices, the IC Imaging Control 4 C Library uses the machine vision standard GenTL as its driver interface. This allows the use of advanced camera features such as asynchronous device events or chunk data.

Transition Hints

Familiar Concepts

Grabber

Like HGRABBER in tisgrabber, the IC4_GRABBER object represents an opened video capture device as well as its possible enabled data stream.

Changed Concepts

Device Enumeration

Instead of providing only a flat list of device names, IC Imaging Control 4 C Library contains a device enumerator object (IC4_DEVICE_ENUM).

The device enumerator allows enumerating video capture devices and exposes device information through IC4_DEVICE_INFO. It also provides information about the system topology, like information about the network adapters or USB controllers GigEVision or USB3 Vision devices are attached to.

Device Properties

The VCDProperty-based accessor functions using strings as property identifiers were replaced with a object-oriented API. Since device drivers describe their property interfaces via GenICam, the new property API can provide a rich set of information about properties, such as descriptions, display names or unit.

Additionally, properties provide a callback mechanism to notify the program when an aspect of the property such as value or availability changes.

Video Formats, Video Norms, Frame Rates

There no longer are API functions for video format or frame rate enumeration. Instead, the image size and frame rate are configured using the Width, Height and AcquisitionFrameRate device Properties.

Sinks

To access image data, one of the Sinks types has to be used. These provide more control about the buffer handling than the IC_SetFrameReadyCallbackEx or IC_SnapImage functions from tisgrabber.

Video Files

Video encoding functionality was detached from the grabber. Instead, create a IC4_VIDEO_WRITER object to save images that were captured using one of the Sinks.

Renamed Concepts

Live Mode

Functions that in tisgrabber related to live mode were renamed to match the GenICam GenTL nomenclature consisting of a two-stage initialization: First, a data stream is established, and then image acquisition is started.