/** * @file src/stream.h * @brief todo */ #pragma once #include #include "audio.h" #include "crypto.h" #include "video.h" namespace stream { constexpr auto VIDEO_STREAM_PORT = 9; constexpr auto CONTROL_PORT = 10; constexpr auto AUDIO_STREAM_PORT = 11; struct session_t; struct config_t { audio::config_t audio; video::config_t monitor; int packetsize; int minRequiredFecPackets; int mlFeatureFlags; int controlProtocolType; int audioQosType; int videoQosType; uint32_t encryptionFlagsEnabled; std::optional gcmap; }; namespace session { enum class state_e : int { STOPPED, STOPPING, STARTING, RUNNING, }; std::shared_ptr alloc(config_t &config, rtsp_stream::launch_session_t &launch_session); int start(session_t &session, const std::string &addr_string); void stop(session_t &session); void join(session_t &session); state_e state(session_t &session); } // namespace session } // namespace stream