1 #ifndef INCLUDE_MUXER_H_
2 #define INCLUDE_MUXER_H_
7 #include <live_input_session.h>
9 #include <output_streamer.h>
10 #include <transcoder.h>
11 #include <video_streaming_protocol.h>
12 #include <urtp/handler.h>
81 Streamer(
const Params ¶ms, std::unique_ptr<EventsListener> &&eventsListener =
nullptr);
99 FeedData(
const net::SingleBuffer::Ptr &pkt);
122 constexpr static int MIN_SCALED_FRAME_SIZE = 32;
126 const std::unique_ptr<EventsListener> eventsListener;
127 misp::StreamingTarget target;
128 asio::io_context ioCtx;
130 misp::LiveInputSession inputSession;
131 std::unique_ptr<misp::OutputStreamer> outputStreamer;
132 Optional<misp::Transcoder> transcoder;
133 ev::ConnectionHandle inputStateConn, inputQueueStatusConn, outputQueueStatusConn, urtpStateConn;
136 asio::steady_timer telemetryTimer;
137 ProcessingContext statusEventsCtx;
138 std::thread statusEventsThread;
140 std::string klvTailNumber;
142 bool inputQueueOverflow =
false, outputQueueOveflow =
false;
152 HandleInputStateChange(misp::InputSession::State state);
158 OnTelemetryTimer(
const asio::error_code &error);
171 OnQueueOverflowStatus(
bool isInput,
bool status);
174 OnUrtpState(misp::urtp::UrtpHandler::State state, misp::urtp::UrtpHandler::ErrorCode errorCode,
175 const std::string &errorMsg);
178 CanAcceptData()
const