SIPL Stereo Monitor Application
Sample utility application to validate capture streams across a stereo camera rig.
Drives two SIPLCaptureOp instances
against one shared SIPLCaptureService, reporting per-camera frame counts,
cross-camera timestamp skew, and stereo-sync stalls. Use this utility to validate
basic capture streaming functionality with a stereo camera pair on a
SIPL-supported platform.
Both cameras default to host-memory output. --gpu selects CUDA-device output
to exercise that capture path. The monitor reads frame headers in either mode;
it does not inspect pixels. Neither mode requires a display or writes images to disk.
Requirements
- Requires NVIDIA Jetson AGX Thor with JetPack 7.2.1, the only supported SIPL platform in this release
- Requires a stereo VB1940 camera input via Holoscan Sensor Bridge FPGA
Experimental source builds on IGX OS 2.0 / R38.5 are not a supported configuration. They need the host SIPL development prerequisite before using the wrapper.
Usage
Run
Check synchronized ISP capture
This runs directly in holoscan-camera; no Isaac OS application is needed. Use a supported SDK/BSP environment with SIPL headers, driver libraries, the camera’s UDDF driver and NITO files available. Adapt the JSON’s network settings to your board. Configure and build:
Record kernel errors in another terminal, noting the start time of each run:
Run one camera application at a time:
Omit --gpu for host output. Check for
reached --frames target on both cameras, Timeout getting ISP buffer warnings, and kernel
EOF ERR / CoE capture status failed messages. Exit status alone is not enough:
capture errors can occur while frames continue arriving, and the monitor currently
also returns zero on its overall timeout.
Set the camera MAC address in the JSON config to match your connected rig
before running. The CLI launches the application from the repository root, so
relative --json-config paths resolve from that directory. For container runs,
the application metadata runs the container privileged: NvSIPL reads
/proc/device-tree/model when it loads the camera query database, which Docker
hides from unprivileged containers, and opening the cameras needs device access
they don’t have. The ./holoscan_camera wrapper selects the CLI version
automatically. Options given with --docker-opts add to the metadata’s
--privileged.