Repository navigation
sensing: capture boundary and backend selection ahead of Argus (draft, Argus untested) - #1427
Closed
gareth-morgan-nv wants to merge 6 commits into
Closed
gareth-morgan-nv wants to merge 6 commits into
gareth-morgan-nv wants to merge 6 commits into
Conversation
…rough A vendor-neutral CameraCapture interface, a move-only frame lease and a tagged pixel representation (CUDA RGBA for SIPL, NV12 DMA-BUF for Argus). Header only; nothing uses it yet, so behaviour is unchanged. Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com> Signed-off-by: Gareth Morgan <gmorgan@nvidia.com>
SiplCapture adapts SiplCamera without copying: frames stay the borrowed CUDA RGBA views, which the output still copies out before it returns, after the pacing check as before. SensingCamera and LiveKitVideoOutput now take the interface's frame type; other pixel types are rejected until an encoder input exists. Behaviour is unchanged. Syntax-checked here; the Jetson build and run are not. Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com> Signed-off-by: Gareth Morgan <gmorgan@nvidia.com>
…llback select_camera_backend takes each backend's probe result: an explicit request must match or fail with its own reason; auto takes the only match and otherwise names the --camera-backend override. main.cpp parses the flag and probes SIPL, the only backend built in. Syntax-checked here; Jetson build not run. Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com> Signed-off-by: Gareth Morgan <gmorgan@nvidia.com>
…d encoder stamp Release callbacks must not throw and may run on any thread; a DMA-BUF frame is producer-complete pitch-linear NV12 on return. FrameMeta no longer carries a stamp the FIFO pairing does not use. Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com> Signed-off-by: Gareth Morgan <gmorgan@nvidia.com>
…rom poll, document the flag Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com> Signed-off-by: Gareth Morgan <gmorgan@nvidia.com>
Contributor
|
Important Draft PR not reviewedDraft PRs are not automatically reviewed by default.
To automatically review draft PRs, update your CodeRabbit configuration: reviews:
auto_review:
drafts: true
|
… as a dropped frame Only EAGAIN and EINTR are the ordinary no-buffer result; any other errno is recorded for poll() to surface. Relies on the Multimedia API plane leaving errno set by the failed ioctl, unverified here (no Jetson); the first Orin run shows whether a healthy encoder trips it. Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com> Signed-off-by: Gareth Morgan <gmorgan@nvidia.com>
Contributor
Author
|
Superseded by #1428: the capture-backend rearchitecture now lives on gmorgan/RearchBackend (base gmorgan/FastLiveKit). The Argus work will be gmorgan/Argus on top of that branch, so this PR's head branch is retired. |
gareth-morgan-nv
had a problem deploying
to
dev
November 5, 2026 17:40 — with
GitHub Actions
Failure
This branch had an error being deployed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Description
Draft. Stacked on #1426 (base is
gmorgan/FastLiveKit, so this diff is only the Argus preparation). There is no Argus SDK, Argus camera or Jetson available to the author, so none of the Argus path exists yet or has been tested. This PR does the part that does not need that hardware.core/camera_capture.hpp): a small vendor-neutralCameraCaptureinterface, a move-onlyFrameLease, and a tagged pixel type (borrowed CUDA RGBA for SIPL, leased NV12 DMA-BUF reserved for Argus). The release and DMA-BUF contracts are written down in the header.SiplCapture): a thin adapter with no extra copy; the output still copies the borrowed frame out after its pacing check, as before.SensingCameraandLiveKitVideoOutputtake the interface's frame type; other pixel types are rejected until an encoder input exists. Behaviour is intended to be unchanged.--camera-backend=auto|sipl|argus): chosen once at startup from each backend's probe result. An explicit request must match or fail with that backend's own reason (no silent fallback);autotakes the only match and otherwise names the override. Only SIPL is built in, soargusfails with "this build does not include that backend".poll()instead of looking like a healthy encoder; removed an unused per-frame stamp.Not done (needs an Orin or an Argus camera)
Type of change
Testing
clang-format-14; the SIPL adapter, selection andmain.cpppass a g++ syntax check.jetson_encoder.cppcould not be syntax-checked here (needs the Multimedia API headers).Checklist
SKIP=check-copyright-year pre-commit run --all-filesgit commit -s) per the DCO🤖 Generated with Claude Code