Software Architecture

Metavision HAL and plugins provide an interface between event-based camera devices and applications.

../_images/archi.jpg

Metavision HAL plugins provide the following functionalities:

  • Camera control: Bias control, Region of Interest (ROI) definition, Event filter control, etc.

  • Camera monitoring: Temperature, Illumination, Event rate, etc.

  • Raw data streaming

  • Reference decoding from native camera formats (EVT2 and EVT3)

Next section describes the set of shared libraries provided with Metavision HAL and plugins.

Libraries

Metavision HAL is composed of two main libraries and plugins.

The provided libraries:

Library

Description

libmetavision_hal_discovery.so

Shared library used to open a device

libmetavision_hal.so

Main HAL library, used by the HAL discovery library and the plugins

The provided plugins (one per device):

Library

Description

libhal_plugin_gen3_fx3.so

Gen3.0 EVK-V1 camera plugin

libhal_plugin_gen31_fx3.so

Gen3.1 EVK-V1 camera plugin

libhal_plugin_gen31_cx3.so

Gen3.1 EVK-V3 camera plugin

libhal_plugin_gen4_fx3.so

Gen4.0 EVK-V1 camera plugin

The provided libraries also have an external dependency to libusb-1.0.so.

../_images/libraries.jpg

Camera makers develop and provide their own plugin which is responsible for identifying a device and giving access to its hardware features through the implementation of the facilities embedded in the corresponding shared library. As such, in the previous diagram, the plugin for PP3MVCD CCAM5-CX3 device provided by Prophesee is responsible for identifying the corresponding camera system and giving access to the hardware via the implementation supplied in the corresponding libraries (e.g. libhal_plugin_gen31_cx.so).

Metavision HAL library and plugins are shared libraries objects built from C++ source code. For more information about how to develop and provide a plugin, contact us.