#pragma once #include #include namespace cms { // Immutable when published. Stride is explicit; no borrowed camera/GPU memory. struct BgrImage { int width{}, height{}, stride{}; std::vector pixels; }; struct BinaryMask { int width{}, height{}, stride{}; std::vector pixels; }; struct CaptureMetadata { std::uint64_t frame_index{}; std::uint32_t driver_sequence{}; std::uint64_t driver_timestamp_ns{}; std::uint64_t received_monotonic_ns{}; std::uint64_t capture_monotonic_ns{}; bool driver_timestamp_monotonic{}; std::uint32_t skipped_driver_frames{}; std::uint32_t discarded_error_frames{}; }; }