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