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 #include <array>
13 
14 #include "AgoraBase.h"
15 #include "api2/NGIAgoraAudioDeviceManager.h"
16 #include "api2/NGIAgoraExtensionProvider.h"
17 #include "api2/AgoraRefCountedObject.h"
18 #include "api2/NGIAgoraRtcConnection.h"
19 #include "api2/internal/media_recorder_i.h"
20 #include "IAgoraRtcEngineEx.h"
21 #include "rtc/rtc_event.h"
22 #include "utils/thread/thread_pool.h"
23 #include "main/extension_event_handler.h"
24 #include "base/time_utils.h"
25 
26 #if defined(_WIN32)
27 extern HINSTANCE GetCurrentModuleInstance();
28 #elif defined(__ANDROID__) || defined(__linux__)
29 #include <dlfcn.h>
30 #endif // _WIN32
31 
32 namespace agora {
33 namespace commons {
34 namespace cjson {
35 class JsonWrapper;
36 } // namespace cjson
37 
38 namespace network {
39 struct network_info_t;
40 } // namespace network
41 } // namespace commons
42 
43 namespace base {
45  public:
46  virtual int setParametersInternal(const char* parameters) = 0;
47  virtual int getParameters(const char* key, commons::cjson::JsonWrapper& result) = 0;
48  virtual ~IParameterEngine() {}
49 };
50 } // namespace base
51 
52 namespace rtc {
53 struct VideoNetOptions;
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  virtual uint32_t getCid(const RtcConnection& connection = {}) = 0;
233  virtual std::string getSid(const RtcConnection& connection = {}) = 0;
234  virtual int setProfile(const char* profile, bool merge) = 0;
235  virtual int getProfile(commons::cjson::JsonWrapper& result) = 0;
236  virtual int notifyNetworkChange(agora::commons::network::network_info_t&& networkInfo) = 0;
237  virtual int initializeInternal(const RtcEngineContextInternal& context) = 0;
238 
239  virtual int setAudioOptionParams(const char* params) = 0;
240  virtual int getAudioOptionParams(char* params) = 0;
241  virtual bool isMicrophoneOn() = 0;
242 
243  virtual int reportWebAgentVideoStats(const WebAgentVideoStats& stats) = 0;
244 
245 #if (defined(__APPLE__) && TARGET_OS_MAC && !TARGET_OS_IOS)
246  virtual int monitorDeviceChange(bool enabled) = 0;
247 #endif // __APPLE__ && !TARGET_OS_IOS && TARGET_OS_MAC
248 
249  virtual int printLog(int level, const char* message) = 0;
250  virtual int runOnWorkerThread(std::function<void(void)>&& f) = 0;
251  virtual int reportArgusCounters(int* counterId, int* value, int count, uid_t uid) = 0;
252 
253  virtual int reportRecordingArgusEvent(uint32_t* eventIds, int64_t* value, int count,
254  RecordingEventType eventType) = 0;
255  virtual int enableYuvDumper(bool enable) = 0;
256 
257  // this function is only for expert of video codec,
258  // please do NOT call it if not knowing what's it about
259  virtual int setVideoConfigParam(const char* params) = 0;
260 
261  virtual int getVideoConfigParam(char* params, size_t size) = 0;
262 
263  virtual int setExternalVideoConfigEx(const VideoEncoderConfiguration& config) = 0;
265  const RtcConnection& connection) = 0;
266 
267  // this function is only for switching screen capture source api on windows platform
268 #if defined(_WIN32)
269  virtual void SetScreenCaptureSource(bool allow_magnification_api, bool allow_directx_capturer) = 0;
270  virtual int GetScreenCaptureType() = 0;
271 #endif
272 
273  virtual int setLogLevelEx(unsigned int filter) = 0;
274 
275  virtual int simulateOnSetParameters(const std::string& parameters) = 0;
276 
277  virtual int setCameraDevice(const char dev_id[MAX_DEVICE_ID_LENGTH]) = 0;
278 
279  virtual agora_refptr<IMediaPlayer> getMediaPlayer(int sourceId) = 0;
280 
281  virtual agora_refptr<IRtcConnection> getConnection(const RtcConnection& connection = {}) const = 0;
282 
283 #if defined(FEATURE_ENABLE_UT_SUPPORT)
284  // 0 is left channel, 1 is right channel, -1 is invalid
285  virtual int soundPositionChannel(uid_t uid) = 0;
286  virtual int soundPositionChannel(uid_t uid, const RtcConnection& connection) = 0;
287 #endif
288 
289  virtual int32_t setAppType(APP_TYPE appType) = 0;
290  virtual int32_t enableVosUserInfoHidden(bool enabled) = 0;
291  virtual int setMediaRecorderObserver(const char* channelId, uid_t uid, bool isLocal,
292  media::IMediaRecorderObserverEx* observer, int sys_version = 0) = 0;
293  virtual int startRecording(const char* channelId, uid_t uid, bool isLocal,
294  const media::MediaRecorderConfiguration& config) = 0;
295  virtual int stopRecording(const char* channelId, uid_t uid, bool isLocal) = 0;
296  virtual int releaseRecorder(const char* channelId, uid_t uid, bool isLocal) = 0;
297  virtual std::string getRecentSid(const RtcConnection* connection = nullptr) = 0;
298  virtual int setupAudioAttributeContext(void* audioAttr) = 0;
299 };
300 
302  typedef const char*(AGORA_CALL* PFN_GetAgoraRtcEngineVersion)(int* build);
303  typedef IRtcEngine*(AGORA_CALL* PFN_CreateAgoraRtcEngine)();
304  typedef void(AGORA_CALL* PFN_ShutdownAgoraRtcEngineService)();
305 
306 #if defined(_WIN32)
307  typedef HINSTANCE lib_handle_t;
308  static HINSTANCE MyLoadLibrary(const char* dllname) {
309  char path[MAX_PATH];
310  GetModuleFileNameA(GetCurrentModuleInstance(), path, MAX_PATH);
311  auto p = strrchr(path, '\\');
312  strcpy(p + 1, dllname); // NOLINT
313  HINSTANCE hDll = LoadLibraryA(path);
314  if (hDll) return hDll;
315 
316  hDll = LoadLibraryA(dllname);
317  return hDll;
318  }
319 #else
320  typedef void* lib_handle_t;
321 #endif // _WIN32
322 
323  public:
324  RtcEngineLibHelper(const char* dllname)
325  : m_firstInit(true),
326  m_lib(NULL),
327  m_dllName(dllname),
328  m_pfnCreateAgoraRtcEngine(nullptr),
329  m_pfnGetAgoraRtcEngineVersion(nullptr) {}
330 
331  bool initialize() {
332  if (!m_firstInit) {
333  return isValid();
334  }
335 
336  if (m_dllName.empty()) {
337  return false;
338  }
339 
340  m_firstInit = false;
341 #if defined(_WIN32)
342  m_lib = MyLoadLibrary(m_dllName.c_str());
343  if (m_lib) {
344  m_pfnCreateAgoraRtcEngine =
345  (PFN_CreateAgoraRtcEngine)GetProcAddress(m_lib, "createAgoraRtcEngine");
346  m_pfnGetAgoraRtcEngineVersion =
347  (PFN_GetAgoraRtcEngineVersion)GetProcAddress(m_lib, "getAgoraRtcEngineVersion");
348  }
349 #elif defined(__ANDROID__) || defined(__linux__)
350  m_lib = dlopen(m_dllName.c_str(), RTLD_LAZY);
351  if (m_lib) {
352  m_pfnCreateAgoraRtcEngine = (PFN_CreateAgoraRtcEngine)dlsym(m_lib, "createAgoraRtcEngine");
353  m_pfnGetAgoraRtcEngineVersion =
354  (PFN_GetAgoraRtcEngineVersion)dlsym(m_lib, "getAgoraRtcEngineVersion");
355  }
356 #endif // _WIN32
357 
358  return isValid();
359  }
360 
361  void deinitialize() {
362  if (m_lib) {
363 #if defined(_WIN32)
364  FreeLibrary(m_lib);
365 #elif defined(__ANDROID__) || defined(__linux__)
366  dlclose(m_lib);
367 #endif // _WIN32
368 
369  m_lib = NULL;
370  }
371 
372  m_pfnCreateAgoraRtcEngine = nullptr;
373  m_pfnGetAgoraRtcEngineVersion = nullptr;
374  }
375 
377 
378  bool isValid() { return m_pfnCreateAgoraRtcEngine != NULL; }
379 
381  return m_pfnCreateAgoraRtcEngine ? m_pfnCreateAgoraRtcEngine() : NULL;
382  }
383 
384  const char* getVersion(int* build) {
385  return m_pfnGetAgoraRtcEngineVersion ? m_pfnGetAgoraRtcEngineVersion(build) : nullptr;
386  }
387 
388  private:
389  bool m_firstInit;
390  lib_handle_t m_lib;
391  std::string m_dllName;
392  PFN_CreateAgoraRtcEngine m_pfnCreateAgoraRtcEngine;
393  PFN_GetAgoraRtcEngineVersion m_pfnGetAgoraRtcEngineVersion;
394 };
395 
396 // A helper function for decoding out the SEI layout
397 
398 struct canvas_info {
399  int width;
400  int height;
401  int bgcolor;
402 };
403 
404 struct region_info {
405  unsigned id;
406 
407  double x;
408  double y;
409  double width;
410  double height;
411 
412  int alpha; // [0, 255]
413 
414  int render_mode; // 0, crop; 1, ZoomtoFit
415  int zorder; // [0, 100]
416 };
417 
418 #define NUM_OF_LAYOUT_REGIONS 17
419 
420 struct layout_info {
421  long long ms;
423  // At most 9 broadcasters: 1 host, 8 guests.
424  unsigned int region_count;
425  region_info regions[NUM_OF_LAYOUT_REGIONS];
426 };
427 
429 public:
432  {
433  for(size_t i = 0; i < encryptionKdfSalt.size(); i++) {
434  encryptionKdfSalt[i] = config.encryptionKdfSalt[i];
435  }
436  }
437  void ToEncryptionConfig(EncryptionConfig& config) const {
439  config.encryptionKey = encryptionKey.c_str();
440  for(size_t i = 0; i < encryptionKdfSalt.size(); i++) {
441  config.encryptionKdfSalt[i] = encryptionKdfSalt.at(i);
442  }
443  }
445  std::string encryptionKey;
446  std::array<uint8_t, 32> encryptionKdfSalt;
447 };
448 
449 AGORA_API bool AGORA_CALL decode_sei_layout(const void* data, unsigned size, layout_info* layout);
450 
451 } // namespace rtc
452 } // namespace agora
agora::rtc::IRtcEngineInternal::getCid
virtual uint32_t getCid(const RtcConnection &connection={})=0
agora::rtc::IRtcEngineInternal::soundPositionChannel
virtual int soundPositionChannel(uid_t uid, const RtcConnection &connection)=0
agora::rtc::IRtcEngineInternal::stopRecording
virtual int stopRecording(const char *channelId, uid_t uid, bool isLocal)=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:301
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::media::IMediaRecorderObserverEx
Definition: media_recorder_i.h:32
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:3033
agora::rtc::WebAgentVideoStats
Definition: rtc_engine_i.h:206
agora::rtc::EncryptionConfigInternal::encryptionKdfSalt
std::array< uint8_t, 32 > encryptionKdfSalt
Definition: rtc_engine_i.h:446
agora::rtc::RecordingEventKeyIndex
RecordingEventKeyIndex
Definition: rtc_engine_i.h:83
agora::rtc::video_transport_packet_info
Definition: rtc_engine_i.h:144
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::IRtcEngineInternal::releaseRecorder
virtual int releaseRecorder(const char *channelId, uid_t uid, bool isLocal)=0
agora::rtc::region_info::x
double x
Definition: rtc_engine_i.h:407
agora::rtc::video_transport_packet_info::frame_num
unsigned int frame_num
Definition: rtc_engine_i.h:146
agora::rtc::EncryptionConfigInternal::encryptionMode
ENCRYPTION_MODE encryptionMode
Definition: rtc_engine_i.h:444
agora::rtc::layout_info::regions
region_info regions[NUM_OF_LAYOUT_REGIONS]
Definition: rtc_engine_i.h:425
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::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: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::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:384
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:790
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::IRtcEngineInternal::setupAudioAttributeContext
virtual int setupAudioAttributeContext(void *audioAttr)=0
agora::rtc::VideoEncoderConfiguration
Definition: AgoraBase.h:1753
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:410
agora::rtc::canvas_info::bgcolor
int bgcolor
Definition: rtc_engine_i.h:401
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:422
agora::rtc::layout_info
Definition: rtc_engine_i.h:420
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:398
agora
Definition: AgoraAtomicOps.h:21
agora::base::IParameterEngine::getParameters
virtual int getParameters(const char *key, commons::cjson::JsonWrapper &result)=0
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:414
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::enableYuvDumper
virtual int enableYuvDumper(bool enable)=0
agora::rtc::IRtcAvTransportPacketInfoObserver::onAudioTransportPacketInfo
virtual void onAudioTransportPacketInfo(const audio_transport_packet_info &info)=0
agora::rtc::EncryptionConfigInternal::ToEncryptionConfig
void ToEncryptionConfig(EncryptionConfig &config) const
Definition: rtc_engine_i.h:437
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:48
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::getProfile
virtual int getProfile(commons::cjson::JsonWrapper &result)=0
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::EncryptionConfig::encryptionMode
ENCRYPTION_MODE encryptionMode
Definition: AgoraBase.h:5448
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::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::IRtcEngineInternal::initializeInternal
virtual int initializeInternal(const RtcEngineContextInternal &context)=0
agora::rtc::EncryptionConfigInternal::EncryptionConfigInternal
EncryptionConfigInternal(const EncryptionConfig &config)
Definition: rtc_engine_i.h:430
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::IRtcEngineInternal::getRecentSid
virtual std::string getRecentSid(const RtcConnection *connection=nullptr)=0
agora::rtc::WebAgentVideoStats::skippedFrames
int skippedFrames
Definition: rtc_engine_i.h:211
agora::rtc::RtcEngineLibHelper::deinitialize
void deinitialize()
Definition: rtc_engine_i.h:361
agora::rtc::RtcConnection
Definition: IAgoraRtcEngineEx.h:20
agora::rtc::EncryptionConfig::encryptionKdfSalt
uint8_t encryptionKdfSalt[32]
Definition: AgoraBase.h:5461
agora::rtc::ENCRYPTION_MODE
ENCRYPTION_MODE
Definition: AgoraBase.h:5411
agora::rtc::InternalEngineStatus::farin_signal_level
int farin_signal_level
Definition: rtc_engine_i.h:70
agora::rtc::IRtcEngineEx
Definition: IAgoraRtcEngineEx.h:1032
agora::rtc::region_info::alpha
int alpha
Definition: rtc_engine_i.h:412
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::getSid
virtual std::string getSid(const RtcConnection &connection={})=0
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:380
agora::rtc::layout_info::ms
long long ms
Definition: rtc_engine_i.h:421
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:405
agora::rtc::decode_sei_layout
AGORA_API bool AGORA_CALL decode_sei_layout(const void *data, unsigned size, layout_info *layout)
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::EncryptionConfig
Definition: AgoraBase.h:5443
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:409
agora::rtc::region_info
Definition: rtc_engine_i.h:404
agora::rtc::RtcEngineLibHelper::initialize
bool initialize()
Definition: rtc_engine_i.h:331
agora::media::MediaRecorderConfiguration
Definition: AgoraMediaBase.h:1522
agora::rtc::canvas_info::height
int height
Definition: rtc_engine_i.h:400
agora::base::IParameterEngine
Definition: rtc_engine_i.h:44
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:376
agora::rtc::region_info::zorder
int zorder
Definition: rtc_engine_i.h:415
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:3029
agora::rtc::RtcEngineLibHelper::isValid
bool isValid()
Definition: rtc_engine_i.h:378
agora::rtc::IRtcEngine
Definition: IAgoraRtcEngine.h:3449
agora::rtc::audio_transport_packet_info::uid
uid_t uid
Definition: rtc_engine_i.h:152
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::EncryptionConfig::encryptionKey
const char * encryptionKey
Definition: AgoraBase.h:5454
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:399
agora::rtc::IRtcEngineInternal::monitorDeviceChange
virtual int monitorDeviceChange(bool enabled)=0
agora::rtc::IRtcEngineInternal::startRecording
virtual int startRecording(const char *channelId, uid_t uid, bool isLocal, const media::MediaRecorderConfiguration &config)=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::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::EncryptionConfigInternal::encryptionKey
std::string encryptionKey
Definition: rtc_engine_i.h:445
agora::rtc::region_info::y
double y
Definition: rtc_engine_i.h:408
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:424
agora::rtc::RtcEngineLibHelper::RtcEngineLibHelper
RtcEngineLibHelper(const char *dllname)
Definition: rtc_engine_i.h:324
agora::rtc::MAX_RECORDING_JOIN_EVT_RESERVE15
@ MAX_RECORDING_JOIN_EVT_RESERVE15
Definition: rtc_engine_i.h:108
rtc
Definition: video_node_i.h:26
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::EncryptionConfigInternal
Definition: rtc_engine_i.h:428
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::enableVosUserInfoHidden
virtual int32_t enableVosUserInfoHidden(bool enabled)=0