Contents

Generic Plugin

The GenICam Generic Plugin is a gstreamer generic source plugin that communicates and streams from a GenICam-based camera, which provides a GenTL producer. In order to use the generic plugin with VI, one must install the respective GenICam camera SDK and ensure the compatible GenTL producer for the camera is installed.

For more information on the Generic Plugin, see src-gst-gencamsrc/README.md.

For working with the Genicam USB3 Vision camera, install the respective camera SDK by referring to the following section:

Adding New GigE Camera Support to VideoIngestion

In order to use the generic plugin with the newer Genicam camera SDK, the following are the steps:

  1. Install the respective GenICam camera SDK by adding the camera SDK installation steps in VI-Dockerfile([WORK_DIR]/IEdgeInsights/VideoIngestion/Dockerfile). The camera SDK will be installed during the docker build and one can install multiple camera SDKs in VI-Dockerfile([WORK_DIR]/IEdgeInsights/VideoIngestion/Dockerfile). Refer to (https://docs.docker.com/engine/reference/builder/) for Dockerfile instructions. To install the newer camera SDK, one would typically need to use the RUN <command> to execute shell commands. If the camera SDK cannot be downloaded non-interactively, it must be placed in the [WORKDIR]/IEdgeInsights/VideoIngestion/ directory, using the COPY instruction in VI-Dockerfile([WORK_DIR]/IEdgeInsights/VideoIngestion/Dockerfile) to use the camera SDK in the build context, and then installed using the RUN instruction during docker build.

  2. After making sure the compatible GenTL producer is successfully installed, one must add a case statement in gentl_producer_env.sh([WORK_DIR]/IEdgeInsights/VideoIngestion/gentl_producer_env.sh) script to export the GenTL producer path to GENICAM_GENTL64_PATH env variable. In order to verify the GenTL producer path, one can search for the .cti file under the installation path. Typically GenTL provider is characterized by a file with a .cti extension. The path to the folder containing the cti library must be exported to an env variable called GENICAM_GENTL64_PATH (GENICAM_GENTL32_PATH for 32 bit providers).

  3. Set the GENICAM env variable in docker-compose.yml([WORK_DIR]/IEdgeInsights/VideoIngestion/docker-compose.yml) to execute the corresponding case statement in gentl_producer_env.sh([WORK_DIR]/IEdgeInsights/VideoIngestion/gentl_producer_env.sh) and export the GenTL producer path accordingly. GenTL producer path will be exported during docker runtime. As a result, during Docker build, one can choose to add and install multiple Genicam camera SDK and then switch between GenTL providers during Docker runtime by modifying the docker-compose.yml([WORK_DIR]/IEdgeInsights/VideoIngestion/docker-compose.yml).

Refer to the following snippet example to select the ``Basler`` camera and export its GenTL producer path in docker-compose.yml(``[WORK_DIR]/IEdgeInsights/VideoIngestion/docker-compose.yml``), assuming the corresponding Basler Camera SDK and GenTL producer are installed:

ia_video_ingestion:
...
  environment:
  ...
  # Setting GENICAM value to the respective camera which needs to be used
  GENICAM: "Basler"

Note: Ensure to run the builder.py([WORK_DIR]/IEdgeInsights/build/builder.py) script after making changes in docker-compose.yml([WORK_DIR]/IEdgeInsights/VideoIngestion/docker-compose.yml).