Repository navigation
sensing: capture-backend rearchitecture (interface, selection, SIPL adapter) ahead of Argus (draft) - #1428
Open
gareth-morgan-nv wants to merge 8 commits into
Open
sensing: capture-backend rearchitecture (interface, selection, SIPL adapter) ahead of Argus (draft)#1428gareth-morgan-nv wants to merge 8 commits into
gareth-morgan-nv wants to merge 8 commits into
Conversation
Contributor
|
Important Review skippedAuto reviews are disabled on base/target branches other than the default branch. Please check the settings in the CodeRabbit UI or the
|
5 of 9 tasks
gareth-morgan-nv
marked this pull request as ready for review
November 5, 2026 17:23
Open
6 of 9 tasks
gareth-morgan-nv
had a problem deploying
to
dev
November 5, 2026 18:00 — with
GitHub Actions
Failure
gareth-morgan-nv
had a problem deploying
to
dev
November 5, 2026 22:33 — with
GitHub Actions
Failure
gareth-morgan-nv
force-pushed
the
gmorgan/FastLiveKit
branch
from
November 6, 2026 01:42
98ffdf6 to
5e8731a
Compare
gareth-morgan-nv
force-pushed
the
gmorgan/RearchBackend
branch
from
November 6, 2026 01:42
6d1bf9a to
cf8dba3
Compare
gareth-morgan-nv
force-pushed
the
gmorgan/FastLiveKit
branch
from
November 6, 2026 05:39
5e8731a to
3410931
Compare
gareth-morgan-nv
force-pushed
the
gmorgan/RearchBackend
branch
2 times, most recently
from
November 6, 2026 05:42
0288b95 to
5341f7a
Compare
gareth-morgan-nv
force-pushed
the
gmorgan/FastLiveKit
branch
from
November 6, 2026 18:04
a35d41d to
99c2446
Compare
gareth-morgan-nv
force-pushed
the
gmorgan/RearchBackend
branch
from
November 6, 2026 18:04
5341f7a to
ab263f4
Compare
gareth-morgan-nv
force-pushed
the
gmorgan/FastLiveKit
branch
from
November 6, 2026 20:31
99c2446 to
e7c9571
Compare
gareth-morgan-nv
force-pushed
the
gmorgan/RearchBackend
branch
from
November 6, 2026 20:31
ab263f4 to
b9c18a5
Compare
…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 <[email protected]> Signed-off-by: Gareth Morgan <[email protected]>
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 <[email protected]> Signed-off-by: Gareth Morgan <[email protected]>
…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 <[email protected]> Signed-off-by: Gareth Morgan <[email protected]>
…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 <[email protected]> Signed-off-by: Gareth Morgan <[email protected]>
…rom poll, document the flag Co-Authored-By: Claude Sonnet 5.5 <[email protected]> Signed-off-by: Gareth Morgan <[email protected]>
… 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 <[email protected]> Signed-off-by: Gareth Morgan <[email protected]>
…able for a match Co-Authored-By: Claude Sonnet 5.5 <[email protected]> Signed-off-by: Gareth Morgan <[email protected]>
Co-Authored-By: Claude Sonnet 5.5 <[email protected]> Signed-off-by: Gareth Morgan <[email protected]>
gareth-morgan-nv
force-pushed
the
gmorgan/RearchBackend
branch
from
November 6, 2026 22:37
b9c18a5 to
69d7c23
Compare
gareth-morgan-nv
force-pushed
the
gmorgan/FastLiveKit
branch
from
November 6, 2026 22:37
e7c9571 to
67c409f
Compare
This branch was successfully 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 capture-backend rearchitecture). The Argus backend itself will be a further branch (gmorgan/Argus) on top of this one. 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