refactor(streamer): adopt proxy backends and typed statuses
This commit is contained in:
@@ -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);
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user