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 {
38 class IParameterEngine {
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 {
47 class IMediaRecorderObserverEx {
48 public:
61 virtual void onRecorderStateChanged(RecorderState state, RecorderReasonCode reason) = 0;
75 virtual void onRecorderInfoUpdated(const RecorderInfo& info) = 0;
76
77 virtual ~IMediaRecorderObserverEx() {}
78};
79} // namespace media
80
81namespace rtc {
82class IMediaPlayerEx;
83
84 enum INTERFACE_ID_EX_TYPE {
85 AGORA_IID_RTC_ENGINE_EX = 0xacbd,
86};
87
88 enum SCREEN_SHARING_MODE { SCREEN_SHARING_NORMAL = 0, SCREEN_SHARING_MOVIE = 1 };
89
90#ifdef INTERNAL_ENGINE_STATUS
91 struct InternalEngineStatus {
92 int recfreq;
93 int playoutfreq;
94 int audio_send_frame_rate;
95 int audio_send_packet_rate;
96 int audio_recv_packet_rate;
97 int nearin_signal_level;
98 int nearout_signal_level;
99 int farin_signal_level;
100};
101#endif // INTERNAL_ENGINE_STATUS
102
103 enum class RecordingEventType : unsigned {
104 RECORDING_EVENT_UNKNOWN,
105 RECORDING_EVENT_START,
106 RECORDING_EVENT_JOIN = RECORDING_EVENT_START,
107 RECORDING_EVENT_LEAVE,
108
109 RECORDING_EVENT_END = RECORDING_EVENT_LEAVE,
110};
111
112 enum RecordingEventKeyIndex {
113 // Join event
114 RECORDING_JOIN_EVT_START = 1,
115 RECORDING_JOIN_EVT_MIXMODE = RECORDING_JOIN_EVT_START,
116 RECORDING_JOIN_EVT_MIXEDVIDEOAUDIOMODE = 2,
117 RECORDING_JOIN_EVT_MIXHIGH = 3,
118 RECORDING_JOIN_EVT_MIXLOW = 4,
119 RECORDING_JOIN_EVT_MIXFPS = 5,
120 RECORDING_JOIN_EVT_MIXKBPS = 6,
121 RECORDING_JOIN_EVT_MINUDPPORT = 7,
122 RECORDING_JOIN_EVT_MAXUDPPORT = 8,
123 RECORDING_JOIN_EVT_DECODEAUDIOTYPE = 9,
124 RECORDING_JOIN_EVT_DECODEVIDEOTYPE = 10,
125 RECORDING_JOIN_EVT_LIVEMODE = 11,
126 RECORDING_JOIN_EVT_IDLE = 12,
127 RECORDING_JOIN_EVT_AUDIOONLY = 13,
128 RECORDING_JOIN_EVT_VIDEOONLY = 14, // NEW INSERT
129 RECORDING_JOIN_EVT_SYSLOGFACILITY = 15,
130 RECORDING_JOIN_EVT_STREAMTYPE = 16,
131 RECORDING_JOIN_EVT_TRIGGERMODE = 17,
132 RECORDING_JOIN_EVT_LANGUAGE = 18,
133 RECORDING_JOIN_EVT_RESERVE1 = 19,
134
135 // add new recording join event here ...
136
137 MAX_RECORDING_JOIN_EVT_RESERVE15 = RECORDING_JOIN_EVT_RESERVE1 + 14,
138 RECORDING_JOIN_EVT_MAX = MAX_RECORDING_JOIN_EVT_RESERVE15,
139
140 // Leave event
141 RECORDING_LEAVE_EVT_START = 101,
142 RECORDING_LEAVE_EVT_LEAVEPATHCODE = RECORDING_LEAVE_EVT_START,
143 RECORDING_LEAVE_EVT_RESERVE1,
144
145 // add new recording leave event here ...
146
147 RECORDING_LEAVE_EVT_RESERVE5 = RECORDING_LEAVE_EVT_RESERVE1 + 4,
148 RECORDING_LEAVE_EVT_MAX = RECORDING_LEAVE_EVT_RESERVE5,
149};
150
154 enum APP_TYPE {
155 APP_TYPE_INVALID_VALUE = -1,
156 APP_TYPE_NATIVE = 0,
157 APP_TYPE_COCOS = 1,
158 APP_TYPE_UNITY = 2,
159 APP_TYPE_ELECTRON = 3,
160 APP_TYPE_FLUTTER = 4,
161 APP_TYPE_UNREAL = 5,
162 APP_TYPE_XAMARIN = 6,
163 APP_TYPE_APICLOUD = 7,
164 APP_TYPE_REACT_NATIVE = 8,
165 APP_TYPE_PYTHON = 9,
166 APP_TYPE_COCOS_CREATOR = 10,
167 APP_TYPE_RUST = 11,
168 APP_TYPE_C_SHARP = 12,
169 APP_TYPE_CEF = 13,
170 APP_TYPE_UNI_APP = 14,
171 APP_TYPE_UNREAL_BP = 15,
172};
173
174 enum class RTC_EVENT {
175 NATIVE_LOG = 100,
176 ERROR_EVENT = 101,
177 WARNING_EVENT = 102,
178 MEDIA_ENGINE_LOAD_SUCCESS = 1002,
179 MEDIA_ENGINE_START_CAMERA_SUCCESS = 1005,
180 MEDIA_ENGINE_START_CALL_SUCCESS = 1006,
181 VIDEO_STOPPED = 1007,
182 TRANSPORT_QUALITY = 1101,
183 AUDIO_QUALITY = 1102,
184 TRANSPORT_SERVER_INSTANCE = 1103,
185 MEDIA_ENGINE_EVENT = 1104,
186 AUDIO_DEVICE_STATE_CHANGED = 1105,
187 VIDEO_DEVICE_STATE_CHANGED = 1107,
188 REQUEST_TOKEN = 1108,
189 CLIENT_ROLE_CHANGED = 1109,
190 PUBLISH_URL = 1110,
191 UNPUBLISH_URL = 1111,
192 LIVE_TRANSCODING = 1112,
193 JOIN_PUBLISHER_REQUEST = 1113,
194 JOIN_PUBILSHER_RESPONSE = 1114,
195 REMOVE_PUBLISHER_REQUEST = 1115,
196 STREAM_INJECTED_STATUS = 1116,
197 PRIVILEGE_WILL_EXPIRE = 1117,
198 LOCAL_VIDEO_STATE_CHANGED = 1118,
199 RTMP_STREAMING_STATE = 1119,
200 PUBLISH_STREAM_STATE = 1120,
201 CLIENT_ROLE_CHANGE_FAILED = 1121,
202 PUBLISH_STREAM_EVENT = 1122,
203 RENEW_TOKEN_RESULT = 1123,
204 LOCAL_VIDEO_EVENT = 1124,
205
206 OPEN_CHANNEL_SUCCESS = 13001,
207 LEAVE_CHANNEL = 13006,
208 NETWORK_QUALITY = 13007,
209 USER_OFFLINE = 13008,
210 RTC_STATS = 13010,
211 USER_JOINED = 13013,
212 USER_MUTE_AUDIO = 13014,
213 USER_MUTE_VIDEO = 13015,
214 USER_ENABLE_VIDEO = 13016,
215 LASTMILE_QUALITY = 13017,
216 AUDIO_EFFECT_FINISHED = 13018,
217 USER_ENABLE_LOCAL_VIDEO = 13019,
218 LASTMILE_PROBE_RESULT = 13020,
219 UPLINK_NETWORK_INFO_UPDATE = 13021,
220 DOWNLINK_NETWORK_INFO_UPDATE = 13022,
221 USER_STATE_CHANGED = 13023,
222
223 RECAP_INDICATION = 14000,
224 AUDIO_VOLUME_INDICATION = 14001,
225 FIRST_REMOTE_VIDEO_FRAME = 14002,
226 LOCAL_VIDEO_STAT = 14003,
227 REMOTE_VIDEO_STAT = 14004,
228 FIRST_LOCAL_VIDEO_FRAME = 14005,
229 FIRST_REMOTE_VIDEO_DECODED = 14007,
230 CONNECTION_LOST = 14008,
231 STREAM_MESSAGE = 14009,
232 CONNECTION_INTERRUPTED = 14010,
233 QUERY_RECORDING_SERVICE_STATUS = 14011,
234 STREAM_MESSAGE_ERROR = 14012,
235 VIDEO_SIZE_CHANGED = 14013,
236 FIRST_LOCAL_AUDIO_FRAME_PUBLISHED = 14014,
237 FIRST_LOCAL_VIDEO_FRAME_PUBLISHED = 14015,
238 ACTIVE_SPEAKER = 14016,
239 AUDIO_DEVICE_VOLUME_CHANGED = 14017,
240#ifdef INTERNAL_ENGINE_STATUS
241 _INTERNAL_ENGINE_STATUS = 14018,
242#endif
243 CONNECTION_BANNED = 14019,
244 CAMERA_FOCUS_AREA_CHANGED = 14020,
245
246 REMOTE_VIDEO_STATE_CHANGED = 14021,
247 REMOTE_SUBSCRIBE_FALLBACK_TO_AUDIO_ONLY = 14023,
248 USER_TRANSPORT_STAT = 14024,
249 CONNECTION_STATE_CHANGED = 14028,
250 CAMERA_EXPOSURE_AREA_CHANGED = 14029,
251 REMOTE_AUDIO_STAT = 14030,
252 NETWORK_TYPE_CHANGED = 14031,
253 AUDIO_ROUTING_CHANGED = 14032,
254 FIRST_REMOTE_AUDIO_DECODED = 14033,
255 LOCAL_USER_REGISTERED = 14034,
256 USER_INFO_UPDATED = 14035,
257 REMOTE_VIDEO_STATE_CHANGED_EXT = 14036,
258 CROSS_CHANNEL_STATE = 14037,
259 CROSS_CHANNEL_EVENT = 14038,
260 REMOTE_AUDIO_STATE_CHANGED = 14040,
261 LOCAL_AUDIO_STAT = 14041,
262 LOCAL_AUDIO_STATE_CHANGED = 14042,
263 AUDIO_MIXING_STATE_CHANGED = 14043,
264 INTRA_REQUEST_RECEIVED = 14044,
265 PEER_USER_INFO_UPDATED = 14045,
266 ENCRYPTION_ERROR_EVENT = 14046,
267 REMOTE_VIDEO_STREAM_INFO_UPDATED = 14047,
268 AUDIO_SUBSCRIBE_STATE_CHANGED = 14048,
269 VIDEO_SUBSCRIBE_STATE_CHANGED = 14049,
270 AUDIO_PUBLISH_STATE_CHANGED = 14050,
271 VIDEO_PUBLISH_STATE_CHANGED = 14051,
272 PERMISSION_ERROR_EVENT = 14052,
273 FACE_DETECT_VALUE = 14053,
274 RHYTHM_PLAYFR_STATE_CHANGED = 14054,
275 UPLOAD_LOG_RESULT = 14055,
276 FIRST_REMOTE_AUDIO_FRAME = 14058,
277 PROXY_SUCCESS = 14059,
278 WLACC_MESSAGE = 14060,
279 WLACC_STATS = 14061,
280 SNAPSHOT_TAKEN = 14062,
281 CONTENT_INSPECT_RESULT = 14063,
282 AUDIO_MIXING_POSITION_CHANGED = 14064,
283 LICENSE_VERIFY = 14065,
284 VIDEO_RENDERING_TRACING_RESULT = 14066,
285 LOCAL_TRANSCODING = 14067,
286 SET_RTM_FLAG_RESULT = 14068,
287 VIDEO_LAYOUT_INFO = 14069,
288 AUDIO_METADATA_RECEIVED = 14070,
289 RDT_MESSAGE = 14071,
290 RDT_STATE_CHANGED = 14072,
291 MEDIA_CONTROL_MESSAGE = 14073,
292 PATH_STATS = 14074,
293 PERMISSION_GRANTED_EVENT = 14075,
294};
295
296 struct video_transport_packet_info {
297 uid_t uid;
298 unsigned int frame_num;
299 unsigned int sent_ts;
300 unsigned int ts;
301};
302
303 struct audio_transport_packet_info {
304 uid_t uid;
305 unsigned int ts;
306 unsigned int sent_ts;
307};
308
309 enum ENGINE_INIT_TS_POSITION {
310 CREATE_BEGIN,
311 CREATE_END,
312 INIT_BEGIN,
313 INIT_END,
314 INIT_END_INTERNAL,
315};
316
317 enum ENGINE_INIT_STATUS {
318 STATUS_UNINIT,
319 STATUS_INITIALIZING,
320 STATUS_INITIALIZED
321};
322
323 class IRtcAvTransportPacketInfoObserver {
324 public:
325 virtual ~IRtcAvTransportPacketInfoObserver() = default;
326
327 virtual void onVideoTransportPacketInfo(const video_transport_packet_info& info) = 0;
328 virtual void onAudioTransportPacketInfo(const audio_transport_packet_info& info) = 0;
329};
330
331 struct RtcEngineContextInternal : public RtcEngineContext {
332 bool isPassThruMode;
333 int maxOutputBitrateKpbs;
334
335 // extension event observer
336 agora_refptr<IMediaExtensionObserver> extensionObserverProxy;
337
338 // 0 for AGORA_CC,
339 // 1 for REMB
340 // 2 for TRANSPORT_CC
341 bool is_p2p_switch_enabled_;
342
343 bool isPureCpp;
344
345 std::string libLoadPath;
346
347 RtcEngineContextInternal()
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
354 is_p2p_switch_enabled_(false),
355#endif
356 isPureCpp(true)
357 {
358 }
359 explicit RtcEngineContextInternal(const RtcEngineContext& ctx);
360};
361
362 struct WebAgentVideoStats {
363 user_id_t userId;
364 int delay;
365 int sentFrameRate;
366 int renderedFrameRate;
367 int skippedFrames;
368};
369
370 class IRtcEngineEventHandlerInternal : public IRtcEngineEventHandlerEx {
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
383 class IRtcEngineInternal : public IRtcEngineEx, public agora::base::IParameterEngine {
384 protected:
385 virtual ~IRtcEngineInternal() {}
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
417 virtual int setExternalVideoConfigEx(const VideoEncoderConfiguration& config) = 0;
418 virtual int setExternalVideoConfigEx(const VideoEncoderConfiguration& config,
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;
437 virtual agora_refptr<IRtcConnection> getConnection(
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,
450 media::IMediaRecorderObserverEx* observer,
451 int sys_version = 0) = 0;
452 virtual int startRecording(const char* channelId, uid_t uid, bool isLocal,
453 const media::MediaRecorderConfiguration& config) = 0;
454 virtual int startPreviewRecording(const media::MediaRecorderConfiguration& config) = 0;
455 virtual int stopPreviewRecording() = 0;
456 virtual int stopRecording(const char* channelId, uid_t uid, bool isLocal) = 0;
457 virtual int setPreviewMediaRecorderObserver(media::IMediaRecorderObserverEx* observer) = 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
472 static bool isEventHandler(IRtcEngineEventHandler* handler) {
473 return handler && 0 == strcmp("event_handler", handler->eventHandlerType());
474 }
475
476 static bool isEventHandlerEx(IRtcEngineEventHandler* handler) {
477 return handler && 0 == strcmp("event_handler_ex", handler->eventHandlerType());
478 }
479};
480
481 class RtcEngineLibHelper {
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
541 void deinitialize() {
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
556 ~RtcEngineLibHelper() { deinitialize(); }
557
558 bool isValid() { return m_pfnCreateAgoraRtcEngine != NULL; }
559
560 agora::rtc::IRtcEngine* createEngine() {
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
578 struct canvas_info {
579 int width;
580 int height;
581 int bgcolor;
582};
583
584 struct region_info {
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
600 struct layout_info {
601 long long ms;
602 canvas_info canvas;
603 // At most 9 broadcasters: 1 host, 8 guests.
604 unsigned int region_count;
605 region_info regions[NUM_OF_LAYOUT_REGIONS];
606};
607
608 class EncryptionConfigInternal {
609 public:
610 EncryptionConfigInternal(const EncryptionConfig& config)
611 : encryptionMode(config.encryptionMode),
612 encryptionKey(config.encryptionKey ? config.encryptionKey : ""),
613 datastreamEncryptionEnabled(config.datastreamEncryptionEnabled) {
614 for (size_t i = 0; i < encryptionKdfSalt.size(); i++) {
615 encryptionKdfSalt[i] = config.encryptionKdfSalt[i];
616 }
617 }
618 void ToEncryptionConfig(EncryptionConfig& config) const {
619 config.encryptionMode = encryptionMode;
620 config.encryptionKey = encryptionKey.c_str();
621 config.datastreamEncryptionEnabled = datastreamEncryptionEnabled;
622 for (size_t i = 0; i < encryptionKdfSalt.size(); i++) {
623 config.encryptionKdfSalt[i] = encryptionKdfSalt.at(i);
624 }
625 }
626 ENCRYPTION_MODE encryptionMode;
627 std::string encryptionKey;
628 std::array<uint8_t, 32> encryptionKdfSalt;
629 bool datastreamEncryptionEnabled;
630};
631
632AGORA_API bool AGORA_CALL decode_sei_layout(const void* data, unsigned size, layout_info* layout);
633
634AGORA_API agora::rtc::IRtcEngineInternal* AGORA_CALL getInternalAgoraRtcEngine();
635
636} // namespace rtc
637} // namespace agora
agora::agora_refptr
Definition AgoraRefPtr.h:44
agora::base::IParameterEngine
Definition rtc_engine_i.h:38
agora::base::IParameterEngine::getParameters
virtual int getParameters(const char *key, commons::cjson::JsonWrapper &result)=0
agora::base::IParameterEngine::setParametersInternal
virtual int setParametersInternal(const char *parameters, int priority)=0
agora::base::IParameterEngine::~IParameterEngine
virtual ~IParameterEngine()
Definition rtc_engine_i.h:42
agora::media::IMediaRecorderObserverEx
Definition rtc_engine_i.h:47
agora::media::IMediaRecorderObserverEx::onRecorderInfoUpdated
virtual void onRecorderInfoUpdated(const RecorderInfo &info)=0
agora::media::IMediaRecorderObserverEx::onRecorderStateChanged
virtual void onRecorderStateChanged(RecorderState state, RecorderReasonCode reason)=0
agora::media::IMediaRecorderObserverEx::~IMediaRecorderObserverEx
virtual ~IMediaRecorderObserverEx()
Definition rtc_engine_i.h:77
agora::rtc::EncryptionConfigInternal::EncryptionConfigInternal
EncryptionConfigInternal(const EncryptionConfig &config)
Definition rtc_engine_i.h:610
agora::rtc::EncryptionConfigInternal::ToEncryptionConfig
void ToEncryptionConfig(EncryptionConfig &config) const
Definition rtc_engine_i.h:618
agora::rtc::EncryptionConfigInternal::encryptionKdfSalt
std::array< uint8_t, 32 > encryptionKdfSalt
Definition rtc_engine_i.h:628
agora::rtc::EncryptionConfigInternal::datastreamEncryptionEnabled
bool datastreamEncryptionEnabled
Definition rtc_engine_i.h:629
agora::rtc::EncryptionConfigInternal::encryptionMode
ENCRYPTION_MODE encryptionMode
Definition rtc_engine_i.h:626
agora::rtc::EncryptionConfigInternal::encryptionKey
std::string encryptionKey
Definition rtc_engine_i.h:627
agora::rtc::IRtcAvTransportPacketInfoObserver
Definition rtc_engine_i.h:323
agora::rtc::IRtcAvTransportPacketInfoObserver::onVideoTransportPacketInfo
virtual void onVideoTransportPacketInfo(const video_transport_packet_info &info)=0
agora::rtc::IRtcAvTransportPacketInfoObserver::onAudioTransportPacketInfo
virtual void onAudioTransportPacketInfo(const audio_transport_packet_info &info)=0
agora::rtc::IRtcAvTransportPacketInfoObserver::~IRtcAvTransportPacketInfoObserver
virtual ~IRtcAvTransportPacketInfoObserver()=default
agora::rtc::IRtcEngineEventHandlerEx
Definition IAgoraRtcEngineEx.h:35
agora::rtc::IRtcEngineEventHandler
Definition IAgoraRtcEngine.h:1791
agora::rtc::IRtcEngineEventHandler::eventHandlerType
virtual const char * eventHandlerType() const
Definition IAgoraRtcEngine.h:1795
agora::rtc::IRtcEngineEventHandlerInternal
Definition rtc_engine_i.h:370
agora::rtc::IRtcEngineEventHandlerInternal::eventHandlerType
virtual const char * eventHandlerType() const
Definition rtc_engine_i.h:372
agora::rtc::IRtcEngineEventHandlerInternal::onEvent
virtual bool onEvent(RTC_EVENT evt, const std::string *payload)
Definition rtc_engine_i.h:374
agora::rtc::IRtcEngineEx
Definition IAgoraRtcEngineEx.h:1104
agora::rtc::IRtcEngine
Definition IAgoraRtcEngine.h:4581
agora::rtc::IRtcEngineInternal
Definition rtc_engine_i.h:383
agora::rtc::IRtcEngineInternal::setTimestamp
virtual int setTimestamp(ENGINE_INIT_TS_POSITION ts_position, uint64_t ts)=0
agora::rtc::IRtcEngineInternal::setAudioOptionParams
virtual int setAudioOptionParams(const char *params)=0
agora::rtc::IRtcEngineInternal::getAudioOptionParams
virtual int getAudioOptionParams(char *params)=0
agora::rtc::IRtcEngineInternal::switchCameraId
virtual int switchCameraId(const char *cameraId)=0
agora::rtc::IRtcEngineInternal::startRecording
virtual int startRecording(const char *channelId, uid_t uid, bool isLocal, const media::MediaRecorderConfiguration &config)=0
agora::rtc::IRtcEngineInternal::getSid
virtual const char * getSid(const RtcConnection &connection={})=0
agora::rtc::IRtcEngineInternal::setExternalVideoConfigEx
virtual int setExternalVideoConfigEx(const VideoEncoderConfiguration &config, const RtcConnection &connection)=0
agora::rtc::IRtcEngineInternal::getProfile
virtual int getProfile(std::string &result)=0
agora::rtc::IRtcEngineInternal::releaseInternal
virtual int releaseInternal()=0
agora::rtc::IRtcEngineInternal::setupAudioAttributeContext
virtual int setupAudioAttributeContext(void *audioAttr)=0
agora::rtc::IRtcEngineInternal::releaseRecorder
virtual int releaseRecorder(const char *channelId, uid_t uid, bool isLocal)=0
agora::rtc::IRtcEngineInternal::getVideoConfigParam
virtual int getVideoConfigParam(char *params, size_t size)=0
agora::rtc::IRtcEngineInternal::getMediaPlayer
virtual aosl_ref_t getMediaPlayer(int sourceId)=0
agora::rtc::IRtcEngineInternal::startPreviewRecording
virtual int startPreviewRecording(const media::MediaRecorderConfiguration &config)=0
agora::rtc::IRtcEngineInternal::getRecentSid
virtual std::string getRecentSid(const RtcConnection *connnection)=0
agora::rtc::IRtcEngineInternal::getConnection
virtual agora_refptr< IRtcConnection > getConnection(const RtcConnection &connection={}) const =0
agora::rtc::IRtcEngineInternal::stopPreviewRecording
virtual int stopPreviewRecording()=0
agora::rtc::IRtcEngineInternal::initializeInternal
virtual int initializeInternal(const RtcEngineContextInternal &context, bool sync=false)=0
agora::rtc::IRtcEngineInternal::reportWebAgentVideoStats
virtual int reportWebAgentVideoStats(const WebAgentVideoStats &stats)=0
agora::rtc::IRtcEngineInternal::isMicrophoneOn
virtual bool isMicrophoneOn()=0
agora::rtc::IRtcEngineInternal::~IRtcEngineInternal
virtual ~IRtcEngineInternal()
Definition rtc_engine_i.h:385
agora::rtc::IRtcEngineInternal::setProfile
virtual int setProfile(const char *profile, bool merge)=0
agora::rtc::IRtcEngineInternal::enableYuvDumper
virtual int enableYuvDumper(bool enable)=0
agora::rtc::IRtcEngineInternal::runOnWorkerThread
virtual int runOnWorkerThread(std::function< void(void)> &&f)=0
agora::rtc::IRtcEngineInternal::setInitStatus
virtual void setInitStatus(ENGINE_INIT_STATUS status)=0
agora::rtc::IRtcEngineInternal::setPreviewMediaRecorderObserver
virtual int setPreviewMediaRecorderObserver(media::IMediaRecorderObserverEx *observer)=0
agora::rtc::IRtcEngineInternal::soundPositionChannel
virtual int soundPositionChannel(uid_t uid, const RtcConnection &connection)=0
agora::rtc::IRtcEngineInternal::setLogLevelEx
virtual int setLogLevelEx(unsigned int filter)=0
agora::rtc::IRtcEngineInternal::isEventHandler
static bool isEventHandler(IRtcEngineEventHandler *handler)
Definition rtc_engine_i.h:472
agora::rtc::IRtcEngineInternal::getParametersEx
virtual int getParametersEx(const RtcConnection &connection, const char *key, std::string &results)=0
agora::rtc::IRtcEngineInternal::GetScreenCaptureType
virtual int GetScreenCaptureType()=0
agora::rtc::IRtcEngineInternal::setCameraDevice
virtual int setCameraDevice(const char dev_id[MAX_DEVICE_ID_LENGTH])=0
agora::rtc::IRtcEngineInternal::printLog
virtual int printLog(int level, const char *message)=0
agora::rtc::IRtcEngineInternal::setExternalVideoConfigEx
virtual int setExternalVideoConfigEx(const VideoEncoderConfiguration &config)=0
agora::rtc::IRtcEngineInternal::enableVosUserInfoHidden
virtual int32_t enableVosUserInfoHidden(bool enabled)=0
agora::rtc::IRtcEngineInternal::stopRecording
virtual int stopRecording(const char *channelId, uid_t uid, bool isLocal)=0
agora::rtc::IRtcEngineInternal::setAppType
virtual int32_t setAppType(APP_TYPE appType)=0
agora::rtc::IRtcEngineInternal::soundPositionChannel
virtual int soundPositionChannel(uid_t uid)=0
agora::rtc::IRtcEngineInternal::setMediaRecorderObserver
virtual int setMediaRecorderObserver(const char *channelId, uid_t uid, bool isLocal, media::IMediaRecorderObserverEx *observer, int sys_version=0)=0
agora::rtc::IRtcEngineInternal::isEventHandlerEx
static bool isEventHandlerEx(IRtcEngineEventHandler *handler)
Definition rtc_engine_i.h:476
agora::rtc::IRtcEngineInternal::getTimestamp
virtual uint64_t getTimestamp(ENGINE_INIT_TS_POSITION ts_position) const =0
agora::rtc::IRtcEngineInternal::initializeEx
virtual int initializeEx(const RtcEngineContextInternal &context, bool sync=false)=0
agora::rtc::IRtcEngineInternal::simulateOnSetParameters
virtual int simulateOnSetParameters(const std::string &parameters)=0
agora::rtc::IRtcEngineInternal::ref
virtual aosl_ref_t ref()=0
agora::rtc::IRtcEngineInternal::putMediaPlayer
virtual int putMediaPlayer(int sourceId)=0
agora::rtc::IRtcEngineInternal::monitorDeviceChange
virtual int monitorDeviceChange(bool enabled)=0
agora::rtc::IRtcEngineInternal::reportArgusCounters
virtual int reportArgusCounters(int *counterId, int *value, int count, uid_t uid)=0
agora::rtc::IRtcEngineInternal::setVideoConfigParam
virtual int setVideoConfigParam(const char *params)=0
agora::rtc::IRtcEngineInternal::reportEngineInitializeEvent
virtual void reportEngineInitializeEvent() const =0
agora::rtc::IRtcEngineInternal::getInitStatus
virtual int getInitStatus()=0
agora::rtc::RtcEngineLibHelper::RtcEngineLibHelper
RtcEngineLibHelper(const char *dllname)
Definition rtc_engine_i.h:504
agora::rtc::RtcEngineLibHelper::createEngine
agora::rtc::IRtcEngine * createEngine()
Definition rtc_engine_i.h:560
agora::rtc::RtcEngineLibHelper::~RtcEngineLibHelper
~RtcEngineLibHelper()
Definition rtc_engine_i.h:556
agora::rtc::RtcEngineLibHelper::isValid
bool isValid()
Definition rtc_engine_i.h:558
agora::rtc::RtcEngineLibHelper::initialize
bool initialize()
Definition rtc_engine_i.h:511
agora::rtc::RtcEngineLibHelper::getVersion
const char * getVersion(int *build)
Definition rtc_engine_i.h:564
agora::rtc::RtcEngineLibHelper::deinitialize
void deinitialize()
Definition rtc_engine_i.h:541
agora::base
Definition IAgoraService.h:73
agora::commons::cjson
Definition rtc_connection_i.h:28
agora::commons
Definition agora_log_i.h:14
agora::media::RecorderState
RecorderState
The current recording state.
Definition AgoraMediaBase.h:2308
agora::media::RecorderReasonCode
RecorderReasonCode
The reason for the state change.
Definition AgoraMediaBase.h:2327
agora::rtc::RecordingEventType
RecordingEventType
Definition rtc_engine_i.h:103
agora::rtc::RecordingEventType::RECORDING_EVENT_UNKNOWN
@ RECORDING_EVENT_UNKNOWN
Definition rtc_engine_i.h:104
agora::rtc::RecordingEventType::RECORDING_EVENT_START
@ RECORDING_EVENT_START
Definition rtc_engine_i.h:105
agora::rtc::RecordingEventType::RECORDING_EVENT_END
@ RECORDING_EVENT_END
Definition rtc_engine_i.h:109
agora::rtc::RecordingEventType::RECORDING_EVENT_LEAVE
@ RECORDING_EVENT_LEAVE
Definition rtc_engine_i.h:107
agora::rtc::RecordingEventType::RECORDING_EVENT_JOIN
@ RECORDING_EVENT_JOIN
Definition rtc_engine_i.h:106
agora::rtc::RecordingEventKeyIndex
RecordingEventKeyIndex
Definition rtc_engine_i.h:112
agora::rtc::RECORDING_JOIN_EVT_TRIGGERMODE
@ RECORDING_JOIN_EVT_TRIGGERMODE
Definition rtc_engine_i.h:131
agora::rtc::RECORDING_JOIN_EVT_AUDIOONLY
@ RECORDING_JOIN_EVT_AUDIOONLY
Definition rtc_engine_i.h:127
agora::rtc::RECORDING_JOIN_EVT_DECODEVIDEOTYPE
@ RECORDING_JOIN_EVT_DECODEVIDEOTYPE
Definition rtc_engine_i.h:124
agora::rtc::RECORDING_JOIN_EVT_MIXFPS
@ RECORDING_JOIN_EVT_MIXFPS
Definition rtc_engine_i.h:119
agora::rtc::RECORDING_JOIN_EVT_LIVEMODE
@ RECORDING_JOIN_EVT_LIVEMODE
Definition rtc_engine_i.h:125
agora::rtc::RECORDING_JOIN_EVT_VIDEOONLY
@ RECORDING_JOIN_EVT_VIDEOONLY
Definition rtc_engine_i.h:128
agora::rtc::RECORDING_JOIN_EVT_RESERVE1
@ RECORDING_JOIN_EVT_RESERVE1
Definition rtc_engine_i.h:133
agora::rtc::RECORDING_JOIN_EVT_MAX
@ RECORDING_JOIN_EVT_MAX
Definition rtc_engine_i.h:138
agora::rtc::RECORDING_LEAVE_EVT_START
@ RECORDING_LEAVE_EVT_START
Definition rtc_engine_i.h:141
agora::rtc::RECORDING_LEAVE_EVT_MAX
@ RECORDING_LEAVE_EVT_MAX
Definition rtc_engine_i.h:148
agora::rtc::RECORDING_JOIN_EVT_MINUDPPORT
@ RECORDING_JOIN_EVT_MINUDPPORT
Definition rtc_engine_i.h:121
agora::rtc::RECORDING_JOIN_EVT_IDLE
@ RECORDING_JOIN_EVT_IDLE
Definition rtc_engine_i.h:126
agora::rtc::RECORDING_JOIN_EVT_DECODEAUDIOTYPE
@ RECORDING_JOIN_EVT_DECODEAUDIOTYPE
Definition rtc_engine_i.h:123
agora::rtc::RECORDING_JOIN_EVT_START
@ RECORDING_JOIN_EVT_START
Definition rtc_engine_i.h:114
agora::rtc::RECORDING_LEAVE_EVT_LEAVEPATHCODE
@ RECORDING_LEAVE_EVT_LEAVEPATHCODE
Definition rtc_engine_i.h:142
agora::rtc::RECORDING_LEAVE_EVT_RESERVE5
@ RECORDING_LEAVE_EVT_RESERVE5
Definition rtc_engine_i.h:147
agora::rtc::RECORDING_LEAVE_EVT_RESERVE1
@ RECORDING_LEAVE_EVT_RESERVE1
Definition rtc_engine_i.h:143
agora::rtc::RECORDING_JOIN_EVT_MIXEDVIDEOAUDIOMODE
@ RECORDING_JOIN_EVT_MIXEDVIDEOAUDIOMODE
Definition rtc_engine_i.h:116
agora::rtc::RECORDING_JOIN_EVT_LANGUAGE
@ RECORDING_JOIN_EVT_LANGUAGE
Definition rtc_engine_i.h:132
agora::rtc::RECORDING_JOIN_EVT_STREAMTYPE
@ RECORDING_JOIN_EVT_STREAMTYPE
Definition rtc_engine_i.h:130
agora::rtc::RECORDING_JOIN_EVT_MIXLOW
@ RECORDING_JOIN_EVT_MIXLOW
Definition rtc_engine_i.h:118
agora::rtc::RECORDING_JOIN_EVT_MIXHIGH
@ RECORDING_JOIN_EVT_MIXHIGH
Definition rtc_engine_i.h:117
agora::rtc::MAX_RECORDING_JOIN_EVT_RESERVE15
@ MAX_RECORDING_JOIN_EVT_RESERVE15
Definition rtc_engine_i.h:137
agora::rtc::RECORDING_JOIN_EVT_SYSLOGFACILITY
@ RECORDING_JOIN_EVT_SYSLOGFACILITY
Definition rtc_engine_i.h:129
agora::rtc::RECORDING_JOIN_EVT_MIXMODE
@ RECORDING_JOIN_EVT_MIXMODE
Definition rtc_engine_i.h:115
agora::rtc::RECORDING_JOIN_EVT_MAXUDPPORT
@ RECORDING_JOIN_EVT_MAXUDPPORT
Definition rtc_engine_i.h:122
agora::rtc::RECORDING_JOIN_EVT_MIXKBPS
@ RECORDING_JOIN_EVT_MIXKBPS
Definition rtc_engine_i.h:120
agora::rtc::getInternalAgoraRtcEngine
AGORA_API agora::rtc::IRtcEngineInternal *AGORA_CALL getInternalAgoraRtcEngine()
agora::rtc::decode_sei_layout
AGORA_API bool AGORA_CALL decode_sei_layout(const void *data, unsigned size, layout_info *layout)
agora::rtc::ENGINE_INIT_STATUS
ENGINE_INIT_STATUS
Definition rtc_engine_i.h:317
agora::rtc::STATUS_UNINIT
@ STATUS_UNINIT
Definition rtc_engine_i.h:318
agora::rtc::STATUS_INITIALIZING
@ STATUS_INITIALIZING
Definition rtc_engine_i.h:319
agora::rtc::STATUS_INITIALIZED
@ STATUS_INITIALIZED
Definition rtc_engine_i.h:320
agora::rtc::ENCRYPTION_MODE
ENCRYPTION_MODE
The built-in encryption mode.
Definition AgoraBase.h:7241
agora::rtc::APP_TYPE
APP_TYPE
Definition rtc_engine_i.h:154
agora::rtc::APP_TYPE_COCOS
@ APP_TYPE_COCOS
Definition rtc_engine_i.h:157
agora::rtc::APP_TYPE_CEF
@ APP_TYPE_CEF
Definition rtc_engine_i.h:169
agora::rtc::APP_TYPE_REACT_NATIVE
@ APP_TYPE_REACT_NATIVE
Definition rtc_engine_i.h:164
agora::rtc::APP_TYPE_C_SHARP
@ APP_TYPE_C_SHARP
Definition rtc_engine_i.h:168
agora::rtc::APP_TYPE_XAMARIN
@ APP_TYPE_XAMARIN
Definition rtc_engine_i.h:162
agora::rtc::APP_TYPE_INVALID_VALUE
@ APP_TYPE_INVALID_VALUE
Definition rtc_engine_i.h:155
agora::rtc::APP_TYPE_UNREAL
@ APP_TYPE_UNREAL
Definition rtc_engine_i.h:161
agora::rtc::APP_TYPE_UNI_APP
@ APP_TYPE_UNI_APP
Definition rtc_engine_i.h:170
agora::rtc::APP_TYPE_ELECTRON
@ APP_TYPE_ELECTRON
Definition rtc_engine_i.h:159
agora::rtc::APP_TYPE_UNITY
@ APP_TYPE_UNITY
Definition rtc_engine_i.h:158
agora::rtc::APP_TYPE_PYTHON
@ APP_TYPE_PYTHON
Definition rtc_engine_i.h:165
agora::rtc::APP_TYPE_UNREAL_BP
@ APP_TYPE_UNREAL_BP
Definition rtc_engine_i.h:171
agora::rtc::APP_TYPE_FLUTTER
@ APP_TYPE_FLUTTER
Definition rtc_engine_i.h:160
agora::rtc::APP_TYPE_RUST
@ APP_TYPE_RUST
Definition rtc_engine_i.h:167
agora::rtc::APP_TYPE_NATIVE
@ APP_TYPE_NATIVE
Definition rtc_engine_i.h:156
agora::rtc::APP_TYPE_COCOS_CREATOR
@ APP_TYPE_COCOS_CREATOR
Definition rtc_engine_i.h:166
agora::rtc::APP_TYPE_APICLOUD
@ APP_TYPE_APICLOUD
Definition rtc_engine_i.h:163
agora::rtc::ENGINE_INIT_TS_POSITION
ENGINE_INIT_TS_POSITION
Definition rtc_engine_i.h:309
agora::rtc::INIT_BEGIN
@ INIT_BEGIN
Definition rtc_engine_i.h:312
agora::rtc::CREATE_BEGIN
@ CREATE_BEGIN
Definition rtc_engine_i.h:310
agora::rtc::INIT_END_INTERNAL
@ INIT_END_INTERNAL
Definition rtc_engine_i.h:314
agora::rtc::CREATE_END
@ CREATE_END
Definition rtc_engine_i.h:311
agora::rtc::INIT_END
@ INIT_END
Definition rtc_engine_i.h:313
agora::rtc::uid_t
unsigned int uid_t
Definition AgoraMediaBase.h:28
agora::rtc::INTERFACE_ID_EX_TYPE
INTERFACE_ID_EX_TYPE
Definition rtc_engine_i.h:84
agora::rtc::AGORA_IID_RTC_ENGINE_EX
@ AGORA_IID_RTC_ENGINE_EX
Definition rtc_engine_i.h:85
agora::rtc::RTC_EVENT
RTC_EVENT
Definition rtc_engine_i.h:174
agora::rtc::RTC_EVENT::AUDIO_VOLUME_INDICATION
@ AUDIO_VOLUME_INDICATION
Definition rtc_engine_i.h:224
agora::rtc::RTC_EVENT::AUDIO_METADATA_RECEIVED
@ AUDIO_METADATA_RECEIVED
Definition rtc_engine_i.h:288
agora::rtc::RTC_EVENT::TRANSPORT_QUALITY
@ TRANSPORT_QUALITY
Definition rtc_engine_i.h:182
agora::rtc::RTC_EVENT::CONTENT_INSPECT_RESULT
@ CONTENT_INSPECT_RESULT
Definition rtc_engine_i.h:281
agora::rtc::RTC_EVENT::LIVE_TRANSCODING
@ LIVE_TRANSCODING
Definition rtc_engine_i.h:192
agora::rtc::RTC_EVENT::REMOTE_AUDIO_STAT
@ REMOTE_AUDIO_STAT
Definition rtc_engine_i.h:251
agora::rtc::RTC_EVENT::WLACC_STATS
@ WLACC_STATS
Definition rtc_engine_i.h:279
agora::rtc::RTC_EVENT::STREAM_MESSAGE_ERROR
@ STREAM_MESSAGE_ERROR
Definition rtc_engine_i.h:234
agora::rtc::RTC_EVENT::NETWORK_QUALITY
@ NETWORK_QUALITY
Definition rtc_engine_i.h:208
agora::rtc::RTC_EVENT::FIRST_REMOTE_VIDEO_FRAME
@ FIRST_REMOTE_VIDEO_FRAME
Definition rtc_engine_i.h:225
agora::rtc::RTC_EVENT::STREAM_INJECTED_STATUS
@ STREAM_INJECTED_STATUS
Definition rtc_engine_i.h:196
agora::rtc::RTC_EVENT::ERROR_EVENT
@ ERROR_EVENT
Definition rtc_engine_i.h:176
agora::rtc::RTC_EVENT::PRIVILEGE_WILL_EXPIRE
@ PRIVILEGE_WILL_EXPIRE
Definition rtc_engine_i.h:197
agora::rtc::RTC_EVENT::USER_STATE_CHANGED
@ USER_STATE_CHANGED
Definition rtc_engine_i.h:221
agora::rtc::RTC_EVENT::REMOVE_PUBLISHER_REQUEST
@ REMOVE_PUBLISHER_REQUEST
Definition rtc_engine_i.h:195
agora::rtc::RTC_EVENT::MEDIA_CONTROL_MESSAGE
@ MEDIA_CONTROL_MESSAGE
Definition rtc_engine_i.h:291
agora::rtc::RTC_EVENT::FIRST_REMOTE_AUDIO_FRAME
@ FIRST_REMOTE_AUDIO_FRAME
Definition rtc_engine_i.h:276
agora::rtc::RTC_EVENT::SET_RTM_FLAG_RESULT
@ SET_RTM_FLAG_RESULT
Definition rtc_engine_i.h:286
agora::rtc::RTC_EVENT::SNAPSHOT_TAKEN
@ SNAPSHOT_TAKEN
Definition rtc_engine_i.h:280
agora::rtc::RTC_EVENT::CROSS_CHANNEL_STATE
@ CROSS_CHANNEL_STATE
Definition rtc_engine_i.h:258
agora::rtc::RTC_EVENT::LOCAL_USER_REGISTERED
@ LOCAL_USER_REGISTERED
Definition rtc_engine_i.h:255
agora::rtc::RTC_EVENT::LEAVE_CHANNEL
@ LEAVE_CHANNEL
Definition rtc_engine_i.h:207
agora::rtc::RTC_EVENT::AUDIO_DEVICE_VOLUME_CHANGED
@ AUDIO_DEVICE_VOLUME_CHANGED
Definition rtc_engine_i.h:239
agora::rtc::RTC_EVENT::LICENSE_VERIFY
@ LICENSE_VERIFY
Definition rtc_engine_i.h:283
agora::rtc::RTC_EVENT::USER_MUTE_VIDEO
@ USER_MUTE_VIDEO
Definition rtc_engine_i.h:213
agora::rtc::RTC_EVENT::PUBLISH_URL
@ PUBLISH_URL
Definition rtc_engine_i.h:190
agora::rtc::RTC_EVENT::PERMISSION_ERROR_EVENT
@ PERMISSION_ERROR_EVENT
Definition rtc_engine_i.h:272
agora::rtc::RTC_EVENT::UPLOAD_LOG_RESULT
@ UPLOAD_LOG_RESULT
Definition rtc_engine_i.h:275
agora::rtc::RTC_EVENT::CLIENT_ROLE_CHANGE_FAILED
@ CLIENT_ROLE_CHANGE_FAILED
Definition rtc_engine_i.h:201
agora::rtc::RTC_EVENT::FIRST_LOCAL_VIDEO_FRAME_PUBLISHED
@ FIRST_LOCAL_VIDEO_FRAME_PUBLISHED
Definition rtc_engine_i.h:237
agora::rtc::RTC_EVENT::FIRST_REMOTE_AUDIO_DECODED
@ FIRST_REMOTE_AUDIO_DECODED
Definition rtc_engine_i.h:254
agora::rtc::RTC_EVENT::VIDEO_SUBSCRIBE_STATE_CHANGED
@ VIDEO_SUBSCRIBE_STATE_CHANGED
Definition rtc_engine_i.h:269
agora::rtc::RTC_EVENT::VIDEO_DEVICE_STATE_CHANGED
@ VIDEO_DEVICE_STATE_CHANGED
Definition rtc_engine_i.h:187
agora::rtc::RTC_EVENT::JOIN_PUBLISHER_REQUEST
@ JOIN_PUBLISHER_REQUEST
Definition rtc_engine_i.h:193
agora::rtc::RTC_EVENT::REMOTE_VIDEO_STREAM_INFO_UPDATED
@ REMOTE_VIDEO_STREAM_INFO_UPDATED
Definition rtc_engine_i.h:267
agora::rtc::RTC_EVENT::REMOTE_AUDIO_STATE_CHANGED
@ REMOTE_AUDIO_STATE_CHANGED
Definition rtc_engine_i.h:260
agora::rtc::RTC_EVENT::CAMERA_EXPOSURE_AREA_CHANGED
@ CAMERA_EXPOSURE_AREA_CHANGED
Definition rtc_engine_i.h:250
agora::rtc::RTC_EVENT::RHYTHM_PLAYFR_STATE_CHANGED
@ RHYTHM_PLAYFR_STATE_CHANGED
Definition rtc_engine_i.h:274
agora::rtc::RTC_EVENT::LASTMILE_PROBE_RESULT
@ LASTMILE_PROBE_RESULT
Definition rtc_engine_i.h:218
agora::rtc::RTC_EVENT::LOCAL_TRANSCODING
@ LOCAL_TRANSCODING
Definition rtc_engine_i.h:285
agora::rtc::RTC_EVENT::LOCAL_AUDIO_STAT
@ LOCAL_AUDIO_STAT
Definition rtc_engine_i.h:261
agora::rtc::RTC_EVENT::UPLINK_NETWORK_INFO_UPDATE
@ UPLINK_NETWORK_INFO_UPDATE
Definition rtc_engine_i.h:219
agora::rtc::RTC_EVENT::ENCRYPTION_ERROR_EVENT
@ ENCRYPTION_ERROR_EVENT
Definition rtc_engine_i.h:266
agora::rtc::RTC_EVENT::AUDIO_MIXING_STATE_CHANGED
@ AUDIO_MIXING_STATE_CHANGED
Definition rtc_engine_i.h:263
agora::rtc::RTC_EVENT::_INTERNAL_ENGINE_STATUS
@ _INTERNAL_ENGINE_STATUS
Definition rtc_engine_i.h:241
agora::rtc::RTC_EVENT::REMOTE_VIDEO_STAT
@ REMOTE_VIDEO_STAT
Definition rtc_engine_i.h:227
agora::rtc::RTC_EVENT::INTRA_REQUEST_RECEIVED
@ INTRA_REQUEST_RECEIVED
Definition rtc_engine_i.h:264
agora::rtc::RTC_EVENT::CONNECTION_LOST
@ CONNECTION_LOST
Definition rtc_engine_i.h:230
agora::rtc::RTC_EVENT::PROXY_SUCCESS
@ PROXY_SUCCESS
Definition rtc_engine_i.h:277
agora::rtc::RTC_EVENT::VIDEO_RENDERING_TRACING_RESULT
@ VIDEO_RENDERING_TRACING_RESULT
Definition rtc_engine_i.h:284
agora::rtc::RTC_EVENT::MEDIA_ENGINE_LOAD_SUCCESS
@ MEDIA_ENGINE_LOAD_SUCCESS
Definition rtc_engine_i.h:178
agora::rtc::RTC_EVENT::UNPUBLISH_URL
@ UNPUBLISH_URL
Definition rtc_engine_i.h:191
agora::rtc::RTC_EVENT::NETWORK_TYPE_CHANGED
@ NETWORK_TYPE_CHANGED
Definition rtc_engine_i.h:252
agora::rtc::RTC_EVENT::RDT_STATE_CHANGED
@ RDT_STATE_CHANGED
Definition rtc_engine_i.h:290
agora::rtc::RTC_EVENT::LOCAL_AUDIO_STATE_CHANGED
@ LOCAL_AUDIO_STATE_CHANGED
Definition rtc_engine_i.h:262
agora::rtc::RTC_EVENT::QUERY_RECORDING_SERVICE_STATUS
@ QUERY_RECORDING_SERVICE_STATUS
Definition rtc_engine_i.h:233
agora::rtc::RTC_EVENT::VIDEO_LAYOUT_INFO
@ VIDEO_LAYOUT_INFO
Definition rtc_engine_i.h:287
agora::rtc::RTC_EVENT::AUDIO_EFFECT_FINISHED
@ AUDIO_EFFECT_FINISHED
Definition rtc_engine_i.h:216
agora::rtc::RTC_EVENT::MEDIA_ENGINE_START_CALL_SUCCESS
@ MEDIA_ENGINE_START_CALL_SUCCESS
Definition rtc_engine_i.h:180
agora::rtc::RTC_EVENT::CAMERA_FOCUS_AREA_CHANGED
@ CAMERA_FOCUS_AREA_CHANGED
Definition rtc_engine_i.h:244
agora::rtc::RTC_EVENT::USER_ENABLE_LOCAL_VIDEO
@ USER_ENABLE_LOCAL_VIDEO
Definition rtc_engine_i.h:217
agora::rtc::RTC_EVENT::CONNECTION_STATE_CHANGED
@ CONNECTION_STATE_CHANGED
Definition rtc_engine_i.h:249
agora::rtc::RTC_EVENT::AUDIO_PUBLISH_STATE_CHANGED
@ AUDIO_PUBLISH_STATE_CHANGED
Definition rtc_engine_i.h:270
agora::rtc::RTC_EVENT::USER_ENABLE_VIDEO
@ USER_ENABLE_VIDEO
Definition rtc_engine_i.h:214
agora::rtc::RTC_EVENT::DOWNLINK_NETWORK_INFO_UPDATE
@ DOWNLINK_NETWORK_INFO_UPDATE
Definition rtc_engine_i.h:220
agora::rtc::RTC_EVENT::VIDEO_PUBLISH_STATE_CHANGED
@ VIDEO_PUBLISH_STATE_CHANGED
Definition rtc_engine_i.h:271
agora::rtc::RTC_EVENT::VIDEO_STOPPED
@ VIDEO_STOPPED
Definition rtc_engine_i.h:181
agora::rtc::RTC_EVENT::REMOTE_VIDEO_STATE_CHANGED
@ REMOTE_VIDEO_STATE_CHANGED
Definition rtc_engine_i.h:246
agora::rtc::RTC_EVENT::PATH_STATS
@ PATH_STATS
Definition rtc_engine_i.h:292
agora::rtc::RTC_EVENT::JOIN_PUBILSHER_RESPONSE
@ JOIN_PUBILSHER_RESPONSE
Definition rtc_engine_i.h:194
agora::rtc::RTC_EVENT::USER_MUTE_AUDIO
@ USER_MUTE_AUDIO
Definition rtc_engine_i.h:212
agora::rtc::RTC_EVENT::REMOTE_VIDEO_STATE_CHANGED_EXT
@ REMOTE_VIDEO_STATE_CHANGED_EXT
Definition rtc_engine_i.h:257
agora::rtc::RTC_EVENT::LASTMILE_QUALITY
@ LASTMILE_QUALITY
Definition rtc_engine_i.h:215
agora::rtc::RTC_EVENT::AUDIO_MIXING_POSITION_CHANGED
@ AUDIO_MIXING_POSITION_CHANGED
Definition rtc_engine_i.h:282
agora::rtc::RTC_EVENT::AUDIO_ROUTING_CHANGED
@ AUDIO_ROUTING_CHANGED
Definition rtc_engine_i.h:253
agora::rtc::RTC_EVENT::RTMP_STREAMING_STATE
@ RTMP_STREAMING_STATE
Definition rtc_engine_i.h:199
agora::rtc::RTC_EVENT::RTC_STATS
@ RTC_STATS
Definition rtc_engine_i.h:210
agora::rtc::RTC_EVENT::MEDIA_ENGINE_START_CAMERA_SUCCESS
@ MEDIA_ENGINE_START_CAMERA_SUCCESS
Definition rtc_engine_i.h:179
agora::rtc::RTC_EVENT::CLIENT_ROLE_CHANGED
@ CLIENT_ROLE_CHANGED
Definition rtc_engine_i.h:189
agora::rtc::RTC_EVENT::USER_TRANSPORT_STAT
@ USER_TRANSPORT_STAT
Definition rtc_engine_i.h:248
agora::rtc::RTC_EVENT::WARNING_EVENT
@ WARNING_EVENT
Definition rtc_engine_i.h:177
agora::rtc::RTC_EVENT::CONNECTION_INTERRUPTED
@ CONNECTION_INTERRUPTED
Definition rtc_engine_i.h:232
agora::rtc::RTC_EVENT::NATIVE_LOG
@ NATIVE_LOG
Definition rtc_engine_i.h:175
agora::rtc::RTC_EVENT::FIRST_LOCAL_VIDEO_FRAME
@ FIRST_LOCAL_VIDEO_FRAME
Definition rtc_engine_i.h:228
agora::rtc::RTC_EVENT::LOCAL_VIDEO_STATE_CHANGED
@ LOCAL_VIDEO_STATE_CHANGED
Definition rtc_engine_i.h:198
agora::rtc::RTC_EVENT::ACTIVE_SPEAKER
@ ACTIVE_SPEAKER
Definition rtc_engine_i.h:238
agora::rtc::RTC_EVENT::CROSS_CHANNEL_EVENT
@ CROSS_CHANNEL_EVENT
Definition rtc_engine_i.h:259
agora::rtc::RTC_EVENT::PERMISSION_GRANTED_EVENT
@ PERMISSION_GRANTED_EVENT
Definition rtc_engine_i.h:293
agora::rtc::RTC_EVENT::AUDIO_SUBSCRIBE_STATE_CHANGED
@ AUDIO_SUBSCRIBE_STATE_CHANGED
Definition rtc_engine_i.h:268
agora::rtc::RTC_EVENT::REQUEST_TOKEN
@ REQUEST_TOKEN
Definition rtc_engine_i.h:188
agora::rtc::RTC_EVENT::PUBLISH_STREAM_STATE
@ PUBLISH_STREAM_STATE
Definition rtc_engine_i.h:200
agora::rtc::RTC_EVENT::AUDIO_QUALITY
@ AUDIO_QUALITY
Definition rtc_engine_i.h:183
agora::rtc::RTC_EVENT::CONNECTION_BANNED
@ CONNECTION_BANNED
Definition rtc_engine_i.h:243
agora::rtc::RTC_EVENT::PUBLISH_STREAM_EVENT
@ PUBLISH_STREAM_EVENT
Definition rtc_engine_i.h:202
agora::rtc::RTC_EVENT::USER_INFO_UPDATED
@ USER_INFO_UPDATED
Definition rtc_engine_i.h:256
agora::rtc::RTC_EVENT::RENEW_TOKEN_RESULT
@ RENEW_TOKEN_RESULT
Definition rtc_engine_i.h:203
agora::rtc::RTC_EVENT::RECAP_INDICATION
@ RECAP_INDICATION
Definition rtc_engine_i.h:223
agora::rtc::RTC_EVENT::USER_OFFLINE
@ USER_OFFLINE
Definition rtc_engine_i.h:209
agora::rtc::RTC_EVENT::TRANSPORT_SERVER_INSTANCE
@ TRANSPORT_SERVER_INSTANCE
Definition rtc_engine_i.h:184
agora::rtc::RTC_EVENT::FIRST_REMOTE_VIDEO_DECODED
@ FIRST_REMOTE_VIDEO_DECODED
Definition rtc_engine_i.h:229
agora::rtc::RTC_EVENT::LOCAL_VIDEO_EVENT
@ LOCAL_VIDEO_EVENT
Definition rtc_engine_i.h:204
agora::rtc::RTC_EVENT::STREAM_MESSAGE
@ STREAM_MESSAGE
Definition rtc_engine_i.h:231
agora::rtc::RTC_EVENT::USER_JOINED
@ USER_JOINED
Definition rtc_engine_i.h:211
agora::rtc::RTC_EVENT::VIDEO_SIZE_CHANGED
@ VIDEO_SIZE_CHANGED
Definition rtc_engine_i.h:235
agora::rtc::RTC_EVENT::OPEN_CHANNEL_SUCCESS
@ OPEN_CHANNEL_SUCCESS
Definition rtc_engine_i.h:206
agora::rtc::RTC_EVENT::LOCAL_VIDEO_STAT
@ LOCAL_VIDEO_STAT
Definition rtc_engine_i.h:226
agora::rtc::RTC_EVENT::REMOTE_SUBSCRIBE_FALLBACK_TO_AUDIO_ONLY
@ REMOTE_SUBSCRIBE_FALLBACK_TO_AUDIO_ONLY
Definition rtc_engine_i.h:247
agora::rtc::RTC_EVENT::PEER_USER_INFO_UPDATED
@ PEER_USER_INFO_UPDATED
Definition rtc_engine_i.h:265
agora::rtc::RTC_EVENT::MEDIA_ENGINE_EVENT
@ MEDIA_ENGINE_EVENT
Definition rtc_engine_i.h:185
agora::rtc::RTC_EVENT::RDT_MESSAGE
@ RDT_MESSAGE
Definition rtc_engine_i.h:289
agora::rtc::RTC_EVENT::AUDIO_DEVICE_STATE_CHANGED
@ AUDIO_DEVICE_STATE_CHANGED
Definition rtc_engine_i.h:186
agora::rtc::RTC_EVENT::FACE_DETECT_VALUE
@ FACE_DETECT_VALUE
Definition rtc_engine_i.h:273
agora::rtc::RTC_EVENT::WLACC_MESSAGE
@ WLACC_MESSAGE
Definition rtc_engine_i.h:278
agora::rtc::RTC_EVENT::FIRST_LOCAL_AUDIO_FRAME_PUBLISHED
@ FIRST_LOCAL_AUDIO_FRAME_PUBLISHED
Definition rtc_engine_i.h:236
agora::rtc::SCREEN_SHARING_MODE
SCREEN_SHARING_MODE
Definition rtc_engine_i.h:88
agora::rtc::SCREEN_SHARING_MOVIE
@ SCREEN_SHARING_MOVIE
Definition rtc_engine_i.h:88
agora::rtc::SCREEN_SHARING_NORMAL
@ SCREEN_SHARING_NORMAL
Definition rtc_engine_i.h:88
agora
Definition AgoraAtomicOps.h:21
agora::user_id_t
const char * user_id_t
Definition AgoraBase.h:849
rtc
Definition video_node_i.h:28
agora::media::MediaRecorderConfiguration
Configuration for audio and video stream recording.
Definition AgoraMediaBase.h:2355
agora::media::RecorderInfo
Information about the recording file.
Definition AgoraMediaBase.h:2506
agora::rtc::EncryptionConfig
Built-in encryption configurations.
Definition AgoraBase.h:7285
agora::rtc::EncryptionConfig::datastreamEncryptionEnabled
bool datastreamEncryptionEnabled
Definition AgoraBase.h:7310
agora::rtc::EncryptionConfig::encryptionKey
const char * encryptionKey
Definition AgoraBase.h:7296
agora::rtc::EncryptionConfig::encryptionKdfSalt
uint8_t encryptionKdfSalt[32]
Definition AgoraBase.h:7303
agora::rtc::EncryptionConfig::encryptionMode
ENCRYPTION_MODE encryptionMode
Definition AgoraBase.h:7290
agora::rtc::InternalEngineStatus
Definition rtc_engine_i.h:91
agora::rtc::InternalEngineStatus::audio_send_packet_rate
int audio_send_packet_rate
Definition rtc_engine_i.h:95
agora::rtc::InternalEngineStatus::farin_signal_level
int farin_signal_level
Definition rtc_engine_i.h:99
agora::rtc::InternalEngineStatus::audio_recv_packet_rate
int audio_recv_packet_rate
Definition rtc_engine_i.h:96
agora::rtc::InternalEngineStatus::playoutfreq
int playoutfreq
Definition rtc_engine_i.h:93
agora::rtc::InternalEngineStatus::nearout_signal_level
int nearout_signal_level
Definition rtc_engine_i.h:98
agora::rtc::InternalEngineStatus::audio_send_frame_rate
int audio_send_frame_rate
Definition rtc_engine_i.h:94
agora::rtc::InternalEngineStatus::nearin_signal_level
int nearin_signal_level
Definition rtc_engine_i.h:97
agora::rtc::InternalEngineStatus::recfreq
int recfreq
Definition rtc_engine_i.h:92
agora::rtc::RtcConnection
Contains connection information.
Definition IAgoraRtcEngineEx.h:20
agora::rtc::RtcEngineContext::RtcEngineContext
RtcEngineContext()
Definition IAgoraRtcEngine.h:4158
agora::rtc::RtcEngineContextInternal
Definition rtc_engine_i.h:331
agora::rtc::RtcEngineContextInternal::extensionObserverProxy
agora_refptr< IMediaExtensionObserver > extensionObserverProxy
Definition rtc_engine_i.h:336
agora::rtc::RtcEngineContextInternal::maxOutputBitrateKpbs
int maxOutputBitrateKpbs
Definition rtc_engine_i.h:333
agora::rtc::RtcEngineContextInternal::libLoadPath
std::string libLoadPath
Definition rtc_engine_i.h:345
agora::rtc::RtcEngineContextInternal::is_p2p_switch_enabled_
bool is_p2p_switch_enabled_
Definition rtc_engine_i.h:341
agora::rtc::RtcEngineContextInternal::RtcEngineContextInternal
RtcEngineContextInternal()
Definition rtc_engine_i.h:347
agora::rtc::RtcEngineContextInternal::isPassThruMode
bool isPassThruMode
Definition rtc_engine_i.h:332
agora::rtc::RtcEngineContextInternal::isPureCpp
bool isPureCpp
Definition rtc_engine_i.h:343
agora::rtc::RtcEngineContextInternal::RtcEngineContextInternal
RtcEngineContextInternal(const RtcEngineContext &ctx)
agora::rtc::VideoEncoderConfiguration
Video encoder configurations.
Definition AgoraBase.h:2057
agora::rtc::WebAgentVideoStats
Definition rtc_engine_i.h:362
agora::rtc::WebAgentVideoStats::userId
user_id_t userId
Definition rtc_engine_i.h:363
agora::rtc::WebAgentVideoStats::skippedFrames
int skippedFrames
Definition rtc_engine_i.h:367
agora::rtc::WebAgentVideoStats::delay
int delay
Definition rtc_engine_i.h:364
agora::rtc::WebAgentVideoStats::sentFrameRate
int sentFrameRate
Definition rtc_engine_i.h:365
agora::rtc::WebAgentVideoStats::renderedFrameRate
int renderedFrameRate
Definition rtc_engine_i.h:366
agora::rtc::audio_transport_packet_info
Definition rtc_engine_i.h:303
agora::rtc::audio_transport_packet_info::sent_ts
unsigned int sent_ts
Definition rtc_engine_i.h:306
agora::rtc::audio_transport_packet_info::ts
unsigned int ts
Definition rtc_engine_i.h:305
agora::rtc::audio_transport_packet_info::uid
uid_t uid
Definition rtc_engine_i.h:304
agora::rtc::canvas_info
Definition rtc_engine_i.h:578
agora::rtc::canvas_info::bgcolor
int bgcolor
Definition rtc_engine_i.h:581
agora::rtc::canvas_info::height
int height
Definition rtc_engine_i.h:580
agora::rtc::canvas_info::width
int width
Definition rtc_engine_i.h:579
agora::rtc::layout_info
Definition rtc_engine_i.h:600
agora::rtc::layout_info::regions
region_info regions[NUM_OF_LAYOUT_REGIONS]
Definition rtc_engine_i.h:605
agora::rtc::layout_info::region_count
unsigned int region_count
Definition rtc_engine_i.h:604
agora::rtc::layout_info::canvas
canvas_info canvas
Definition rtc_engine_i.h:602
agora::rtc::layout_info::ms
long long ms
Definition rtc_engine_i.h:601
agora::rtc::region_info
Definition rtc_engine_i.h:584
agora::rtc::region_info::alpha
int alpha
Definition rtc_engine_i.h:592
agora::rtc::region_info::zorder
int zorder
Definition rtc_engine_i.h:595
agora::rtc::region_info::width
double width
Definition rtc_engine_i.h:589
agora::rtc::region_info::id
unsigned id
Definition rtc_engine_i.h:585
agora::rtc::region_info::x
double x
Definition rtc_engine_i.h:587
agora::rtc::region_info::y
double y
Definition rtc_engine_i.h:588
agora::rtc::region_info::render_mode
int render_mode
Definition rtc_engine_i.h:594
agora::rtc::region_info::height
double height
Definition rtc_engine_i.h:590
agora::rtc::video_transport_packet_info
Definition rtc_engine_i.h:296
agora::rtc::video_transport_packet_info::frame_num
unsigned int frame_num
Definition rtc_engine_i.h:298
agora::rtc::video_transport_packet_info::sent_ts
unsigned int sent_ts
Definition rtc_engine_i.h:299
agora::rtc::video_transport_packet_info::uid
uid_t uid
Definition rtc_engine_i.h:297
agora::rtc::video_transport_packet_info::ts
unsigned int ts
Definition rtc_engine_i.h:300