Agora C++ API Reference for All Platforms
Loading...
Searching...
No Matches
rtc_engine_i.h
1//
2// Agora Media SDK
3//
4// Created by Sting Feng in 2015-05.
5// Copyright (c) 2015 Agora IO. All rights reserved.
6//
7#pragma once
8
9#include <functional>
10#include <string>
11#include <vector>
12#include <array>
13
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"
20
21#include <api/aosl_ref.h>
22
23#if defined(_WIN32)
24extern HINSTANCE GetCurrentModuleInstance();
25#elif defined(__ANDROID__) || defined(__linux__)
26#include <dlfcn.h>
27#endif // _WIN32
28
29namespace agora {
30namespace commons {
31namespace cjson {
32class JsonWrapper;
33} // namespace cjson
34
35} // namespace commons
36
37namespace base {
39 public:
40 virtual int setParametersInternal(const char* parameters, int priority) = 0;
41 virtual int getParameters(const char* key, commons::cjson::JsonWrapper& result) = 0;
42 virtual ~IParameterEngine() {}
43};
44} // namespace base
45
46namespace media {
48 public:
75 virtual void onRecorderInfoUpdated(const RecorderInfo& info) = 0;
76
78};
79} // namespace media
80
81namespace rtc {
82class IMediaPlayerEx;
83
87
89
90#ifdef INTERNAL_ENGINE_STATUS
101#endif // INTERNAL_ENGINE_STATUS
102
111
150
173
174enum class RTC_EVENT {
204
209 RTC_STATS = 13010,
210 USER_JOINED = 13013,
221
239#ifdef INTERNAL_ENGINE_STATUS
241#endif
244
278 WLACC_STATS = 14061,
288 RDT_MESSAGE = 14071,
291 PATH_STATS = 14074,
292};
293
296 unsigned int frame_num;
297 unsigned int sent_ts;
298 unsigned int ts;
299};
300
303 unsigned int ts;
304 unsigned int sent_ts;
305};
306
314
320
328
332
333 // extension event observer
335
336 // 0 for AGORA_CC,
337 // 1 for REMB
338 // 2 for TRANSPORT_CC
340
342
343 std::string libLoadPath;
344
346 : isPassThruMode(false),
347 maxOutputBitrateKpbs(30 * 1000),
348 extensionObserverProxy(nullptr),
349#if defined(P2P_SWITCH_DEFAULT_VALUE)
350 is_p2p_switch_enabled_(P2P_SWITCH_DEFAULT_VALUE),
351#else
353#endif
354 isPureCpp(true)
355 {
356 }
358};
359
367
369 public:
370 virtual const char* eventHandlerType() const { return "event_handler_internal"; }
371
372 virtual bool onEvent(RTC_EVENT evt, const std::string* payload) {
373 (void)evt;
374 (void)payload;
375
376 /* return false to indicate this event is not handled */
377 return false;
378 }
379};
380
382 protected:
384
385 public:
386 virtual aosl_ref_t ref() = 0;
387 virtual int initializeEx(const RtcEngineContextInternal& context, bool sync = false) = 0;
388 virtual const char* getSid(const RtcConnection& connection = {}) = 0;
389 virtual int setProfile(const char* profile, bool merge) = 0;
390 virtual int getProfile(std::string& result) = 0;
391 virtual int initializeInternal(const RtcEngineContextInternal& context, bool sync = false) = 0;
392 virtual int releaseInternal() = 0;
393 virtual int setAudioOptionParams(const char* params) = 0;
394 virtual int getAudioOptionParams(char* params) = 0;
395 virtual bool isMicrophoneOn() = 0;
396
397 virtual int reportWebAgentVideoStats(const WebAgentVideoStats& stats) = 0;
398
399#if (defined(__APPLE__) && TARGET_OS_MAC && !TARGET_OS_IOS)
400 virtual int monitorDeviceChange(bool enabled) = 0;
401#endif // __APPLE__ && !TARGET_OS_IOS && TARGET_OS_MAC
402
403 virtual int printLog(int level, const char* message) = 0;
404 virtual int runOnWorkerThread(std::function<void(void)>&& f) = 0;
405 virtual int reportArgusCounters(int* counterId, int* value, int count, uid_t uid) = 0;
406
407 virtual int enableYuvDumper(bool enable) = 0;
408
409 // this function is only for expert of video codec,
410 // please do NOT call it if not knowing what's it about
411 virtual int setVideoConfigParam(const char* params) = 0;
412
413 virtual int getVideoConfigParam(char* params, size_t size) = 0;
414
417 const RtcConnection& connection) = 0;
418
419 virtual int getParametersEx(const RtcConnection& connection, const char* key,
420 std::string& results) = 0;
421
422 // this function is only for switching screen capture source api on windows platform
423#if defined(_WIN32)
424 virtual int GetScreenCaptureType() = 0;
425#endif
426
427 virtual int setLogLevelEx(unsigned int filter) = 0;
428
429 virtual int simulateOnSetParameters(const std::string& parameters) = 0;
430
431 virtual int setCameraDevice(const char dev_id[MAX_DEVICE_ID_LENGTH]) = 0;
432
433 virtual aosl_ref_t getMediaPlayer(int sourceId) = 0;
434 virtual int putMediaPlayer(int sourceId) = 0;
436 const RtcConnection& connection = {}) const = 0;
437
438#if defined(FEATURE_ENABLE_UT_SUPPORT)
439 // 0 is left channel, 1 is right channel, -1 is invalid
440 virtual int soundPositionChannel(uid_t uid) = 0;
441 virtual int soundPositionChannel(uid_t uid, const RtcConnection& connection) = 0;
442#endif
443
444 virtual int32_t setAppType(APP_TYPE appType) = 0;
445 virtual int32_t enableVosUserInfoHidden(bool enabled) = 0;
446
447 virtual int setMediaRecorderObserver(const char* channelId, uid_t uid, bool isLocal,
449 int sys_version = 0) = 0;
450 virtual int startRecording(const char* channelId, uid_t uid, bool isLocal,
451 const media::MediaRecorderConfiguration& config) = 0;
453 virtual int stopPreviewRecording() = 0;
454 virtual int stopRecording(const char* channelId, uid_t uid, bool isLocal) = 0;
456 virtual int releaseRecorder(const char* channelId, uid_t uid, bool isLocal) = 0;
457 virtual int setTimestamp(ENGINE_INIT_TS_POSITION ts_position, uint64_t ts) = 0;
458 virtual uint64_t getTimestamp(ENGINE_INIT_TS_POSITION ts_position) const = 0;
459 virtual void reportEngineInitializeEvent() const = 0;
460 virtual std::string getRecentSid(const RtcConnection* connnection) = 0;
461
462 virtual int setupAudioAttributeContext(void* audioAttr) = 0;
463#if defined(__ANDROID__)
464 virtual int switchCameraId(const char* cameraId) = 0;
465#endif // __ANDROID__
466
467 virtual int getInitStatus() = 0;
468 virtual void setInitStatus(ENGINE_INIT_STATUS status) = 0;
469
471 return handler && 0 == strcmp("event_handler", handler->eventHandlerType());
472 }
473
475 return handler && 0 == strcmp("event_handler_ex", handler->eventHandlerType());
476 }
477};
478
480 typedef const char*(AGORA_CALL* PFN_GetAgoraRtcEngineVersion)(int* build);
481 typedef IRtcEngine*(AGORA_CALL* PFN_CreateAgoraRtcEngine)();
482 typedef void(AGORA_CALL* PFN_ShutdownAgoraRtcEngineService)();
483
484#if defined(_WIN32)
485 typedef HINSTANCE lib_handle_t;
486 static HINSTANCE MyLoadLibrary(const char* dllname) {
487 char path[MAX_PATH];
488 GetModuleFileNameA(GetCurrentModuleInstance(), path, MAX_PATH);
489 auto p = strrchr(path, '\\');
490 strcpy(p + 1, dllname); // NOLINT
491 HINSTANCE hDll = LoadLibraryA(path);
492 if (hDll) return hDll;
493
494 hDll = LoadLibraryA(dllname);
495 return hDll;
496 }
497#else
498 typedef void* lib_handle_t;
499#endif // _WIN32
500
501 public:
502 RtcEngineLibHelper(const char* dllname)
503 : m_firstInit(true),
504 m_lib(NULL),
505 m_dllName(dllname),
506 m_pfnCreateAgoraRtcEngine(nullptr),
507 m_pfnGetAgoraRtcEngineVersion(nullptr) {}
508
509 bool initialize() {
510 if (!m_firstInit) {
511 return isValid();
512 }
513
514 if (m_dllName.empty()) {
515 return false;
516 }
517
518 m_firstInit = false;
519#if defined(_WIN32)
520 m_lib = MyLoadLibrary(m_dllName.c_str());
521 if (m_lib) {
522 m_pfnCreateAgoraRtcEngine =
523 (PFN_CreateAgoraRtcEngine)GetProcAddress(m_lib, "createAgoraRtcEngine");
524 m_pfnGetAgoraRtcEngineVersion =
525 (PFN_GetAgoraRtcEngineVersion)GetProcAddress(m_lib, "getAgoraRtcEngineVersion");
526 }
527#elif defined(__ANDROID__) || defined(__linux__)
528 m_lib = dlopen(m_dllName.c_str(), RTLD_LAZY);
529 if (m_lib) {
530 m_pfnCreateAgoraRtcEngine = (PFN_CreateAgoraRtcEngine)dlsym(m_lib, "createAgoraRtcEngine");
531 m_pfnGetAgoraRtcEngineVersion =
532 (PFN_GetAgoraRtcEngineVersion)dlsym(m_lib, "getAgoraRtcEngineVersion");
533 }
534#endif // _WIN32
535
536 return isValid();
537 }
538
540 if (m_lib) {
541#if defined(_WIN32)
542 FreeLibrary(m_lib);
543#elif defined(__ANDROID__) || defined(__linux__)
544 dlclose(m_lib);
545#endif // _WIN32
546
547 m_lib = NULL;
548 }
549
550 m_pfnCreateAgoraRtcEngine = nullptr;
551 m_pfnGetAgoraRtcEngineVersion = nullptr;
552 }
553
555
556 bool isValid() { return m_pfnCreateAgoraRtcEngine != NULL; }
557
559 return m_pfnCreateAgoraRtcEngine ? m_pfnCreateAgoraRtcEngine() : NULL;
560 }
561
562 const char* getVersion(int* build) {
563 return m_pfnGetAgoraRtcEngineVersion ? m_pfnGetAgoraRtcEngineVersion(build) : nullptr;
564 }
565
566 private:
567 bool m_firstInit;
568 lib_handle_t m_lib;
569 std::string m_dllName;
570 PFN_CreateAgoraRtcEngine m_pfnCreateAgoraRtcEngine;
571 PFN_GetAgoraRtcEngineVersion m_pfnGetAgoraRtcEngineVersion;
572};
573
574// A helper function for decoding out the SEI layout
575
577 int width;
580};
581
583 unsigned id;
584
585 double x;
586 double y;
587 double width;
588 double height;
589
590 int alpha; // [0, 255]
591
592 int render_mode; // 0, crop; 1, ZoomtoFit
593 int zorder; // [0, 100]
594};
595
596#define NUM_OF_LAYOUT_REGIONS 17
597
599 long long ms;
601 // At most 9 broadcasters: 1 host, 8 guests.
602 unsigned int region_count;
603 region_info regions[NUM_OF_LAYOUT_REGIONS];
604};
605
607 public:
610 encryptionKey(config.encryptionKey ? config.encryptionKey : ""),
612 for (size_t i = 0; i < encryptionKdfSalt.size(); i++) {
614 }
615 }
618 config.encryptionKey = encryptionKey.c_str();
620 for (size_t i = 0; i < encryptionKdfSalt.size(); i++) {
621 config.encryptionKdfSalt[i] = encryptionKdfSalt.at(i);
622 }
623 }
625 std::string encryptionKey;
626 std::array<uint8_t, 32> encryptionKdfSalt;
628};
629
630AGORA_API bool AGORA_CALL decode_sei_layout(const void* data, unsigned size, layout_info* layout);
631
633
634} // namespace rtc
635} // namespace agora
Definition AgoraRefPtr.h:44
Definition rtc_engine_i.h:38
virtual int getParameters(const char *key, commons::cjson::JsonWrapper &result)=0
virtual int setParametersInternal(const char *parameters, int priority)=0
virtual ~IParameterEngine()
Definition rtc_engine_i.h:42
Definition rtc_engine_i.h:47
virtual void onRecorderInfoUpdated(const RecorderInfo &info)=0
virtual void onRecorderStateChanged(RecorderState state, RecorderReasonCode reason)=0
virtual ~IMediaRecorderObserverEx()
Definition rtc_engine_i.h:77
EncryptionConfigInternal(const EncryptionConfig &config)
Definition rtc_engine_i.h:608
void ToEncryptionConfig(EncryptionConfig &config) const
Definition rtc_engine_i.h:616
std::array< uint8_t, 32 > encryptionKdfSalt
Definition rtc_engine_i.h:626
bool datastreamEncryptionEnabled
Definition rtc_engine_i.h:627
ENCRYPTION_MODE encryptionMode
Definition rtc_engine_i.h:624
std::string encryptionKey
Definition rtc_engine_i.h:625
virtual void onVideoTransportPacketInfo(const video_transport_packet_info &info)=0
virtual void onAudioTransportPacketInfo(const audio_transport_packet_info &info)=0
Definition IAgoraRtcEngineEx.h:42
Definition IAgoraRtcEngine.h:1580
virtual const char * eventHandlerType() const
Definition IAgoraRtcEngine.h:1584
Definition rtc_engine_i.h:368
virtual const char * eventHandlerType() const
Definition rtc_engine_i.h:370
virtual bool onEvent(RTC_EVENT evt, const std::string *payload)
Definition rtc_engine_i.h:372
Definition IAgoraRtcEngineEx.h:1109
Definition IAgoraRtcEngine.h:3841
Definition rtc_engine_i.h:381
virtual int setTimestamp(ENGINE_INIT_TS_POSITION ts_position, uint64_t ts)=0
virtual int setAudioOptionParams(const char *params)=0
virtual int getAudioOptionParams(char *params)=0
virtual int switchCameraId(const char *cameraId)=0
virtual int startRecording(const char *channelId, uid_t uid, bool isLocal, const media::MediaRecorderConfiguration &config)=0
virtual const char * getSid(const RtcConnection &connection={})=0
virtual int setExternalVideoConfigEx(const VideoEncoderConfiguration &config, const RtcConnection &connection)=0
virtual int getProfile(std::string &result)=0
virtual int setupAudioAttributeContext(void *audioAttr)=0
virtual int releaseRecorder(const char *channelId, uid_t uid, bool isLocal)=0
virtual int getVideoConfigParam(char *params, size_t size)=0
virtual aosl_ref_t getMediaPlayer(int sourceId)=0
virtual int startPreviewRecording(const media::MediaRecorderConfiguration &config)=0
virtual std::string getRecentSid(const RtcConnection *connnection)=0
virtual agora_refptr< IRtcConnection > getConnection(const RtcConnection &connection={}) const =0
virtual int stopPreviewRecording()=0
virtual int initializeInternal(const RtcEngineContextInternal &context, bool sync=false)=0
virtual int reportWebAgentVideoStats(const WebAgentVideoStats &stats)=0
virtual bool isMicrophoneOn()=0
virtual ~IRtcEngineInternal()
Definition rtc_engine_i.h:383
virtual int setProfile(const char *profile, bool merge)=0
virtual int enableYuvDumper(bool enable)=0
virtual int runOnWorkerThread(std::function< void(void)> &&f)=0
virtual void setInitStatus(ENGINE_INIT_STATUS status)=0
virtual int setPreviewMediaRecorderObserver(media::IMediaRecorderObserverEx *observer)=0
virtual int soundPositionChannel(uid_t uid, const RtcConnection &connection)=0
virtual int setLogLevelEx(unsigned int filter)=0
static bool isEventHandler(IRtcEngineEventHandler *handler)
Definition rtc_engine_i.h:470
virtual int getParametersEx(const RtcConnection &connection, const char *key, std::string &results)=0
virtual int GetScreenCaptureType()=0
virtual int setCameraDevice(const char dev_id[MAX_DEVICE_ID_LENGTH])=0
virtual int printLog(int level, const char *message)=0
virtual int setExternalVideoConfigEx(const VideoEncoderConfiguration &config)=0
virtual int32_t enableVosUserInfoHidden(bool enabled)=0
virtual int stopRecording(const char *channelId, uid_t uid, bool isLocal)=0
virtual int32_t setAppType(APP_TYPE appType)=0
virtual int soundPositionChannel(uid_t uid)=0
virtual int setMediaRecorderObserver(const char *channelId, uid_t uid, bool isLocal, media::IMediaRecorderObserverEx *observer, int sys_version=0)=0
static bool isEventHandlerEx(IRtcEngineEventHandler *handler)
Definition rtc_engine_i.h:474
virtual uint64_t getTimestamp(ENGINE_INIT_TS_POSITION ts_position) const =0
virtual int initializeEx(const RtcEngineContextInternal &context, bool sync=false)=0
virtual int simulateOnSetParameters(const std::string &parameters)=0
virtual aosl_ref_t ref()=0
virtual int putMediaPlayer(int sourceId)=0
virtual int monitorDeviceChange(bool enabled)=0
virtual int reportArgusCounters(int *counterId, int *value, int count, uid_t uid)=0
virtual int setVideoConfigParam(const char *params)=0
virtual void reportEngineInitializeEvent() const =0
RtcEngineLibHelper(const char *dllname)
Definition rtc_engine_i.h:502
agora::rtc::IRtcEngine * createEngine()
Definition rtc_engine_i.h:558
~RtcEngineLibHelper()
Definition rtc_engine_i.h:554
bool isValid()
Definition rtc_engine_i.h:556
bool initialize()
Definition rtc_engine_i.h:509
const char * getVersion(int *build)
Definition rtc_engine_i.h:562
void deinitialize()
Definition rtc_engine_i.h:539
Definition IAgoraService.h:72
Definition rtc_connection_i.h:28
Definition agora_log_i.h:14
RecorderState
Definition AgoraMediaBase.h:1938
RecorderReasonCode
Definition AgoraMediaBase.h:1957
RecordingEventType
Definition rtc_engine_i.h:103
@ RECORDING_EVENT_UNKNOWN
Definition rtc_engine_i.h:104
@ RECORDING_EVENT_START
Definition rtc_engine_i.h:105
@ RECORDING_EVENT_END
Definition rtc_engine_i.h:109
@ RECORDING_EVENT_LEAVE
Definition rtc_engine_i.h:107
@ RECORDING_EVENT_JOIN
Definition rtc_engine_i.h:106
RecordingEventKeyIndex
Definition rtc_engine_i.h:112
@ RECORDING_JOIN_EVT_TRIGGERMODE
Definition rtc_engine_i.h:131
@ RECORDING_JOIN_EVT_AUDIOONLY
Definition rtc_engine_i.h:127
@ RECORDING_JOIN_EVT_DECODEVIDEOTYPE
Definition rtc_engine_i.h:124
@ RECORDING_JOIN_EVT_MIXFPS
Definition rtc_engine_i.h:119
@ RECORDING_JOIN_EVT_LIVEMODE
Definition rtc_engine_i.h:125
@ RECORDING_JOIN_EVT_VIDEOONLY
Definition rtc_engine_i.h:128
@ RECORDING_JOIN_EVT_RESERVE1
Definition rtc_engine_i.h:133
@ RECORDING_JOIN_EVT_MAX
Definition rtc_engine_i.h:138
@ RECORDING_LEAVE_EVT_START
Definition rtc_engine_i.h:141
@ RECORDING_LEAVE_EVT_MAX
Definition rtc_engine_i.h:148
@ RECORDING_JOIN_EVT_MINUDPPORT
Definition rtc_engine_i.h:121
@ RECORDING_JOIN_EVT_IDLE
Definition rtc_engine_i.h:126
@ RECORDING_JOIN_EVT_DECODEAUDIOTYPE
Definition rtc_engine_i.h:123
@ RECORDING_JOIN_EVT_START
Definition rtc_engine_i.h:114
@ RECORDING_LEAVE_EVT_LEAVEPATHCODE
Definition rtc_engine_i.h:142
@ RECORDING_LEAVE_EVT_RESERVE5
Definition rtc_engine_i.h:147
@ RECORDING_LEAVE_EVT_RESERVE1
Definition rtc_engine_i.h:143
@ RECORDING_JOIN_EVT_MIXEDVIDEOAUDIOMODE
Definition rtc_engine_i.h:116
@ RECORDING_JOIN_EVT_LANGUAGE
Definition rtc_engine_i.h:132
@ RECORDING_JOIN_EVT_STREAMTYPE
Definition rtc_engine_i.h:130
@ RECORDING_JOIN_EVT_MIXLOW
Definition rtc_engine_i.h:118
@ RECORDING_JOIN_EVT_MIXHIGH
Definition rtc_engine_i.h:117
@ MAX_RECORDING_JOIN_EVT_RESERVE15
Definition rtc_engine_i.h:137
@ RECORDING_JOIN_EVT_SYSLOGFACILITY
Definition rtc_engine_i.h:129
@ RECORDING_JOIN_EVT_MIXMODE
Definition rtc_engine_i.h:115
@ RECORDING_JOIN_EVT_MAXUDPPORT
Definition rtc_engine_i.h:122
@ RECORDING_JOIN_EVT_MIXKBPS
Definition rtc_engine_i.h:120
AGORA_API agora::rtc::IRtcEngineInternal *AGORA_CALL getInternalAgoraRtcEngine()
AGORA_API bool AGORA_CALL decode_sei_layout(const void *data, unsigned size, layout_info *layout)
ENGINE_INIT_STATUS
Definition rtc_engine_i.h:315
@ STATUS_UNINIT
Definition rtc_engine_i.h:316
@ STATUS_INITIALIZING
Definition rtc_engine_i.h:317
@ STATUS_INITIALIZED
Definition rtc_engine_i.h:318
ENCRYPTION_MODE
Definition AgoraBase.h:6778
APP_TYPE
Definition rtc_engine_i.h:154
@ APP_TYPE_COCOS
Definition rtc_engine_i.h:157
@ APP_TYPE_CEF
Definition rtc_engine_i.h:169
@ APP_TYPE_REACT_NATIVE
Definition rtc_engine_i.h:164
@ APP_TYPE_C_SHARP
Definition rtc_engine_i.h:168
@ APP_TYPE_XAMARIN
Definition rtc_engine_i.h:162
@ APP_TYPE_INVALID_VALUE
Definition rtc_engine_i.h:155
@ APP_TYPE_UNREAL
Definition rtc_engine_i.h:161
@ APP_TYPE_UNI_APP
Definition rtc_engine_i.h:170
@ APP_TYPE_ELECTRON
Definition rtc_engine_i.h:159
@ APP_TYPE_UNITY
Definition rtc_engine_i.h:158
@ APP_TYPE_PYTHON
Definition rtc_engine_i.h:165
@ APP_TYPE_UNREAL_BP
Definition rtc_engine_i.h:171
@ APP_TYPE_FLUTTER
Definition rtc_engine_i.h:160
@ APP_TYPE_RUST
Definition rtc_engine_i.h:167
@ APP_TYPE_NATIVE
Definition rtc_engine_i.h:156
@ APP_TYPE_COCOS_CREATOR
Definition rtc_engine_i.h:166
@ APP_TYPE_APICLOUD
Definition rtc_engine_i.h:163
ENGINE_INIT_TS_POSITION
Definition rtc_engine_i.h:307
@ INIT_BEGIN
Definition rtc_engine_i.h:310
@ CREATE_BEGIN
Definition rtc_engine_i.h:308
@ INIT_END_INTERNAL
Definition rtc_engine_i.h:312
@ CREATE_END
Definition rtc_engine_i.h:309
@ INIT_END
Definition rtc_engine_i.h:311
unsigned int uid_t
Definition AgoraMediaBase.h:28
INTERFACE_ID_EX_TYPE
Definition rtc_engine_i.h:84
@ AGORA_IID_RTC_ENGINE_EX
Definition rtc_engine_i.h:85
RTC_EVENT
Definition rtc_engine_i.h:174
@ AUDIO_VOLUME_INDICATION
Definition rtc_engine_i.h:223
@ AUDIO_METADATA_RECEIVED
Definition rtc_engine_i.h:287
@ TRANSPORT_QUALITY
Definition rtc_engine_i.h:182
@ CONTENT_INSPECT_RESULT
Definition rtc_engine_i.h:280
@ LIVE_TRANSCODING
Definition rtc_engine_i.h:192
@ REMOTE_AUDIO_STAT
Definition rtc_engine_i.h:250
@ WLACC_STATS
Definition rtc_engine_i.h:278
@ STREAM_MESSAGE_ERROR
Definition rtc_engine_i.h:233
@ NETWORK_QUALITY
Definition rtc_engine_i.h:207
@ FIRST_REMOTE_VIDEO_FRAME
Definition rtc_engine_i.h:224
@ STREAM_INJECTED_STATUS
Definition rtc_engine_i.h:196
@ ERROR_EVENT
Definition rtc_engine_i.h:176
@ PRIVILEGE_WILL_EXPIRE
Definition rtc_engine_i.h:197
@ USER_STATE_CHANGED
Definition rtc_engine_i.h:220
@ REMOVE_PUBLISHER_REQUEST
Definition rtc_engine_i.h:195
@ MEDIA_CONTROL_MESSAGE
Definition rtc_engine_i.h:290
@ FIRST_REMOTE_AUDIO_FRAME
Definition rtc_engine_i.h:275
@ SET_RTM_FLAG_RESULT
Definition rtc_engine_i.h:285
@ SNAPSHOT_TAKEN
Definition rtc_engine_i.h:279
@ CROSS_CHANNEL_STATE
Definition rtc_engine_i.h:257
@ LOCAL_USER_REGISTERED
Definition rtc_engine_i.h:254
@ LEAVE_CHANNEL
Definition rtc_engine_i.h:206
@ AUDIO_DEVICE_VOLUME_CHANGED
Definition rtc_engine_i.h:238
@ LICENSE_VERIFY
Definition rtc_engine_i.h:282
@ USER_MUTE_VIDEO
Definition rtc_engine_i.h:212
@ PUBLISH_URL
Definition rtc_engine_i.h:190
@ PERMISSION_ERROR_EVENT
Definition rtc_engine_i.h:271
@ UPLOAD_LOG_RESULT
Definition rtc_engine_i.h:274
@ CLIENT_ROLE_CHANGE_FAILED
Definition rtc_engine_i.h:201
@ FIRST_LOCAL_VIDEO_FRAME_PUBLISHED
Definition rtc_engine_i.h:236
@ FIRST_REMOTE_AUDIO_DECODED
Definition rtc_engine_i.h:253
@ VIDEO_SUBSCRIBE_STATE_CHANGED
Definition rtc_engine_i.h:268
@ VIDEO_DEVICE_STATE_CHANGED
Definition rtc_engine_i.h:187
@ JOIN_PUBLISHER_REQUEST
Definition rtc_engine_i.h:193
@ REMOTE_VIDEO_STREAM_INFO_UPDATED
Definition rtc_engine_i.h:266
@ REMOTE_AUDIO_STATE_CHANGED
Definition rtc_engine_i.h:259
@ CAMERA_EXPOSURE_AREA_CHANGED
Definition rtc_engine_i.h:249
@ RHYTHM_PLAYFR_STATE_CHANGED
Definition rtc_engine_i.h:273
@ LASTMILE_PROBE_RESULT
Definition rtc_engine_i.h:217
@ LOCAL_TRANSCODING
Definition rtc_engine_i.h:284
@ LOCAL_AUDIO_STAT
Definition rtc_engine_i.h:260
@ UPLINK_NETWORK_INFO_UPDATE
Definition rtc_engine_i.h:218
@ ENCRYPTION_ERROR_EVENT
Definition rtc_engine_i.h:265
@ AUDIO_MIXING_STATE_CHANGED
Definition rtc_engine_i.h:262
@ _INTERNAL_ENGINE_STATUS
Definition rtc_engine_i.h:240
@ REMOTE_VIDEO_STAT
Definition rtc_engine_i.h:226
@ INTRA_REQUEST_RECEIVED
Definition rtc_engine_i.h:263
@ CONNECTION_LOST
Definition rtc_engine_i.h:229
@ PROXY_SUCCESS
Definition rtc_engine_i.h:276
@ VIDEO_RENDERING_TRACING_RESULT
Definition rtc_engine_i.h:283
@ MEDIA_ENGINE_LOAD_SUCCESS
Definition rtc_engine_i.h:178
@ UNPUBLISH_URL
Definition rtc_engine_i.h:191
@ NETWORK_TYPE_CHANGED
Definition rtc_engine_i.h:251
@ RDT_STATE_CHANGED
Definition rtc_engine_i.h:289
@ LOCAL_AUDIO_STATE_CHANGED
Definition rtc_engine_i.h:261
@ QUERY_RECORDING_SERVICE_STATUS
Definition rtc_engine_i.h:232
@ VIDEO_LAYOUT_INFO
Definition rtc_engine_i.h:286
@ AUDIO_EFFECT_FINISHED
Definition rtc_engine_i.h:215
@ MEDIA_ENGINE_START_CALL_SUCCESS
Definition rtc_engine_i.h:180
@ CAMERA_FOCUS_AREA_CHANGED
Definition rtc_engine_i.h:243
@ USER_ENABLE_LOCAL_VIDEO
Definition rtc_engine_i.h:216
@ CONNECTION_STATE_CHANGED
Definition rtc_engine_i.h:248
@ AUDIO_PUBLISH_STATE_CHANGED
Definition rtc_engine_i.h:269
@ USER_ENABLE_VIDEO
Definition rtc_engine_i.h:213
@ DOWNLINK_NETWORK_INFO_UPDATE
Definition rtc_engine_i.h:219
@ VIDEO_PUBLISH_STATE_CHANGED
Definition rtc_engine_i.h:270
@ VIDEO_STOPPED
Definition rtc_engine_i.h:181
@ REMOTE_VIDEO_STATE_CHANGED
Definition rtc_engine_i.h:245
@ PATH_STATS
Definition rtc_engine_i.h:291
@ JOIN_PUBILSHER_RESPONSE
Definition rtc_engine_i.h:194
@ USER_MUTE_AUDIO
Definition rtc_engine_i.h:211
@ REMOTE_VIDEO_STATE_CHANGED_EXT
Definition rtc_engine_i.h:256
@ LASTMILE_QUALITY
Definition rtc_engine_i.h:214
@ AUDIO_MIXING_POSITION_CHANGED
Definition rtc_engine_i.h:281
@ AUDIO_ROUTING_CHANGED
Definition rtc_engine_i.h:252
@ RTMP_STREAMING_STATE
Definition rtc_engine_i.h:199
@ RTC_STATS
Definition rtc_engine_i.h:209
@ MEDIA_ENGINE_START_CAMERA_SUCCESS
Definition rtc_engine_i.h:179
@ CLIENT_ROLE_CHANGED
Definition rtc_engine_i.h:189
@ USER_TRANSPORT_STAT
Definition rtc_engine_i.h:247
@ WARNING_EVENT
Definition rtc_engine_i.h:177
@ CONNECTION_INTERRUPTED
Definition rtc_engine_i.h:231
@ NATIVE_LOG
Definition rtc_engine_i.h:175
@ FIRST_LOCAL_VIDEO_FRAME
Definition rtc_engine_i.h:227
@ LOCAL_VIDEO_STATE_CHANGED
Definition rtc_engine_i.h:198
@ ACTIVE_SPEAKER
Definition rtc_engine_i.h:237
@ CROSS_CHANNEL_EVENT
Definition rtc_engine_i.h:258
@ AUDIO_SUBSCRIBE_STATE_CHANGED
Definition rtc_engine_i.h:267
@ REQUEST_TOKEN
Definition rtc_engine_i.h:188
@ PUBLISH_STREAM_STATE
Definition rtc_engine_i.h:200
@ AUDIO_QUALITY
Definition rtc_engine_i.h:183
@ CONNECTION_BANNED
Definition rtc_engine_i.h:242
@ PUBLISH_STREAM_EVENT
Definition rtc_engine_i.h:202
@ USER_INFO_UPDATED
Definition rtc_engine_i.h:255
@ RENEW_TOKEN_RESULT
Definition rtc_engine_i.h:203
@ RECAP_INDICATION
Definition rtc_engine_i.h:222
@ USER_OFFLINE
Definition rtc_engine_i.h:208
@ TRANSPORT_SERVER_INSTANCE
Definition rtc_engine_i.h:184
@ FIRST_REMOTE_VIDEO_DECODED
Definition rtc_engine_i.h:228
@ STREAM_MESSAGE
Definition rtc_engine_i.h:230
@ USER_JOINED
Definition rtc_engine_i.h:210
@ VIDEO_SIZE_CHANGED
Definition rtc_engine_i.h:234
@ OPEN_CHANNEL_SUCCESS
Definition rtc_engine_i.h:205
@ LOCAL_VIDEO_STAT
Definition rtc_engine_i.h:225
@ REMOTE_SUBSCRIBE_FALLBACK_TO_AUDIO_ONLY
Definition rtc_engine_i.h:246
@ PEER_USER_INFO_UPDATED
Definition rtc_engine_i.h:264
@ MEDIA_ENGINE_EVENT
Definition rtc_engine_i.h:185
@ RDT_MESSAGE
Definition rtc_engine_i.h:288
@ AUDIO_DEVICE_STATE_CHANGED
Definition rtc_engine_i.h:186
@ FACE_DETECT_VALUE
Definition rtc_engine_i.h:272
@ WLACC_MESSAGE
Definition rtc_engine_i.h:277
@ FIRST_LOCAL_AUDIO_FRAME_PUBLISHED
Definition rtc_engine_i.h:235
SCREEN_SHARING_MODE
Definition rtc_engine_i.h:88
@ SCREEN_SHARING_MOVIE
Definition rtc_engine_i.h:88
@ SCREEN_SHARING_NORMAL
Definition rtc_engine_i.h:88
Definition AgoraAtomicOps.h:21
const char * user_id_t
Definition AgoraBase.h:853
Definition video_node_i.h:28
Definition AgoraMediaBase.h:1985
Definition AgoraMediaBase.h:2086
Definition AgoraBase.h:6811
bool datastreamEncryptionEnabled
Definition AgoraBase.h:6833
const char * encryptionKey
Definition AgoraBase.h:6823
uint8_t encryptionKdfSalt[32]
Definition AgoraBase.h:6831
ENCRYPTION_MODE encryptionMode
Definition AgoraBase.h:6816
Definition rtc_engine_i.h:91
int audio_send_packet_rate
Definition rtc_engine_i.h:95
int farin_signal_level
Definition rtc_engine_i.h:99
int audio_recv_packet_rate
Definition rtc_engine_i.h:96
int playoutfreq
Definition rtc_engine_i.h:93
int nearout_signal_level
Definition rtc_engine_i.h:98
int audio_send_frame_rate
Definition rtc_engine_i.h:94
int nearin_signal_level
Definition rtc_engine_i.h:97
int recfreq
Definition rtc_engine_i.h:92
Definition IAgoraRtcEngineEx.h:20
RtcEngineContext()
Definition IAgoraRtcEngine.h:3494
Definition rtc_engine_i.h:329
agora_refptr< IMediaExtensionObserver > extensionObserverProxy
Definition rtc_engine_i.h:334
int maxOutputBitrateKpbs
Definition rtc_engine_i.h:331
std::string libLoadPath
Definition rtc_engine_i.h:343
bool is_p2p_switch_enabled_
Definition rtc_engine_i.h:339
RtcEngineContextInternal()
Definition rtc_engine_i.h:345
bool isPassThruMode
Definition rtc_engine_i.h:330
bool isPureCpp
Definition rtc_engine_i.h:341
RtcEngineContextInternal(const RtcEngineContext &ctx)
Definition AgoraBase.h:1960
Definition rtc_engine_i.h:360
user_id_t userId
Definition rtc_engine_i.h:361
int skippedFrames
Definition rtc_engine_i.h:365
int delay
Definition rtc_engine_i.h:362
int sentFrameRate
Definition rtc_engine_i.h:363
int renderedFrameRate
Definition rtc_engine_i.h:364
Definition rtc_engine_i.h:301
unsigned int sent_ts
Definition rtc_engine_i.h:304
unsigned int ts
Definition rtc_engine_i.h:303
uid_t uid
Definition rtc_engine_i.h:302
Definition rtc_engine_i.h:576
int bgcolor
Definition rtc_engine_i.h:579
int height
Definition rtc_engine_i.h:578
int width
Definition rtc_engine_i.h:577
Definition rtc_engine_i.h:598
region_info regions[NUM_OF_LAYOUT_REGIONS]
Definition rtc_engine_i.h:603
unsigned int region_count
Definition rtc_engine_i.h:602
canvas_info canvas
Definition rtc_engine_i.h:600
long long ms
Definition rtc_engine_i.h:599
Definition rtc_engine_i.h:582
int alpha
Definition rtc_engine_i.h:590
int zorder
Definition rtc_engine_i.h:593
double width
Definition rtc_engine_i.h:587
unsigned id
Definition rtc_engine_i.h:583
double x
Definition rtc_engine_i.h:585
double y
Definition rtc_engine_i.h:586
int render_mode
Definition rtc_engine_i.h:592
double height
Definition rtc_engine_i.h:588
Definition rtc_engine_i.h:294
unsigned int frame_num
Definition rtc_engine_i.h:296
unsigned int sent_ts
Definition rtc_engine_i.h:297
uid_t uid
Definition rtc_engine_i.h:295
unsigned int ts
Definition rtc_engine_i.h:298