SDK Stream Architecture
Design
SDK Stream is a module built on top of Metavision HAL (see its dependencies below)
designed around a Camera class
that offers:
an easier access to events (no need to interact with the
Metavision::I_EventsStream
orMetavision::I_EventsStreamDecoder
and the threading issues related to it, in most cases where fine grain control is not needed)a file I/O API that supports other type of events than RAW encoded data (such as DAT, HDF5 etc.)
a way to serialize/deserialize camera configuration in a robust way (see
save()
andload()
functions)
Main functions
More specifically, the Camera class
provides access to:
static functions to transparently construct instances:
functions to open a live device, like
from_serial()
,from_first_available()
andfrom_source()
functions to open a file, like
from_file()
direct access to the underlying
Device
instance viaget_device()
if needed and supportedevent callbacks that can be set using functionality accessors, such as
cd()
,ext_trigger()
etc. in a similar but simpler and more universal way than what is done in HAL (for example, the same code settings callbacks withcd()
will work transparently with any event based cameras supported by HAL but also any event based recordings such as RAW but also DAT, HDF5 and any future formats that will be incrementally added).(de)serialization of camera hardware settings via
save()
andload()
from files and operator<< and operator>> for generic stream operations
Dependencies
SDK stream is a module that depends on:
SDK HAL for the Camera implementation for live cameras and RAW event files
SDK Core for some algorithms and utility classes
other libraries to provide file input/output support for other formats (such as protobuf, HDF5, etc.).
Next Steps
From here, depending on your interest, you can:
continue to explore the SDK architecture, by checking our pages on HAL or on the Camera Plugins
dive into the SDK Stream API by checking the HAL Code Samples
follow the SDK C++ getting started guide that leverage the
Camera class