You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Commit 3c5ccdd
Browse filesBrowse the repository at this point in the historyBrowse files
New C++ plugin camera_plugin_sensing for the SENSING SG8A-AGON-G2Y-A1 GMSL
carrier on a Jetson AGX Orin (JetPack 7.2.1 / L4T R39.2.1). It captures two
Astra SHW5G at 2560x1984@60 through SIPL and either encodes H.264 on the
V4L2 M2M engine or publishes frames over the CUDA IPC transport.
The carrier ships no kernel sensor drivers and no /dev/video*: SIPL owns the
sensors from userspace, so there is no daemon, no per-boot module load and no
V4L2 controls. Capture runs as the ordinary container user, needing only the
video, i2c and gpio groups.
Four SIPL requirements look arbitrary and are not -- call ordering around
Init(), mandatory ICP buffers, NeedCpuAccess on the producer attribute list,
and REC709_ER on ISP0. Each is commented where it is enforced; getting any of
them wrong fails silently or with a status code that names nothing.
sensing.rst and the plugin README carry the rig details. shw5g.json is a
verbatim copy of the vendor platform config; configs/README.md records its
provenance and the rule against editing it in place.
Auto-exposure saturates with sensor gain pinned at 1.0. That reproduces in
NVIDIA's own nvsipl_camera, so it is upstream; tracked in #1076.
Signed-off-by: Jiwen Cai <jiwenc@nvidia.com>
|`oakd`| OAK-D RGB / LEFT / RIGHT; mono or `stereo: true` (GRAY8 over USB, GPU-broadcast to RGBA; `stereo_rgb` for color). Needs the Luxonis udev rule — see below |
22
22
|`zed`| ZED 2 / Mini / X One; mono or `stereo: true` (per-eye SDK retrieve, zero-copy GPU) |
23
23
|`video`| Video-file replay (anything OpenCV/FFmpeg reads) — preview / testing without a camera. Loops by default; `stereo: true` splits side-by-side files into eyes (viewer only) |
24
-
|`cuda_ipc`| RGBA8 frames mapped straight out of another process's CUDA memory — no encode, no host copy. See[below](#cuda_ipc-frames-from-another-process)|
24
+
|`cuda_ipc`| RGBA8 frames mapped straight out of another process's CUDA memory — no encode, no host copy. Pairs with the [sensing plugin](../../docs/source/device/sensing.rst); see[below](#cuda_ipc-frames-from-another-process)|
25
25
26
26
In XR mode the viewer **attaches to the CloudXR runtime + WSS proxy**, starting a background service if none is serving — nothing to start separately (`--accept-eula` for the first run; `camera_viz.py --help` for the rest). Output: XR headset (default) or desktop window (`run CONFIG --mode window`); one surface per camera — a flat plane (default), a cylinder arc, or an equirect sphere (`placements.<name>.shape`, XR only for the curved shapes). Stereo cameras render true SBS in XR; window mode shows the left eye. XR placements: `world` / `head` / `lazy` / `gimbal`.
27
27
@@ -164,9 +164,18 @@ survives the producer restarting under it. `width`/`height` are checked during
164
164
the handshake and a mismatch is refused rather than rendered at the wrong
165
165
stride.
166
166
167
-
Any process can be the producer — the wire format is a 24-byte message and a
168
-
CUDA VMM handle over `SCM_RIGHTS`. An animated test pattern ships with it, so
169
-
the consumer can be developed and tested with no camera and no capture SDK:
167
+
Producer is the sensing plugin. Geometry comes from its platform config, not
168
+
from flags, and `sensor=` is the **SIPL pipeline index** — take it from
169
+
`--list-sensors`, not from the vendor JSON, where the same cameras are numbered
0 commit comments