Files to add to the NVIDIA holohub repository for Videogenius compatibility.
Videogenius is the Cosmo proprietary software that manages the video input and output. It abstracts supported video boards in order to make software hardware-agnostic. An application can call this library without worrying about the video board currently installed.
Videogenius provides an API to:
- receive the input video frame and the info of the current video standard
- transmit an overlay that will be superimposed on the input video
To obtain Videogenius, the third party will enroll in the AI Access program through the Cosmo Innovation Center. The application form will be reviewed, and if approved, the third party will receive the software/hardware needed to develop a SaMD for the GI Genius device.
Clone the holohub repository and then checkout at commit 468f5fc5d3c16ea129a913e4a660c99ef854f6e1.
This commit corresponds to Holoscan v1.0.3.
This integration is compatible with Videogenius version 3.0.1.
Add/modify this files in the cloned Holohub repository:
-
- It contains sample applications to be copied in the Holohub folder
applications.CMakeLists.txt.integrationcontains the lines to add to the fileCMakeLists.txt.
- It contains sample applications to be copied in the Holohub folder
-
- It contains extensions to be copied in the Holohub folder
gxf_extensions.CMakeLists.txt.integrationcontains the lines to add to the fileCMakeLists.txt.
- It contains extensions to be copied in the Holohub folder
-
- It contains operators to be copied in the Holohub folder
operators.CMakeLists.txt.integrationcontains the lines to add to the fileCMakeLists.txt.
- It contains operators to be copied in the Holohub folder
After integration follow the README inside the holohub repository to build your application.
In the context of the AI Access program, Cosmo provides two Holoscan operators to third parties that are developing a SaMD compatible with the GI Genius device.
The operators interface with the Videogenius library and are:
GeniusVideoSourceOp: video receiver, it returns the video frame in RGBA format (alpha can be dropped later).GeniusVideoOverlayOp: video transmitter, it needs as input a frame in BGRA format that only contains the data to overlay on the input video frame, the rest of the pixels must be transparent.
These operators can be used in C++ or Python. For example, in Python, they can be imported as:
from holohub.genius_video_source import GeniusVideoSourceOp
from holohub.genius_video_overlay import GeniusVideoOverlayOp