|
Agora C++ API Reference for All Platforms
|
14 #include "AgoraBase.h"
15 #include "api2/NGIAgoraAudioDeviceManager.h"
16 #include "api2/NGIAgoraExtensionProvider.h"
17 #include "api2/AgoraRefCountedObject.h"
18 #include "api2/NGIAgoraRtcConnection.h"
19 #include "api2/internal/media_recorder_i.h"
20 #include "IAgoraRtcEngineEx.h"
21 #include "rtc/rtc_event.h"
22 #include "utils/thread/thread_pool.h"
23 #include "main/extension_event_handler.h"
24 #include "base/time_utils.h"
27 extern HINSTANCE GetCurrentModuleInstance();
28 #elif defined(__ANDROID__) || defined(__linux__)
39 struct network_info_t;
47 virtual int getParameters(
const char* key, commons::cjson::JsonWrapper& result) = 0;
53 struct VideoNetOptions;
61 #ifdef INTERNAL_ENGINE_STATUS
72 #endif // INTERNAL_ENGINE_STATUS
182 #if defined(P2P_SWITCH_DEFAULT_VALUE)
194 #if defined(P2P_SWITCH_DEFAULT_VALUE)
218 virtual bool onEvent(RTC_EVENT evt, std::string* payload) {
235 virtual int getProfile(commons::cjson::JsonWrapper& result) = 0;
245 #if (defined(__APPLE__) && TARGET_OS_MAC && !TARGET_OS_IOS)
247 #endif // __APPLE__ && !TARGET_OS_IOS && TARGET_OS_MAC
249 virtual int printLog(
int level,
const char* message) = 0;
283 #if defined(FEATURE_ENABLE_UT_SUPPORT)
299 #if defined(__ANDROID__)
301 #endif // __ANDROID__
305 typedef const char*(AGORA_CALL* PFN_GetAgoraRtcEngineVersion)(
int* build);
306 typedef IRtcEngine*(AGORA_CALL* PFN_CreateAgoraRtcEngine)();
307 typedef void(AGORA_CALL* PFN_ShutdownAgoraRtcEngineService)();
310 typedef HINSTANCE lib_handle_t;
311 static HINSTANCE MyLoadLibrary(
const char* dllname) {
313 GetModuleFileNameA(GetCurrentModuleInstance(), path, MAX_PATH);
314 auto p = strrchr(path,
'\\');
315 strcpy(p + 1, dllname);
316 HINSTANCE hDll = LoadLibraryA(path);
317 if (hDll)
return hDll;
319 hDll = LoadLibraryA(dllname);
323 typedef void* lib_handle_t;
331 m_pfnCreateAgoraRtcEngine(nullptr),
332 m_pfnGetAgoraRtcEngineVersion(nullptr) {}
339 if (m_dllName.empty()) {
345 m_lib = MyLoadLibrary(m_dllName.c_str());
347 m_pfnCreateAgoraRtcEngine =
348 (PFN_CreateAgoraRtcEngine)GetProcAddress(m_lib,
"createAgoraRtcEngine");
349 m_pfnGetAgoraRtcEngineVersion =
350 (PFN_GetAgoraRtcEngineVersion)GetProcAddress(m_lib,
"getAgoraRtcEngineVersion");
352 #elif defined(__ANDROID__) || defined(__linux__)
353 m_lib = dlopen(m_dllName.c_str(), RTLD_LAZY);
355 m_pfnCreateAgoraRtcEngine = (PFN_CreateAgoraRtcEngine)dlsym(m_lib,
"createAgoraRtcEngine");
356 m_pfnGetAgoraRtcEngineVersion =
357 (PFN_GetAgoraRtcEngineVersion)dlsym(m_lib,
"getAgoraRtcEngineVersion");
368 #elif defined(__ANDROID__) || defined(__linux__)
375 m_pfnCreateAgoraRtcEngine =
nullptr;
376 m_pfnGetAgoraRtcEngineVersion =
nullptr;
381 bool isValid() {
return m_pfnCreateAgoraRtcEngine != NULL; }
384 return m_pfnCreateAgoraRtcEngine ? m_pfnCreateAgoraRtcEngine() : NULL;
388 return m_pfnGetAgoraRtcEngineVersion ? m_pfnGetAgoraRtcEngineVersion(build) :
nullptr;
394 std::string m_dllName;
395 PFN_CreateAgoraRtcEngine m_pfnCreateAgoraRtcEngine;
396 PFN_GetAgoraRtcEngineVersion m_pfnGetAgoraRtcEngineVersion;
421 #define NUM_OF_LAYOUT_REGIONS 17
virtual uint32_t getCid(const RtcConnection &connection={})=0
virtual int soundPositionChannel(uid_t uid, const RtcConnection &connection)=0
virtual int stopRecording(const char *channelId, uid_t uid, bool isLocal)=0
int recfreq
Definition: rtc_engine_i.h:63
virtual int getVideoConfigParam(char *params, size_t size)=0
Definition: rtc_engine_i.h:304
unsigned int ts
Definition: rtc_engine_i.h:153
@ APP_TYPE_RUST
Definition: rtc_engine_i.h:138
virtual int reportRecordingArgusEvent(uint32_t *eventIds, int64_t *value, int count, RecordingEventType eventType)=0
@ APP_TYPE_UNITY
Definition: rtc_engine_i.h:129
@ APP_TYPE_APICLOUD
Definition: rtc_engine_i.h:134
user_id_t userId
Definition: rtc_engine_i.h:207
virtual const char * eventHandlerType() const
Definition: rtc_engine_i.h:216
IRtcEngineEventHandler * eventHandler
Definition: IAgoraRtcEngine.h:3120
Definition: rtc_engine_i.h:206
std::array< uint8_t, 32 > encryptionKdfSalt
Definition: rtc_engine_i.h:450
RecordingEventKeyIndex
Definition: rtc_engine_i.h:83
Definition: rtc_engine_i.h:144
Definition: AgoraRefPtr.h:44
virtual int setProfile(const char *profile, bool merge)=0
@ RECORDING_JOIN_EVT_MAX
Definition: rtc_engine_i.h:109
virtual void onVideoTransportPacketInfo(const video_transport_packet_info &info)=0
virtual int runOnWorkerThread(std::function< void(void)> &&f)=0
@ SCREEN_SHARING_NORMAL
Definition: rtc_engine_i.h:59
virtual int releaseRecorder(const char *channelId, uid_t uid, bool isLocal)=0
double x
Definition: rtc_engine_i.h:410
unsigned int frame_num
Definition: rtc_engine_i.h:146
ENCRYPTION_MODE encryptionMode
Definition: rtc_engine_i.h:448
region_info regions[NUM_OF_LAYOUT_REGIONS]
Definition: rtc_engine_i.h:428
Definition: rtc_engine_i.h:165
@ RECORDING_JOIN_EVT_MAXUDPPORT
Definition: rtc_engine_i.h:93
virtual int printLog(int level, const char *message)=0
uid_t uid
Definition: rtc_engine_i.h:145
@ RECORDING_LEAVE_EVT_RESERVE5
Definition: rtc_engine_i.h:118
int audio_send_frame_rate
Definition: rtc_engine_i.h:65
INTERFACE_ID_EX_TYPE
Definition: rtc_engine_i.h:55
int delay
Definition: rtc_engine_i.h:208
Definition: IAgoraRtcEngineEx.h:42
@ RECORDING_JOIN_EVT_LANGUAGE
Definition: rtc_engine_i.h:103
@ RECORDING_EVENT_UNKNOWN
virtual int soundPositionChannel(uid_t uid)=0
const char * getVersion(int *build)
Definition: rtc_engine_i.h:387
@ APP_TYPE_C_SHARP
Definition: rtc_engine_i.h:139
const char * user_id_t
Definition: AgoraBase.h:799
virtual int setParametersInternal(const char *parameters)=0
unsigned int sent_ts
Definition: rtc_engine_i.h:147
virtual int setupAudioAttributeContext(void *audioAttr)=0
Definition: AgoraBase.h:1774
@ APP_TYPE_CEF
Definition: rtc_engine_i.h:140
double height
Definition: rtc_engine_i.h:413
int bgcolor
Definition: rtc_engine_i.h:404
virtual int setCameraDevice(const char dev_id[MAX_DEVICE_ID_LENGTH])=0
Definition: rtc_engine_i.h:214
@ RECORDING_JOIN_EVT_RESERVE1
Definition: rtc_engine_i.h:104
@ APP_TYPE_NATIVE
Definition: rtc_engine_i.h:127
canvas_info canvas
Definition: rtc_engine_i.h:425
Definition: rtc_engine_i.h:423
virtual bool onEvent(RTC_EVENT evt, std::string *payload)
Definition: rtc_engine_i.h:218
@ APP_TYPE_COCOS
Definition: rtc_engine_i.h:128
@ RECORDING_JOIN_EVT_MIXMODE
Definition: rtc_engine_i.h:86
int audio_recv_packet_rate
Definition: rtc_engine_i.h:67
agora_refptr< IMediaExtensionObserver > extensionObserver
Definition: rtc_engine_i.h:170
Definition: rtc_engine_i.h:157
Definition: AgoraRefCountedObject.h:63
Definition: rtc_engine_i.h:401
Definition: AgoraAtomicOps.h:21
virtual int getParameters(const char *key, commons::cjson::JsonWrapper &result)=0
@ RECORDING_JOIN_EVT_AUDIOONLY
Definition: rtc_engine_i.h:98
@ APP_TYPE_UNI_APP
Definition: rtc_engine_i.h:141
@ RECORDING_JOIN_EVT_LIVEMODE
Definition: rtc_engine_i.h:96
int render_mode
Definition: rtc_engine_i.h:417
unsigned int sent_ts
Definition: rtc_engine_i.h:154
int sentFrameRate
Definition: rtc_engine_i.h:209
@ SCREEN_SHARING_MOVIE
Definition: rtc_engine_i.h:59
virtual int32_t setAppType(APP_TYPE appType)=0
@ RECORDING_JOIN_EVT_TRIGGERMODE
Definition: rtc_engine_i.h:102
virtual int enableYuvDumper(bool enable)=0
virtual void onAudioTransportPacketInfo(const audio_transport_packet_info &info)=0
void ToEncryptionConfig(EncryptionConfig &config) const
Definition: rtc_engine_i.h:440
@ RECORDING_JOIN_EVT_MIXEDVIDEOAUDIOMODE
Definition: rtc_engine_i.h:87
SCREEN_SHARING_MODE
Definition: rtc_engine_i.h:59
virtual int GetScreenCaptureType()=0
@ RECORDING_JOIN_EVT_IDLE
Definition: rtc_engine_i.h:97
virtual int reportArgusCounters(int *counterId, int *value, int count, uid_t uid)=0
virtual const char * getSid(const RtcConnection &connection={})=0
virtual ~IParameterEngine()
Definition: rtc_engine_i.h:48
Definition: rtc_engine_i.h:62
virtual int switchCameraId(const char *cameraId)=0
virtual int reportWebAgentVideoStats(const WebAgentVideoStats &stats)=0
@ RECORDING_JOIN_EVT_DECODEAUDIOTYPE
Definition: rtc_engine_i.h:94
virtual int getProfile(commons::cjson::JsonWrapper &result)=0
virtual ~IRtcEngineInternal()
Definition: rtc_engine_i.h:230
@ RECORDING_JOIN_EVT_MIXHIGH
Definition: rtc_engine_i.h:88
ENCRYPTION_MODE encryptionMode
Definition: AgoraBase.h:5580
int audio_send_packet_rate
Definition: rtc_engine_i.h:66
Definition: rtc_engine_i.h:228
int maxOutputBitrateKpbs
Definition: rtc_engine_i.h:167
@ APP_TYPE_COCOS_CREATOR
Definition: rtc_engine_i.h:137
@ RECORDING_JOIN_EVT_START
Definition: rtc_engine_i.h:85
virtual int initializeInternal(const RtcEngineContextInternal &context)=0
EncryptionConfigInternal(const EncryptionConfig &config)
Definition: rtc_engine_i.h:433
@ APP_TYPE_FLUTTER
Definition: rtc_engine_i.h:131
unsigned int ts
Definition: rtc_engine_i.h:148
virtual int setLogLevelEx(unsigned int filter)=0
virtual std::string getRecentSid(const RtcConnection *connection=nullptr)=0
int skippedFrames
Definition: rtc_engine_i.h:211
void deinitialize()
Definition: rtc_engine_i.h:364
Definition: IAgoraRtcEngineEx.h:20
uint8_t encryptionKdfSalt[32]
Definition: AgoraBase.h:5593
ENCRYPTION_MODE
Definition: AgoraBase.h:5543
int farin_signal_level
Definition: rtc_engine_i.h:70
Definition: IAgoraRtcEngineEx.h:1032
int alpha
Definition: rtc_engine_i.h:415
@ RECORDING_JOIN_EVT_MINUDPPORT
Definition: rtc_engine_i.h:92
virtual int simulateOnSetParameters(const std::string ¶meters)=0
virtual int setExternalVideoConfigEx(const VideoEncoderConfiguration &config, const RtcConnection &connection)=0
virtual int setAudioOptionParams(const char *params)=0
bool isPassThruMode
Definition: rtc_engine_i.h:166
virtual int setExternalVideoConfigEx(const VideoEncoderConfiguration &config)=0
@ RECORDING_JOIN_EVT_VIDEOONLY
Definition: rtc_engine_i.h:99
agora::rtc::IRtcEngine * createEngine()
Definition: rtc_engine_i.h:383
long long ms
Definition: rtc_engine_i.h:424
virtual int initializeEx(const RtcEngineContextInternal &context)=0
int renderedFrameRate
Definition: rtc_engine_i.h:210
unsigned id
Definition: rtc_engine_i.h:408
AGORA_API bool AGORA_CALL decode_sei_layout(const void *data, unsigned size, layout_info *layout)
virtual int setMediaRecorderObserver(const char *channelId, uid_t uid, bool isLocal, media::IMediaRecorderObserverEx *observer, int sys_version=0)=0
Definition: AgoraBase.h:5575
@ RECORDING_JOIN_EVT_MIXKBPS
Definition: rtc_engine_i.h:91
@ RECORDING_JOIN_EVT_SYSLOGFACILITY
Definition: rtc_engine_i.h:100
@ AGORA_IID_RTC_ENGINE_EX
Definition: rtc_engine_i.h:56
@ RECORDING_LEAVE_EVT_START
Definition: rtc_engine_i.h:112
double width
Definition: rtc_engine_i.h:412
bool datastreamEncryptionEnabled
Definition: AgoraBase.h:5595
Definition: rtc_engine_i.h:407
bool initialize()
Definition: rtc_engine_i.h:334
int height
Definition: rtc_engine_i.h:403
Definition: rtc_engine_i.h:44
RecordingEventType
Definition: rtc_engine_i.h:74
@ RECORDING_LEAVE_EVT_LEAVEPATHCODE
Definition: rtc_engine_i.h:113
@ APP_TYPE_REACT_NATIVE
Definition: rtc_engine_i.h:135
~RtcEngineLibHelper()
Definition: rtc_engine_i.h:379
int zorder
Definition: rtc_engine_i.h:418
int playoutfreq
Definition: rtc_engine_i.h:64
virtual agora_refptr< IMediaPlayer > getMediaPlayer(int sourceId)=0
virtual void SetScreenCaptureSource(bool allow_magnification_api, bool allow_directx_capturer)=0
Definition: IAgoraRtcEngine.h:3116
bool isValid()
Definition: rtc_engine_i.h:381
Definition: IAgoraRtcEngine.h:3607
uid_t uid
Definition: rtc_engine_i.h:152
bool datastreamEncryptionEnabled
Definition: rtc_engine_i.h:451
@ APP_TYPE_ELECTRON
Definition: rtc_engine_i.h:130
@ RECORDING_JOIN_EVT_MIXFPS
Definition: rtc_engine_i.h:90
virtual ~IRtcAvTransportPacketInfoObserver()=default
bool is_p2p_switch_enabled_
Definition: rtc_engine_i.h:175
@ RECORDING_JOIN_EVT_DECODEVIDEOTYPE
Definition: rtc_engine_i.h:95
const char * encryptionKey
Definition: AgoraBase.h:5586
@ APP_TYPE_INVALID_VALUE
Definition: rtc_engine_i.h:126
int width
Definition: rtc_engine_i.h:402
virtual int monitorDeviceChange(bool enabled)=0
virtual int startRecording(const char *channelId, uid_t uid, bool isLocal, const media::MediaRecorderConfiguration &config)=0
Definition: rtc_engine_i.h:151
APP_TYPE
Definition: rtc_engine_i.h:125
unsigned int uid_t
Definition: AgoraMediaBase.h:29
@ RECORDING_LEAVE_EVT_RESERVE1
Definition: rtc_engine_i.h:114
virtual agora_refptr< IRtcConnection > getConnection(const RtcConnection &connection={}) const =0
std::string encryptionKey
Definition: rtc_engine_i.h:449
double y
Definition: rtc_engine_i.h:411
virtual int getAudioOptionParams(char *params)=0
@ APP_TYPE_PYTHON
Definition: rtc_engine_i.h:136
virtual bool isMicrophoneOn()=0
int nearout_signal_level
Definition: rtc_engine_i.h:69
@ RECORDING_JOIN_EVT_STREAMTYPE
Definition: rtc_engine_i.h:101
virtual int setVideoConfigParam(const char *params)=0
unsigned int region_count
Definition: rtc_engine_i.h:427
RtcEngineLibHelper(const char *dllname)
Definition: rtc_engine_i.h:327
@ MAX_RECORDING_JOIN_EVT_RESERVE15
Definition: rtc_engine_i.h:108
Definition: video_node_i.h:26
@ APP_TYPE_XAMARIN
Definition: rtc_engine_i.h:133
virtual int notifyNetworkChange(agora::commons::network::network_info_t &&networkInfo)=0
@ RECORDING_LEAVE_EVT_MAX
Definition: rtc_engine_i.h:119
@ APP_TYPE_UNREAL
Definition: rtc_engine_i.h:132
Definition: rtc_engine_i.h:431
@ RECORDING_JOIN_EVT_MIXLOW
Definition: rtc_engine_i.h:89
int nearin_signal_level
Definition: rtc_engine_i.h:68
virtual int32_t enableVosUserInfoHidden(bool enabled)=0