16#include <boost/endian/arithmetic.hpp>
18#include <fmt/format.h>
20#include <llnetio/ipv4.hpp>
21#include <llnetio/mudpi/io.hpp>
22#include <llnetio/rtms/io.hpp>
23#include <llnetio/rtms/rtms.hpp>
24#include <llnetio/udpSocket.hpp>
25#include <llnetio/mockSocket.hpp>
76 const std::string& dest_ip,
78 const int8_t bytes_per_pixel,
79 const size_t raw_image_size,
90 const std::vector<uint8_t>& sample_payload);
100 void LogConnRefusedIfNeeded(
const char* where,
const std::error_code& ec);
102 std::string m_src_ip;
103 std::string m_dest_ip;
105 int8_t m_bytes_per_pixel;
106 size_t m_raw_image_size;
109 size_t m_pixels_per_sample;
110 size_t m_current_raw_image_size{0};
111 int32_t m_nb_of_udp_packets;
113 llnetio::UdpTxSocket::Config m_udp_cfg{};
114 std::unique_ptr<llnetio::UdpTxSocket> m_udp_socket;
115 llnetio::mudpi::Sender::Config m_mudpi_cfg{};
116 std::unique_ptr<llnetio::mudpi::Sender> m_mudpi_sender;
117 llnetio::rtms::Sender::Config m_rtms_cfg{};
118 std::unique_ptr<llnetio::rtms::Sender> m_rtms_sender;
120 std::vector<uint8_t> m_packed_ext_info;
123 std::chrono::steady_clock::time_point m_last_conn_refused_log{};
124 std::uint64_t m_conn_refused_errors{0};
int SendSample(const SampleExtInfo &ext_info, const std::vector< uint8_t > &sample_payload)
User provided method to send an image as an RTMS Sample.
Definition rtmsSender.cpp:176
uint32_t m_sample_id
Definition rtmsSender.hpp:94
RtmsSender(const std::string &src_ip, const std::string &dest_ip, const int dest_port, const int8_t bytes_per_pixel, const size_t raw_image_size, const SenderConfig &sndr_cfg=SenderConfig())
Simple RTMS Sender class.
Definition rtmsSender.cpp:63
int GetPixelsPerSample() const
Definition rtmsSender.cpp:459
virtual ~RtmsSender()
Definition rtmsSender.cpp:84
Definition sampleExtInfo.hpp:33
Definition rtmsSender.hpp:33
uint16_t component_id
Definition rtmsSender.hpp:39
bool simulation
Definition rtmsSender.hpp:40
uint16_t mtu_size
Definition rtmsSender.hpp:37
SenderConfig()
Definition rtmsSender.hpp:35
bool ignore_connection_refused
Definition rtmsSender.hpp:49
int32_t topic_id
Definition rtmsSender.hpp:38
int16_t packet_send_delay
Definition rtmsSender.hpp:45
ExtendedInfoMode ext_info_mode
Definition rtmsSender.hpp:43
Common utilities for RTMS Lib.
Definition common.cpp:21
ExtendedInfoMode
Definition common.hpp:29
@ None
Leader packets carry no extended info.
Definition common.hpp:30