C++ Application Code

This is a set of example applications illustrating the use of the FPGA based NDI encoder with the Advanced NDI SDK. For full details and a theory of operation covering the entire system (software, hardware, and OS), refer to the top-level README file.

Source code for the examples is organized into the following subdirectories:

Directory
Contents

ndi_common/

Files common to all NDI applications

ndi_decode/

Example NDI Decoder application (eg: TV or Monitor)

ndi_encode/

Example NDI Encoder application (eg: Camera or NDI Source)

ndi_util/

Debug and utility applications

Getting Started

Prerequisites

The following prerequisites must be installed before you can build the example applications.

libuio

  • https://github.com/Linutronix/libuio

libuio is used to access the FPGA hardware via entries in the device-tree

The available uSD card images have libuio packages compiled from source (see ~/libuio) and the debian packages installed. For other platforms, libuio will need to be compiled and installed manually.

NDI Advanced SDK Library

The NDI Advanced SDK allows the sending and receiving of compressed frames, which is required to use the FPGA encoder. To install the library, simply copy the files to an appropriate location for your system. The example uSD card images have the NDI library files already installed in /usr/local/lib and /usr/local/include.

Building and Installing

Once the prerequisites have been installed, building the applications is straight-forward:

cd <NDI_SDK>/fpga_reference_design/src/cpp
make
sudo make install

The applications will be installed with setuid privileges to the /usr/local/bin/ directory.

Usage

See the README.md files in each subdirectory for usage details specific to each available application.

Last updated

2024 @ NDI Vizrt AB.