Agora C++ API Reference for All Platforms
|
13 #include "AgoraBase.h"
14 #include "api2/NGIAgoraAudioDeviceManager.h"
15 #include "api2/NGIAgoraExtensionProvider.h"
16 #include "api2/AgoraRefCountedObject.h"
17 #include "IAgoraRtcEngineEx.h"
18 #include "rtc/rtc_event.h"
19 #include "utils/thread/thread_pool.h"
20 #include "main/extension_event_handler.h"
23 extern HINSTANCE GetCurrentModuleInstance();
24 #elif defined(__ANDROID__) || defined(__linux__)
31 struct network_info_t;
36 struct VideoNetOptions;
38 struct CmdInjectStreamConfig;
47 #ifdef INTERNAL_ENGINE_STATUS
58 #endif // INTERNAL_ENGINE_STATUS
146 #if defined(P2P_SWITCH_DEFAULT_VALUE)
158 #if defined(P2P_SWITCH_DEFAULT_VALUE)
182 virtual bool onEvent(RTC_EVENT evt, std::string* payload) {
215 #if (defined(__APPLE__) && TARGET_OS_MAC && !TARGET_OS_IOS)
217 #endif // __APPLE__ && !TARGET_OS_IOS && TARGET_OS_MAC
219 virtual int printLog(
int level,
const char* message) = 0;
251 #if defined(FEATURE_ENABLE_UT_SUPPORT)
259 typedef const char*(AGORA_CALL* PFN_GetAgoraRtcEngineVersion)(
int* build);
260 typedef IRtcEngine*(AGORA_CALL* PFN_CreateAgoraRtcEngine)();
261 typedef void(AGORA_CALL* PFN_ShutdownAgoraRtcEngineService)();
264 typedef HINSTANCE lib_handle_t;
265 static HINSTANCE MyLoadLibrary(
const char* dllname) {
267 GetModuleFileNameA(GetCurrentModuleInstance(), path, MAX_PATH);
268 auto p = strrchr(path,
'\\');
269 strcpy(p + 1, dllname);
270 HINSTANCE hDll = LoadLibraryA(path);
271 if (hDll)
return hDll;
273 hDll = LoadLibraryA(dllname);
277 typedef void* lib_handle_t;
285 m_pfnCreateAgoraRtcEngine(nullptr),
286 m_pfnGetAgoraRtcEngineVersion(nullptr) {}
293 if (m_dllName.empty()) {
299 m_lib = MyLoadLibrary(m_dllName.c_str());
301 m_pfnCreateAgoraRtcEngine =
302 (PFN_CreateAgoraRtcEngine)GetProcAddress(m_lib,
"createAgoraRtcEngine");
303 m_pfnGetAgoraRtcEngineVersion =
304 (PFN_GetAgoraRtcEngineVersion)GetProcAddress(m_lib,
"getAgoraRtcEngineVersion");
306 #elif defined(__ANDROID__) || defined(__linux__)
307 m_lib = dlopen(m_dllName.c_str(), RTLD_LAZY);
309 m_pfnCreateAgoraRtcEngine = (PFN_CreateAgoraRtcEngine)dlsym(m_lib,
"createAgoraRtcEngine");
310 m_pfnGetAgoraRtcEngineVersion =
311 (PFN_GetAgoraRtcEngineVersion)dlsym(m_lib,
"getAgoraRtcEngineVersion");
322 #elif defined(__ANDROID__) || defined(__linux__)
329 m_pfnCreateAgoraRtcEngine =
nullptr;
330 m_pfnGetAgoraRtcEngineVersion =
nullptr;
335 bool isValid() {
return m_pfnCreateAgoraRtcEngine != NULL; }
338 return m_pfnCreateAgoraRtcEngine ? m_pfnCreateAgoraRtcEngine() : NULL;
342 return m_pfnGetAgoraRtcEngineVersion ? m_pfnGetAgoraRtcEngineVersion(build) :
nullptr;
348 std::string m_dllName;
349 PFN_CreateAgoraRtcEngine m_pfnCreateAgoraRtcEngine;
350 PFN_GetAgoraRtcEngineVersion m_pfnGetAgoraRtcEngineVersion;
375 #define NUM_OF_LAYOUT_REGIONS 17
virtual int soundPositionChannel(uid_t uid, const RtcConnection &connection)=0
int recfreq
Definition: rtc_engine_i.h:49
virtual int getVideoConfigParam(char *params, size_t size)=0
Definition: rtc_engine_i.h:258
agora::commons::cjson::JsonWrapper any_document_t
Definition: agora_service_i.h:52
unsigned int ts
Definition: rtc_engine_i.h:117
virtual int reportRecordingArgusEvent(uint32_t *eventIds, int64_t *value, int count, RecordingEventType eventType)=0
user_id_t userId
Definition: rtc_engine_i.h:171
virtual const char * eventHandlerType() const
Definition: rtc_engine_i.h:180
IRtcEngineEventHandler * eventHandler
Definition: IAgoraRtcEngine.h:2134
Definition: rtc_engine_i.h:170
RecordingEventKeyIndex
Definition: rtc_engine_i.h:69
Definition: rtc_engine_i.h:108
Definition: AgoraRefPtr.h:44
virtual int setProfile(const char *profile, bool merge)=0
@ RECORDING_JOIN_EVT_MAX
Definition: rtc_engine_i.h:95
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:45
double x
Definition: rtc_engine_i.h:364
unsigned int frame_num
Definition: rtc_engine_i.h:110
region_info regions[NUM_OF_LAYOUT_REGIONS]
Definition: rtc_engine_i.h:382
Definition: rtc_engine_i.h:129
@ RECORDING_JOIN_EVT_MAXUDPPORT
Definition: rtc_engine_i.h:79
virtual int setAudioSessionParams(const char *params)=0
virtual int printLog(int level, const char *message)=0
uid_t uid
Definition: rtc_engine_i.h:109
@ RECORDING_LEAVE_EVT_RESERVE5
Definition: rtc_engine_i.h:104
int audio_send_frame_rate
Definition: rtc_engine_i.h:51
INTERFACE_ID_EX_TYPE
Definition: rtc_engine_i.h:41
int delay
Definition: rtc_engine_i.h:172
Definition: IAgoraRtcEngineEx.h:58
@ RECORDING_JOIN_EVT_LANGUAGE
Definition: rtc_engine_i.h:89
@ RECORDING_EVENT_UNKNOWN
virtual int soundPositionChannel(uid_t uid)=0
const char * getVersion(int *build)
Definition: rtc_engine_i.h:341
const char * user_id_t
Definition: AgoraBase.h:1122
unsigned int sent_ts
Definition: rtc_engine_i.h:111
Definition: AgoraBase.h:1797
double height
Definition: rtc_engine_i.h:367
int bgcolor
Definition: rtc_engine_i.h:358
virtual int setCameraDevice(const char dev_id[MAX_DEVICE_ID_LENGTH])=0
Definition: rtc_engine_i.h:178
@ RECORDING_JOIN_EVT_RESERVE1
Definition: rtc_engine_i.h:90
canvas_info canvas
Definition: rtc_engine_i.h:379
Definition: rtc_engine_i.h:377
virtual bool onEvent(RTC_EVENT evt, std::string *payload)
Definition: rtc_engine_i.h:182
@ RECORDING_JOIN_EVT_MIXMODE
Definition: rtc_engine_i.h:72
int audio_recv_packet_rate
Definition: rtc_engine_i.h:53
agora_refptr< IMediaExtensionObserver > extensionObserver
Definition: rtc_engine_i.h:134
Definition: rtc_engine_i.h:121
Definition: AgoraRefCountedObject.h:63
Definition: rtc_engine_i.h:355
Definition: AgoraAtomicOps.h:21
@ RECORDING_JOIN_EVT_AUDIOONLY
Definition: rtc_engine_i.h:84
@ RECORDING_JOIN_EVT_LIVEMODE
Definition: rtc_engine_i.h:82
virtual int addInjectStreamUrl2(const char *url, protocol::CmdInjectStreamConfig &config)=0
int render_mode
Definition: rtc_engine_i.h:371
unsigned int sent_ts
Definition: rtc_engine_i.h:118
int sentFrameRate
Definition: rtc_engine_i.h:173
@ SCREEN_SHARING_MOVIE
Definition: rtc_engine_i.h:45
@ RECORDING_JOIN_EVT_TRIGGERMODE
Definition: rtc_engine_i.h:88
virtual int enableYuvDumper(bool enable)=0
virtual void onAudioTransportPacketInfo(const audio_transport_packet_info &info)=0
@ RECORDING_JOIN_EVT_MIXEDVIDEOAUDIOMODE
Definition: rtc_engine_i.h:73
SCREEN_SHARING_MODE
Definition: rtc_engine_i.h:45
virtual int GetScreenCaptureType()=0
@ RECORDING_JOIN_EVT_IDLE
Definition: rtc_engine_i.h:83
virtual int reportArgusCounters(int *counterId, int *value, int count, uid_t uid)=0
Definition: rtc_engine_i.h:48
virtual int reportWebAgentVideoStats(const WebAgentVideoStats &stats)=0
@ RECORDING_JOIN_EVT_DECODEAUDIOTYPE
Definition: rtc_engine_i.h:80
virtual ~IRtcEngineInternal()
Definition: rtc_engine_i.h:194
@ RECORDING_JOIN_EVT_MIXHIGH
Definition: rtc_engine_i.h:74
int audio_send_packet_rate
Definition: rtc_engine_i.h:52
Definition: rtc_engine_i.h:192
int maxOutputBitrateKpbs
Definition: rtc_engine_i.h:131
@ RECORDING_JOIN_EVT_START
Definition: rtc_engine_i.h:71
unsigned int ts
Definition: rtc_engine_i.h:112
virtual int setLogLevelEx(unsigned int filter)=0
int skippedFrames
Definition: rtc_engine_i.h:175
void deinitialize()
Definition: rtc_engine_i.h:318
Definition: IAgoraRtcEngineEx.h:36
int farin_signal_level
Definition: rtc_engine_i.h:56
Definition: IAgoraRtcEngineEx.h:718
int alpha
Definition: rtc_engine_i.h:369
@ RECORDING_JOIN_EVT_MINUDPPORT
Definition: rtc_engine_i.h:78
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:130
virtual int setExternalVideoConfigEx(const VideoEncoderConfiguration &config)=0
@ RECORDING_JOIN_EVT_VIDEOONLY
Definition: rtc_engine_i.h:85
agora::rtc::IRtcEngine * createEngine()
Definition: rtc_engine_i.h:337
long long ms
Definition: rtc_engine_i.h:378
virtual int initializeEx(const RtcEngineContextInternal &context)=0
int renderedFrameRate
Definition: rtc_engine_i.h:174
unsigned id
Definition: rtc_engine_i.h:362
AGORA_API bool AGORA_CALL decode_sei_layout(const void *data, unsigned size, layout_info *layout)
@ RECORDING_JOIN_EVT_MIXKBPS
Definition: rtc_engine_i.h:77
@ RECORDING_JOIN_EVT_SYSLOGFACILITY
Definition: rtc_engine_i.h:86
@ AGORA_IID_RTC_ENGINE_EX
Definition: rtc_engine_i.h:42
@ RECORDING_LEAVE_EVT_START
Definition: rtc_engine_i.h:98
double width
Definition: rtc_engine_i.h:366
Definition: rtc_engine_i.h:361
Definition: IAgoraRtcEngineEx.h:709
bool initialize()
Definition: rtc_engine_i.h:288
int height
Definition: rtc_engine_i.h:357
Definition: AgoraBase.h:88
RecordingEventType
Definition: rtc_engine_i.h:60
@ RECORDING_LEAVE_EVT_LEAVEPATHCODE
Definition: rtc_engine_i.h:99
~RtcEngineLibHelper()
Definition: rtc_engine_i.h:333
int zorder
Definition: rtc_engine_i.h:372
int playoutfreq
Definition: rtc_engine_i.h:50
virtual agora_refptr< IMediaPlayer > getMediaPlayer(int sourceId)=0
virtual void SetScreenCaptureSource(bool allow_magnification_api, bool allow_directx_capturer)=0
bool isValid()
Definition: rtc_engine_i.h:335
Definition: IAgoraRtcEngine.h:2414
uid_t uid
Definition: rtc_engine_i.h:116
virtual int getProfile(any_document_t &result)=0
@ RECORDING_JOIN_EVT_MIXFPS
Definition: rtc_engine_i.h:76
virtual ~IRtcAvTransportPacketInfoObserver()=default
bool is_p2p_switch_enabled_
Definition: rtc_engine_i.h:139
@ RECORDING_JOIN_EVT_DECODEVIDEOTYPE
Definition: rtc_engine_i.h:81
int width
Definition: rtc_engine_i.h:356
virtual int monitorDeviceChange(bool enabled)=0
Definition: rtc_engine_i.h:115
unsigned int uid_t
Definition: AgoraMediaBase.h:25
virtual int getAudioSessionParams(char *params)=0
@ RECORDING_LEAVE_EVT_RESERVE1
Definition: rtc_engine_i.h:100
double y
Definition: rtc_engine_i.h:365
virtual int getAudioOptionParams(char *params)=0
virtual bool isMicrophoneOn()=0
int nearout_signal_level
Definition: rtc_engine_i.h:55
@ RECORDING_JOIN_EVT_STREAMTYPE
Definition: rtc_engine_i.h:87
virtual int setVideoConfigParam(const char *params)=0
unsigned int region_count
Definition: rtc_engine_i.h:381
RtcEngineLibHelper(const char *dllname)
Definition: rtc_engine_i.h:281
@ MAX_RECORDING_JOIN_EVT_RESERVE15
Definition: rtc_engine_i.h:94
Definition: video_node_i.h:27
virtual int notifyNetworkChange(agora::commons::network::network_info_t &&networkInfo)=0
@ RECORDING_LEAVE_EVT_MAX
Definition: rtc_engine_i.h:105
@ RECORDING_JOIN_EVT_MIXLOW
Definition: rtc_engine_i.h:75
int nearin_signal_level
Definition: rtc_engine_i.h:54
virtual int getOptionsByVideoProfile(int profile, VideoNetOptions &options)=0