31 lines
858 B
C++
31 lines
858 B
C++
#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);
|
|
|
|
}
|