Skip to content

Holoscan Deltacast#

Version: 0.1.0
Authors: Deltacast Team (Deltacast), Holoscan Team (NVIDIA)
Supported platforms: x86_64, aarch64
Language: C++, Python
Minimum Holoscan SDK version: 4.2.0
Tested Holoscan SDK versions: 4.2.0
License: Apache-2.0
NVIDIA quality score: Developing

Holoscan components for using the Deltacast Videomaster capture card.

This project is a Holoscan Module — a self-contained, redistributable library that extends Holoscan SDK with reusable operators under the holoscan.deltacast namespace.

The operators in this module target the DELTACAST.TV Videomaster capture card family. Contact DELTACAST.TV for SDK access and environment setup; a bundled mock SDK lets you build and exercise the sample apps without a card (see below).


Quick Start#

# Run the C++ receiver pipeline
./holohub run deltacast_receiver

# Run the Python receiver pipeline
./holohub run deltacast_receiver --language python

This project uses the NVIDIA HoloHub CLI to streamline developer build and run commands. See ./holohub list for more details.


Operators#

Operator Implementation Direction
VideoMasterSourceOp C++ + pybind11 Capture from a Deltacast Videomaster card
VideoMasterTransmitterOp C++ + pybind11 Transmit to a Deltacast Videomaster card

Namespace

  • C++: holoscan::ops
  • Python: holoscan.deltacast

See operators/deltacast_videomaster/README.md for the full parameter list of each operator.


Usage#

Refer the demo applications for examples of how to use Holoscan Deltacast operators in your project.

Python#

from holoscan.core import Application
from holoscan.deltacast import VideoMasterSourceOp


class MyApp(Application):
    def compose(self):
        source = VideoMasterSourceOp(self, name="source")
        # connect with add_flow(source, downstream_op, ...)


MyApp().run()

C++#

#include <holoscan/holoscan.hpp>
#include <deltacast_videomaster/videomaster_source.hpp>

class MyApp : public holoscan::Application {
 public:
  void compose() override {
    auto source = make_operator<holoscan::ops::VideoMasterSourceOp>("source");
    // connect with add_flow(source, downstream_op, ...);
  }
};

int main() { holoscan::make_application<MyApp>()->run(); }

Building from Source#

Run the following command to build operators and run examples in the project container:

./holohub run deltacast_[transmitter/receiver]

Without HoloHub CLI#

Requirement Version
Holoscan SDK ≥ 4.2.0
CUDA Toolkit 13.x (matches the Holoscan SDK CUDA pin; the dev Dockerfile uses cuda13-dgpu)
CMake ≥ 3.24
C++ compiler C++17 (GCC 11+)
pybind11 ≥ 2.11
Python 3.10–3.13

The Deltacast VideoMaster SDK is also required to target real hardware — contact DELTACAST.TV for access. The build links the bundled mock SDK by default, so the cmake command below succeeds without it.

cmake -S . -B build
cmake --build build -j$(nproc)

DELTACAST.TV VideoMaster SDK#

The Deltacast VideoMaster SDK is required to build and run on DELTACAST.TV capture card hardware. This project bundles a mock library to satisfy minimum build and testing features (animated RGBA gradient for RX, silent accept for TX) in environments without capture card hardware.

Use the real SDK by passing -DVIDEOMASTER_SDK_DIR=<path> -DVIDEOMASTER_USE_MOCK=OFF.

VIDEOMASTER_SDK_DIR is optional.

When it is set, it has top priority. The build system tries, in order:

  1. ${VIDEOMASTER_SDK_DIR}/lib + ${VIDEOMASTER_SDK_DIR}/headers
  2. ${VIDEOMASTER_SDK_DIR}/VideoMasterHDConfig.cmake or ${VIDEOMASTER_SDK_DIR}/cmake/VideoMasterHDConfig.cmake

If VIDEOMASTER_SDK_DIR is not set (or if detection from it fails), it falls back to:

  1. /usr/local/cmake/VideoMasterHDConfig.cmake
  2. /usr/share/deltacast/videomaster/cmake/VideoMasterHDConfig.cmake
  3. /usr/lib/libvideomasterhd.so + headers in /usr/include/videomaster

Example custom SDK layout:

path/to/VideoMasterSDK/
|- headers/
|  |- VideoMasterHD_Core.h
|- lib/
   |- libvideomasterhd.so

In that case, set VIDEOMASTER_SDK_DIR=path/to/VideoMasterSDK.


Testing#

./holohub test

Or, without the HoloHub CLI:

# C++ (GTest via CTest)
ctest --test-dir build --output-on-failure -L unit
# Python (pytest)
PYTHONPATH=build/python:$PYTHONPATH HOLOSCAN_DELTACAST_BUILD_DIR=build pytest tests/python/ -v

PYTHONPATH is prepended so that an ambient holoscan SDK install stays visible. A bare PYTHONPATH=build/python would replace the variable and hide the SDK from pytest.

Both suites currently cover importability and build-smoke only; full live-pipeline coverage is a TODO and requires real hardware. CTest is configured with SKIP_RETURN_CODE 5 on the pytest entry — if a CTest run reports "Skipped" unexpectedly, the most common cause is that the holoscan SDK is not importable in the test environment (pytest collects zero items and exits 5).


Support#

This module is maintained by the DELTACAST.TV team. For help, please visit:

  • VideoMaster SDK, drivers, or DELTACAST hardware — contact DELTACAST.TV or email support@deltacast.tv.
  • Holoscan SDK, framework, or pipeline questions — see the Holoscan SDK documentation.

License#

Apache-2.0 — see LICENSE.


View source on GitHub