| Interface: | GStreamer |
| Revision: | 24.11.12 |
| Date: | 2026-04-20 |
#PIPE# videotestsrc ! video/x-raw,format=RGB ! appsinkAll pipeline strings given to the interface must use the appsink plugin at the end of the pipeline. The interface will try to find this element in the pipeline and use it to get the frames from the stream. If the appsink plugin is not found, an error will be raised. If needed, use a color conversion plugin or specify the format for the PAD to use one of the pixel formats supported by the interface.
RemoteFile=%PATH_TO_GENICAM_FILE_OF_THE_DEVICE% SystemFile=%PATH_TO_GENICAM_FILE_OF_THE_SYSTEM_MODULE% InterfaceFile=%PATH_TO_GENICAM_FILE_OF_THE_INTERFACE_MODULE% DeviceFile=%PATH_TO_GENICAM_FILE_OF_THE_LOCAL_DEVICE_MODULE% StreamFile=%PATH_TO_GENICAM_FILE_OF_THE_STREAM_MODULE%The same ini-file format can be reused to force the HALCON acquisition interface to load an alternative XML file for one or more of these entities. This can be useful, e.g., for updates or troubleshooting. The files listed in the ini file will be used for the given entity instead of the original ones. For the entities excluded from the ini file, the GenICam description file will be searched and loaded the usual way. To apply the ini file, pass its full path to open_framegrabber in the 'CameraType' parameter.
RemotePersistence=%PATH_TO_PERSISTENCE_FILE_OF_THE_DEVICE% SystemPersistence=%PATH_TO_PERSISTENCE_FILE_OF_THE_SYSTEM_MODULE% InterfacePersistence=%PATH_TO_PERSISTENCE_FILE_OF_THE_INTERFACE_MODULE% DevicePersistence=%PATH_TO_PERSISTENCE_FILE_OF_THE_LOCAL_DEVICE_MODULE% StreamPersistence=%PATH_TO_PERSISTENCE_FILE_OF_THE_STREAM_MODULE%
Following transformations from the camera color space (see also PFNC) to the interface color space (see also 'color_space' parameter in this document) are supported:
|
||||||||||||||
|
G = (G1 + G2) / 2.
R = Y' + 1.4020 * (Cr- M)
G = Y' - 0.34414 * (Cb- M) -0.71414 * (Cr- M)
B = Y' + 1.7720 * (Cb - M)
Y' = 0.299 * R + 0.587 * G + 0.114 * B
Cb = -0.16874 * R - 0.33126 * G + 0.5 * B + M
Cr = 0.5 * R - 0.41869 * G - 0.08131 * B + M
Y' = 0.299 * R + 0.587 * G + 0.114 * B
M = 128 for 8 bit raw data, and M = 32768 for 16 bit raw data.| Parameter | Value List | Type | Kind | Description |
|---|---|---|---|---|
| 'bits_per_channel' | [-1, 8, 10, 12, 14, 16] | integer | pre-defined | Values for bits per channel. |
| 'camera_type' | ['CAMFILE:', 'ini;xml', '<path>', 'default'] | string | pre-defined | Syntax for connection configuration file and default value. |
| 'color_space' | ['default', 'gray', 'raw', 'rgb', 'rgbx', 'yuv'] | string | pre-defined | Values for color space. |
| 'defaults' | [0, 0, 0, 0, 0, 0, 'progressive', -1, 'default', -1.0, 'false', 'default', '0', 0, 0] | mixed | pre-defined | Default values for open_framegrabber. |
| 'device' | [' | device:<device id> | unique_name:<unique name> | interface:<interface id> | producer:mvtec_gstreamer'] | string | dynamic | List of GStreamer devices discovered in the system with information about their device ID, unique name, user-defined name and interface ID. See the full description in the section about pipeline creation. This call will always return at least one virtual device that uses default pipeline with videotestsrc. |
| 'external_trigger' | [] | Ignored. | ||
| 'field' | [] | Unused. | ||
| 'general' | [] | string | pre-defined | Information about the HALCON GStreamer interface. |
| 'generic' | ['', 'num_buffers=<num>' ] | string | pre-defined | Value list for the Generic parameter. |
| 'horizontal_resolution' | [0, 1] | integer | pre-defined | Value list for horizontal resolution. |
| 'image_height' | [] | Unsupported query. | ||
| 'image_width' | [] | Unsupported query. | ||
| 'info_boards' | [' | device:<device_id> | unique_name:<unique_name> | interface:<interface_id> | producer:mvtec_gstreamer | vendor:<device_vendor> | model:<device_model> | tl_type:<tl_type> | status:<device_status> | suggestion:<generic_param>'] | string | dynamic | List of GStreamer video devices discovered by gst-device-monitor-1.0. This call will always return at least one virtual device that uses default pipeline
with videotestsrc.
|
| '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 GStreamer interface. |
| 'start_column' | [] | Unsupported query. | ||
| 'start_row' | [] | Unsupported query. | ||
| 'vertical_resolution' | [0, 1] | integer | pre-defined | Value list for vertical resolution. |
| Parameter | Values | Default | Type | Description |
|---|---|---|---|---|
| Name | 'GStreamer' | string | Name of the HALCON interface. | |
| HorizontalResolution | 0, 1, resolution | 1 | integer | Set the desired horizontal resolution of the camera image:
|
| VerticalResolution | 0, 1, resolution | 1 | integer | Set the desired vertical resolution of the camera image:
|
| ImageWidth | --- | 0 | Ignored. | |
| ImageHeight | --- | 0 | Ignored. | |
| StartRow | --- | 0 | Ignored. Configure the image size through device parameters. | |
| StartColumn | --- | 0 | Ignored. Configure the image size through device parameters. | |
| Field | --- | Ignored. | ||
| BitsPerChannel | -1, 8, 10, 12, 14, 16 | -1 | integer | Number of bits per channel of the resulting HALCON image. In case of -1 the bit depth of each respective acquired buffer is used. By specifying a value greater than 8 the grabbed images are delivered as uint2 images. |
| ColorSpace | 'default', 'gray', 'raw', 'rgb', 'rgbx', 'yuv' | 'default' | string | Specify the desired color space and thus the number of image channels of the resulting HALCON image. In case of 'default' for Mono pixel formats, ColorSpace is set to 'gray', otherwise to 'rgb' (and for unknown pixel formats to 'raw'). If the input pixel format is a supported 4 channel PFNC pixel format, the parameter 'rgbx' can be used to get all 4 channels. |
| Generic | '', ['num_buffers=<num>' ], -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, e.g., 'num_buffers=5' sets the number of buffers to 5. The following parameters are available:
|
| ExternalTrigger | --- | Ignored. To configure the trigger mode please use set_framegrabber_param with the generic (SFNC) trigger parameters of the camera. | ||
| CameraType | 'default', <ini/xml filename> | 'default' | string | Full path to the configuration file with the specification of alternative GenICam description files to be loaded for the device and GStreamer Producer, see detailed description in the section about pipeline creation. |
| Device | ' | device:<device id> | unique_name:<unique name> | interface:<interface id> | producer:mvtec_gstreamer', '<device id>' | string | To open a camera, the device name as shown in info_framegrabber(...'device'...) or info_framegrabber(...'info_boards'...) can be used. Some of the string entries might be skipped or set as 'default'. To open a specific camera, either device or unique_name has to be set. As a shortcut, only the device ID or user-defined name might be specified or the string 'default' can be used. See full description in the section about pipeline creation. | |
| Port | --- | Unused. | ||
| LineIn | --- | Ignored. |
| Parameter | Values | Default | Type | Description |
|---|---|---|---|---|
| '[Device]DeviceEventsThreadApplyPriority' | --- | integer | Applies the thread priority and scheduling policy (if applicable on given operating system) configured through the '[Device]DeviceEventsThreadPriority'
and '[Device]DeviceEventsThreadSchedulingPolicy' parameters to the event
processing thread.
If the thread is running, the values are directly applied. If the thread is
not running in the moment, the values are stored and will be applied as soon
as the thread is started again.
It is responsibility of the application to ensure that the calling process
has sufficient privileges. The feature is not available for devices not supporting device events or if the event handling was disabled using the 'device_event_handling=0' generic parameter. BEWARE: Setting this parameter can lead to an unusable or poorly performing system, use with care. |
|
| '[Device]DeviceEventsThreadPriority' | <thread_priority> | integer | OS-specific thread priority value to be used for the internal event processing thread. The actual values are directly the priority identifiers
of the operating system, e.g. THREAD_PRIORITY_HIGHEST under Windows
or a real-time priority value under Linux. The actual priority is applied only after executing the '[Device]DeviceEventsThreadApplyPriority' command parameter, possibly together with the '[Device]DeviceEventsThreadSchedulingPolicy' value if applicable on given system. It is the responsibility of the application to ensure that the calling process has sufficient privileges to apply the priority change and that the value written to the parameter is a valid priority identifier. After applying '[Device]DeviceEventsThreadApplyPriority', the application can read back the priority value to verify if it was properly applied. Note that when opening the device, the GStreamer Producer attempts itself to elevate the thread priority to a suitable value. The feature is not available for devices not supporting device events or if the event handling was disabled using the 'device_event_handling=0' generic parameter. BEWARE: Setting this parameter can lead to an unusable or poorly performing system, use with care. |
|
| '[Device]DeviceEventsThreadSchedulingPolicy' | <scheduling_policy> | integer | OS-specific scheduling policy value to be used for the internal event processing thread. The actual values are directly the priority identifiers
of the operating system, e.g. SCHED_FIFO under Linux.
Note that this feature is not available under Windows. The actual scheduling policy is applied only after executing the '[Device]DeviceEventsThreadApplyPriority' command parameter, together with the '[Device]DeviceEventsThreadPriority' value. It is the responsibility of the application to ensure that the calling process has sufficient privileges to apply the scheduling policy and that the value written to the parameter is a valid scheduling policy identifier. After applying '[Device]DeviceEventsThreadApplyPriority', the application can read back the scheduling policy value to verify if it was properly applied. The feature is not available for devices not supporting device events or if the event handling was disabled using the 'device_event_handling=0' generic parameter. BEWARE: Setting this parameter can lead to an unusable or poorly performing system, use with care. |
|
| '[Stream]StreamBufferHandlingMode' | 'OldestFirst', 'OldestFirstOverwrite', 'NewestOnly' | 'OldestFirst' | string | Selects the mode the streaming engine uses to handle newly acquired data, in particular when the camera runs faster than the application processing.
The parameter is writeable only if no acquisition is active.
Supported values are:
|
| '[Stream]StreamThreadApplyPriority' | --- | integer | Applies the thread priority and scheduling policy (if applicable on the given operating system) configured through
'[Stream]StreamThreadPriority' and '[Stream]StreamThreadSchedulingPolicy'
parameters to the stream processing thread.
If the thread is running (acquisition started), the values are directly
applied. If the thread is not running in the moment, the values are
stored and will be applied as soon as the thread is started again.
It is the responsibility of the application to ensure that the calling
process has sufficient privileges. BEWARE: Setting this parameter can lead to an unusable or poorly performing system, use with care. |
|
| '[Stream]StreamThreadPriority' | <thread_priority> | integer | OS-specific thread priority value to be used for the internal stream processing thread. The actual values are directly the priority identifiers
of the operating system, e.g. THREAD_PRIORITY_HIGHEST under Windows
or a real-time priority value under Linux. The actual priority is applied only after executing the '[Stream]StreamThreadApplyPriority' command parameter, possibly together with the '[Stream]StreamThreadSchedulingPolicy' value if applicable on given system. It is the responsibility of the application to ensure that the calling process has sufficient privileges to apply the priority change and that the value written to the parameter is a valid priority identifier. After applying '[Stream]StreamThreadApplyPriority', the application can read back the priority value to verify if it was properly applied. Note that when opening the device, the GStreamer Producer attempts itself to elevate the thread priority to a suitable value. BEWARE: Setting this parameter can lead to an unusable or poorly performing system, use with care. |
|
| '[Stream]StreamThreadSchedulingPolicy' | <scheduling_policy> | integer | OS-specific scheduling policy value to be used for the internal stream processing thread. The actual values are directly the priority identifiers
of the operating system, e.g. SCHED_FIFO under Linux.
Note that this feature is not available under Windows. The actual scheduling policy is applied only after executing the '[Stream]StreamThreadApplyPriority' command parameter, together with the '[Stream]StreamThreadPriority' value. It is the responsibility of the application to ensure that the calling process has sufficient privileges to apply the scheduling policy and that the value written to the parameter is a valid scheduling policy identifier. After applying '[Stream]StreamThreadApplyPriority', the application can read back the scheduling policy value to verify if it was properly applied. BEWARE: Setting this parameter can lead to an unusable or poorly performing system, use with care. |
|
| 'add_objectmodel3d_overlay_attrib' | 'disable', 'enable' | 'disable' | string | This parameter has no effect. |
| 'bits_per_channel' | -1, 8, 10, 12, 14, 16 | integer | Number of bits per channel of the resulting HALCON image. In case of -1 the bit depth of each respective acquired buffer is used. By specifying a value greater than 8 the grabbed images are delivered as uint2 images. | |
| 'buffer_reallocation_mode' | 'only_increase_size', 'follow_payloadsize' | 'only_increase_size' | string | Defines the strategy to follow when reallocating the buffers for a new acquisition. In case of 'only_increase_size', the buffers will be only reallocated when the payload size increases. In case of 'follow_payloadsize', the buffers will be reallocated every time the payload size changes. |
| 'clear_buffer' | 'disable', 'enable' | 'disable' | string | If enabled, each buffer content is cleared before re-queueing (all bytes set to 0xF0 regardless the expected pixel format), so you can see which parts of an image are missing, in case e.g. the transfer of some image packets failed. This parameter adds of course a runtime overhead to write the 0xF0 data every time a buffer is queued. It is mainly useful for debugging in combination with transport layers which do not guarantee the transfer of complete images. Please note, that this parameter does not modify the buffer queue, only the content of a buffer will be set to a defined state. |
| 'color_space' | 'default', 'gray', 'raw', 'rgb', 'rgbx', 'yuv' | string | Specify the desired color space and thus the number of image channels of the resulting HALCON image. In case of 'default' for Mono pixel formats, ColorSpace is set to 'gray', otherwise to 'rgb' (and for unknown pixel formats to 'raw'). If the input pixel format is a supported 4 channel PFNC pixel format, the parameter 'rgbx' can be used to get all 4 channels. | |
| 'confidence_mode' | 'off', 'object_model_3d' | 'off' | string | This parameter has no effect. |
| 'confidence_threshold' | [0.0, 1.0] | 0.5 | float | This parameter has no effect. |
| 'coordinate_transform_mode' | 'none', 'cartesian', 'reference' | 'reference' | string | This parameter has no effect. |
| 'create_objectmodel3d' | 'disable', 'enable' | 'disable' | string | This parameter has no effect. |
| 'delay_after_stop' | <milliseconds> | 0 | integer | The time to wait (in milliseconds) between stopping the acquisition on the device (AcquisitionStop command) and GStreamer Producer. |
| 'do_abort_grab' | --- | Aborts the current image acquisition and unlocks parameters, that might be locked when acquisition is active. See acquisition overview. | ||
| 'do_load_settings' | <input_file> | string | Restores the previously stored settings of the opened device. The parameter 'settings_selector' specifies if the settings of the actual (remote) device, one of the GStreamer Producer modules or the Consumer parameters (internal parameters of GStreamer image acquisition interface) are to be restored. See detailed description in section Parameters - Persisting Device Status. | |
| 'do_write_configuration' | <output_file> | string | Writes a configuration (ini) file and additionally writes GenICam description files and persistence files with the current configuration
of the device into the same directory. The string parameter must be the filename (including full path) of the target ini file. The path must exist prior to writing. The written ini file contains a list of paths to the written description and persistence files. GenICam description files are written for the remote device and each GStreamer Producer module associated with currently opened device. Persistence files are written for the remote device and each GStreamer Producer module as well as for the internal parameters of the GStreamer image acquisition interface. The complete configuration can be loaded using the 'CameraType' parameter of open_framegrabber operator, see detailed description in the section about pipeline creation. The persisted values of the internal parameters override the corresponding parameters passed to 'open_framegrabber' (in particular 'BitsPerChannel' and 'ColorSpace'). Instead of specifying the full name of the output ini file, 'default' or an empty string can be used. In this case the files will be written to a temporary directory (subject to availability of %TEMP%, %TMP%, $TMPDIR, /tmp or %HALCONROOT%) and the filename of the configuration file will be halcon_gentl_config.ini. This default option will also apply when using the Image Acquisition Assistant. See also related sections Selection of GenICam Feature Description File(s) and Parameters – Persisting Device Status. |
|
| 'do_write_settings' | <output_file> | string | Writes the current settings of the opened device to be able to restore the settings later. The parameter 'settings_selector' specifies if the settings of the actual (remote) device, one of the GStreamer Producer modules or the Consumer parameters (internal parameters of GStreamer image acquisition interface) are to be written. See detailed description in section Parameters - Persisting Device Status. | |
| 'DropBuffers' | 0, 1 | 1 | integer | Controls the behavior when the buffer queue is filled in the appsink element. |
| 'event_data' | '<list of genicam_feature/internal_parameter>' | string | Configures GenICam features and/or internal parameters (free mix) to be added to the message queue specified by 'event_message_queue'
for feature change notifications for feature selected in 'event_selector'. Features can be added individually or as a tuple - each 'set' operation for this parameter appends to the current list of event_data. To remove individual features, prepend them with a '~'. To clear all currently added features, call set_framegrabber_param(..., 'event_data', []). Read more about the usage of this mechanism at Event Message Queues. |
|
| 'event_message_queue' | 0, '<queue_handle>' | handle | Selects a message queue to which the acquisition interface should send feature change notifications (see further details in
Event Message Queues). The corresponding feature/parameter needs to be previously selected by 'event_selector'. Setting 0 (NULL) unregisters the previously selected message queue from notifications about given feature/parameter. |
|
| 'event_notification_helper' | 'disable', 'enable' | 'disable' | string | Controls if the acquisition interface should attempt to automatically (un)set 'EventNotification' during set_framegrabber_callback if the callback is being (un)registered on an SFNC-compliant event. Note that this will only work if the callback is being registered on the actual event feature (e.g. 'EventExposureEnd'), not on one of the event data features (e.g. 'EventExposureEndTimestamp'). For further information on events, see Event Data. |
| 'event_selector' | '<genicam_feature/internal_parameter>' | 'grab_timeout' | string | Selects a GenICam feature or internal parameter for which feature change notifications through message queues
should be configured. They are sent to the message queue specified by 'event_message_queue', together with additional data configured in 'event_data'. Read more about the usage of this mechanism at Event Message Queues (which is another alternative to notifications through callbacks, Feature Change Notifications). |
| 'grab_timeout' | <milliseconds> | 5000 | integer | Desired timeout (milliseconds) for aborting a pending grab. If -1 is specified, the timeout is set to INFINITE. |
| 'image_height' | --- | 0 | Unsupported (read-only parameter). | |
| 'image_width' | --- | 0 | Unsupported (read-only parameter). | |
| 'MaxBuffers' | 1 | integer | The maximum number of buffers (max-buffers) to queue in the appsink element (0 = unlimited). | |
| 'PipelineReBuild' | Re-builds the pipeline based on the 'PipelineString' value. | |||
| 'PipelineString' | '<pipeline>' | string | Sets and builds the pipeline using the gst-launch-1.0 syntax. The appsink plugin must be set at the end of the pipeline string. | |
| 'register_<addr>_<len>' | integer | Direct register access for reading and writing integers. The value has to be hexadecimal, e.g. 0x0938. Note that only 4 or 8 Byte length values are accepted. There is no conversion of the device byte order. Caution: This is a dangerous function intended for debugging and special cases. Usually only features in the XML should be used. | ||
| 'settings_selector' | 'RemoteDevice', 'Stream', 'Device', 'System', 'Interface', 'Consumer' | 'RemoteDevice' | string | Selects for which component (set of parameters) the streamable parameters are persisted into a file or restored from a file when using set_framegrabber_param(..., 'do_write_settings', []) and set_framegrabber_param(..., 'do_load_settings', []). Selects among the actual (remote) device, one of the GStreamer Producer modules or the Consumer parameters (internal parameters of GStreamer image acquisition interface). Read more about the usage of this mechanism at Parameters – Persisting Device Status. |
| 'split_param_values_into_dwords' | 'disable', 'enable' | 'disable' | string | Enables a special mode allowing the treatment of integer parameters as tuple of two 32-bit integers. For compatibility with the single-parameter mode, the first tuple element carries always the low 32-bit part of the value, second element carries the high 32-bit part. It is user's responsibility to combine the two parts correctly. This mode is intended especially to help to overcome the problem of 32-bit HALCON featuring only 32-bit integer parameters but having to face up to 64-bit wide GenICam features. In this mode, the get_framegrabber_param returns always a tuple of two integers, set_framegrabber_param accepts both a single parameter or a tuple. Note that this mode affects only integer parameters and only the GenICam based ones, not the internal parameters of HALCON GStreamer image acquisition interface - with few exceptions, the 'buffer_timestamp', 'buffer_timestamp_ns', 'device_timestamp_frequency' and 'buffer_frameid' internal parameters. |
| '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. |
| 'start_column' | --- | 0 | Unsupported (read-only parameter). Configure the image size through device parameters. | |
| 'start_row' | --- | 0 | Unsupported (read-only parameter). Configure the image size through device parameters. | |
| 'volatile' | 'disable', 'enable' | 'disable' | string | When enabled, switches on the volatile mode in which the image buffers are used directly to create HALCON images. This is the fastest mode avoiding
the copy of raw images in memory. However, be aware that older images
might be overwritten by the acquisition engine with new data at any time.
When changing the device configuration in a way that acquisition buffers
must be reallocated, the older HALCON images would even become invalid
(pointing to no more existing memory). See also
details about acquisition buffer handling.
Please note that the volatile mode can be switched on at any time, regardless of the current configuration. However, at runtime only the acquired images compatible with the volatile mode will be delivered to the application (the others will be discarded). Compatible means in particular that the PixelFormat of the acquired image matches the color_space and bits_per_channel settings configured for HALCON image output format. |
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 |
|---|---|---|---|---|---|
| '[Device]DeviceEventsThreadPriority' | <thread_priority> | integer | pre-defined | OS-specific thread priority value to be used for the internal event processing thread. The actual values are directly the priority identifiers
of the operating system, e.g. THREAD_PRIORITY_HIGHEST under Windows
or a real-time priority value under Linux. The actual priority is applied only after executing the '[Device]DeviceEventsThreadApplyPriority' command parameter, possibly together with the '[Device]DeviceEventsThreadSchedulingPolicy' value if applicable on given system. It is the responsibility of the application to ensure that the calling process has sufficient privileges to apply the priority change and that the value written to the parameter is a valid priority identifier. After applying '[Device]DeviceEventsThreadApplyPriority', the application can read back the priority value to verify if it was properly applied. Note that when opening the device, the GStreamer Producer attempts itself to elevate the thread priority to a suitable value. The feature is not available for devices not supporting device events or if the event handling was disabled using the 'device_event_handling=0' generic parameter. BEWARE: Setting this parameter can lead to an unusable or poorly performing system, use with care. |
|
| '[Device]DeviceEventsThreadSchedulingPolicy' | <scheduling_policy> | integer | pre-defined | OS-specific scheduling policy value to be used for the internal event processing thread. The actual values are directly the priority identifiers
of the operating system, e.g. SCHED_FIFO under Linux.
Note that this feature is not available under Windows. The actual scheduling policy is applied only after executing the '[Device]DeviceEventsThreadApplyPriority' command parameter, together with the '[Device]DeviceEventsThreadPriority' value. It is the responsibility of the application to ensure that the calling process has sufficient privileges to apply the scheduling policy and that the value written to the parameter is a valid scheduling policy identifier. After applying '[Device]DeviceEventsThreadApplyPriority', the application can read back the scheduling policy value to verify if it was properly applied. The feature is not available for devices not supporting device events or if the event handling was disabled using the 'device_event_handling=0' generic parameter. BEWARE: Setting this parameter can lead to an unusable or poorly performing system, use with care. |
|
| '[Stream]StreamBufferHandlingMode' | 'OldestFirst', 'OldestFirstOverwrite', 'NewestOnly' | 'OldestFirst' | string | pre-defined | Selects the mode the streaming engine uses to handle newly acquired data, in particular when the camera runs faster than the application processing.
The parameter is writeable only if no acquisition is active.
Supported values are:
|
| '[Stream]StreamThreadPriority' | <thread_priority> | integer | pre-defined | OS-specific thread priority value to be used for the internal stream processing thread. The actual values are directly the priority identifiers
of the operating system, e.g. THREAD_PRIORITY_HIGHEST under Windows
or a real-time priority value under Linux. The actual priority is applied only after executing the '[Stream]StreamThreadApplyPriority' command parameter, possibly together with the '[Stream]StreamThreadSchedulingPolicy' value if applicable on given system. It is the responsibility of the application to ensure that the calling process has sufficient privileges to apply the priority change and that the value written to the parameter is a valid priority identifier. After applying '[Stream]StreamThreadApplyPriority', the application can read back the priority value to verify if it was properly applied. Note that when opening the device, the GStreamer Producer attempts itself to elevate the thread priority to a suitable value. BEWARE: Setting this parameter can lead to an unusable or poorly performing system, use with care. |
|
| '[Stream]StreamThreadSchedulingPolicy' | <scheduling_policy> | integer | pre-defined | OS-specific scheduling policy value to be used for the internal stream processing thread. The actual values are directly the priority identifiers
of the operating system, e.g. SCHED_FIFO under Linux.
Note that this feature is not available under Windows. The actual scheduling policy is applied only after executing the '[Stream]StreamThreadApplyPriority' command parameter, together with the '[Stream]StreamThreadPriority' value. It is the responsibility of the application to ensure that the calling process has sufficient privileges to apply the scheduling policy and that the value written to the parameter is a valid scheduling policy identifier. After applying '[Stream]StreamThreadApplyPriority', the application can read back the scheduling policy value to verify if it was properly applied. BEWARE: Setting this parameter can lead to an unusable or poorly performing system, use with care. |
|
| 'add_objectmodel3d_overlay_attrib' | 'disable', 'enable' | 'disable' | string | pre-defined | This parameter has no effect. |
| 'available_callback_types' | ['<callback_types>'] | string | dynamic | Returns a list containing all parameters, for which a callback can be registered. This includes all parameters published by the device and GStreamer Producer via the GenICam interface, including those temporarily unavailable, because availability change might be coupled with the callback. | |
| 'available_param_names' | ['<names>'] | string | dynamic | Returns a list containing all available parameters, i.e. those used by the HALCON GStreamer image acquisition interface and those published by the device and GStreamer Producer via the GenICam interface (see parameter naming conventions). The availability of some parameters might depend on acquisition status, values of other parameters or other conditions, so the list dynamically changes during runtime. | |
| 'bits_per_channel' | -1, 8, 10, 12, 14, 16 | -1 | integer | pre-defined | Number of bits per channel of the resulting HALCON image. In case of -1 the bit depth of each respective acquired buffer is used. By specifying a value greater than 8 the grabbed images are delivered as uint2 images. |
| 'buffer_frameid' | <frame_id> | integer | dynamic | Frame ID attached to the last grabbed (image) buffer by the device (or GStreamer Producer). Typically sequentially incremented number of the frame. Skipped ID's in the sequence could indicate that one or more frames was dropped in the device or GStreamer Producer, for example due to acquisition engine overflow reasons. Note that on 32-bit systems only the lower 32-bit part of up to 64-bit timestamp is delivered (unless 'split_param_values_into_dwords' parameter is enabled). See acquisition buffer handling. | |
| 'buffer_is_incomplete' | 0, 1 | integer | dynamic | Shows if the last grabbed image is incomplete (e.g. due to lost packets). See acquisition buffer handling. | |
| 'buffer_reallocation_mode' | 'only_increase_size', 'follow_payloadsize' | 'only_increase_size' | string | pre-defined | Defines the strategy to follow when reallocating the buffers for a new acquisition. In case of 'only_increase_size', the buffers will be only reallocated when the payload size increases. In case of 'follow_payloadsize', the buffers will be reallocated every time the payload size changes. |
| 'buffer_timestamp' | <timestamp> | integer | dynamic | Timestamp attached to the last grabbed (image) buffer by the device (or GStreamer Producer). The unit and actual meaning of the timestamp (when it is generated) is device specific. If the frequency of the timestamp counter is known, the value in nanoseconds can be read from 'buffer_timestamp_ns'. Note that on 32-bit systems only the lower 32-bit part of up to 64-bit timestamp is delivered (unless 'split_param_values_into_dwords' parameter is enabled). See acquisition buffer handling. | |
| 'buffer_timestamp_ns' | <timestamp> | integer | dynamic | Timestamp attached to the last grabbed (image) buffer by the device (or GStreamer Producer). The value is in nanoseconds, but might not be available if the timestamp frequency is unknown (refer also to 'buffer_timestamp' and 'device_timestamp_frequency'). Note that on 32-bit systems only the lower 32-bit part of up to 64-bit timestamp is delivered (unless 'split_param_values_into_dwords' parameter is enabled). See acquisition buffer handling. | |
| 'camera_type' | 'default', <ini/xml filename> | 'default' | string | pre-defined | Returns the path to the configuration file used for the CameraType parameter in open_framegrabber. |
| 'clear_buffer' | 'disable', 'enable' | 'disable' | string | pre-defined | If enabled, each buffer content is cleared before re-queueing (all bytes set to 0xF0 regardless the expected pixel format), so you can see which parts of an image are missing, in case e.g. the transfer of some image packets failed. This parameter adds of course a runtime overhead to write the 0xF0 data every time a buffer is queued. It is mainly useful for debugging in combination with transport layers which do not guarantee the transfer of complete images. Please note, that this parameter does not modify the buffer queue, only the content of a buffer will be set to a defined state. |
| 'color_space' | 'default', 'gray', 'raw', 'rgb', 'rgbx', 'yuv' | 'default' | string | pre-defined | Returns the current color space. |
| 'confidence_mode' | 'off', 'object_model_3d' | 'off' | string | pre-defined | This parameter has no effect. |
| 'confidence_threshold' | [0.0, 1.0] | 0.5 | float | pre-defined | This parameter has no effect. |
| 'coordinate_transform_mode' | 'none', 'cartesian', 'reference' | 'reference' | string | pre-defined | This parameter has no effect. |
| 'create_objectmodel3d' | 'disable', 'enable' | 'disable' | string | pre-defined | This parameter has no effect. |
| 'data_contents' | 'unknown', 'object_model_3d', 'text_report' | 0 | string | pre-defined | Tuple describing logical type of the control data outputs returned by the last grab operator. Not applicable if last successful grab was performed through grab_image/grab_image_async.
In case of grab_data/grab_data_async it returns a tuple of the size
corresponding to the number of control data values returned through those operators.
Possible values are:
|
| 'data_purpose_id' | --- | 0xFFFFFFFFFFFFFFFF | integer | pre-defined | Tuple of integer values allowing to track data purpose IDs associated to individual control data outputs returned by the last grab operator. Intended for advanced use cases when the data should be matched with the device configuration. The use of the parameter is application specific and requires knowledge of the GenICam SFNC data model and specific device. Not applicable if last successful grab was performed through grab_image/grab_image_async. In case of grab_data/grab_data_async it returns a tuple of the size corresponding to the number of control data values returned through those operators. If the ID could not be identified (e.g. because the underlying communication protocol does not provide such information), invalid value will be returned (max value of given integer range). |
| 'data_region_id' | --- | 0xFFFFFFFFFFFFFFFF | integer | pre-defined | Tuple of integer values allowing to track region IDs associated to individual control data outputs returned by the last grab operator. Intended for advanced use cases when the data should be matched with the device configuration. The use of the parameter is application specific and requires knowledge of the GenICam SFNC data model and specific device. Not applicable if last successful grab was performed through grab_image/grab_image_async. In case of grab_data/grab_data_async it returns a tuple of the size corresponding to the number of control data values returned through those operators. If the ID could not be identified (e.g. because the underlying communication protocol does not provide such information), invalid value will be returned (max value of given integer range). |
| 'data_source_id' | --- | 0xFFFFFFFFFFFFFFFF | integer | pre-defined | Tuple of integer values allowing to track source IDs associated to individual control data outputs returned by the last grab operator. Intended for advanced use cases when the data should be matched with the device configuration. The use of the parameter is application specific and requires knowledge of the GenICam SFNC data model and specific device. Not applicable if last successful grab was performed through grab_image/grab_image_async. In case of grab_data/grab_data_async it returns a tuple of the size corresponding to the number of control data values returned through those operators. If the ID could not be identified (e.g. because the underlying communication protocol does not provide such information), invalid value will be returned (max value of given integer range). |
| 'delay_after_stop' | <milliseconds> | 0 | integer | pre-defined | The time to wait (in milliseconds) between stopping the acquisition on the device (AcquisitionStop command) and GStreamer Producer. |
| 'device' | ' | device:<device id> | unique_name:<unique name> | interface:<interface id> | producer:mvtec_gstreamer', '<device id>' | string | dynamic | Returns the Device parameter string used when opening the device (open_framegrabber). | |
| 'device_event_handling' | 0, 1 | 1 | integer | pre-defined | Value of the device_event_handling generic parameter specified in open_framegrabber. The device_event_handling is by default switched on for devices with event delivery (message channel) support and off for devices without the event capability. The generic parameter device_event_handling explicitly allows switching the event handling functionality off even for devices with event support. |
| 'device_timestamp_frequency' | <frequency_hz> | integer | dynamic | Frequency of the timestamp counter of the device, in ticks per second (Hz). The frequency might not be known for all devices. The counter is used for example to attach timestamps to acquired buffers. Note that on 32-bit systems only the lower 32-bit part of up to 64-bit timestamp is delivered (unless 'split_param_values_into_dwords' parameter is enabled). | |
| 'DropBuffers' | 0, 1 | 1 | integer | pre-defined | Controls the behavior when the buffer queue is filled in the appsink element. |
| 'event_data' | '<list of genicam_feature/internal_parameter>' | string | pre-defined | Configures GenICam features and/or internal parameters (free mix) to be added to the message queue specified by 'event_message_queue'
for feature change notifications for feature selected in 'event_selector'. Features can be added individually or as a tuple - each 'set' operation for this parameter appends to the current list of event_data. To remove individual features, prepend them with a '~'. To clear all currently added features, call set_framegrabber_param(..., 'event_data', []). Read more about the usage of this mechanism at Event Message Queues. |
|
| 'event_message_queue' | 0, '<queue_handle>' | handle | pre-defined | Selects a message queue to which the acquisition interface should send feature change notifications (see further details in
Event Message Queues). The corresponding feature/parameter needs to be previously selected by 'event_selector'. Setting 0 (NULL) unregisters the previously selected message queue from notifications about given feature/parameter. |
|
| 'event_notification_helper' | 'disable', 'enable' | 'disable' | string | pre-defined | Controls if the acquisition interface should attempt to automatically (un)set 'EventNotification' during set_framegrabber_callback if the callback is being (un)registered on an SFNC-compliant event. Note that this will only work if the callback is being registered on the actual event feature (e.g. 'EventExposureEnd'), not on one of the event data features (e.g. 'EventExposureEndTimestamp'). For further information on events, see Event Data. |
| 'event_selector' | '<genicam_feature/internal_parameter>' | 'grab_timeout' | string | pre-defined | Selects a GenICam feature or internal parameter for which feature change notifications through message queues
should be configured. They are sent to the message queue specified by 'event_message_queue', together with additional data configured in 'event_data'. Read more about the usage of this mechanism at Event Message Queues (which is another alternative to notifications through callbacks, Feature Change Notifications). |
| '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. |
| 'generic' | '', ['num_buffers=<num>' ], -1 | -1 | mixed | pre-defined | Values of the Generic parameter. |
| 'grab_timeout' | <milliseconds> | 5000 | integer | pre-defined | Current grab timeout in milliseconds. |
| 'GstState' | 'Null','Ready','Paused','Playing' | string | pre-defined | Get GStreamer pipeline state. | |
| 'horizontal_resolution' | 0, 1, resolution | 1 | integer | pre-defined | Current value of horizontal resolution. |
| 'image_available' | 0, 1 | integer | dynamic | Shows if there is currently an image waiting for delivery by the GStreamer Producer. | |
| 'image_contents' | 'unknown', 'image' | 0 | string | pre-defined | Tuple describing the logical type of the image data returned by the last grab operator. If the last successful grab was performed through grab_image/grab_image_async, the parameter
returns always single value. In case of grab_data/grab_data_async it returns a tuple of the size
corresponding to the number of images returned through those operators.
Possible values are:
|
| 'image_height' | <height> | 0 | integer | pre-defined | Height of the last acquired image. See acquisition buffer handling. If there is no valid last buffer available, the last queried value of the 'Height' parameter of the remote device is returned. |
| 'image_pixel_format' | --- | 0 | integer | pre-defined | Tuple of integer values representing the ID of the original pixel formats of the source data used to generate individual image outputs. This is typically the PFNC 32-bit ID of given pixel format - if unknown or if the data used to generate given image output is not naturally an image, zero will be reported. If the source data is a multi-component image (such as RGB or multi-component 3D coordinate format), the original multi-component pixel format is reported, no matter if all of the components were used to generate given image output (such as an RGB image) or if the image output reflects only one of the components (such as individual 3D coordinate planes, output as separate HALCON images). The original multi-component pixel format might be planar format or not. Note that the color space and bit depth of the actual HALCON image might significantly differ from the source format if the user requests color space conversion through the 'bits_per_channel' and 'color_space' parameters. |
| 'image_purpose_id' | --- | 0xFFFFFFFFFFFFFFFF | integer | pre-defined | Tuple of integer values allowing to track data purpose IDs associated to individual image outputs returned by the last grab operator. Intended for advanced use cases when the data should be matched with the device configuration. The use of the parameter is application specific and requires knowledge of the GenICam SFNC data model and specific device. If the last successful grab was performed through grab_image/grab_image_async, the parameter returns always single value. In case of grab_data/grab_data_async it returns a tuple of the size corresponding to the number of images returned through those operators. If the ID could not be identified (e.g. because the underlying communication protocol does not provide such information), invalid value will be returned (max value of given integer range). |
| 'image_raw_buffer_padding_bytes' | --- | 0 | integer | pre-defined | Tuple of integers reporting for raw buffers of type 'blob' (see 'image_raw_buffer_type') the size of unused padding bytes at the end of such grabbed HALCON image. Because artificial dimensions need to be chosen for the resulting HALCON image in this case, the size of such image might not exactly equal the size of the buffer data and thus the padding might be needed. Zero is reported for buffers of type 'image'. Applies only in case of the 'raw' color format. See raw output format chapter. If the last successful grab was performed through grab_image/grab_image_async, the parameter returns always single value. In case of grab_data/grab_data_async it returns a tuple of the size corresponding to the number of images returned through those operators. |
| 'image_raw_buffer_type' | 'image', 'blob' | 0 | string | pre-defined | Tuple of strings showing whether the last grabbed HALCON image(s) is created from buffer containing real image data with known properties (in particular image size and pixel format) or if it is created from a blob of other data (non-image data or image data of unknown format). Note that in case of the blob data the dimensions of the HALCON image are meaningless. Applies mainly in case of the 'raw' color format. Possible values are 'image' and 'blob'. See raw output format chapter. If the last successful grab was performed through grab_image/grab_image_async, the parameter returns always single value. In case of grab_data/grab_data_async it returns a tuple of the size corresponding to the number of images returned through those operators. |
| 'image_region_id' | --- | 0xFFFFFFFFFFFFFFFF | integer | pre-defined | Tuple of integer values allowing to track region IDs associated to individual image outputs returned by the last grab operator. Intended for advanced use cases when the data should be matched with the device configuration. The use of the parameter is application specific and requires knowledge of the GenICam SFNC data model and specific device. If the last successful grab was performed through grab_image/grab_image_async, the parameter returns always single value. In case of grab_data/grab_data_async it returns a tuple of the size corresponding to the number of images returned through those operators. If the ID could not be identified (e.g. because the underlying communication protocol does not provide such information), invalid value will be returned (max value of given integer range). |
| 'image_source_id' | --- | 0xFFFFFFFFFFFFFFFF | integer | pre-defined | Tuple of integer values allowing to track source IDs associated to individual image outputs returned by the last grab operator. Intended for advanced use cases when the data should be matched with the device configuration. The use of the parameter is application specific and requires knowledge of the GenICam SFNC data model and specific device. If the last successful grab was performed through grab_image/grab_image_async, the parameter returns always single value. In case of grab_data/grab_data_async it returns a tuple of the size corresponding to the number of images returned through those operators. If the ID could not be identified (e.g. because the underlying communication protocol does not provide such information), invalid value will be returned (max value of given integer range). |
| 'image_width' | <width> | 0 | integer | pre-defined | Width of the last acquired image. See acquisition buffer handling. If there is no valid last buffer available, the last queried value of the 'Width' parameter of the remote device is returned. |
| 'line_in' | <default> | 0 | integer | pre-defined | The value is not used, so a default value is returned. |
| 'MaxBuffers' | 1 | integer | pre-defined | The maximum number of buffers (max-buffers) to queue in the appsink element (0 = unlimited). | |
| 'name' | 'GStreamer' | string | pre-defined | Name of the HALCON interface. | |
| 'num_buffers' | <number> | 4 | integer | pre-defined | Number of buffers used for the image acquisition. |
| 'num_buffers_await_delivery' | <number> | integer | dynamic | Number of (image) buffers waiting for delivery by the GStreamer Producer. | |
| 'num_buffers_underrun' | <number> | integer | dynamic | Number of lost buffers due to buffer queue underrun since opening the device. Queue underrun occurs when the GStreamer Producer has a new image data available, but it has no free buffer to store them. | |
| 'PipelineString' | '<pipeline>' | string | pre-defined | Current pipeline string. | |
| 'port' | <port> | -1 | integer | pre-defined | The value is not used, so a default value is returned. |
| 'register_<addr>_<len>' | integer | pre-defined | Direct register access for reading and writing integers. The value has to be hexadecimal, e.g. 0x0938. Note that only 4 or 8 Byte length values are accepted. There is no conversion of the device byte order. Caution: This is a dangerous function intended for debugging and special cases. Usually only features in the XML should be used. | ||
| 'revision' | '<revision>' | string | pre-defined | Revision number of the GStreamer interface. | |
| 'settings_selector' | 'RemoteDevice', 'Stream', 'Device', 'System', 'Interface', 'Consumer' | 'RemoteDevice' | string | pre-defined | Selects for which component (set of parameters) the streamable parameters are persisted into a file or restored from a file when using set_framegrabber_param(..., 'do_write_settings', []) and set_framegrabber_param(..., 'do_load_settings', []). Selects among the actual (remote) device, one of the GStreamer Producer modules or the Consumer parameters (internal parameters of GStreamer image acquisition interface). Read more about the usage of this mechanism at Parameters – Persisting Device Status. |
| 'split_param_values_into_dwords' | 'disable', 'enable' | 'disable' | string | pre-defined | Enables a special mode allowing the treatment of integer parameters as tuple of two 32-bit integers. For compatibility with the single-parameter mode, the first tuple element carries always the low 32-bit part of the value, second element carries the high 32-bit part. It is user's responsibility to combine the two parts correctly. This mode is intended especially to help to overcome the problem of 32-bit HALCON featuring only 32-bit integer parameters but having to face up to 64-bit wide GenICam features. In this mode, the get_framegrabber_param returns always a tuple of two integers, set_framegrabber_param accepts both a single parameter or a tuple. Note that this mode affects only integer parameters and only the GenICam based ones, not the internal parameters of HALCON GStreamer image acquisition interface - with few exceptions, the 'buffer_timestamp', 'buffer_timestamp_ns', 'device_timestamp_frequency' and 'buffer_frameid' internal parameters. |
| '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 | Unsupported, returns always 0. |
| 'start_row' | <row> | 0 | integer | pre-defined | Unsupported, returns always 0. |
| 'streaming_mode' | 0, 1 | 1 | integer | pre-defined | Value of the streaming_mode generic parameter specified in open_framegrabber. The streaming_mode is by default switched on for devices with streaming support and off for peripheral devices (devices without any data streams). The generic parameter streaming_mode explicitly allows switching the streaming functionality off, even for devices with streaming support. |
| 'vertical_resolution' | 0, 1, resolution | 1 | integer | pre-defined | Current value of vertical resolution. |
| 'volatile' | 'disable', 'enable' | 'disable' | string | pre-defined | Current value of the volatile mode. |
The signature of the callback function is Herror (__stdcall *HAcqCallback)(void *AcqHandle, void *Context, void *UserContext) and uses the following parameters:
Note that the execution time of a user-specific callback function must
always be as short as possible since during the execution of a callback
function the handling of further internal callbacks might be blocked.
This can be achieved by removing the current processing from the
user-specific callback function to a separate thread that is controlled
via signals or events. The callback function is executed in the context
of the underlying interface or driver.
It is also important to understand that the callbacks might be fired as
a side-effect of parameter-setting or grab operations, ie. it might be
called from within their respective locks. The user is responsible
to take this into account in the callback handler to avoid risk of
a deadlock.
You can request the source for those third-party libraries licensed under GPL or LGPL via email to info@mvtec.com with the subject "Request source code of third-party libraries".