Commit Graph

15 Commits

Author SHA1 Message Date
crosstyan 16a1a38645 Make MCAP and depth support optional 2026-04-14 17:13:29 +08:00
crosstyan 965b03c053 fix(stream): preserve live outputs and disable idle exit by default
Preserve RTP/RTMP session continuity across upstream stream_reset events by
forcing a keyframe on restart, remapping live timestamps, and keeping live
outputs open when the runtime requests reset continuity.

Disable idle auto-exit by default by changing ingest_idle_timeout_ms to 0,
removing validation that rejected 0, and only enforcing idle shutdown when a
positive timeout is configured in pipeline and ingest loops.

Also suppress libavformat FLV trailer header backfill attempts on RTMP sockets
and update the RTP output tester for the newer publisher create signature.

Docs are updated to state that 0 disables the idle timeout.
2026-04-09 12:17:54 +08:00
crosstyan bb3ace43b7 Add encoded SHM passthrough support 2026-03-27 10:43:34 +08:00
crosstyan 2f74a9561d feat(zed): export depth at neural optimal resolution
Restrict ZED depth export to neural modes and default offline MCAP conversion to the SDK-selected optimal depth size instead of camera resolution.

Add a configurable --depth-size option, propagate the actual returned depth dimensions into DepthMap metadata, and emit a dedicated depth calibration topic when depth resolution differs from video.

Update the batch and recording helper scripts to use the new neural-only depth mode surface and pass through depth sizing.

Verification:
- cmake --build build --target zed_svo_to_mcap mcap_multi_record_tester mcap_pose_record_tester -j4
- build/bin/mcap_multi_record_tester
- build/bin/mcap_pose_record_tester
- build/bin/zed_svo_to_mcap --input /workspaces/data/kindergarten/jump/experiment/2/2026-03-18T11-27-15/2026-03-18T11-27-15_zed4.svo2 --output /tmp/zed4_neural_optimal_test.mcap --codec h264 --encoder-device software --mcap-compression zstd --depth-mode neural --depth-size optimal --start-frame 0 --end-frame 9
2026-03-24 16:01:46 +08:00
crosstyan ae19b881b0 feat: add mcap recorder control and cnats providers
Register an MCAP recorder service on the streamer control subjects, reuse the shared recording request and status model, and expose the zed recording preview/conversion helper.

This also replaces the temporary cnats boolean with the explicit CVMMAP_CNATS_PROVIDER modes and documents the supported system and workspace build paths.
2026-03-18 11:53:04 +08:00
crosstyan 0fef0595fb Add ZED SVO to MCAP conversion tool 2026-03-17 02:03:59 +00:00
crosstyan ee53d1958e refactor(streamer): consume control and body over NATS 2026-03-16 17:07:45 +08:00
crosstyan 172df30225 feat(record): add raw ZED body MCAP capture 2026-03-13 17:30:57 +08:00
crosstyan 59ff8b79d9 feat(record): add depth RVL recording to MCAP 2026-03-11 21:15:25 +08:00
crosstyan 782af9481c refactor(streamer): remove gstreamer and legacy rtmp paths 2026-03-11 16:43:29 +08:00
crosstyan 0ad6887095 refactor(streamer): adopt proxy backends and typed statuses 2026-03-10 23:29:59 +08:00
crosstyan 6af97ee5d3 feat(streamer): add ffmpeg encoder and mcap recording 2026-03-10 22:12:22 +08:00
crosstyan ec492fe985 refactor(input): consume cvmmap-core package 2026-03-06 14:42:07 +08:00
crosstyan 529de17eea refactor(cli): unify streamer and testers on CLI11 parsing 2026-03-06 08:49:58 +08:00
crosstyan 56e874ab6d feat(downstream): add cvmmap downstream runtime implementation
This commit introduces the full downstream runtime implementation needed to ingest, transform, and publish streams.

It preserves the original upstream request boundary by packaging the entire cvmmap-streamer module (build config, public API, protocol and IPC glue, and simulator/tester entrypoints) in one coherent core unit.

Keeping this group isolated enables reviewers to validate runtime behavior and correctness without mixing test evidence or process documentation changes.

Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-opencode)

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-03-05 20:31:58 +08:00