Agora C++ API Reference for All Platforms
|
14 #include "AgoraBase.h"
15 #include "IAgoraRtcEngineEx.h"
16 #include "NGIAgoraAudioDeviceManager.h"
17 #include "NGIAgoraExtensionProvider.h"
18 #include "NGIAgoraRtcConnection.h"
19 #include "time_utils.h"
21 #include <api/aosl_ref.h>
24 extern HINSTANCE GetCurrentModuleInstance();
25 #elif defined(__ANDROID__) || defined(__linux__)
41 virtual int getParameters(
const char* key, commons::cjson::JsonWrapper& result) = 0;
90 #ifdef INTERNAL_ENGINE_STATUS
101 #endif // INTERNAL_ENGINE_STATUS
238 #ifdef INTERNAL_ENGINE_STATUS
336 #if defined(P2P_SWITCH_DEFAULT_VALUE)
373 virtual aosl_ref_t
ref() = 0;
386 #if (defined(__APPLE__) && TARGET_OS_MAC && !TARGET_OS_IOS)
388 #endif // __APPLE__ && !TARGET_OS_IOS && TARGET_OS_MAC
390 virtual int printLog(
int level,
const char* message) = 0;
407 std::string& results) = 0;
425 #if defined(FEATURE_ENABLE_UT_SUPPORT)
436 int sys_version = 0) = 0;
450 #if defined(__ANDROID__)
452 #endif // __ANDROID__
457 return handler && 0 == strcmp(
"event_handler", handler->
eventHandlerType());
461 return handler && 0 == strcmp(
"event_handler_ex", handler->
eventHandlerType());
466 typedef const char*(AGORA_CALL* PFN_GetAgoraRtcEngineVersion)(
int* build);
467 typedef IRtcEngine*(AGORA_CALL* PFN_CreateAgoraRtcEngine)();
468 typedef void(AGORA_CALL* PFN_ShutdownAgoraRtcEngineService)();
471 typedef HINSTANCE lib_handle_t;
472 static HINSTANCE MyLoadLibrary(
const char* dllname) {
474 GetModuleFileNameA(GetCurrentModuleInstance(), path, MAX_PATH);
475 auto p = strrchr(path,
'\\');
476 strcpy(p + 1, dllname);
477 HINSTANCE hDll = LoadLibraryA(path);
478 if (hDll)
return hDll;
480 hDll = LoadLibraryA(dllname);
484 typedef void* lib_handle_t;
492 m_pfnCreateAgoraRtcEngine(nullptr),
493 m_pfnGetAgoraRtcEngineVersion(nullptr) {}
500 if (m_dllName.empty()) {
506 m_lib = MyLoadLibrary(m_dllName.c_str());
508 m_pfnCreateAgoraRtcEngine =
509 (PFN_CreateAgoraRtcEngine)GetProcAddress(m_lib,
"createAgoraRtcEngine");
510 m_pfnGetAgoraRtcEngineVersion =
511 (PFN_GetAgoraRtcEngineVersion)GetProcAddress(m_lib,
"getAgoraRtcEngineVersion");
513 #elif defined(__ANDROID__) || defined(__linux__)
514 m_lib = dlopen(m_dllName.c_str(), RTLD_LAZY);
516 m_pfnCreateAgoraRtcEngine = (PFN_CreateAgoraRtcEngine)dlsym(m_lib,
"createAgoraRtcEngine");
517 m_pfnGetAgoraRtcEngineVersion =
518 (PFN_GetAgoraRtcEngineVersion)dlsym(m_lib,
"getAgoraRtcEngineVersion");
529 #elif defined(__ANDROID__) || defined(__linux__)
536 m_pfnCreateAgoraRtcEngine =
nullptr;
537 m_pfnGetAgoraRtcEngineVersion =
nullptr;
542 bool isValid() {
return m_pfnCreateAgoraRtcEngine != NULL; }
545 return m_pfnCreateAgoraRtcEngine ? m_pfnCreateAgoraRtcEngine() : NULL;
549 return m_pfnGetAgoraRtcEngineVersion ? m_pfnGetAgoraRtcEngineVersion(build) :
nullptr;
555 std::string m_dllName;
556 PFN_CreateAgoraRtcEngine m_pfnCreateAgoraRtcEngine;
557 PFN_GetAgoraRtcEngineVersion m_pfnGetAgoraRtcEngineVersion;
582 #define NUM_OF_LAYOUT_REGIONS 17
virtual uint64_t getTimestamp(ENGINE_INIT_TS_POSITION ts_position) const =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:92
virtual int getVideoConfigParam(char *params, size_t size)=0
@ AUDIO_SUBSCRIBE_STATE_CHANGED
Definition: rtc_engine_i.h:465
unsigned int ts
Definition: rtc_engine_i.h:299
@ APP_TYPE_RUST
Definition: rtc_engine_i.h:167
@ APP_TYPE_UNITY
Definition: rtc_engine_i.h:158
@ APP_TYPE_APICLOUD
Definition: rtc_engine_i.h:163
static bool isEventHandlerEx(IRtcEngineEventHandler *handler)
Definition: rtc_engine_i.h:460
@ AUDIO_DEVICE_VOLUME_CHANGED
@ MEDIA_ENGINE_LOAD_SUCCESS
user_id_t userId
Definition: rtc_engine_i.h:348
virtual const char * eventHandlerType() const
Definition: rtc_engine_i.h:357
@ AUDIO_PUBLISH_STATE_CHANGED
@ FIRST_REMOTE_VIDEO_FRAME
Definition: rtc_engine_i.h:347
std::array< uint8_t, 32 > encryptionKdfSalt
Definition: rtc_engine_i.h:612
AGORA_API agora::rtc::IRtcEngineInternal *AGORA_CALL getInternalAgoraRtcEngine()
RecordingEventKeyIndex
Definition: rtc_engine_i.h:112
Definition: rtc_engine_i.h:290
Definition: AgoraRefPtr.h:44
@ REMOTE_VIDEO_STATE_CHANGED
virtual int setProfile(const char *profile, bool merge)=0
@ RECORDING_JOIN_EVT_MAX
Definition: rtc_engine_i.h:138
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:88
virtual int releaseRecorder(const char *channelId, uid_t uid, bool isLocal)=0
double x
Definition: rtc_engine_i.h:571
unsigned int frame_num
Definition: rtc_engine_i.h:292
ENCRYPTION_MODE encryptionMode
Definition: rtc_engine_i.h:610
region_info regions[NUM_OF_LAYOUT_REGIONS]
Definition: rtc_engine_i.h:589
Definition: rtc_engine_i.h:318
@ RECORDING_JOIN_EVT_MAXUDPPORT
Definition: rtc_engine_i.h:122
virtual int printLog(int level, const char *message)=0
uid_t uid
Definition: rtc_engine_i.h:291
@ RECORDING_LEAVE_EVT_RESERVE5
Definition: rtc_engine_i.h:147
virtual const char * eventHandlerType() const
Definition: IAgoraRtcEngine.h:1505
@ AUDIO_MIXING_POSITION_CHANGED
@ REMOTE_SUBSCRIBE_FALLBACK_TO_AUDIO_ONLY
int audio_send_frame_rate
Definition: rtc_engine_i.h:94
INTERFACE_ID_EX_TYPE
Definition: rtc_engine_i.h:84
@ VIDEO_DEVICE_STATE_CHANGED
int delay
Definition: rtc_engine_i.h:349
Definition: IAgoraRtcEngineEx.h:42
@ RECORDING_JOIN_EVT_LANGUAGE
Definition: rtc_engine_i.h:132
@ RECORDING_EVENT_UNKNOWN
virtual int soundPositionChannel(uid_t uid)=0
const char * getVersion(int *build)
Definition: rtc_engine_i.h:548
@ APP_TYPE_C_SHARP
Definition: rtc_engine_i.h:168
const char * user_id_t
Definition: AgoraBase.h:809
unsigned int sent_ts
Definition: rtc_engine_i.h:293
virtual int setupAudioAttributeContext(void *audioAttr)=0
Definition: AgoraBase.h:1916
@ MEDIA_ENGINE_START_CALL_SUCCESS
@ APP_TYPE_CEF
Definition: rtc_engine_i.h:169
Definition: IAgoraRtcEngine.h:1501
double height
Definition: rtc_engine_i.h:574
int bgcolor
Definition: rtc_engine_i.h:565
virtual int setCameraDevice(const char dev_id[MAX_DEVICE_ID_LENGTH])=0
Definition: rtc_engine_i.h:355
@ RECORDING_JOIN_EVT_RESERVE1
Definition: rtc_engine_i.h:133
@ APP_TYPE_NATIVE
Definition: rtc_engine_i.h:156
canvas_info canvas
Definition: rtc_engine_i.h:586
@ INIT_BEGIN
Definition: rtc_engine_i.h:306
Definition: rtc_engine_i.h:584
virtual int getProfile(std::string &result)=0
virtual int setPreviewMediaRecorderObserver(media::IMediaRecorderObserverEx *observer)=0
@ APP_TYPE_COCOS
Definition: rtc_engine_i.h:157
@ APP_TYPE_UNREAL_BP
Definition: rtc_engine_i.h:171
@ RECORDING_JOIN_EVT_MIXMODE
Definition: rtc_engine_i.h:115
int audio_recv_packet_rate
Definition: rtc_engine_i.h:96
virtual int getParametersEx(const RtcConnection &connection, const char *key, std::string &results)=0
Definition: rtc_engine_i.h:310
Definition: rtc_engine_i.h:562
Definition: AgoraAtomicOps.h:21
virtual int getParameters(const char *key, commons::cjson::JsonWrapper &result)=0
@ RECORDING_JOIN_EVT_AUDIOONLY
Definition: rtc_engine_i.h:127
@ APP_TYPE_UNI_APP
Definition: rtc_engine_i.h:170
@ RECORDING_JOIN_EVT_LIVEMODE
Definition: rtc_engine_i.h:125
int render_mode
Definition: rtc_engine_i.h:578
@ UPLINK_NETWORK_INFO_UPDATE
@ RHYTHM_PLAYFR_STATE_CHANGED
@ MEDIA_ENGINE_START_CAMERA_SUCCESS
unsigned int sent_ts
Definition: rtc_engine_i.h:300
@ REMOTE_VIDEO_STATE_CHANGED_EXT
ENGINE_INIT_TS_POSITION
Definition: rtc_engine_i.h:303
int sentFrameRate
Definition: rtc_engine_i.h:350
@ SCREEN_SHARING_MOVIE
Definition: rtc_engine_i.h:88
virtual int32_t setAppType(APP_TYPE appType)=0
@ FIRST_LOCAL_VIDEO_FRAME
@ RECORDING_JOIN_EVT_TRIGGERMODE
Definition: rtc_engine_i.h:131
@ USER_ENABLE_LOCAL_VIDEO
@ CREATE_BEGIN
Definition: rtc_engine_i.h:304
@ VIDEO_RENDERING_TRACING_RESULT
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:602
@ RECORDING_JOIN_EVT_MIXEDVIDEOAUDIOMODE
Definition: rtc_engine_i.h:116
SCREEN_SHARING_MODE
Definition: rtc_engine_i.h:88
@ INIT_END
Definition: rtc_engine_i.h:307
virtual int GetScreenCaptureType()=0
@ RECORDING_JOIN_EVT_IDLE
Definition: rtc_engine_i.h:126
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:42
@ CLIENT_ROLE_CHANGE_FAILED
@ AUDIO_DEVICE_STATE_CHANGED
Definition: rtc_engine_i.h:91
virtual int switchCameraId(const char *cameraId)=0
virtual int reportWebAgentVideoStats(const WebAgentVideoStats &stats)=0
virtual int setTimestamp(ENGINE_INIT_TS_POSITION ts_position, uint64_t ts)=0
@ RECORDING_JOIN_EVT_DECODEAUDIOTYPE
Definition: rtc_engine_i.h:123
@ AUDIO_VOLUME_INDICATION
virtual ~IRtcEngineInternal()
Definition: rtc_engine_i.h:370
@ RECORDING_JOIN_EVT_MIXHIGH
Definition: rtc_engine_i.h:117
ENCRYPTION_MODE encryptionMode
Definition: AgoraBase.h:6271
int audio_send_packet_rate
Definition: rtc_engine_i.h:95
Definition: rtc_engine_i.h:368
int maxOutputBitrateKpbs
Definition: rtc_engine_i.h:320
agora_refptr< IMediaExtensionObserver > extensionObserverProxy
Definition: rtc_engine_i.h:323
@ FIRST_REMOTE_AUDIO_DECODED
@ APP_TYPE_COCOS_CREATOR
Definition: rtc_engine_i.h:166
@ RECORDING_JOIN_EVT_START
Definition: rtc_engine_i.h:114
virtual int initializeInternal(const RtcEngineContextInternal &context)=0
@ FIRST_LOCAL_AUDIO_FRAME_PUBLISHED
@ VIDEO_PUBLISH_STATE_CHANGED
EncryptionConfigInternal(const EncryptionConfig &config)
Definition: rtc_engine_i.h:594
RtcEngineContextInternal()
Definition: rtc_engine_i.h:332
@ APP_TYPE_FLUTTER
Definition: rtc_engine_i.h:160
virtual int startPreviewRecording(const media::MediaRecorderConfiguration &config)=0
unsigned int ts
Definition: rtc_engine_i.h:294
@ CREATE_END
Definition: rtc_engine_i.h:305
virtual int setLogLevelEx(unsigned int filter)=0
int skippedFrames
Definition: rtc_engine_i.h:352
void deinitialize()
Definition: rtc_engine_i.h:525
Definition: IAgoraRtcEngineEx.h:20
uint8_t encryptionKdfSalt[32]
Definition: AgoraBase.h:6286
@ VIDEO_SUBSCRIBE_STATE_CHANGED
ENCRYPTION_MODE
Definition: AgoraBase.h:6233
int farin_signal_level
Definition: rtc_engine_i.h:99
Definition: IAgoraRtcEngineEx.h:1045
int alpha
Definition: rtc_engine_i.h:576
@ RECORDING_JOIN_EVT_MINUDPPORT
Definition: rtc_engine_i.h:121
virtual bool onEvent(RTC_EVENT evt, const std::string *payload)
Definition: rtc_engine_i.h:359
virtual int simulateOnSetParameters(const std::string ¶meters)=0
bool isPureCpp
Definition: rtc_engine_i.h:330
@ AUDIO_METADATA_RECEIVED
@ REMOTE_AUDIO_STATE_CHANGED
virtual int setExternalVideoConfigEx(const VideoEncoderConfiguration &config, const RtcConnection &connection)=0
virtual int setAudioOptionParams(const char *params)=0
bool isPassThruMode
Definition: rtc_engine_i.h:319
virtual int setExternalVideoConfigEx(const VideoEncoderConfiguration &config)=0
@ _INTERNAL_ENGINE_STATUS
@ RECORDING_JOIN_EVT_VIDEOONLY
Definition: rtc_engine_i.h:128
agora::rtc::IRtcEngine * createEngine()
Definition: rtc_engine_i.h:544
long long ms
Definition: rtc_engine_i.h:585
virtual int initializeEx(const RtcEngineContextInternal &context)=0
int renderedFrameRate
Definition: rtc_engine_i.h:351
unsigned id
Definition: rtc_engine_i.h:569
AGORA_API bool AGORA_CALL decode_sei_layout(const void *data, unsigned size, layout_info *layout)
virtual aosl_ref_t ref()=0
virtual int setMediaRecorderObserver(const char *channelId, uid_t uid, bool isLocal, media::IMediaRecorderObserverEx *observer, int sys_version=0)=0
Definition: AgoraBase.h:6266
@ RECORDING_JOIN_EVT_MIXKBPS
Definition: rtc_engine_i.h:120
@ RECORDING_JOIN_EVT_SYSLOGFACILITY
Definition: rtc_engine_i.h:129
@ JOIN_PUBILSHER_RESPONSE
@ AGORA_IID_RTC_ENGINE_EX
Definition: rtc_engine_i.h:85
@ RECORDING_LEAVE_EVT_START
Definition: rtc_engine_i.h:141
@ AUDIO_MIXING_STATE_CHANGED
double width
Definition: rtc_engine_i.h:573
bool datastreamEncryptionEnabled
Definition: AgoraBase.h:6288
Definition: rtc_engine_i.h:568
bool initialize()
Definition: rtc_engine_i.h:495
int height
Definition: rtc_engine_i.h:564
Definition: rtc_engine_i.h:38
@ CAMERA_FOCUS_AREA_CHANGED
RecordingEventType
Definition: rtc_engine_i.h:103
@ TRANSPORT_SERVER_INSTANCE
@ RECORDING_LEAVE_EVT_LEAVEPATHCODE
Definition: rtc_engine_i.h:142
@ REMOTE_VIDEO_STREAM_INFO_UPDATED
@ LOCAL_PUBLISH_FALLBACK_TO_AUDIO_ONLY
RTC_EVENT
Definition: rtc_engine_i.h:174
@ APP_TYPE_REACT_NATIVE
Definition: rtc_engine_i.h:164
~RtcEngineLibHelper()
Definition: rtc_engine_i.h:540
int zorder
Definition: rtc_engine_i.h:579
int playoutfreq
Definition: rtc_engine_i.h:93
@ LOCAL_VIDEO_STATE_CHANGED
Definition: IAgoraRtcEngine.h:3116
bool isValid()
Definition: rtc_engine_i.h:542
Definition: IAgoraRtcEngine.h:3533
uid_t uid
Definition: rtc_engine_i.h:298
virtual int stopPreviewRecording()=0
bool datastreamEncryptionEnabled
Definition: rtc_engine_i.h:613
@ REMOVE_PUBLISHER_REQUEST
@ APP_TYPE_ELECTRON
Definition: rtc_engine_i.h:159
@ RECORDING_JOIN_EVT_MIXFPS
Definition: rtc_engine_i.h:119
@ LOCAL_AUDIO_STATE_CHANGED
virtual ~IRtcAvTransportPacketInfoObserver()=default
@ FIRST_LOCAL_VIDEO_FRAME_PUBLISHED
bool is_p2p_switch_enabled_
Definition: rtc_engine_i.h:328
@ RECORDING_JOIN_EVT_DECODEVIDEOTYPE
Definition: rtc_engine_i.h:124
const char * encryptionKey
Definition: AgoraBase.h:6278
@ APP_TYPE_INVALID_VALUE
Definition: rtc_engine_i.h:155
int width
Definition: rtc_engine_i.h:563
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:297
APP_TYPE
Definition: rtc_engine_i.h:154
unsigned int uid_t
Definition: AgoraMediaBase.h:28
@ RECORDING_LEAVE_EVT_RESERVE1
Definition: rtc_engine_i.h:143
virtual void reportEngineInitializeEvent() const =0
virtual agora_refptr< IRtcConnection > getConnection(const RtcConnection &connection={}) const =0
std::string encryptionKey
Definition: rtc_engine_i.h:611
double y
Definition: rtc_engine_i.h:572
@ DOWNLINK_NETWORK_INFO_UPDATE
virtual aosl_ref_t getMediaPlayer(int sourceId)=0
virtual int getAudioOptionParams(char *params)=0
@ APP_TYPE_PYTHON
Definition: rtc_engine_i.h:165
virtual bool isMicrophoneOn()=0
static bool isEventHandler(IRtcEngineEventHandler *handler)
Definition: rtc_engine_i.h:456
virtual bool initialized()=0
int nearout_signal_level
Definition: rtc_engine_i.h:98
@ RECORDING_JOIN_EVT_STREAMTYPE
Definition: rtc_engine_i.h:130
virtual int setVideoConfigParam(const char *params)=0
@ CAMERA_EXPOSURE_AREA_CHANGED
unsigned int region_count
Definition: rtc_engine_i.h:588
@ FIRST_REMOTE_AUDIO_FRAME
@ FIRST_REMOTE_VIDEO_DECODED
@ CONNECTION_STATE_CHANGED
virtual std::string getRecentSid(const RtcConnection *connnection)=0
RtcEngineContextInternal(const RtcEngineContext &ctx)
RtcEngineLibHelper(const char *dllname)
Definition: rtc_engine_i.h:488
virtual int putMediaPlayer(int sourceId)=0
@ QUERY_RECORDING_SERVICE_STATUS
@ MAX_RECORDING_JOIN_EVT_RESERVE15
Definition: rtc_engine_i.h:137
Definition: video_node_i.h:28
@ APP_TYPE_XAMARIN
Definition: rtc_engine_i.h:162
@ RECORDING_LEAVE_EVT_MAX
Definition: rtc_engine_i.h:148
@ APP_TYPE_UNREAL
Definition: rtc_engine_i.h:161
Definition: rtc_engine_i.h:592
@ RECORDING_JOIN_EVT_MIXLOW
Definition: rtc_engine_i.h:118
int nearin_signal_level
Definition: rtc_engine_i.h:97
virtual int setParametersInternal(const char *parameters, int priority)=0
virtual int32_t enableVosUserInfoHidden(bool enabled)=0