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 {
205
210 RTC_STATS = 13010,
211 USER_JOINED = 13013,
222
240#ifdef INTERNAL_ENGINE_STATUS
242#endif
245
279 WLACC_STATS = 14061,
289 RDT_MESSAGE = 14071,
292 PATH_STATS = 14074,
294};
295
298 unsigned int frame_num;
299 unsigned int sent_ts;
300 unsigned int ts;
301};
302
305 unsigned int ts;
306 unsigned int sent_ts;
307};
308
316
322
330
334
335 // extension event observer
337
338 // 0 for AGORA_CC,
339 // 1 for REMB
340 // 2 for TRANSPORT_CC
342
344
345 std::string libLoadPath;
346
348 : isPassThruMode(false),
349 maxOutputBitrateKpbs(30 * 1000),
350 extensionObserverProxy(nullptr),
351#if defined(P2P_SWITCH_DEFAULT_VALUE)
352 is_p2p_switch_enabled_(P2P_SWITCH_DEFAULT_VALUE),
353#else
355#endif
356 isPureCpp(true)
357 {
358 }
360};
361
369
371 public:
372 virtual const char* eventHandlerType() const { return "event_handler_internal"; }
373
374 virtual bool onEvent(RTC_EVENT evt, const std::string* payload) {
375 (void)evt;
376 (void)payload;
377
378 /* return false to indicate this event is not handled */
379 return false;
380 }
381};
382
384 protected:
386
387 public:
388 virtual aosl_ref_t ref() = 0;
389 virtual int initializeEx(const RtcEngineContextInternal& context, bool sync = false) = 0;
390 virtual const char* getSid(const RtcConnection& connection = {}) = 0;
391 virtual int setProfile(const char* profile, bool merge) = 0;
392 virtual int getProfile(std::string& result) = 0;
393 virtual int initializeInternal(const RtcEngineContextInternal& context, bool sync = false) = 0;
394 virtual int releaseInternal() = 0;
395 virtual int setAudioOptionParams(const char* params) = 0;
396 virtual int getAudioOptionParams(char* params) = 0;
397 virtual bool isMicrophoneOn() = 0;
398
399 virtual int reportWebAgentVideoStats(const WebAgentVideoStats& stats) = 0;
400
401#if (defined(__APPLE__) && TARGET_OS_MAC && !TARGET_OS_IOS)
402 virtual int monitorDeviceChange(bool enabled) = 0;
403#endif // __APPLE__ && !TARGET_OS_IOS && TARGET_OS_MAC
404
405 virtual int printLog(int level, const char* message) = 0;
406 virtual int runOnWorkerThread(std::function<void(void)>&& f) = 0;
407 virtual int reportArgusCounters(int* counterId, int* value, int count, uid_t uid) = 0;
408
409 virtual int enableYuvDumper(bool enable) = 0;
410
411 // this function is only for expert of video codec,
412 // please do NOT call it if not knowing what's it about
413 virtual int setVideoConfigParam(const char* params) = 0;
414
415 virtual int getVideoConfigParam(char* params, size_t size) = 0;
416
419 const RtcConnection& connection) = 0;
420
421 virtual int getParametersEx(const RtcConnection& connection, const char* key,
422 std::string& results) = 0;
423
424 // this function is only for switching screen capture source api on windows platform
425#if defined(_WIN32)
426 virtual int GetScreenCaptureType() = 0;
427#endif
428
429 virtual int setLogLevelEx(unsigned int filter) = 0;
430
431 virtual int simulateOnSetParameters(const std::string& parameters) = 0;
432
433 virtual int setCameraDevice(const char dev_id[MAX_DEVICE_ID_LENGTH]) = 0;
434
435 virtual aosl_ref_t getMediaPlayer(int sourceId) = 0;
436 virtual int putMediaPlayer(int sourceId) = 0;
438 const RtcConnection& connection = {}) const = 0;
439
440#if defined(FEATURE_ENABLE_UT_SUPPORT)
441 // 0 is left channel, 1 is right channel, -1 is invalid
442 virtual int soundPositionChannel(uid_t uid) = 0;
443 virtual int soundPositionChannel(uid_t uid, const RtcConnection& connection) = 0;
444#endif
445
446 virtual int32_t setAppType(APP_TYPE appType) = 0;
447 virtual int32_t enableVosUserInfoHidden(bool enabled) = 0;
448
449 virtual int setMediaRecorderObserver(const char* channelId, uid_t uid, bool isLocal,
451 int sys_version = 0) = 0;
452 virtual int startRecording(const char* channelId, uid_t uid, bool isLocal,
453 const media::MediaRecorderConfiguration& config) = 0;
455 virtual int stopPreviewRecording() = 0;
456 virtual int stopRecording(const char* channelId, uid_t uid, bool isLocal) = 0;
458 virtual int releaseRecorder(const char* channelId, uid_t uid, bool isLocal) = 0;
459 virtual int setTimestamp(ENGINE_INIT_TS_POSITION ts_position, uint64_t ts) = 0;
460 virtual uint64_t getTimestamp(ENGINE_INIT_TS_POSITION ts_position) const = 0;
461 virtual void reportEngineInitializeEvent() const = 0;
462 virtual std::string getRecentSid(const RtcConnection* connnection) = 0;
463
464 virtual int setupAudioAttributeContext(void* audioAttr) = 0;
465#if defined(__ANDROID__)
466 virtual int switchCameraId(const char* cameraId) = 0;
467#endif // __ANDROID__
468
469 virtual int getInitStatus() = 0;
470 virtual void setInitStatus(ENGINE_INIT_STATUS status) = 0;
471
473 return handler && 0 == strcmp("event_handler", handler->eventHandlerType());
474 }
475
477 return handler && 0 == strcmp("event_handler_ex", handler->eventHandlerType());
478 }
479};
480
482 typedef const char*(AGORA_CALL* PFN_GetAgoraRtcEngineVersion)(int* build);
483 typedef IRtcEngine*(AGORA_CALL* PFN_CreateAgoraRtcEngine)();
484 typedef void(AGORA_CALL* PFN_ShutdownAgoraRtcEngineService)();
485
486#if defined(_WIN32)
487 typedef HINSTANCE lib_handle_t;
488 static HINSTANCE MyLoadLibrary(const char* dllname) {
489 char path[MAX_PATH];
490 GetModuleFileNameA(GetCurrentModuleInstance(), path, MAX_PATH);
491 auto p = strrchr(path, '\\');
492 strcpy(p + 1, dllname); // NOLINT
493 HINSTANCE hDll = LoadLibraryA(path);
494 if (hDll) return hDll;
495
496 hDll = LoadLibraryA(dllname);
497 return hDll;
498 }
499#else
500 typedef void* lib_handle_t;
501#endif // _WIN32
502
503 public:
504 RtcEngineLibHelper(const char* dllname)
505 : m_firstInit(true),
506 m_lib(NULL),
507 m_dllName(dllname),
508 m_pfnCreateAgoraRtcEngine(nullptr),
509 m_pfnGetAgoraRtcEngineVersion(nullptr) {}
510
511 bool initialize() {
512 if (!m_firstInit) {
513 return isValid();
514 }
515
516 if (m_dllName.empty()) {
517 return false;
518 }
519
520 m_firstInit = false;
521#if defined(_WIN32)
522 m_lib = MyLoadLibrary(m_dllName.c_str());
523 if (m_lib) {
524 m_pfnCreateAgoraRtcEngine =
525 (PFN_CreateAgoraRtcEngine)GetProcAddress(m_lib, "createAgoraRtcEngine");
526 m_pfnGetAgoraRtcEngineVersion =
527 (PFN_GetAgoraRtcEngineVersion)GetProcAddress(m_lib, "getAgoraRtcEngineVersion");
528 }
529#elif defined(__ANDROID__) || defined(__linux__)
530 m_lib = dlopen(m_dllName.c_str(), RTLD_LAZY);
531 if (m_lib) {
532 m_pfnCreateAgoraRtcEngine = (PFN_CreateAgoraRtcEngine)dlsym(m_lib, "createAgoraRtcEngine");
533 m_pfnGetAgoraRtcEngineVersion =
534 (PFN_GetAgoraRtcEngineVersion)dlsym(m_lib, "getAgoraRtcEngineVersion");
535 }
536#endif // _WIN32
537
538 return isValid();
539 }
540
542 if (m_lib) {
543#if defined(_WIN32)
544 FreeLibrary(m_lib);
545#elif defined(__ANDROID__) || defined(__linux__)
546 dlclose(m_lib);
547#endif // _WIN32
548
549 m_lib = NULL;
550 }
551
552 m_pfnCreateAgoraRtcEngine = nullptr;
553 m_pfnGetAgoraRtcEngineVersion = nullptr;
554 }
555
557
558 bool isValid() { return m_pfnCreateAgoraRtcEngine != NULL; }
559
561 return m_pfnCreateAgoraRtcEngine ? m_pfnCreateAgoraRtcEngine() : NULL;
562 }
563
564 const char* getVersion(int* build) {
565 return m_pfnGetAgoraRtcEngineVersion ? m_pfnGetAgoraRtcEngineVersion(build) : nullptr;
566 }
567
568 private:
569 bool m_firstInit;
570 lib_handle_t m_lib;
571 std::string m_dllName;
572 PFN_CreateAgoraRtcEngine m_pfnCreateAgoraRtcEngine;
573 PFN_GetAgoraRtcEngineVersion m_pfnGetAgoraRtcEngineVersion;
574};
575
576// A helper function for decoding out the SEI layout
577
579 int width;
582};
583
585 unsigned id;
586
587 double x;
588 double y;
589 double width;
590 double height;
591
592 int alpha; // [0, 255]
593
594 int render_mode; // 0, crop; 1, ZoomtoFit
595 int zorder; // [0, 100]
596};
597
598#define NUM_OF_LAYOUT_REGIONS 17
599
601 long long ms;
603 // At most 9 broadcasters: 1 host, 8 guests.
604 unsigned int region_count;
605 region_info regions[NUM_OF_LAYOUT_REGIONS];
606};
607
609 public:
612 encryptionKey(config.encryptionKey ? config.encryptionKey : ""),
614 for (size_t i = 0; i < encryptionKdfSalt.size(); i++) {
616 }
617 }
620 config.encryptionKey = encryptionKey.c_str();
622 for (size_t i = 0; i < encryptionKdfSalt.size(); i++) {
623 config.encryptionKdfSalt[i] = encryptionKdfSalt.at(i);
624 }
625 }
627 std::string encryptionKey;
628 std::array<uint8_t, 32> encryptionKdfSalt;
630};
631
632AGORA_API bool AGORA_CALL decode_sei_layout(const void* data, unsigned size, layout_info* layout);
633
635
636} // namespace rtc
637} // 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:610
void ToEncryptionConfig(EncryptionConfig &config) const
Definition rtc_engine_i.h:618
std::array< uint8_t, 32 > encryptionKdfSalt
Definition rtc_engine_i.h:628
bool datastreamEncryptionEnabled
Definition rtc_engine_i.h:629
ENCRYPTION_MODE encryptionMode
Definition rtc_engine_i.h:626
std::string encryptionKey
Definition rtc_engine_i.h:627
virtual void onVideoTransportPacketInfo(const video_transport_packet_info &info)=0
virtual void onAudioTransportPacketInfo(const audio_transport_packet_info &info)=0
Definition IAgoraRtcEngineEx.h:35
Definition IAgoraRtcEngine.h:1791
virtual const char * eventHandlerType() const
Definition IAgoraRtcEngine.h:1795
Definition rtc_engine_i.h:370
virtual const char * eventHandlerType() const
Definition rtc_engine_i.h:372
virtual bool onEvent(RTC_EVENT evt, const std::string *payload)
Definition rtc_engine_i.h:374
Definition IAgoraRtcEngineEx.h:1104
Definition IAgoraRtcEngine.h:4581
Definition rtc_engine_i.h:383
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:385
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:472
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:476
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:504
agora::rtc::IRtcEngine * createEngine()
Definition rtc_engine_i.h:560
~RtcEngineLibHelper()
Definition rtc_engine_i.h:556
bool isValid()
Definition rtc_engine_i.h:558
bool initialize()
Definition rtc_engine_i.h:511
const char * getVersion(int *build)
Definition rtc_engine_i.h:564
void deinitialize()
Definition rtc_engine_i.h:541
Definition IAgoraService.h:73
Definition rtc_connection_i.h:28
Definition agora_log_i.h:14
RecorderState
The current recording state.
Definition AgoraMediaBase.h:2308
RecorderReasonCode
The reason for the state change.
Definition AgoraMediaBase.h:2327
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:317
@ STATUS_UNINIT
Definition rtc_engine_i.h:318
@ STATUS_INITIALIZING
Definition rtc_engine_i.h:319
@ STATUS_INITIALIZED
Definition rtc_engine_i.h:320
ENCRYPTION_MODE
The built-in encryption mode.
Definition AgoraBase.h:7232
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:309
@ INIT_BEGIN
Definition rtc_engine_i.h:312
@ CREATE_BEGIN
Definition rtc_engine_i.h:310
@ INIT_END_INTERNAL
Definition rtc_engine_i.h:314
@ CREATE_END
Definition rtc_engine_i.h:311
@ INIT_END
Definition rtc_engine_i.h:313
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:224
@ AUDIO_METADATA_RECEIVED
Definition rtc_engine_i.h:288
@ TRANSPORT_QUALITY
Definition rtc_engine_i.h:182
@ CONTENT_INSPECT_RESULT
Definition rtc_engine_i.h:281
@ LIVE_TRANSCODING
Definition rtc_engine_i.h:192
@ REMOTE_AUDIO_STAT
Definition rtc_engine_i.h:251
@ WLACC_STATS
Definition rtc_engine_i.h:279
@ STREAM_MESSAGE_ERROR
Definition rtc_engine_i.h:234
@ NETWORK_QUALITY
Definition rtc_engine_i.h:208
@ FIRST_REMOTE_VIDEO_FRAME
Definition rtc_engine_i.h:225
@ 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:221
@ REMOVE_PUBLISHER_REQUEST
Definition rtc_engine_i.h:195
@ MEDIA_CONTROL_MESSAGE
Definition rtc_engine_i.h:291
@ FIRST_REMOTE_AUDIO_FRAME
Definition rtc_engine_i.h:276
@ SET_RTM_FLAG_RESULT
Definition rtc_engine_i.h:286
@ SNAPSHOT_TAKEN
Definition rtc_engine_i.h:280
@ CROSS_CHANNEL_STATE
Definition rtc_engine_i.h:258
@ LOCAL_USER_REGISTERED
Definition rtc_engine_i.h:255
@ LEAVE_CHANNEL
Definition rtc_engine_i.h:207
@ AUDIO_DEVICE_VOLUME_CHANGED
Definition rtc_engine_i.h:239
@ LICENSE_VERIFY
Definition rtc_engine_i.h:283
@ USER_MUTE_VIDEO
Definition rtc_engine_i.h:213
@ PUBLISH_URL
Definition rtc_engine_i.h:190
@ PERMISSION_ERROR_EVENT
Definition rtc_engine_i.h:272
@ UPLOAD_LOG_RESULT
Definition rtc_engine_i.h:275
@ CLIENT_ROLE_CHANGE_FAILED
Definition rtc_engine_i.h:201
@ FIRST_LOCAL_VIDEO_FRAME_PUBLISHED
Definition rtc_engine_i.h:237
@ FIRST_REMOTE_AUDIO_DECODED
Definition rtc_engine_i.h:254
@ VIDEO_SUBSCRIBE_STATE_CHANGED
Definition rtc_engine_i.h:269
@ 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:267
@ REMOTE_AUDIO_STATE_CHANGED
Definition rtc_engine_i.h:260
@ CAMERA_EXPOSURE_AREA_CHANGED
Definition rtc_engine_i.h:250
@ RHYTHM_PLAYFR_STATE_CHANGED
Definition rtc_engine_i.h:274
@ LASTMILE_PROBE_RESULT
Definition rtc_engine_i.h:218
@ LOCAL_TRANSCODING
Definition rtc_engine_i.h:285
@ LOCAL_AUDIO_STAT
Definition rtc_engine_i.h:261
@ UPLINK_NETWORK_INFO_UPDATE
Definition rtc_engine_i.h:219
@ ENCRYPTION_ERROR_EVENT
Definition rtc_engine_i.h:266
@ AUDIO_MIXING_STATE_CHANGED
Definition rtc_engine_i.h:263
@ _INTERNAL_ENGINE_STATUS
Definition rtc_engine_i.h:241
@ REMOTE_VIDEO_STAT
Definition rtc_engine_i.h:227
@ INTRA_REQUEST_RECEIVED
Definition rtc_engine_i.h:264
@ CONNECTION_LOST
Definition rtc_engine_i.h:230
@ PROXY_SUCCESS
Definition rtc_engine_i.h:277
@ VIDEO_RENDERING_TRACING_RESULT
Definition rtc_engine_i.h:284
@ 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:252
@ RDT_STATE_CHANGED
Definition rtc_engine_i.h:290
@ LOCAL_AUDIO_STATE_CHANGED
Definition rtc_engine_i.h:262
@ QUERY_RECORDING_SERVICE_STATUS
Definition rtc_engine_i.h:233
@ VIDEO_LAYOUT_INFO
Definition rtc_engine_i.h:287
@ AUDIO_EFFECT_FINISHED
Definition rtc_engine_i.h:216
@ MEDIA_ENGINE_START_CALL_SUCCESS
Definition rtc_engine_i.h:180
@ CAMERA_FOCUS_AREA_CHANGED
Definition rtc_engine_i.h:244
@ USER_ENABLE_LOCAL_VIDEO
Definition rtc_engine_i.h:217
@ CONNECTION_STATE_CHANGED
Definition rtc_engine_i.h:249
@ AUDIO_PUBLISH_STATE_CHANGED
Definition rtc_engine_i.h:270
@ USER_ENABLE_VIDEO
Definition rtc_engine_i.h:214
@ DOWNLINK_NETWORK_INFO_UPDATE
Definition rtc_engine_i.h:220
@ VIDEO_PUBLISH_STATE_CHANGED
Definition rtc_engine_i.h:271
@ VIDEO_STOPPED
Definition rtc_engine_i.h:181
@ REMOTE_VIDEO_STATE_CHANGED
Definition rtc_engine_i.h:246
@ PATH_STATS
Definition rtc_engine_i.h:292
@ JOIN_PUBILSHER_RESPONSE
Definition rtc_engine_i.h:194
@ USER_MUTE_AUDIO
Definition rtc_engine_i.h:212
@ REMOTE_VIDEO_STATE_CHANGED_EXT
Definition rtc_engine_i.h:257
@ LASTMILE_QUALITY
Definition rtc_engine_i.h:215
@ AUDIO_MIXING_POSITION_CHANGED
Definition rtc_engine_i.h:282
@ AUDIO_ROUTING_CHANGED
Definition rtc_engine_i.h:253
@ RTMP_STREAMING_STATE
Definition rtc_engine_i.h:199
@ RTC_STATS
Definition rtc_engine_i.h:210
@ 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:248
@ WARNING_EVENT
Definition rtc_engine_i.h:177
@ CONNECTION_INTERRUPTED
Definition rtc_engine_i.h:232
@ NATIVE_LOG
Definition rtc_engine_i.h:175
@ FIRST_LOCAL_VIDEO_FRAME
Definition rtc_engine_i.h:228
@ LOCAL_VIDEO_STATE_CHANGED
Definition rtc_engine_i.h:198
@ ACTIVE_SPEAKER
Definition rtc_engine_i.h:238
@ CROSS_CHANNEL_EVENT
Definition rtc_engine_i.h:259
@ PERMISSION_GRANTED_EVENT
Definition rtc_engine_i.h:293
@ AUDIO_SUBSCRIBE_STATE_CHANGED
Definition rtc_engine_i.h:268
@ 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:243
@ PUBLISH_STREAM_EVENT
Definition rtc_engine_i.h:202
@ USER_INFO_UPDATED
Definition rtc_engine_i.h:256
@ RENEW_TOKEN_RESULT
Definition rtc_engine_i.h:203
@ RECAP_INDICATION
Definition rtc_engine_i.h:223
@ USER_OFFLINE
Definition rtc_engine_i.h:209
@ TRANSPORT_SERVER_INSTANCE
Definition rtc_engine_i.h:184
@ FIRST_REMOTE_VIDEO_DECODED
Definition rtc_engine_i.h:229
@ LOCAL_VIDEO_EVENT
Definition rtc_engine_i.h:204
@ STREAM_MESSAGE
Definition rtc_engine_i.h:231
@ USER_JOINED
Definition rtc_engine_i.h:211
@ VIDEO_SIZE_CHANGED
Definition rtc_engine_i.h:235
@ OPEN_CHANNEL_SUCCESS
Definition rtc_engine_i.h:206
@ LOCAL_VIDEO_STAT
Definition rtc_engine_i.h:226
@ REMOTE_SUBSCRIBE_FALLBACK_TO_AUDIO_ONLY
Definition rtc_engine_i.h:247
@ PEER_USER_INFO_UPDATED
Definition rtc_engine_i.h:265
@ MEDIA_ENGINE_EVENT
Definition rtc_engine_i.h:185
@ RDT_MESSAGE
Definition rtc_engine_i.h:289
@ AUDIO_DEVICE_STATE_CHANGED
Definition rtc_engine_i.h:186
@ FACE_DETECT_VALUE
Definition rtc_engine_i.h:273
@ WLACC_MESSAGE
Definition rtc_engine_i.h:278
@ FIRST_LOCAL_AUDIO_FRAME_PUBLISHED
Definition rtc_engine_i.h:236
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:843
Definition video_node_i.h:28
Configuration for audio and video stream recording.
Definition AgoraMediaBase.h:2355
Information about the recording file.
Definition AgoraMediaBase.h:2506
Built-in encryption configurations.
Definition AgoraBase.h:7276
bool datastreamEncryptionEnabled
Definition AgoraBase.h:7301
const char * encryptionKey
Definition AgoraBase.h:7287
uint8_t encryptionKdfSalt[32]
Definition AgoraBase.h:7294
ENCRYPTION_MODE encryptionMode
Definition AgoraBase.h:7281
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
Contains connection information.
Definition IAgoraRtcEngineEx.h:20
RtcEngineContext()
Definition IAgoraRtcEngine.h:4158
Definition rtc_engine_i.h:331
agora_refptr< IMediaExtensionObserver > extensionObserverProxy
Definition rtc_engine_i.h:336
int maxOutputBitrateKpbs
Definition rtc_engine_i.h:333
std::string libLoadPath
Definition rtc_engine_i.h:345
bool is_p2p_switch_enabled_
Definition rtc_engine_i.h:341
RtcEngineContextInternal()
Definition rtc_engine_i.h:347
bool isPassThruMode
Definition rtc_engine_i.h:332
bool isPureCpp
Definition rtc_engine_i.h:343
RtcEngineContextInternal(const RtcEngineContext &ctx)
Video encoder configurations.
Definition AgoraBase.h:2051
Definition rtc_engine_i.h:362
user_id_t userId
Definition rtc_engine_i.h:363
int skippedFrames
Definition rtc_engine_i.h:367
int delay
Definition rtc_engine_i.h:364
int sentFrameRate
Definition rtc_engine_i.h:365
int renderedFrameRate
Definition rtc_engine_i.h:366
Definition rtc_engine_i.h:303
unsigned int sent_ts
Definition rtc_engine_i.h:306
unsigned int ts
Definition rtc_engine_i.h:305
uid_t uid
Definition rtc_engine_i.h:304
Definition rtc_engine_i.h:578
int bgcolor
Definition rtc_engine_i.h:581
int height
Definition rtc_engine_i.h:580
int width
Definition rtc_engine_i.h:579
Definition rtc_engine_i.h:600
region_info regions[NUM_OF_LAYOUT_REGIONS]
Definition rtc_engine_i.h:605
unsigned int region_count
Definition rtc_engine_i.h:604
canvas_info canvas
Definition rtc_engine_i.h:602
long long ms
Definition rtc_engine_i.h:601
Definition rtc_engine_i.h:584
int alpha
Definition rtc_engine_i.h:592
int zorder
Definition rtc_engine_i.h:595
double width
Definition rtc_engine_i.h:589
unsigned id
Definition rtc_engine_i.h:585
double x
Definition rtc_engine_i.h:587
double y
Definition rtc_engine_i.h:588
int render_mode
Definition rtc_engine_i.h:594
double height
Definition rtc_engine_i.h:590
Definition rtc_engine_i.h:296
unsigned int frame_num
Definition rtc_engine_i.h:298
unsigned int sent_ts
Definition rtc_engine_i.h:299
uid_t uid
Definition rtc_engine_i.h:297
unsigned int ts
Definition rtc_engine_i.h:300