feat: add shared TTY progress bars for ZED offline tools

Extract the tqdm-like stderr progress bar into a shared helper and reuse it across zed_svo_to_mp4, zed_svo_grid_to_mp4, and zed_svo_to_mcap.

For zed_svo_to_mcap, single-source exports now report exact frame totals and bundled multi-camera exports report exact synced-group totals on TTY. When bundled mode runs without --end-frame, the tool performs a counting pass first so the progress total remains exact instead of estimated.

Also document the bundled MCAP progress behavior in the README and record the current third_party dependency state in third_party/README. That note now makes it explicit that CLI11 and proxy are the active submodules, while tomlplusplus and mcap are vendored source drops, and adds a TODO to revisit converting mcap into a submodule later.

Verified with the Debug build during implementation, including single-camera and bundled zed_svo_to_mcap runs that rendered clean progress output to a TTY.
This commit is contained in:
2026-03-20 10:19:19 +00:00
parent 039379f5fe
commit 1369f5235d
10 changed files with 307 additions and 135 deletions
+7
View File
@@ -8,9 +8,16 @@ Dependencies:
- `tomlplusplus` (vendored source drop): TOML parsing, target `tomlplusplus::tomlplusplus`
- `mcap` (vendored source drop): MCAP headers, target `mcap::mcap`
Current submodule state:
- Active git submodules: `third_party/CLI11`, `third_party/proxy`
- Vendored source drops: `third_party/tomlplusplus`, `third_party/mcap`
Bootstrap:
- `git submodule sync --recursive`
- `git submodule update --init --recursive`
Rule:
- New vendored dependencies must live under `third_party/` and be exposed through `third_party/CMakeLists.txt`.
TODO:
- Revisit `third_party/mcap` and convert it from a vendored source drop to a git submodule once the local Zstd fix is either upstreamed or moved into a maintained fork.