资料
Image Acquisition Interface for Video4Linux2
Interface: | Video4Linux2 |
Revision: | 13.0.5 |
Date: | 2019-08-09 |
- General
- System Requirements
- Installation
- Features
- Limitations
- Dynamic Controls
- Parameters for info_framegrabber
- Parameters for open_framegrabber
- Parameters for set_framegrabber_param
- Parameters for get_framegrabber_param
- Operator set_framegrabber_lut
- Operator get_framegrabber_lut
- Operator set_framegrabber_callback
- Operator get_framegrabber_callback
- Operator grab_image_start
- Operator grab_image
- Operator grab_image_async
- Operator grab_data
- Operator grab_data_async
- Operator close_framegrabber
- HDevelop Examples
- Usage of 3rd party libraries
- Release Notes
General
This page provides the documentation of the HALCON Video4Linux2 image acquisition interface, which is based on the V4L2 API, a Linux kernel
interface for video capture. V4L2 is the second generation of the
Video4Linux API.
Registered customers can download the
latest revision of this interface from the
MVTec WWW server. For a description of V4L2, please see the
official web page at Video For Linux 2.
System Requirements
- Intel compatible PC with Linux (kernel 2.6.19 or higher) and a working installation of V4L2 with all required kernel modules for the acquisition hardware to be used. The user that will be running HALCON will typically need to be in the video group in order to be able to access the V4L2 devices.
- HALCON image acquisition interface hAcqVideo4Linux2.so or hAcqVideo4Linux2xl.so, respectively. If you have properly installed the interface, the shared objects should reside in lib\$HALCONARCH within the HALCON base directory $HALCONROOT you have chosen during the installation of HALCON.
- The HALCON Video4Linux2 acquisition interface should be able to support any video capture device that provides a V4L2 driver compliant with the V4L2 specification (found at VideoFor Linux 2). However, the V4L2 specification allows a wide range of behaviors, and individual drivers may violate the specification, so some device/driver combinations may fail to work. Currently, the only device that has been tested is the Logitech QuickCam 9000 Pro with version 0.1.0 of the uvcvideo driver.
Installation
Only when installing or updating the interface manually follow these steps:
- Linux: Extract the archive containing the interface files to the HALCON base directory $HALCONROOT.
Features
- Grabbing from multiple cameras. Attention: Due to the bandwidth allocation enforcement strategy (which is a kernel configuration option) of the Linux kernel it might be necessary to connect each camera to its own physical controller, else the grabbing might fail with I/O errors or timeouts. The easiest way to ensure sufficient bandwidth for each camera is to use dedicated USB controllers for each camera, see also the output of lsusb -v for more information about available USB devices.
- Synchronous and asynchronous grabbing.
- Cropping of image parts.
- Software control of a variety of standard and camera-specific parameters.
Limitations
- Currently only 8-16 bits/channel HALCON images can be acquired, even if the device is capable of capturing with higher bit depths.
- Not all V4L2 image formats are supported (see below for a list of supported formats).
- Only some V4L2 image formats can be captured into HALCON images with more than 8 bits/channel.
- External camera triggering is not supported (not part of V4L2).
- Asynchronously aborting a running grab with 'do_abort_grab' is not possible if the device doesn't use the streaming interface, and may not work even if it does depending on the Video4Linux2 device driver used.
Dynamic Controls
In addition to the standard driver features of the USB Video Class driver uvcvideo, the HALCON
Video4Linux2 interface can access additional vendor-specific device
features if these are supported and enabled.
The USB Video Class driver uvcvideo offers access to such additional, vendor-specific device features (like the focus control for the Logitech QuickCam 9000 Pro) using dynamic controls that are configured on a per-device basis after the uvcvideo driver has been loaded. The configuration can be done with the program uvcdynctrl, which is part of the libwebcam software package. For information on what (if any) dynamic controls are supported by for a specific device and what configuration files are required, please ask the device manufacturer.
The USB Video Class driver uvcvideo offers access to such additional, vendor-specific device features (like the focus control for the Logitech QuickCam 9000 Pro) using dynamic controls that are configured on a per-device basis after the uvcvideo driver has been loaded. The configuration can be done with the program uvcdynctrl, which is part of the libwebcam software package. For information on what (if any) dynamic controls are supported by for a specific device and what configuration files are required, please ask the device manufacturer.
Parameters for info_framegrabber
Parameter | Value List | Type | Kind | Description |
---|---|---|---|---|
'bits_per_channel' | [-1, 8] | integer | pre-defined | Values for bits per channel. |
'camera_type' | [] | Unused. | ||
'color_space' | ['default', 'gray', 'raw', 'rgb'] | string | pre-defined | Values for color space. |
'defaults' | [1, 1, 0, 0, 0, 0, 'progressive', 8, 'default', -1.0, 'false', 'auto', 'default', 0, 0] | mixed | pre-defined | Default values for open_framegrabber. |
'device' | ['device:<device_id> | port:<port_number> | input_name:<input_name>'] | string | dynamic | List of available devices. |
'external_trigger' | [] | Unused. | ||
'field' | [] | Unused. | ||
'general' | [] | string | pre-defined | Information about the HALCON Video4Linux2 interface. |
'generic' | ['', 'capture_format=<format>', 'num_buffers=<buffers>'] | string | pre-defined | Value list for the Generic parameter. |
'horizontal_resolution' | [1, 2, 4] | integer | pre-defined | Value list for horizontal resolution. |
'image_height' | [] | Unsupported query. | ||
'image_width' | [] | Unsupported query. | ||
'info_boards' | ['device:<device_id> | port:<port_number> | input_name:<input_name>'] | string | dynamic | A list of the available devices. |
'parameters' | ['<parameters>'] | string | pre-defined | Pre-defined parameters of the HALCON interface. |
'parameters_readonly' | ['<parameters>'] | string | pre-defined | Pre-defined read-only parameters of the HALCON interface. |
'parameters_writeonly' | ['<parameters>'] | string | pre-defined | Pre-defined write-only parameters of the HALCON interface. |
'port' | [] | Unused. | ||
'revision' | '<revision>' | string | pre-defined | Revision number of the Video4Linux2 interface. |
'start_column' | [] | Unsupported query. | ||
'start_row' | [] | Unsupported query. | ||
'vertical_resolution' | [1, 2, 4] | integer | pre-defined | Value list for vertical resolution. |
Parameters for open_framegrabber
Please note that V4L2 devices are not required to support cropping or scaling, and the interface can only do cropping in software, so the
supported resolutions are device-dependent. Furthermore, some drivers (like
the USB video class driver) will report the size of the currently selected
capture image size as the maximum capture image size, so the desired
resolution should always be specified in absolute terms for consistency.
Parameter | Values | Default | Type | Description |
---|---|---|---|---|
Name | 'Video4Linux2' | string | Name of the HALCON interface. | |
HorizontalResolution | 1, 2, 4, resolution | 1 | integer | Desired horizontal resolution of the camera image:
|
VerticalResolution | 1, 2, 4, resolution | 1 | integer | Desired vertical resolution of the camera image:
|
ImageWidth | 0, <width> | 0 | integer | Width of the desired image part ('0' stands for the complete image). |
ImageHeight | 0, <height> | 0 | integer | Height of the desired image part ('0' stands for the complete image). |
StartRow | 0, <row> | 0 | integer | Row coordinate of the upper left pixel within the desired image part. |
StartColumn | 0, <column> | 0 | integer | Column coordinate of the upper left pixel within the desired image part. |
Field | --- | Ignored. | ||
BitsPerChannel | 8 | 8 | integer | Number of bits per channel of the resulting HALCON image. In case of -1 the current bit depth of the camera is used. By specifying a value greater than 8 the grabbed images are delivered as uint2 images. |
ColorSpace | 'default', 'gray', 'raw', 'rgb' | 'default' | string | Specify the desired color space and thus the number of image channels of the resulting HALCON image. In case of 'default' the color space which is supported by the device will be used. |
Generic | '', 'capture_format=<format>', 'num_buffers=<buffers>', -1 | -1 | mixed | With the generic parameter some important values can be set before the camera is initialized. Note that the parameter names including the values
must be strings.
|
ExternalTrigger | --- | Ignored. | ||
CameraType | --- | Ignored. | ||
Device | 'default', '<device_id>' | 'default' | string | To open a specific camera the device name as shown in info_framegrabber(...'info_boards', ...) has to be set. Video4Linux2 devices are named 'video' followed by a number (e.g. 'video0'). Using 'default' here will select the first usable Video4Linux2 capture device found on the system. |
Port | --- | Ignored. | ||
LineIn | --- | Ignored. |
Parameters for set_framegrabber_param
In general, the HALCON Video4Linux2 interface provides three types of parameters:
The following standard controls/parameters are provided for the Logitech QuickCam 9000 Pro USB camera by the uvcvideo driver directly.
In addition to the standard parameters, the uvcvideo driver for the Logitech QuickCam 9000 Pro can also provide a number of vendor-specific device parameters using the dynamic control feature. Please refer to the dynamic controls section for details.
- Parameters of the interface itself
- Device-specific parameters provided by the uvcvideo driver
- Vendor-specific device parameters using the dynamic control features
The following standard controls/parameters are provided for the Logitech QuickCam 9000 Pro USB camera by the uvcvideo driver directly.
In addition to the standard parameters, the uvcvideo driver for the Logitech QuickCam 9000 Pro can also provide a number of vendor-specific device parameters using the dynamic control feature. Please refer to the dynamic controls section for details.
Parameter | Values | Default | Type | Description |
---|---|---|---|---|
Backlight Compensation | 0, 1 | integer | Standard Device Parameter Adjusts the backlight compensation in the camera. The value 0 disables backlight compensation. | |
'Brightness' | 0 ... 255 | 128 | integer | Standard Device Parameter The brightness value of the image. |
'capture_format' | '<format>' | string | Interface Parameter The V4L2 image format the acquisition device should use to capture images, see also the generic parameter capture_format. | |
'Contrast' | 0 ... 255 | integer | Standard Device Parameter Contrast value of the image. | |
Disable video processing | 'false', 'true' | string | Dynamic Device Parameter This parameter should always be 'false', because HALCON can not handle the resulting video format. | |
'do_abort_grab' | --- | Interface Parameter Aborts the current image acquisition and unlocks parameters, which are locked according to the status of the transport layer. | ||
Exposure (Absolute) | 1 ... 10000 | integer | Standard Device Parameter Absolute exposure value. | |
Exposure, Auto | 'Aperture Priority Mode', 'Auto Mode', 'Manual Mode', 'Shutter Priority Mode' | string | Standard Device Parameter A special auto exposure mode. Note: Only the modes 'Manual Mode' and 'Aperture Priority Mode' are supported by the Logitech Quickcam 9000 Pro. | |
Exposure, Auto Priority | 'false', 'true' | string | Standard Device Parameter Enables/Disables the auto priority mode. | |
'Focus' | 0 ... 255 | integer | Dynamic Device Parameter Sets the focal point of the camera to the specified position. | |
'frame_interval' | <seconds> | integer, float | Interface Parameter Interval (in seconds) between capturing two successive images. Only intervals that the device driver supports can be specified. | |
'Gain' | 0 ... 255 | integer | Standard Device Parameter Gain control value of the camera. | |
'grab_timeout' | <milliseconds> | 5000 | integer | Desired timeout (milliseconds) for aborting a pending grab. If -1 is specified, the timeout is set to INFINITE. |
LED1 Frequency | 0 ... 255 | integer | Dynamic Device Parameter Frequency of LED1. | |
LED1 Mode | 0 ... 132 | integer | Dynamic Device Parameter Mode of LED1. The following modes are available:
|
|
'num_buffers' | <buffers> | integer | Interface Parameter The number of buffers the interface should use for image acquisition. A device driver may decide to use more buffers than requested, so this is the minimum number of buffers to use. The value must be at least one, with the maximum number dependent on the device driver and the available system memory. | |
Power Line Frequency | 'Disable', '50 HZ', '60 HZ' | string | Standard Device Parameter Power line frequency. | |
Raw bits per pixel | 0, 1 | integer | Dynamic Device Parameter Specifies how many raw bits per pixel should be used. This value is only relevant if 'Disable video processing' is set to 'true'. | |
'Saturation' | 0 ... 255 | integer | Standard Device Parameter Image color saturation. | |
'Sharpness' | 0 ... 255 | integer | Standard Device Parameter Adjusts the sharpness filters in a camera. The minimum value disables the filters, higher values give a sharper picture. | |
'start_async_after_grab_async' | 'disable', 'enable' | 'enable' | string | By default a new asynchronous grab command is automatically given to the acquisition device at the end of grab_image_async. If the parameter 'start_async_after_grab_async' is set to 'disable', this new grab command is omitted. |
'timestamp_timebase' | 'auto', 'monotonic', 'realtime' | 'auto' | string | Interface Parameter When using the streaming interface, the Video4Linux2 driver records the
time the image was acquired with every buffer. This timestamp can be based
on either CLOCK_REALTIME or CLOCK_MONOTONIC. The timestamp is used by the
interface to determine if an image is too old, so the interface must know
the timebase used. The default setting of 'auto' tells the interface to determine the timebase used automatically. For Linux kernels prior to 3.9, this involves some guesswork, as older Linux kernels did not report the timebase used. If the interface guesses wrong, the correct timebase can be specified by setting the parameter to 'monotonic' or 'realtime', depending on which timebase (CLOCK_MONOTONIC or CLOCK_REALTIME) is actually used. |
'volatile' | 'disable', 'enable' | 'disable' | string | Interface Parameter Raw and grayscale only. In the volatile mode the image buffers are used
directly to store HALCON images. This is the fastest mode avoiding to copy
raw images in memory. However, be aware that older images are overwritten
again and again as a side-effect. Thus, you can only process one image
while you grab another image. Older images are invalid! Please note that the HDevelop Image Acquisition Assistant offers only the 'enable' value, if the current capture format allows volatile mode. So after changing these parameters, the refresh button has to be used to get the new status of the values for volatile. Default: 'disable'. |
White Balance Temperature | 0 ... 10000 | integer | Standard Device Parameter White balance settings as a color temperature in Kelvin. A driver should have a minimum of 2800 (incandescent) to 6500 (daylight). | |
White Balance Temperature, Auto | 'false', 'true' | string | Standard Device Parameter When activated, keeps adjusting the white balance temperature. |
Parameters for get_framegrabber_param
There may exist additional read-only parameters with the following postfixes:
- '_description': These parameters provide the tool-tip of the corresponding parameter as a string.
- '_range': These parameters provide the minimum, maximum, step width, and default values for the corresponding integer or float parameter as a tuple with 4 elements, e.g., get_framegrabber_param(.., 'Shutter_range', ..) will return the output tuple [min, max, step, default].
- '_values': These parameters provide the valid value list for the corresponding parameter as a tuple, e.g., get_framegrabber_param(.., 'volatile_values', ..) will return the output tuple ['enable', 'disable'].
All these postfixed parameter names are not returned when calling info_framegrabber(.., 'parameters', ..) and are used to enable the easy parameterization via a generic graphical user interface, particularly the HDevelop Image Acquisition Assistant.
Parameter | Values | Default | Type | Kind | Description |
---|---|---|---|---|---|
'available_param_descriptions' | <descriptions> | string | dynamic | A list containing additional information about all parameters. The order of the entries is equal to the order of the parameter names returned by 'available_param_names'. | |
'available_param_names' | ['<parameters>'] | string | dynamic | The list contains the names of all available parameters. | |
Backlight Compensation | 0, 1 | integer | dynamic | Standard Device Parameter Adjusts the backlight compensation in the camera. The value 0 disables backlight compensation. | |
'bits_per_channel' | -1, 8 | 8 | integer | pre-defined | Number of bits per channel of the resulting HALCON image. In case of -1 the current bit depth of the camera is used. By specifying a value greater than 8 the grabbed images are delivered as uint2 images. |
'Brightness' | 0 ... 255 | 128 | integer | dynamic | Standard Device Parameter The brightness value of the image. |
'camera_type' | '<default>' | 'auto' | string | pre-defined | The value is not used, so a default value is returned. |
'capture_format' | '<format>' | string | dynamic | Interface Parameter The V4L2 image format the acquisition device should use to capture images, see also the generic parameter capture_format. | |
'color_space' | 'gray', 'raw', 'rgb' | 'default' | string | pre-defined | Desired color space and thus the number of image channels of the resulting HALCON image. |
'Contrast' | 0 ... 255 | integer | dynamic | Standard Device Parameter Contrast value of the image. | |
'device' | '<device_id>' | 'default' | string | dynamic | Current device ID. |
Disable video processing | 'false', 'true' | string | dynamic | Dynamic Device Parameter This parameter should always be 'false', because HALCON can not handle the resulting video format. | |
Exposure (Absolute) | 1 ... 10000 | integer | dynamic | Standard Device Parameter Absolute exposure value. | |
Exposure, Auto | 'Aperture Priority Mode', 'Auto Mode', 'Manual Mode', 'Shutter Priority Mode' | string | dynamic | Standard Device Parameter A special auto exposure mode. Note: Only the modes 'Manual Mode' and 'Aperture Priority Mode' are supported by the Logitech Quickcam 9000 Pro. | |
Exposure, Auto Priority | 'false', 'true' | string | dynamic | Standard Device Parameter Enables/Disables the auto priority mode. | |
'external_trigger' | '<default>' | 'false' | string | pre-defined | The value is not used, so a default value is returned. |
'field' | '<default>' | 'progressive' | string | pre-defined | The value is not used, so a default value is returned. |
'Focus' | 0 ... 255 | integer | dynamic | Dynamic Device Parameter Sets the focal point of the camera to the specified position. | |
'frame_interval' | <seconds> | integer, float | dynamic | Interface Parameter Interval (in seconds) between capturing two successive images. Only intervals that the device driver supports can be specified. | |
'Gain' | 0 ... 255 | integer | dynamic | Standard Device Parameter Gain control value of the camera. | |
'generic' | '', 'capture_format=<format>', 'num_buffers=<buffers>', -1 | -1 | mixed | pre-defined | Values of the Generic parameter. |
'grab_timeout' | <milliseconds> | 5000 | integer | pre-defined | Current grab timeout in milliseconds. |
'horizontal_resolution' | 1, 2, 4, resolution | 1 | integer | pre-defined | Current value of horizontal resolution. |
'image_height' | <height> | 0 | integer | pre-defined | Height of the desired image part ('0' stands for the complete image). |
'image_width' | <width> | 0 | integer | pre-defined | Width of the desired image part ('0' stands for the complete image). |
LED1 Frequency | 0 ... 255 | integer | dynamic | Dynamic Device Parameter Frequency of LED1. | |
LED1 Mode | 0 ... 132 | integer | dynamic | Dynamic Device Parameter Mode of LED1. The following modes are available:
|
|
'line_in' | <default> | 0 | integer | pre-defined | The value is not used, so a default value is returned. |
'max_height' | <height> | integer | dynamic | Maximum image height which is supported by the device. | |
'max_width' | <width> | integer | dynamic | Maximum image width which is supported by the device. | |
'name' | 'Video4Linux2' | string | pre-defined | Name of the HALCON interface. | |
'num_buffers' | <buffers> | integer | Interface Parameter The number of buffers the interface should use for image acquisition. A device driver may decide to use more buffers than requested, so this is the minimum number of buffers to use. The value must be at least one, with the maximum number dependent on the device driver and the available system memory. | ||
'port' | <default> | 0 | integer | pre-defined | The value is not used, so a default value is returned. |
Power Line Frequency | 'Disable', '50 HZ', '60 HZ' | string | dynamic | Standard Device Parameter Power line frequency. | |
Raw bits per pixel | 0, 1 | integer | dynamic | Dynamic Device Parameter Specifies how many raw bits per pixel should be used. This value is only relevant if 'Disable video processing' is set to 'true'. | |
'revision' | '<revision>' | string | pre-defined | Revision number of the Video4Linux2 interface. | |
'Saturation' | 0 ... 255 | integer | dynamic | Standard Device Parameter Image color saturation. | |
'Sharpness' | 0 ... 255 | integer | dynamic | Standard Device Parameter Adjusts the sharpness filters in a camera. The minimum value disables the filters, higher values give a sharper picture. | |
'start_async_after_grab_async' | 'disable', 'enable' | 'enable' | string | pre-defined | Status of 'start_async_after_grab_async'. |
'start_column' | <column> | 0 | integer | pre-defined | Returns the current start column of the HALCON image. |
'start_row' | <row> | 0 | integer | pre-defined | Returns the current start row of the HALCON image. |
'timestamp_timebase' | 'auto', 'monotonic', 'realtime' | 'auto' | string | Interface Parameter When using the streaming interface, the Video4Linux2 driver records the
time the image was acquired with every buffer. This timestamp can be based
on either CLOCK_REALTIME or CLOCK_MONOTONIC. The timestamp is used by the
interface to determine if an image is too old, so the interface must know
the timebase used. The default setting of 'auto' tells the interface to determine the timebase used automatically. For Linux kernels prior to 3.9, this involves some guesswork, as older Linux kernels did not report the timebase used. If the interface guesses wrong, the correct timebase can be specified by setting the parameter to 'monotonic' or 'realtime', depending on which timebase (CLOCK_MONOTONIC or CLOCK_REALTIME) is actually used. |
|
'vertical_resolution' | 1, 2, 4, resolution | 1 | integer | pre-defined | Current value of vertical resolution. |
'volatile' | 'disable', 'enable' | 'disable' | string | pre-defined | Interface Parameter Raw and grayscale only. In the volatile mode the image buffers are used
directly to store HALCON images. This is the fastest mode avoiding to copy
raw images in memory. However, be aware that older images are overwritten
again and again as a side-effect. Thus, you can only process one image
while you grab another image. Older images are invalid! Please note that the HDevelop Image Acquisition Assistant offers only the 'enable' value, if the current capture format allows volatile mode. So after changing these parameters, the refresh button has to be used to get the new status of the values for volatile. Default: 'disable'. |
White Balance Temperature | <Kelvin> | integer | dynamic | Standard Device Parameter White balance settings as a color temperature in Kelvin. A driver should have a minimum of 2800 (incandescent) to 6500 (daylight). | |
White Balance Temperature, Auto | 'false', 'true' | string | dynamic | Standard Device Parameter When activated, keeps adjusting the white balance temperature. |
Operator set_framegrabber_lut
Not supported by this interface.
Operator get_framegrabber_lut
Not supported by this interface.
Operator set_framegrabber_callback
Not supported by this interface.
Operator get_framegrabber_callback
Not supported by this interface.
Operator grab_image_start
Starts a new asynchronous grab. See also grab_image_start.
Operator grab_image
grab_image starts a new synchronous grab. See also grab_image. Note that
the interface converts the image from the device to the desired image format
specified by the parameters 'image_width', 'image_height', 'start_row',
'start_column', 'bits_per_channel', and 'color_space'.
Operator grab_image_async
grab_image_async returns an image and starts the next asynchronous grab. See also grab_image_async.
Note that
the interface converts the image from the device to the desired image format
specified by the parameters 'image_width', 'image_height', 'start_row',
'start_column', 'bits_per_channel', and 'color_space'.
Operator grab_data
Not supported by this interface.
Operator grab_data_async
Not supported by this interface.
Operator close_framegrabber
This operator closes the device. See also close_framegrabber.
HDevelop Examples
For this interface there are the following examples available:
- video4linux2_2cameras.hdev - Example for grabbing images with concurrent grabbing from two connected cameras.
- video4linux2.hdev - Benchmark
- video4linux2_parameters.hdev - Lists all parameters of a device.
- video4linux2_simple.hdev - A simple example to show the usage of the interface.
Usage of 3rd party libraries
This interface depends on the following 3rd party libraries. See the file third_party_video4linux2.txt
in the HALCON base directory for copyright and license information.
- Small JPEG Decoder - used with some modifications
The corresponding sources can be downloaded from the MVTec WWW server.
Release Notes
- Revision 13.0.5 (Aug 9, 2019):
- Some parameters had missing access specifiers (read write, read only, write only). This problem has been fixed.
- Section Third party has been added to this document.
- The file third_party_video4linux2.txt has been added to the distribution package of this interface.
- Revision 13.0.4 (Jul 30, 2018):
- Add support for the pixel formats 'RG10', 'GB10', 'BG10', 'RG12', 'BA12', 'GB12', 'BG12', 'RG16', 'GR16', and 'GB16'
- Correctly handle a maxDelay parameter of -1 in grab_image_async and grab_image_start for very long intervals between images (> 12 days). Note that as a result, a maxDelay of exactly 1073741824ms will be treated like -1, i.e. no timeout.
- When calling open_framegrabber with Device 'default', there was a leak of file descriptors to /sys/class/video4linux. This problem has been fixed.
- Revision 13.0.3 (Nov 28, 2017):
- The technical dependency from the HALCON Library has been removed.
- Revision 13.0.2 (Dec 15, 2016):
- Fixed possible crash if V4L2 driver supplied more buffers than requested.
- Revision 13.0.1 (Oct 28, 2016):
- HALCON 13 version of the interface.
- Added parameter 'num_buffers' to set the number of image buffers to use.
- Fixed YUYV and UYUV capture formats not working on x86 and x86_64 machines.
- Revision 6.3 (Nov 4, 2015):
- Added parameter 'timestamp_timebase'.
- Fixed potential problem with incorrect timeout calculation.
- Added support for the 'Y10 ' and 'Y12 ' pixel formats.
- Added (limited) support for capturing more than 8 bits/channel.
- Added support for open_framegrabber's BitsPerChannel parameter set to -1.
- Revision 6.2 (May 6, 2015):
- Fixed bug in conversion of big- and little-endian RGB555 and RGB565 pixel formats.
- Revision 6.1 (Feb 23, 2015):
- Fixed bug in handling of various RGB pixel formats.
- Revision 6.0 (Oct 31, 2014):
- HALCON 12 version of the interface.
- Revision 5.4 (Aug 27, 2014):
- Added support for the 'RGGB' format.
- The interface will no longer assume the 'default' device is video0; instead it will use the first video capture device found.
- If the colorspace is set to 'default', the value of the colorspace parameter is updated to what is actually used internally.
- Fixed bug that could lead to spurious timeouts in rare cases when calling grab_image_async with MaxDelay of -1
- Revision 5.3 (Jul 29, 2014):
- Removed debug messages which were unintentionally logged to stderr.
- Revision 5.2 (Jun 25, 2014):
- Fixed interface not handling ENOTTY return value correctly for various ioctls.
- Fixed bug in set_framegrabber_param when trying to set a parameter without specifying a value.
- Fixed bug in grab_image timeing out incorrectly.
- Revision 5.1 (Nov 27, 2013):
- Fixed incorrect calculation of image parameters if the top left corner of Video4Linux2's bounds_rect did not start at (0, 0).
- Fixed endless loop during open_framegrabber if the VIDIOC_QUERYCTRL ioctl doesn't return any results.
- Revision 5.0 (May 15, 2012):
- HALCON 11 version of the interface (included in HALCON 11 DVD).
- Revision 4.0 (Apr 14, 2011):
- First official release.