1#ifndef MILLICAST_API_CLIENT_H
2#define MILLICAST_API_CLIENT_H
33enum class DegradationPreferences {
55struct BitrateSettings {
56 bool disable_bwe{
true};
57 std::optional<int> min_bitrate_kbps;
58 std::optional<int> max_bitrate_kbps;
80 bool auto_reconnect{
true};
87 std::optional<bool> stereo;
91 int stats_delay_ms{3000};
94 std::optional<DegradationPreferences>
98 std::string rtc_event_log_output_path;
105struct ClientJsonData {
112 using ConnectionOptions = ClientConnectionOptions;
113 using Option = ClientOption;
114 using JsonData = ClientJsonData;
116 virtual ~ClientBase() =
default;
123 static std::list<std::string> get_supported_video_codecs();
130 static std::list<std::string> get_supported_audio_codecs();
136 static void cleanup();
155 std::shared_ptr<StatsReport> report{};
173 struct SignalingError {
177 std::string description;
184 struct HttpConnectionError {
192 std::string description;
201 enum class ConnectionState {
213 struct WebsocketState {
217 ConnectionState state;
223 struct PeerConnectionState {
227 ConnectionState state;
238 virtual Promise<void> connect(
239 std::optional<ConnectionOptions>&& connection_options) = 0;
250 virtual Promise<void> connect(
252 std::optional<ConnectionOptions>&& connection_options) = 0;
259 [[nodiscard]]
virtual Promise<bool> is_connected()
const = 0;
269 virtual Promise<void> disconnect() = 0;
277 virtual Promise<void> enable_stats(
bool enable) = 0;
#define MILLICAST_API
Definition exports.h:51