12 #include "AgoraRefPtr.h"
14 #include "IAgoraService.h"
15 #include "IAgoraLog.h"
17 #include "audio_options_i.h"
18 #include "bitrate_constraints.h"
27 class AgoraGenericBridge;
29 class IDiagnosticService;
31 class PredefineIpList;
33 struct RtcConnectionConfigurationEx;
34 class IMediaExtensionObserver;
39 struct AudioSessionParam;
49 typedef agora::commons::cjson::JsonWrapper any_document_t;
52 class IAgoraServiceObserver;
54 enum MediaEngineType {
70 MediaEngineType engineType = MEDIA_ENGINE_WEBRTC;
71 const char* deviceId =
nullptr;
72 const char* deviceInfo =
nullptr;
73 const char* systemInfo =
nullptr;
74 const char* configDir =
nullptr;
75 const char* dataDir =
nullptr;
76 const char* pluginDir =
nullptr;
80 bitrateConstraints.start_bitrate_bps = kDefaultStartBitrateBps;
81 bitrateConstraints.max_bitrate_bps = kDefaultMaxBitrateBps;
86 bitrateConstraints.max_bitrate_bps = kDefaultMaxBitrateBps;
87 bitrateConstraints.start_bitrate_bps = kDefaultStartBitrateBps;
91 static constexpr
int kDefaultMaxBitrateBps = (24 * 10 * 1000 * 95);
92 static constexpr
int kDefaultStartBitrateBps = 300000;
100 static const char* getSourceVersion();
105 virtual int panic(
void* exception) = 0;
108 virtual event_base* getWorkerEventBase() = 0;
109 virtual agora::rtc::AgoraGenericBridge* getBridge() = 0;
110 virtual BaseContext& getBaseContext() = 0;
111 virtual void setBaseContext(BaseContext* context) = 0;
116 virtual rtc::ConfigService* getConfigService() = 0;
120 virtual const std::string& getAppId()
const = 0;
124 virtual void enableStringUid(
bool enabled) = 0;
125 virtual bool useStringUid()
const = 0;
126 virtual rtc::uid_t getUidByUserAccount(
const std::string& user_account)
const = 0;
129 virtual void registerLocalUserAccount(
const char* appId,
const char* userAccount) = 0;
136 virtual std::shared_ptr<utils::RtcAsyncCallback<rtc::IMediaExtensionObserver>> getExtensionCallback()
const = 0;
137 virtual rtc::XdumpHandler* getXdumpHandler()
const = 0;
146 virtual void onLocalUserRegistered(rtc::uid_t uid,
const char* userAccount) = 0;