/** * @file src/rtsp.h * @brief Declarations for RTSP streaming. */ #pragma once #include #include "crypto.h" #include "thread_safe.h" namespace rtsp_stream { constexpr auto RTSP_SETUP_PORT = 21; struct launch_session_t { uint32_t id; crypto::aes_t gcm_key; crypto::aes_t iv; std::string av_ping_payload; uint32_t control_connect_data; bool host_audio; std::string device_name; std::string unique_id; int width; int height; int fps; int gcmap; int appid; int surround_info; std::string surround_params; bool enable_hdr; bool enable_sops; bool virtual_display; uint32_t scale_factor; std::optional rtsp_cipher; std::string rtsp_url_scheme; uint32_t rtsp_iv_counter; #ifdef _WIN32 GUID display_guid{}; #endif }; void launch_session_raise(std::shared_ptr launch_session); /** * @brief Clear state for the specified launch session. * @param launch_session_id The ID of the session to clear. */ void launch_session_clear(uint32_t launch_session_id); int session_count(); void rtpThread(); } // namespace rtsp_stream