NvMedia Sample Applications

The NvMedia sample applications demonstrate how to use the NvMedia API to perform multimedia tasks.
Multimedia based samples are built for single windowing compatibility that depends on the platform operating system:
NVIDIA DRIVE™ 5.0 QNX uses the Screen windowing system.
NVIDIA DRIVE™ 5.0 Linux uses the X11 windowing system.
Graphics OpenGL ES samples are built and organized for compatibility with both Wayland and X11 windowing systems with subdirectories for both. For information on the graphics OpenGL ES samples, see Building and Running Samples in Graphics Programming.
Tips for Using Sample Applications
When developing drivers for camera sensors AR0231, use the nvsipl_camera application as an example test application.
Ensure that the Ethernet-based communication used for camera power control is configured correctly.
NvMedia Sample Applications and Tools
NvMedia Application
Description
EGL Stream
EGL is an interface between Khronos rendering APIs such as OpenGL and the underlying native platform window system. It handles:
Graphics context management
Surface/buffer binding
Rendering synchronization
It also enables high-performance, accelerated, mixed-mode 2D and 3D rendering using other Khronos APIs.
Vision Programming Interface
Performs computer vision operations using algorithms such as Convolution and BoxFilter.
Image Capture Calibrate
Used to bring up or validate the camera sensor and capture sensor data to raw files for camera calibration. It also
parses a script file with the necessary I2C commands and sends them to the designated sensor(s).
If you run the application with any calibration command option, you must specify a sensor name.
Image Play
Performs stream decoding.
Image Encode
Demonstrates the usage of the NvMedia image encode API to encode H.264/H.265 bitstreams based on the NVENC hardware engine.
Image JPEG Encode
Demonstrates how to encode image surfaces into JPEG bitstreams using the NvMedia JPEG encode APIs.
Image JPEG Decode
Demonstrates how to decode a set of JPEG bitstreams into image surfaces using the NvMedia JPEG decode APIs.
Lens Distortion Correction (LDC)
Performs Geometric Transformation (GEOTRANS) and Temporal Noise Reduction (TNR) on input YUV files.
Video Encode
Demonstrates using the NvMedia video encode API to encode H.264/H.265 bitstreams based on the NVIDIA Encoder (NVENC)
hardware engine. The application accepts raw YUV/RGB frames as input and produces compressed elementary stream as output. It supports encoding of:
H.264 Baseline
Main profiles up to Level 4.1
High profiles up to Level 4.1
H.265 Main profiles up to level 6.0 with various configure parameters
Test cases are also provided to cover all the feature testing.
Video Demo
Describes how to use the sample application for stream decoding and playback.
NvMediaImage to CUDA Consumer on dGPU
Demonstrates how to use NvMediaEglstream APIs to post NvMediaImage surfaces to dGPU, which can be processed by CUDA APIs running on dGPU.
Image OpticalFlow / StereoDisparity
Demonstrates how to use the NvMedia Optical Flow or Stereo Disparity (OFST) APIs to perform motion estimation/stereo matching. The sample uses the NVIDIA® Tegra® NVENC hardware engine.
NvMediaImage Weave2D API and Sample Application
Merges odd lines from one CSI port with even lines from another for a frame captured over NVIDIA Tegra CSI ports.
Sensor Input Processing Library
Demonstrates how to use the NvMedia SIPL APIs to select and initialize a camera platform configuration.
Sensor Input Processing Library
Demonstrates how to use the NvMedia SIPL APIs to capture and process images from a camera module.
 
The association between categories of test samples and the hardware those samples exercise is as follows.
Test Sample Category
NVIDIA® Tegra® Hardware Used
Capture
Tegra Video Input (VI)
Capture and image signal processing
Tegra VI, Tegra Image Signal Processor (ISP)
Decode
NVIDIA Decoder (NVDEC), Tegra Video Image Compositor (VIC)
Encode
NVIDIA Encoder (NVENC), VIC
Vision Programming
Tegra Programmable Vision Accelerator (PVA)
The applications are categorized as follows:
Capture—video or image capture
Image signal processing—Performs computer vision algorithms
EGLstream—backend processing that routes NvMedia data directly to EGLstream, which in turn converts the data to display format
Decode—Decodes frames from a file
Encode—Encodes frames to a file