refactor(streamer): adopt proxy backends and typed statuses

This commit is contained in:
2026-03-10 23:29:59 +08:00
parent 6af97ee5d3
commit 0ad6887095
22 changed files with 1686 additions and 275 deletions
@@ -0,0 +1,30 @@
#pragma once
#include "cvmmap_streamer/config/runtime_config.hpp"
#include "cvmmap_streamer/core/status.hpp"
#include "cvmmap_streamer/encode/encoded_access_unit.hpp"
#include <string_view>
#include <proxy/proxy.h>
namespace cvmmap_streamer::protocol {
PRO_DEF_MEM_DISPATCH(MemBackendName, backend_name);
PRO_DEF_MEM_DISPATCH(MemPublishAccessUnit, publish_access_unit);
PRO_DEF_MEM_DISPATCH(MemLogMetrics, log_metrics);
struct RtmpOutputFacade : pro::facade_builder
::add_convention<MemBackendName, std::string_view() const>
::add_convention<MemPublishAccessUnit, Status(const encode::EncodedAccessUnit &)>
::add_convention<MemLogMetrics, void() const>
::build {};
using RtmpOutput = pro::proxy<RtmpOutputFacade>;
[[nodiscard]]
Result<RtmpOutput> make_rtmp_output(
const RuntimeConfig &config,
const encode::EncodedStreamInfo &stream_info);
}