Agora C++ API Reference for All Platforms
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 
13 #include "AgoraBase.h"
14 #include "api2/NGIAgoraAudioDeviceManager.h"
15 #include "api2/NGIAgoraExtensionProvider.h"
16 #include "api2/AgoraRefCountedObject.h"
17 #include "api2/NGIAgoraRtcConnection.h"
18 #include "IAgoraRtcEngineEx.h"
19 #include "rtc/rtc_event.h"
20 #include "utils/thread/thread_pool.h"
21 #include "main/extension_event_handler.h"
22 #include "base/time_utils.h"
23 
24 #if defined(_WIN32)
25 extern HINSTANCE GetCurrentModuleInstance();
26 #elif defined(__ANDROID__) || defined(__linux__)
27 #include <dlfcn.h>
28 #endif // _WIN32
29 
30 namespace webrtc {
31  class VideoFrame;
32 }
33 namespace agora {
34 namespace commons {
35 namespace network {
36 struct network_info_t;
37 } // namespace network
38 } // namespace commons
39 
40 namespace base {
42  public:
43  virtual int setParametersInternal(const char* parameters) = 0;
44  virtual int getParameters(const char* key, any_document_t& result) = 0;
45  virtual ~IParameterEngine() {}
46 };
47 } // namespace base
48 
49 namespace rtc {
50 struct VideoNetOptions;
51 namespace protocol {
52 struct CmdInjectStreamConfig;
53 } // namespace protocol
54 
57 };
58 
60 
61 #ifdef INTERNAL_ENGINE_STATUS
63  int recfreq;
71 };
72 #endif // INTERNAL_ENGINE_STATUS
73 
74 enum class RecordingEventType : unsigned {
79 
81 };
82 
84  // Join event
99  RECORDING_JOIN_EVT_VIDEOONLY = 14, // NEW INSERT
105 
106  // add new recording join event here ...
107 
110 
111  // Leave event
115 
116  // add new recording leave event here ...
117 
120 };
121 
125 enum APP_TYPE {
142 };
143 
146  unsigned int frame_num;
147  unsigned int sent_ts;
148  unsigned int ts;
149 };
150 
153  unsigned int ts;
154  unsigned int sent_ts;
155 };
156 
158 public:
160 
163 };
164 
168 
169  // extension event observer
171 
172  // 0 for AGORA_CC,
173  // 1 for REMB
174  // 2 for TRANSPORT_CC
176 
178  : RtcEngineContext(),
179  isPassThruMode(false),
180  maxOutputBitrateKpbs(30 * 1000),
181  extensionObserver(nullptr),
182 #if defined(P2P_SWITCH_DEFAULT_VALUE)
183  is_p2p_switch_enabled_(P2P_SWITCH_DEFAULT_VALUE)
184 #else
186 #endif
187  {}
188 
189  explicit RtcEngineContextInternal(const RtcEngineContext& ctx)
190  : RtcEngineContext(ctx),
191  isPassThruMode(false),
192  maxOutputBitrateKpbs(30 * 1000),
193  extensionObserver(nullptr),
194 #if defined(P2P_SWITCH_DEFAULT_VALUE)
195  is_p2p_switch_enabled_(P2P_SWITCH_DEFAULT_VALUE)
196 #else
198 #endif
199  {
200  if (ctx.eventHandler) {
202  }
203  }
204 };
205 
208  int delay;
212 };
213 
215  public:
216  virtual const char* eventHandlerType() const { return "event_handler_internal"; }
217 
218  virtual bool onEvent(RTC_EVENT evt, std::string* payload) {
219  (void)evt;
220  (void)payload;
221 
222  /* return false to indicate this event is not handled */
223  return false;
224  }
225 };
226 
229  public:
230  virtual ~IRtcEngineInternal() {}
231  virtual int initializeEx(const RtcEngineContextInternal& context) = 0;
232 
233  virtual int setProfile(const char* profile, bool merge) = 0;
234  virtual int getProfile(any_document_t& result) = 0;
235  virtual int notifyNetworkChange(agora::commons::network::network_info_t&& networkInfo) = 0;
236  virtual int getOptionsByVideoProfile(int profile, VideoNetOptions& options) = 0;
237 
238  virtual int setAudioOptionParams(const char* params) = 0;
239  virtual int getAudioOptionParams(char* params) = 0;
240  virtual int setAudioSessionParams(const char* params) = 0;
241  virtual int getAudioSessionParams(char* params) = 0;
242  virtual bool isMicrophoneOn() = 0;
243 
244  virtual int reportWebAgentVideoStats(const WebAgentVideoStats& stats) = 0;
245 
246 #if (defined(__APPLE__) && TARGET_OS_MAC && !TARGET_OS_IOS)
247  virtual int monitorDeviceChange(bool enabled) = 0;
248 #endif // __APPLE__ && !TARGET_OS_IOS && TARGET_OS_MAC
249 
250  virtual int printLog(int level, const char* message) = 0;
251  virtual int runOnWorkerThread(std::function<void(void)>&& f) = 0;
252  virtual int reportArgusCounters(int* counterId, int* value, int count, uid_t uid) = 0;
253 
254  virtual int reportRecordingArgusEvent(uint32_t* eventIds, int64_t* value, int count,
255  RecordingEventType eventType) = 0;
256  virtual int enableYuvDumper(bool enable) = 0;
257 
258  // this function is only for expert of video codec,
259  // please do NOT call it if not knowing what's it about
260  virtual int setVideoConfigParam(const char* params) = 0;
261 
262  virtual int getVideoConfigParam(char* params, size_t size) = 0;
263 
264  virtual int setExternalVideoConfigEx(const VideoEncoderConfiguration& config) = 0;
266  const RtcConnection& connection) = 0;
267 
268  // this function is only for switching screen capture source api on windows platform
269 #if defined(_WIN32)
270  virtual void SetScreenCaptureSource(bool allow_magnification_api, bool allow_directx_capturer) = 0;
271  virtual int GetScreenCaptureType() = 0;
272 #endif
273 
274  virtual int setLogLevelEx(unsigned int filter) = 0;
275 
276  virtual int simulateOnSetParameters(const std::string& parameters) = 0;
277 
278  virtual int setCameraDevice(const char dev_id[MAX_DEVICE_ID_LENGTH]) = 0;
279 
280  virtual agora_refptr<IMediaPlayer> getMediaPlayer(int sourceId) = 0;
281 
282  virtual base::NtpTime getNtpTime() = 0;
283  virtual agora_refptr<IRtcConnection> getConnection(const RtcConnection& connection = {}) const = 0;
284 
285 #if defined(FEATURE_ENABLE_UT_SUPPORT)
286  // 0 is left channel, 1 is right channel, -1 is invalid
287  virtual int soundPositionChannel(uid_t uid) = 0;
288  virtual int soundPositionChannel(uid_t uid, const RtcConnection& connection) = 0;
289 #endif
290 
291  virtual int32_t setAppType(APP_TYPE appType) = 0;
292  virtual int32_t enableVosUserInfoHidden(bool enabled) = 0;
293 
294  virtual int setMediaRecorderObserver(const RtcConnection& connection, media::IMediaRecorderObserver* observer, int sys_version = 0) = 0;
295  virtual int startRecording(const RtcConnection& connection, const media::MediaRecorderConfiguration& config) = 0;
296  virtual int stopRecording(const RtcConnection& connection) = 0;
297  virtual int releaseRecorder() = 0;
298 };
299 
301  typedef const char*(AGORA_CALL* PFN_GetAgoraRtcEngineVersion)(int* build);
302  typedef IRtcEngine*(AGORA_CALL* PFN_CreateAgoraRtcEngine)();
303  typedef void(AGORA_CALL* PFN_ShutdownAgoraRtcEngineService)();
304 
305 #if defined(_WIN32)
306  typedef HINSTANCE lib_handle_t;
307  static HINSTANCE MyLoadLibrary(const char* dllname) {
308  char path[MAX_PATH];
309  GetModuleFileNameA(GetCurrentModuleInstance(), path, MAX_PATH);
310  auto p = strrchr(path, '\\');
311  strcpy(p + 1, dllname); // NOLINT
312  HINSTANCE hDll = LoadLibraryA(path);
313  if (hDll) return hDll;
314 
315  hDll = LoadLibraryA(dllname);
316  return hDll;
317  }
318 #else
319  typedef void* lib_handle_t;
320 #endif // _WIN32
321 
322  public:
323  RtcEngineLibHelper(const char* dllname)
324  : m_firstInit(true),
325  m_lib(NULL),
326  m_dllName(dllname),
327  m_pfnCreateAgoraRtcEngine(nullptr),
328  m_pfnGetAgoraRtcEngineVersion(nullptr) {}
329 
330  bool initialize() {
331  if (!m_firstInit) {
332  return isValid();
333  }
334 
335  if (m_dllName.empty()) {
336  return false;
337  }
338 
339  m_firstInit = false;
340 #if defined(_WIN32)
341  m_lib = MyLoadLibrary(m_dllName.c_str());
342  if (m_lib) {
343  m_pfnCreateAgoraRtcEngine =
344  (PFN_CreateAgoraRtcEngine)GetProcAddress(m_lib, "createAgoraRtcEngine");
345  m_pfnGetAgoraRtcEngineVersion =
346  (PFN_GetAgoraRtcEngineVersion)GetProcAddress(m_lib, "getAgoraRtcEngineVersion");
347  }
348 #elif defined(__ANDROID__) || defined(__linux__)
349  m_lib = dlopen(m_dllName.c_str(), RTLD_LAZY);
350  if (m_lib) {
351  m_pfnCreateAgoraRtcEngine = (PFN_CreateAgoraRtcEngine)dlsym(m_lib, "createAgoraRtcEngine");
352  m_pfnGetAgoraRtcEngineVersion =
353  (PFN_GetAgoraRtcEngineVersion)dlsym(m_lib, "getAgoraRtcEngineVersion");
354  }
355 #endif // _WIN32
356 
357  return isValid();
358  }
359 
360  void deinitialize() {
361  if (m_lib) {
362 #if defined(_WIN32)
363  FreeLibrary(m_lib);
364 #elif defined(__ANDROID__) || defined(__linux__)
365  dlclose(m_lib);
366 #endif // _WIN32
367 
368  m_lib = NULL;
369  }
370 
371  m_pfnCreateAgoraRtcEngine = nullptr;
372  m_pfnGetAgoraRtcEngineVersion = nullptr;
373  }
374 
376 
377  bool isValid() { return m_pfnCreateAgoraRtcEngine != NULL; }
378 
380  return m_pfnCreateAgoraRtcEngine ? m_pfnCreateAgoraRtcEngine() : NULL;
381  }
382 
383  const char* getVersion(int* build) {
384  return m_pfnGetAgoraRtcEngineVersion ? m_pfnGetAgoraRtcEngineVersion(build) : nullptr;
385  }
386 
387  private:
388  bool m_firstInit;
389  lib_handle_t m_lib;
390  std::string m_dllName;
391  PFN_CreateAgoraRtcEngine m_pfnCreateAgoraRtcEngine;
392  PFN_GetAgoraRtcEngineVersion m_pfnGetAgoraRtcEngineVersion;
393 };
394 
395 // A helper function for decoding out the SEI layout
396 
397 struct canvas_info {
398  int width;
399  int height;
400  int bgcolor;
401 };
402 
403 struct region_info {
404  unsigned id;
405 
406  double x;
407  double y;
408  double width;
409  double height;
410 
411  int alpha; // [0, 255]
412 
413  int render_mode; // 0, crop; 1, ZoomtoFit
414  int zorder; // [0, 100]
415 };
416 
417 #define NUM_OF_LAYOUT_REGIONS 17
418 
419 struct layout_info {
420  long long ms;
422  // At most 9 broadcasters: 1 host, 8 guests.
423  unsigned int region_count;
424  region_info regions[NUM_OF_LAYOUT_REGIONS];
425 };
426 
427 AGORA_API bool AGORA_CALL decode_sei_layout(const void* data, unsigned size, layout_info* layout);
428 
429 } // namespace rtc
430 } // namespace agora
agora::rtc::IRtcEngineInternal::soundPositionChannel
virtual int soundPositionChannel(uid_t uid, const RtcConnection &connection)=0
agora::rtc::InternalEngineStatus::recfreq
int recfreq
Definition: rtc_engine_i.h:63
agora::rtc::RecordingEventType::RECORDING_EVENT_JOIN
@ RECORDING_EVENT_JOIN
agora::rtc::IRtcEngineInternal::getVideoConfigParam
virtual int getVideoConfigParam(char *params, size_t size)=0
agora::rtc::RtcEngineLibHelper
Definition: rtc_engine_i.h:300
agora::any_document_t
agora::commons::cjson::JsonWrapper any_document_t
Definition: agora_service_i.h:52
agora::rtc::audio_transport_packet_info::ts
unsigned int ts
Definition: rtc_engine_i.h:153
agora::rtc::APP_TYPE_RUST
@ APP_TYPE_RUST
Definition: rtc_engine_i.h:138
agora::rtc::IRtcEngineInternal::reportRecordingArgusEvent
virtual int reportRecordingArgusEvent(uint32_t *eventIds, int64_t *value, int count, RecordingEventType eventType)=0
agora::rtc::APP_TYPE_UNITY
@ APP_TYPE_UNITY
Definition: rtc_engine_i.h:129
agora::rtc::APP_TYPE_APICLOUD
@ APP_TYPE_APICLOUD
Definition: rtc_engine_i.h:134
agora::rtc::RecordingEventType::RECORDING_EVENT_START
@ RECORDING_EVENT_START
agora::rtc::WebAgentVideoStats::userId
user_id_t userId
Definition: rtc_engine_i.h:207
agora::rtc::IRtcEngineEventHandlerInternal::eventHandlerType
virtual const char * eventHandlerType() const
Definition: rtc_engine_i.h:216
agora::rtc::RtcEngineContext::eventHandler
IRtcEngineEventHandler * eventHandler
Definition: IAgoraRtcEngine.h:2931
agora::media::IMediaRecorderObserver
Definition: AgoraMediaBase.h:1582
agora::rtc::WebAgentVideoStats
Definition: rtc_engine_i.h:206
agora::rtc::RecordingEventKeyIndex
RecordingEventKeyIndex
Definition: rtc_engine_i.h:83
agora::rtc::video_transport_packet_info
Definition: rtc_engine_i.h:144
agora::rtc::IRtcEngineInternal::getNtpTime
virtual base::NtpTime getNtpTime()=0
agora::agora_refptr
Definition: AgoraRefPtr.h:44
agora::rtc::IRtcEngineInternal::setProfile
virtual int setProfile(const char *profile, bool merge)=0
agora::rtc::RECORDING_JOIN_EVT_MAX
@ RECORDING_JOIN_EVT_MAX
Definition: rtc_engine_i.h:109
agora::rtc::IRtcAvTransportPacketInfoObserver::onVideoTransportPacketInfo
virtual void onVideoTransportPacketInfo(const video_transport_packet_info &info)=0
agora::rtc::IRtcEngineInternal::runOnWorkerThread
virtual int runOnWorkerThread(std::function< void(void)> &&f)=0
agora::rtc::SCREEN_SHARING_NORMAL
@ SCREEN_SHARING_NORMAL
Definition: rtc_engine_i.h:59
agora::rtc::region_info::x
double x
Definition: rtc_engine_i.h:406
agora::rtc::video_transport_packet_info::frame_num
unsigned int frame_num
Definition: rtc_engine_i.h:146
agora::rtc::layout_info::regions
region_info regions[NUM_OF_LAYOUT_REGIONS]
Definition: rtc_engine_i.h:424
agora::rtc::RtcEngineContextInternal
Definition: rtc_engine_i.h:165
agora::rtc::RECORDING_JOIN_EVT_MAXUDPPORT
@ RECORDING_JOIN_EVT_MAXUDPPORT
Definition: rtc_engine_i.h:93
agora::rtc::IRtcEngineInternal::setAudioSessionParams
virtual int setAudioSessionParams(const char *params)=0
webrtc
Definition: common_defines.h:11
agora::rtc::IRtcEngineInternal::printLog
virtual int printLog(int level, const char *message)=0
agora::base::NtpTime
Definition: time_utils.h:13
agora::rtc::video_transport_packet_info::uid
uid_t uid
Definition: rtc_engine_i.h:145
agora::rtc::RECORDING_LEAVE_EVT_RESERVE5
@ RECORDING_LEAVE_EVT_RESERVE5
Definition: rtc_engine_i.h:118
agora::rtc::InternalEngineStatus::audio_send_frame_rate
int audio_send_frame_rate
Definition: rtc_engine_i.h:65
agora::rtc::INTERFACE_ID_EX_TYPE
INTERFACE_ID_EX_TYPE
Definition: rtc_engine_i.h:55
agora::rtc::WebAgentVideoStats::delay
int delay
Definition: rtc_engine_i.h:208
agora::rtc::IRtcEngineEventHandlerEx
Definition: IAgoraRtcEngineEx.h:42
agora::rtc::IRtcEngineInternal::setMediaRecorderObserver
virtual int setMediaRecorderObserver(const RtcConnection &connection, media::IMediaRecorderObserver *observer, int sys_version=0)=0
agora::rtc::RECORDING_JOIN_EVT_LANGUAGE
@ RECORDING_JOIN_EVT_LANGUAGE
Definition: rtc_engine_i.h:103
agora::rtc::RecordingEventType::RECORDING_EVENT_UNKNOWN
@ RECORDING_EVENT_UNKNOWN
agora::rtc::IRtcEngineInternal::soundPositionChannel
virtual int soundPositionChannel(uid_t uid)=0
agora::rtc::RtcEngineLibHelper::getVersion
const char * getVersion(int *build)
Definition: rtc_engine_i.h:383
agora::rtc::APP_TYPE_C_SHARP
@ APP_TYPE_C_SHARP
Definition: rtc_engine_i.h:139
agora::user_id_t
const char * user_id_t
Definition: AgoraBase.h:798
agora::base::IParameterEngine::setParametersInternal
virtual int setParametersInternal(const char *parameters)=0
agora::rtc::video_transport_packet_info::sent_ts
unsigned int sent_ts
Definition: rtc_engine_i.h:147
agora::rtc::VideoEncoderConfiguration
Definition: AgoraBase.h:1700
agora::rtc::APP_TYPE_CEF
@ APP_TYPE_CEF
Definition: rtc_engine_i.h:140
agora::rtc::region_info::height
double height
Definition: rtc_engine_i.h:409
agora::rtc::canvas_info::bgcolor
int bgcolor
Definition: rtc_engine_i.h:400
agora::rtc::IRtcEngineInternal::setCameraDevice
virtual int setCameraDevice(const char dev_id[MAX_DEVICE_ID_LENGTH])=0
agora::rtc::IRtcEngineEventHandlerInternal
Definition: rtc_engine_i.h:214
agora::rtc::RECORDING_JOIN_EVT_RESERVE1
@ RECORDING_JOIN_EVT_RESERVE1
Definition: rtc_engine_i.h:104
agora::rtc::APP_TYPE_NATIVE
@ APP_TYPE_NATIVE
Definition: rtc_engine_i.h:127
agora::rtc::layout_info::canvas
canvas_info canvas
Definition: rtc_engine_i.h:421
agora::rtc::layout_info
Definition: rtc_engine_i.h:419
agora::rtc::IRtcEngineEventHandlerInternal::onEvent
virtual bool onEvent(RTC_EVENT evt, std::string *payload)
Definition: rtc_engine_i.h:218
agora::rtc::APP_TYPE_COCOS
@ APP_TYPE_COCOS
Definition: rtc_engine_i.h:128
agora::rtc::RECORDING_JOIN_EVT_MIXMODE
@ RECORDING_JOIN_EVT_MIXMODE
Definition: rtc_engine_i.h:86
agora::rtc::InternalEngineStatus::audio_recv_packet_rate
int audio_recv_packet_rate
Definition: rtc_engine_i.h:67
agora::rtc::RtcEngineContextInternal::extensionObserver
agora_refptr< IMediaExtensionObserver > extensionObserver
Definition: rtc_engine_i.h:170
agora::rtc::IRtcAvTransportPacketInfoObserver
Definition: rtc_engine_i.h:157
agora::RefCountedObject
Definition: AgoraRefCountedObject.h:63
agora::rtc::canvas_info
Definition: rtc_engine_i.h:397
agora
Definition: AgoraAtomicOps.h:21
agora::rtc::RECORDING_JOIN_EVT_AUDIOONLY
@ RECORDING_JOIN_EVT_AUDIOONLY
Definition: rtc_engine_i.h:98
agora::rtc::APP_TYPE_UNI_APP
@ APP_TYPE_UNI_APP
Definition: rtc_engine_i.h:141
agora::rtc::RECORDING_JOIN_EVT_LIVEMODE
@ RECORDING_JOIN_EVT_LIVEMODE
Definition: rtc_engine_i.h:96
agora::rtc::region_info::render_mode
int render_mode
Definition: rtc_engine_i.h:413
agora::rtc::audio_transport_packet_info::sent_ts
unsigned int sent_ts
Definition: rtc_engine_i.h:154
agora::rtc::WebAgentVideoStats::sentFrameRate
int sentFrameRate
Definition: rtc_engine_i.h:209
agora::rtc::SCREEN_SHARING_MOVIE
@ SCREEN_SHARING_MOVIE
Definition: rtc_engine_i.h:59
agora::rtc::IRtcEngineInternal::setAppType
virtual int32_t setAppType(APP_TYPE appType)=0
agora::rtc::RECORDING_JOIN_EVT_TRIGGERMODE
@ RECORDING_JOIN_EVT_TRIGGERMODE
Definition: rtc_engine_i.h:102
agora::rtc::IRtcEngineInternal::stopRecording
virtual int stopRecording(const RtcConnection &connection)=0
agora::rtc::IRtcEngineInternal::enableYuvDumper
virtual int enableYuvDumper(bool enable)=0
agora::rtc::IRtcAvTransportPacketInfoObserver::onAudioTransportPacketInfo
virtual void onAudioTransportPacketInfo(const audio_transport_packet_info &info)=0
agora::rtc::RECORDING_JOIN_EVT_MIXEDVIDEOAUDIOMODE
@ RECORDING_JOIN_EVT_MIXEDVIDEOAUDIOMODE
Definition: rtc_engine_i.h:87
agora::rtc::SCREEN_SHARING_MODE
SCREEN_SHARING_MODE
Definition: rtc_engine_i.h:59
agora::rtc::IRtcEngineInternal::GetScreenCaptureType
virtual int GetScreenCaptureType()=0
agora::rtc::RECORDING_JOIN_EVT_IDLE
@ RECORDING_JOIN_EVT_IDLE
Definition: rtc_engine_i.h:97
agora::rtc::IRtcEngineInternal::reportArgusCounters
virtual int reportArgusCounters(int *counterId, int *value, int count, uid_t uid)=0
agora::base::IParameterEngine::~IParameterEngine
virtual ~IParameterEngine()
Definition: rtc_engine_i.h:45
agora::rtc::InternalEngineStatus
Definition: rtc_engine_i.h:62
agora::rtc::IRtcEngineInternal::reportWebAgentVideoStats
virtual int reportWebAgentVideoStats(const WebAgentVideoStats &stats)=0
agora::rtc::RECORDING_JOIN_EVT_DECODEAUDIOTYPE
@ RECORDING_JOIN_EVT_DECODEAUDIOTYPE
Definition: rtc_engine_i.h:94
agora::rtc::IRtcEngineInternal::~IRtcEngineInternal
virtual ~IRtcEngineInternal()
Definition: rtc_engine_i.h:230
agora::rtc::RECORDING_JOIN_EVT_MIXHIGH
@ RECORDING_JOIN_EVT_MIXHIGH
Definition: rtc_engine_i.h:88
agora::rtc::InternalEngineStatus::audio_send_packet_rate
int audio_send_packet_rate
Definition: rtc_engine_i.h:66
agora::rtc::IRtcEngineInternal
Definition: rtc_engine_i.h:228
agora::rtc::RtcEngineContextInternal::maxOutputBitrateKpbs
int maxOutputBitrateKpbs
Definition: rtc_engine_i.h:167
agora::rtc::IRtcEngineInternal::releaseRecorder
virtual int releaseRecorder()=0
agora::rtc::APP_TYPE_COCOS_CREATOR
@ APP_TYPE_COCOS_CREATOR
Definition: rtc_engine_i.h:137
agora::rtc::RECORDING_JOIN_EVT_START
@ RECORDING_JOIN_EVT_START
Definition: rtc_engine_i.h:85
agora::rtc::APP_TYPE_FLUTTER
@ APP_TYPE_FLUTTER
Definition: rtc_engine_i.h:131
agora::rtc::video_transport_packet_info::ts
unsigned int ts
Definition: rtc_engine_i.h:148
agora::rtc::IRtcEngineInternal::setLogLevelEx
virtual int setLogLevelEx(unsigned int filter)=0
agora::rtc::WebAgentVideoStats::skippedFrames
int skippedFrames
Definition: rtc_engine_i.h:211
agora::rtc::RtcEngineLibHelper::deinitialize
void deinitialize()
Definition: rtc_engine_i.h:360
agora::rtc::RtcConnection
Definition: IAgoraRtcEngineEx.h:20
agora::rtc::InternalEngineStatus::farin_signal_level
int farin_signal_level
Definition: rtc_engine_i.h:70
agora::rtc::IRtcEngineEx
Definition: IAgoraRtcEngineEx.h:1033
agora::rtc::region_info::alpha
int alpha
Definition: rtc_engine_i.h:411
agora::rtc::RECORDING_JOIN_EVT_MINUDPPORT
@ RECORDING_JOIN_EVT_MINUDPPORT
Definition: rtc_engine_i.h:92
agora::rtc::IRtcEngineInternal::simulateOnSetParameters
virtual int simulateOnSetParameters(const std::string &parameters)=0
agora::rtc::IRtcEngineInternal::setExternalVideoConfigEx
virtual int setExternalVideoConfigEx(const VideoEncoderConfiguration &config, const RtcConnection &connection)=0
agora::rtc::IRtcEngineInternal::setAudioOptionParams
virtual int setAudioOptionParams(const char *params)=0
agora::rtc::RtcEngineContextInternal::isPassThruMode
bool isPassThruMode
Definition: rtc_engine_i.h:166
agora::rtc::IRtcEngineInternal::setExternalVideoConfigEx
virtual int setExternalVideoConfigEx(const VideoEncoderConfiguration &config)=0
agora::rtc::RECORDING_JOIN_EVT_VIDEOONLY
@ RECORDING_JOIN_EVT_VIDEOONLY
Definition: rtc_engine_i.h:99
agora::rtc::RtcEngineLibHelper::createEngine
agora::rtc::IRtcEngine * createEngine()
Definition: rtc_engine_i.h:379
agora::rtc::layout_info::ms
long long ms
Definition: rtc_engine_i.h:420
agora::rtc::IRtcEngineInternal::initializeEx
virtual int initializeEx(const RtcEngineContextInternal &context)=0
agora::rtc::WebAgentVideoStats::renderedFrameRate
int renderedFrameRate
Definition: rtc_engine_i.h:210
agora::rtc::region_info::id
unsigned id
Definition: rtc_engine_i.h:404
agora::rtc::decode_sei_layout
AGORA_API bool AGORA_CALL decode_sei_layout(const void *data, unsigned size, layout_info *layout)
agora::rtc::RECORDING_JOIN_EVT_MIXKBPS
@ RECORDING_JOIN_EVT_MIXKBPS
Definition: rtc_engine_i.h:91
agora::rtc::RECORDING_JOIN_EVT_SYSLOGFACILITY
@ RECORDING_JOIN_EVT_SYSLOGFACILITY
Definition: rtc_engine_i.h:100
agora::rtc::AGORA_IID_RTC_ENGINE_EX
@ AGORA_IID_RTC_ENGINE_EX
Definition: rtc_engine_i.h:56
agora::rtc::RECORDING_LEAVE_EVT_START
@ RECORDING_LEAVE_EVT_START
Definition: rtc_engine_i.h:112
agora::rtc::region_info::width
double width
Definition: rtc_engine_i.h:408
agora::rtc::region_info
Definition: rtc_engine_i.h:403
agora::rtc::RtcEngineLibHelper::initialize
bool initialize()
Definition: rtc_engine_i.h:330
agora::media::MediaRecorderConfiguration
Definition: AgoraMediaBase.h:1525
agora::rtc::canvas_info::height
int height
Definition: rtc_engine_i.h:399
agora::base::IParameterEngine
Definition: rtc_engine_i.h:41
agora::rtc::IRtcEngineInternal::startRecording
virtual int startRecording(const RtcConnection &connection, const media::MediaRecorderConfiguration &config)=0
agora::rtc::RecordingEventType
RecordingEventType
Definition: rtc_engine_i.h:74
agora::rtc::RECORDING_LEAVE_EVT_LEAVEPATHCODE
@ RECORDING_LEAVE_EVT_LEAVEPATHCODE
Definition: rtc_engine_i.h:113
agora::rtc::RecordingEventType::RECORDING_EVENT_LEAVE
@ RECORDING_EVENT_LEAVE
agora::rtc::APP_TYPE_REACT_NATIVE
@ APP_TYPE_REACT_NATIVE
Definition: rtc_engine_i.h:135
agora::rtc::RtcEngineLibHelper::~RtcEngineLibHelper
~RtcEngineLibHelper()
Definition: rtc_engine_i.h:375
agora::rtc::region_info::zorder
int zorder
Definition: rtc_engine_i.h:414
agora::rtc::InternalEngineStatus::playoutfreq
int playoutfreq
Definition: rtc_engine_i.h:64
agora::rtc::IRtcEngineInternal::getMediaPlayer
virtual agora_refptr< IMediaPlayer > getMediaPlayer(int sourceId)=0
agora::rtc::IRtcEngineInternal::SetScreenCaptureSource
virtual void SetScreenCaptureSource(bool allow_magnification_api, bool allow_directx_capturer)=0
agora::rtc::RtcEngineContext
Definition: IAgoraRtcEngine.h:2927
agora::rtc::RtcEngineLibHelper::isValid
bool isValid()
Definition: rtc_engine_i.h:377
agora::rtc::IRtcEngine
Definition: IAgoraRtcEngine.h:3339
agora::rtc::audio_transport_packet_info::uid
uid_t uid
Definition: rtc_engine_i.h:152
agora::rtc::IRtcEngineInternal::getProfile
virtual int getProfile(any_document_t &result)=0
agora::rtc::APP_TYPE_ELECTRON
@ APP_TYPE_ELECTRON
Definition: rtc_engine_i.h:130
agora::rtc::RECORDING_JOIN_EVT_MIXFPS
@ RECORDING_JOIN_EVT_MIXFPS
Definition: rtc_engine_i.h:90
agora::rtc::IRtcAvTransportPacketInfoObserver::~IRtcAvTransportPacketInfoObserver
virtual ~IRtcAvTransportPacketInfoObserver()=default
agora::rtc::RtcEngineContextInternal::is_p2p_switch_enabled_
bool is_p2p_switch_enabled_
Definition: rtc_engine_i.h:175
agora::rtc::RECORDING_JOIN_EVT_DECODEVIDEOTYPE
@ RECORDING_JOIN_EVT_DECODEVIDEOTYPE
Definition: rtc_engine_i.h:95
agora::rtc::APP_TYPE_INVALID_VALUE
@ APP_TYPE_INVALID_VALUE
Definition: rtc_engine_i.h:126
agora::rtc::canvas_info::width
int width
Definition: rtc_engine_i.h:398
agora::base::IParameterEngine::getParameters
virtual int getParameters(const char *key, any_document_t &result)=0
agora::rtc::IRtcEngineInternal::monitorDeviceChange
virtual int monitorDeviceChange(bool enabled)=0
agora::rtc::audio_transport_packet_info
Definition: rtc_engine_i.h:151
agora::rtc::APP_TYPE
APP_TYPE
Definition: rtc_engine_i.h:125
agora::rtc::uid_t
unsigned int uid_t
Definition: AgoraMediaBase.h:29
agora::rtc::IRtcEngineInternal::getAudioSessionParams
virtual int getAudioSessionParams(char *params)=0
agora::rtc::RECORDING_LEAVE_EVT_RESERVE1
@ RECORDING_LEAVE_EVT_RESERVE1
Definition: rtc_engine_i.h:114
agora::rtc::IRtcEngineInternal::getConnection
virtual agora_refptr< IRtcConnection > getConnection(const RtcConnection &connection={}) const =0
agora::rtc::RecordingEventType::RECORDING_EVENT_END
@ RECORDING_EVENT_END
agora::rtc::region_info::y
double y
Definition: rtc_engine_i.h:407
agora::rtc::IRtcEngineInternal::getAudioOptionParams
virtual int getAudioOptionParams(char *params)=0
agora::rtc::APP_TYPE_PYTHON
@ APP_TYPE_PYTHON
Definition: rtc_engine_i.h:136
agora::rtc::IRtcEngineInternal::isMicrophoneOn
virtual bool isMicrophoneOn()=0
agora::rtc::InternalEngineStatus::nearout_signal_level
int nearout_signal_level
Definition: rtc_engine_i.h:69
agora::rtc::RECORDING_JOIN_EVT_STREAMTYPE
@ RECORDING_JOIN_EVT_STREAMTYPE
Definition: rtc_engine_i.h:101
agora::rtc::IRtcEngineInternal::setVideoConfigParam
virtual int setVideoConfigParam(const char *params)=0
agora::rtc::layout_info::region_count
unsigned int region_count
Definition: rtc_engine_i.h:423
agora::rtc::RtcEngineLibHelper::RtcEngineLibHelper
RtcEngineLibHelper(const char *dllname)
Definition: rtc_engine_i.h:323
agora::rtc::MAX_RECORDING_JOIN_EVT_RESERVE15
@ MAX_RECORDING_JOIN_EVT_RESERVE15
Definition: rtc_engine_i.h:108
rtc
Definition: video_node_i.h:25
agora::rtc::APP_TYPE_XAMARIN
@ APP_TYPE_XAMARIN
Definition: rtc_engine_i.h:133
agora::rtc::IRtcEngineInternal::notifyNetworkChange
virtual int notifyNetworkChange(agora::commons::network::network_info_t &&networkInfo)=0
agora::rtc::RECORDING_LEAVE_EVT_MAX
@ RECORDING_LEAVE_EVT_MAX
Definition: rtc_engine_i.h:119
agora::rtc::APP_TYPE_UNREAL
@ APP_TYPE_UNREAL
Definition: rtc_engine_i.h:132
agora::rtc::RECORDING_JOIN_EVT_MIXLOW
@ RECORDING_JOIN_EVT_MIXLOW
Definition: rtc_engine_i.h:89
agora::rtc::InternalEngineStatus::nearin_signal_level
int nearin_signal_level
Definition: rtc_engine_i.h:68
agora::rtc::IRtcEngineInternal::getOptionsByVideoProfile
virtual int getOptionsByVideoProfile(int profile, VideoNetOptions &options)=0
agora::rtc::IRtcEngineInternal::enableVosUserInfoHidden
virtual int32_t enableVosUserInfoHidden(bool enabled)=0