When dealing with existing applications or low-latency requirements it's critical to reduce overhead and provide maximum flexibility. The Core API directly exposes the native C++ classes for each module in CVEDIA-RT, allowing you to directly compile them into another project.
This layer does not provide any lifecycle management besides
RAII for its object pointers.
CVEDIA-RT is designed to run as a server in which multiple runtime
instances can run simultaneous. Each instance represents
a video stream, camera or other type of input. The managed interface provides a high-level API to interact with both
the server as well as each instance.
Additionally this layer introduces the concept of a
State Dictionary in which modules can store data and
communicate with eachother. This dictionary is a nested, type invariant storage that's directly compatible with
JSON, XML and Lua.
Each module resembles a high level building block that makes it easy to develop custom applications or use-cases.
The highest interface layer is provided by a scripting language named
Lua. These scripts are mainly used for configuring
business logic although it has the exact same API access as the
Lua scripts introduce the concept of callbacks for events loop (
onStart, etc..) as well as exposing
a powerful API for developing user interfaces.