56e874ab6d
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>
39 lines
834 B
C++
39 lines
834 B
C++
#pragma once
|
|
|
|
#include <cstdint>
|
|
#include <span>
|
|
#include <string_view>
|
|
|
|
#include "cvmmap_streamer/ipc/contracts.hpp"
|
|
|
|
namespace cvmmap_streamer::sim {
|
|
|
|
constexpr std::size_t kSyncMessageBytes = 48;
|
|
constexpr std::size_t kModuleStatusMessageBytes = 32;
|
|
|
|
void write_frame_metadata(
|
|
std::span<std::uint8_t> metadata,
|
|
const ipc::FrameInfo &info,
|
|
std::uint32_t frame_count,
|
|
std::uint64_t timestamp_ns);
|
|
|
|
void write_sync_message(
|
|
std::span<std::uint8_t> out,
|
|
std::string_view label,
|
|
std::uint32_t frame_count,
|
|
std::uint64_t timestamp_ns);
|
|
|
|
void write_module_status_message(
|
|
std::span<std::uint8_t> out,
|
|
std::string_view label,
|
|
ipc::ModuleStatus status);
|
|
|
|
void write_deterministic_payload(
|
|
std::span<std::uint8_t> out,
|
|
std::uint32_t frame_count,
|
|
std::uint16_t width,
|
|
std::uint16_t height,
|
|
std::uint8_t channels);
|
|
|
|
}
|