Commit Graph
2 Commits
Author SHA1 Message Date
AngePierreandClaude Opus 5 cabca69c4d wrapper: build libk4arecord_v2.so — the library the recorder actually dlopens
The recorder does not load the stock libk4a/libk4arecord. It dlopens a single
custom libk4arecord_v2.so: the wrapper's MKV-writing sources linked to a
pure-data shim (k4a_shim.cpp) instead of libk4a, so recording has no OrbbecSDK
dependency. That target is FTF's own (wrapper/recordv2/), absent from the stock
wrapper the Orin carried — so ship it and inject+build it, the same pattern as
the recorder in the SDK examples tree. Idempotent; only added when missing.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-09-10 17:26:06 +02:00
AngePierreandClaude Opus 5 23b30ac1e8 Add the MKV recorder so a node can Record, not only preview
The recorder was the gap: it is FTF's own customised SDK example (a 1139-line
K4A MKV writer), not a stock sample, and it lived only in one machine's build
tree. Bring its source into the repo and build it as part of install.

It writes K4A-format MKV — the format the rest of Ithaca reads — so it stays,
and gets its libk4a from the Orbbec K4A wrapper rather than Microsoft's Azure
Kinect SDK, which is set aside. build_k4a_wrapper.sh builds that wrapper;
build_sdk.sh injects the recorder into the SDK examples tree and builds it there
against the wrapper (it depends on the SDK's own cmake targets). Found by rpath
at runtime, so no LD_LIBRARY_PATH.

install.sh now builds wrapper -> SDK+recorder -> preview server, each reusing an
existing build so the Nano is untouched. If the wrapper is unavailable the
install still completes preview-only and says so.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-09-10 16:21:44 +02:00