Agora C++ API Reference for All Platforms
IAgoraRtcEngine.h
1 //
2 // AgoraRtcEngine SDK
3 //
4 // Copyright (c) 2019 Agora.io. All rights reserved.
5 //
6 
11 #ifndef AGORA_RTC_ENGINE_H
12 #define AGORA_RTC_ENGINE_H
13 #include "AgoraBase.h"
14 #include "IAgoraService.h"
15 
16 namespace agora {
17 namespace rtc {
18  typedef unsigned int uid_t;
19  typedef void* view_t;
23 {
27 };
31 {
35 };
39 {
43 };
47 {
54 };
55 
57 {
85  // media engine role changed
101  // iOS adm sample rate changed
114  // audio mix state
130  //Mixing error codes
143 };
144 
160 };
161 
177 };
178 
182 {
195 };
196 
200 {
219 };
220 
224 {
233 };
234 
250 };
251 
255 {
268 };
269 
273 {
293 };
294 
298 {
311 };
312 
315 {
334 };
335 
338 {
354 };
355 
358 {
361  VIDEO_MIRROR_MODE_AUTO = 0,//determined by SDK
363  VIDEO_MIRROR_MODE_ENABLED = 1,//enabled mirror
365  VIDEO_MIRROR_MODE_DISABLED = 2,//disable mirror
366 };
367 
370 {
525 };
526 
530 enum AUDIO_PROFILE_TYPE // sample rate, bit rate, mono/stereo, speech/music codec
531 {
538  AUDIO_PROFILE_DEFAULT = 0, // use default settings
542  AUDIO_PROFILE_SPEECH_STANDARD = 1, // 32Khz, 18Kbps, mono, speech
546  AUDIO_PROFILE_MUSIC_STANDARD = 2, // 48Khz, 48Kbps, mono, music
550  AUDIO_PROFILE_MUSIC_STANDARD_STEREO = 3, // 48Khz, 56Kbps, stereo, music
554  AUDIO_PROFILE_MUSIC_HIGH_QUALITY = 4, // 48Khz, 128Kbps, mono, music
558  AUDIO_PROFILE_MUSIC_HIGH_QUALITY_STEREO = 5, // 48Khz, 192Kbps, stereo, music
564 };
565 
568 enum AUDIO_SCENARIO_TYPE // set a suitable scenario for your app type
569 {
585 };
586 
590 {
601 };
602 
605 {
610 };
611 
614 {
621 };
626 {
645 };
646 
651 {
674 };
675 
678 {
701 };
704 {
709 };
710 
713 {
720 };
721 
724 {
731 };
732 
735 {
741 };
742 
753 };
754 
757 {
778 };
779 
782 {
784  AUDIO_REVERB_DRY_LEVEL = 0, // (dB, [-20,10]), the level of the dry signal
786  AUDIO_REVERB_WET_LEVEL = 1, // (dB, [-20,10]), the level of the early reflection signal (wet signal)
788  AUDIO_REVERB_ROOM_SIZE = 2, // ([0,100]), the room size of the reflection
790  AUDIO_REVERB_WET_DELAY = 3, // (ms, [0,200]), the length of the initial delay of the wet signal in ms
792  AUDIO_REVERB_STRENGTH = 4, // ([0,100]), the strength of the reverberation
793 };
794 
802  VOICE_CHANGER_OFF = 0x00000000, //Turn off the voice changer
806  VOICE_CHANGER_OLDMAN = 0x00000001,
810  VOICE_CHANGER_BABYBOY = 0x00000002,
826  VOICE_CHANGER_HULK = 0x00000006,
830  VOICE_BEAUTY_VIGOROUS = 0x00100001,//7,
834  VOICE_BEAUTY_DEEP = 0x00100002,
838  VOICE_BEAUTY_MELLOW = 0x00100003,
842  VOICE_BEAUTY_FALSETTO = 0x00100004,
846  VOICE_BEAUTY_FULL = 0x00100005,
850  VOICE_BEAUTY_CLEAR = 0x00100006,
858  VOICE_BEAUTY_RINGING = 0x00100008,
862  VOICE_BEAUTY_SPACIAL = 0x00100009,
875 
876 };
877 
883  AUDIO_REVERB_OFF = 0x00000000, // Turn off audio reverb
887  AUDIO_REVERB_FX_KTV = 0x00100001,
895  AUDIO_REVERB_FX_UNCLE = 0x00100003,
911  AUDIO_REVERB_FX_RNB = 0x00100007,
919  AUDIO_REVERB_POPULAR = 0x00000001,
923  AUDIO_REVERB_RNB = 0x00000002,
927  AUDIO_REVERB_ROCK = 0x00000003,
931  AUDIO_REVERB_HIPHOP = 0x00000004,
939  AUDIO_REVERB_KTV = 0x00000006,
943  AUDIO_REVERB_STUDIO = 0x00000007,
950  AUDIO_VIRTUAL_STEREO = 0x00200001
951 };
954 {
959 };
960 
964 {
970  REMOTE_AUDIO_STATE_STOPPED = 0, // Default state, audio is started or remote user disabled/muted audio stream
973  REMOTE_AUDIO_STATE_STARTING = 1, // The first audio frame packet has been received
979  REMOTE_AUDIO_STATE_DECODING = 2, // The first remote audio frame has been decoded or fronzen state ends
983  REMOTE_AUDIO_STATE_FROZEN = 3, // Remote audio is frozen, probably due to network issue
987  REMOTE_AUDIO_STATE_FAILED = 4, // Remote audio play failed
988 };
989 
993 {
1022 };
1023 
1025 // enum REMOTE_VIDEO_STATE
1026 // {
1027 // // REMOTE_VIDEO_STATE_STOPPED is not used at this version. Ignore this value.
1028 // // REMOTE_VIDEO_STATE_STOPPED = 0, // Default state, video is started or remote user disabled/muted video stream
1029 // /** 1: The remote video is playing. */
1030 // REMOTE_VIDEO_STATE_RUNNING = 1, // Running state, remote video can be displayed normally
1031 // /** 2: The remote video is frozen. */
1032 // REMOTE_VIDEO_STATE_FROZEN = 2, // Remote video is frozen, probably due to network issue.
1033 // };
1034 
1040 
1044 
1048 
1052 
1056 };
1057 
1063 
1067 
1071 
1075 
1079 
1083 
1087 
1091 
1095 
1099 
1100 };
1101 
1104 {
1119 };
1120 
1142 };
1143 
1152 };
1153 
1156 {
1165 };
1166 
1170  {
1180  };
1181 
1185 {
1192 };
1193 
1196 {
1230 };
1231 
1234 {
1269 };
1270 
1273 {
1288 };
1289 
1298 };
1334 };
1335 
1336 #if (defined(__APPLE__) && TARGET_OS_IOS)
1337 
1349 };
1350 #endif
1351 
1352 #if defined(__ANDROID__) || (defined(__APPLE__) && TARGET_OS_IOS)
1358 };
1359 #endif
1360 
1364  unsigned int packetLossRate;
1366  unsigned int jitter;
1367  /* The estimated available bandwidth (Kbps). */
1368  unsigned int availableBandwidth;
1369 };
1370 
1380  unsigned int rtt;
1381 };
1382 
1397 };
1398 
1404 {
1411  unsigned int volume;
1420  unsigned int vad;
1423  const char * channelId;
1424 };
1425 
1428 struct RtcStats
1429 {
1433  unsigned int duration;
1437  unsigned int txBytes;
1441  unsigned int rxBytes;
1445  unsigned int txAudioBytes;
1449  unsigned int txVideoBytes;
1453  unsigned int rxAudioBytes;
1457  unsigned int rxVideoBytes;
1458 
1462  unsigned short txKBitRate;
1466  unsigned short rxKBitRate;
1470  unsigned short rxAudioKBitRate;
1474  unsigned short txAudioKBitRate;
1478  unsigned short rxVideoKBitRate;
1482  unsigned short txVideoKBitRate;
1485  unsigned short lastmileDelay;
1489  unsigned short txPacketLossRate;
1493  unsigned short rxPacketLossRate;
1502  unsigned int userCount;
1506  double cpuAppUsage;
1530  : duration(0)
1531  , txBytes(0)
1532  , rxBytes(0)
1533  , txAudioBytes(0)
1534  , txVideoBytes(0)
1535  , rxAudioBytes(0)
1536  , rxVideoBytes(0)
1537  , txKBitRate(0)
1538  , rxKBitRate(0)
1539  , rxAudioKBitRate(0)
1540  , txAudioKBitRate(0)
1541  , rxVideoKBitRate(0)
1542  , txVideoKBitRate(0)
1543  , lastmileDelay(0)
1544  , txPacketLossRate(0)
1545  , rxPacketLossRate(0)
1546  , userCount(0)
1547  , cpuAppUsage(0)
1548  , cpuTotalUsage(0)
1549  , gatewayRtt(0)
1550  , memoryAppUsageRatio(0)
1552  , memoryAppUsageInKbytes(0) {}
1553 };
1554 
1564 };
1565 
1609 };
1610 
1651 };
1652 
1668 };
1669 
1673 {
1716 };
1717 
1721 {
1731  int delay;
1735  int width;
1739  int height;
1765 };
1766 
1769 {
1779 };
1780 
1783 {
1790  int quality;
1817 };
1818 
1824  int width;
1826  int height;
1828  : width(640), height(480)
1829  {}
1830  VideoDimensions(int w, int h)
1831  : width(w), height(h)
1832  {}
1833 };
1834 
1843 const int STANDARD_BITRATE = 0;
1844 
1849 const int COMPATIBLE_BITRATE = -1;
1850 
1853 const int DEFAULT_MIN_BITRATE = -1;
1854 
1921  int bitrate;
1940 
1942  const VideoDimensions& d, FRAME_RATE f,
1944  : dimensions(d), frameRate(f), minFrameRate(-1), bitrate(b),
1947  {}
1949  int width, int height, FRAME_RATE f,
1951  : dimensions(width, height), frameRate(f),
1952  minFrameRate(-1), bitrate(b),
1955  {}
1957  : dimensions(640, 480)
1959  , minFrameRate(-1)
1965  {}
1966 };
1967 
1970 typedef struct TranscodingUser {
1974 
1977  int x;
1980  int y;
1983  int width;
1986  int height;
1987 
1997  int zOrder;
2003  double alpha;
2017  : uid(0)
2018  , x(0)
2019  , y(0)
2020  , width(0)
2021  , height(0)
2022  , zOrder(0)
2023  , alpha(1.0)
2024  , audioChannel(0)
2025  {}
2026 
2027 } TranscodingUser;
2028 
2033 typedef struct RtcImage {
2035  url(NULL),
2036  x(0),
2037  y(0),
2038  width(0),
2039  height(0)
2040  {}
2042  const char* url;
2044  int x;
2046  int y;
2048  int width;
2050  int height;
2051 } RtcImage;
2052 
2055 typedef struct LiveTranscoding {
2060  int width;
2065  int height;
2076 
2083 
2094  unsigned int backgroundColor;
2097  unsigned int userCount;
2106 
2109  const char *metadata;
2139 
2140 
2142  : width(360)
2143  , height(640)
2144  , videoBitrate(400)
2145  , videoFramerate(15)
2146  , lowLatency(false)
2147  , videoGop(30)
2149  , backgroundColor(0x000000)
2150  , userCount(0)
2151  , transcodingUsers(NULL)
2152  , transcodingExtraInfo(NULL)
2153  , metadata(NULL)
2154  , watermark(NULL)
2155  , backgroundImage(NULL)
2157  , audioBitrate(48)
2158  , audioChannels(1)
2160  {}
2161 } LiveTranscoding;
2162 
2166 
2169  #if defined(__ANDROID__) || (defined(__APPLE__) && TARGET_OS_IOS)
2170 
2172  #endif
2173  };
2174 
2180  int width;
2183  int height;
2213 
2214  // width / height default set to 0 means pull the stream with its original resolution
2216  : width(0)
2217  , height(0)
2218  , videoGop(30)
2219  , videoFramerate(15)
2220  , videoBitrate(400)
2222  , audioBitrate(48)
2223  , audioChannels(1)
2224  {}
2225 };
2231  const char* channelName;
2234  const char* token;
2238 };
2239 
2265 
2267  : srcInfo(nullptr)
2268  , destInfos(nullptr)
2269  , destCount(0)
2270  {}
2271 };
2272 
2276 {
2283 };
2284 
2288 {
2298 };
2299 
2303 {
2306  int x;
2309  int y;
2312  int width;
2315  int height;
2316 
2317  Rectangle(): x(0), y(0), width(0), height(0) {}
2318  Rectangle(int xx, int yy, int ww, int hh): x(xx), y(yy), width(ww), height(hh) {}
2319 };
2320 
2322 typedef struct Rect {
2325  int top;
2328  int left;
2331  int bottom;
2334  int right;
2335 
2336  Rect(): top(0), left(0), bottom(0), right(0) {}
2337  Rect(int t, int l, int b, int r): top(t), left(l), bottom(b), right(r) {}
2338 } Rect;
2339 
2341 typedef struct WatermarkOptions {
2357 
2359  : visibleInPreview(true)
2360  , positionInLandscapeMode(0, 0, 0, 0)
2361  , positionInPortraitMode(0, 0, 0, 0)
2362  {}
2364 
2368 {
2388  int bitrate;
2395 
2397  ScreenCaptureParameters(const VideoDimensions& d, int f, int b, bool c) : dimensions(d), frameRate(f), bitrate(b), captureMouseCursor(c) {}
2398  ScreenCaptureParameters(int width, int height, int f, int b, bool c) : dimensions(width, height), frameRate(f), bitrate(b), captureMouseCursor(c) {}
2399 };
2400 
2404 {
2425  void *priv; // private data (underlying video engine denotes it)
2432 
2434  : view(NULL)
2436  , uid(0)
2437  , priv(NULL)
2439  {
2440  channelId[0] = '\0';
2441  }
2442  VideoCanvas(view_t v, int m, uid_t u)
2443  : view(v)
2444  , renderMode(m)
2445  , uid(u)
2446  , priv(NULL)
2448  {
2449  channelId[0] = '\0';
2450  }
2451  VideoCanvas(view_t v, int m, const char *ch, uid_t u)
2452  : view(v)
2453  , renderMode(m)
2454  , uid(u)
2455  , priv(NULL)
2457  {
2458  strncpy(channelId, ch, MAX_CHANNEL_ID_LENGTH);
2459  channelId[MAX_CHANNEL_ID_LENGTH - 1] = '\0';
2460  }
2462  : view(v)
2463  , renderMode(rm)
2464  , uid(u)
2465  , priv(NULL)
2466  , mirrorMode(mm)
2467  {
2468  channelId[0] = '\0';
2469  }
2470  VideoCanvas(view_t v, int rm, const char *ch, uid_t u, VIDEO_MIRROR_MODE_TYPE mm)
2471  : view(v)
2472  , renderMode(rm)
2473  , uid(u)
2474  , priv(NULL)
2475  , mirrorMode(mm)
2476  {
2477  strncpy(channelId, ch, MAX_CHANNEL_ID_LENGTH);
2478  channelId[MAX_CHANNEL_ID_LENGTH - 1] = '\0';
2479  }
2480 };
2481 
2488  {
2495  };
2496 
2500 
2503 
2507 
2511 
2512 BeautyOptions(LIGHTENING_CONTRAST_LEVEL contrastLevel, float lightening, float smoothness, float redness)
2513  : lighteningLevel(lightening),
2514  smoothnessLevel(smoothness),
2515  rednessLevel(redness),
2516  lighteningContrastLevel(contrastLevel) {}
2517 
2519  : lighteningLevel(0),
2520  smoothnessLevel(0),
2521  rednessLevel(0),
2523 };
2524 
2528 struct UserInfo {
2538  : uid(0) {
2539  userAccount[0] = '\0';
2540  }
2541 };
2542 
2550  AREA_CODE_CN = (1 << 0),
2554  AREA_CODE_NA = (1 << 1),
2558  AREA_CODE_EUR = (1 << 2),
2562  AREA_CODE_AS = (1 << 3),
2566  AREA_CODE_GLOBAL = (0xFFFFFFFF)
2567 };
2568 
2580 };
2584 {
2585 public:
2588  struct Packet
2589  {
2593  const unsigned char* buffer;
2596  unsigned int size;
2597  };
2605  virtual bool onSendAudioPacket(Packet& packet) = 0;
2613  virtual bool onSendVideoPacket(Packet& packet) = 0;
2621  virtual bool onReceiveAudioPacket(Packet& packet) = 0;
2629  virtual bool onReceiveVideoPacket(Packet& packet) = 0;
2630 };
2631 
2637 {
2638 public:
2640 
2648  virtual void onWarning(int warn, const char* msg) {
2649  (void)warn;
2650  (void)msg;
2651  }
2652 
2662  virtual void onError(int err, const char* msg) {
2663  (void)err;
2664  (void)msg;
2665  }
2666 
2679  virtual void onJoinChannelSuccess(const char* channel, uid_t uid, int elapsed) {
2680  (void)channel;
2681  (void)uid;
2682  (void)elapsed;
2683  }
2684 
2693  virtual void onRejoinChannelSuccess(const char* channel, uid_t uid, int elapsed) {
2694  (void)channel;
2695  (void)uid;
2696  (void)elapsed;
2697  }
2698 
2707  virtual void onLeaveChannel(const RtcStats& stats) {
2708  (void)stats;
2709  }
2710 
2719  virtual void onClientRoleChanged(CLIENT_ROLE_TYPE oldRole, CLIENT_ROLE_TYPE newRole) {
2720  }
2721 
2741  virtual void onUserJoined(uid_t uid, int elapsed) {
2742  (void)uid;
2743  (void)elapsed;
2744  }
2745 
2756  virtual void onUserOffline(uid_t uid, USER_OFFLINE_REASON_TYPE reason) {
2757  (void)uid;
2758  (void)reason;
2759  }
2760 
2767  virtual void onLastmileQuality(int quality) {
2768  (void)quality;
2769  }
2770 
2777  virtual void onLastmileProbeResult(const LastmileProbeResult& result) {
2778  (void)result;
2779  }
2780 
2796  virtual void onConnectionInterrupted() {}
2797 
2810  virtual void onConnectionLost() {}
2811 
2816  virtual void onConnectionBanned() {}
2817 
2824  virtual void onApiCallExecuted(int err, const char* api, const char* result) {
2825  (void)err;
2826  (void)api;
2827  (void)result;
2828  }
2829 
2836  virtual void onRequestToken() {
2837  }
2838 
2845  virtual void onTokenPrivilegeWillExpire(const char* token) {
2846  (void)token;
2847  }
2848 
2860  virtual void onAudioQuality(uid_t uid, int quality, unsigned short delay, unsigned short lost) {
2861  (void)uid;
2862  (void)quality;
2863  (void)delay;
2864  (void)lost;
2865  }
2866 
2873  virtual void onRtcStats(const RtcStats& stats) {
2874  (void)stats;
2875  }
2876 
2885  virtual void onNetworkQuality(uid_t uid, int txQuality, int rxQuality) {
2886  (void)uid;
2887  (void)txQuality;
2888  (void)rxQuality;
2889  }
2890 
2905  virtual void onLocalVideoStats(const LocalVideoStats& stats) {
2906  (void)stats;
2907  }
2908 
2918  virtual void onRemoteVideoStats(const RemoteVideoStats& stats) {
2919  (void)stats;
2920  }
2921 
2929  virtual void onLocalAudioStats(const LocalAudioStats& stats) {
2930  (void)stats;
2931  }
2932 
2941  virtual void onRemoteAudioStats(const RemoteAudioStats& stats) {
2942  (void)stats;
2943  }
2944 
2960  (void)state;
2961  (void)error;
2962  }
2963 
2976  virtual void onRemoteAudioStateChanged(uid_t uid, REMOTE_AUDIO_STATE state, REMOTE_AUDIO_STATE_REASON reason, int elapsed) {
2977  (void)uid;
2978  (void)state;
2979  (void)reason;
2980  (void)elapsed;
2981  }
2982 
3018  virtual void onAudioVolumeIndication(const AudioVolumeInfo* speakers, unsigned int speakerNumber, int totalVolume) {
3019  (void)speakers;
3020  (void)speakerNumber;
3021  (void)totalVolume;
3022  }
3023 
3034  virtual void onActiveSpeaker(uid_t uid) {
3035  (void)uid;
3036  }
3037 
3044  virtual void onVideoStopped() {}
3045 
3053  virtual void onFirstLocalVideoFrame(int width, int height, int elapsed) {
3054  (void)width;
3055  (void)height;
3056  (void)elapsed;
3057  }
3058 
3092  virtual void onFirstRemoteVideoDecoded(uid_t uid, int width, int height, int elapsed) {
3093  (void)uid;
3094  (void)width;
3095  (void)height;
3096  (void)elapsed;
3097  }
3098 
3112  virtual void onFirstRemoteVideoFrame(uid_t uid, int width, int height, int elapsed) {
3113  (void)uid;
3114  (void)width;
3115  (void)height;
3116  (void)elapsed;
3117  }
3118 
3133  virtual void onUserMuteAudio(uid_t uid, bool muted) {
3134  (void)uid;
3135  (void)muted;
3136  }
3137 
3162  virtual void onUserMuteVideo(uid_t uid, bool muted) {
3163  (void)uid;
3164  (void)muted;
3165  }
3166 
3199  virtual void onUserEnableVideo(uid_t uid, bool enabled) {
3200  (void)uid;
3201  (void)enabled;
3202  }
3203 
3212  virtual void onAudioDeviceStateChanged(const char* deviceId, int deviceType, int deviceState) {
3213  (void)deviceId;
3214  (void)deviceType;
3215  (void)deviceState;
3216  }
3217 
3226  virtual void onAudioDeviceVolumeChanged(MEDIA_DEVICE_TYPE deviceType, int volume, bool muted) {
3227  (void)deviceType;
3228  (void)volume;
3229  (void)muted;
3230  }
3231 
3238  virtual void onCameraReady() {}
3239 
3251  virtual void onCameraFocusAreaChanged(int x, int y, int width, int height) {
3252  (void)x;
3253  (void)y;
3254  (void)width;
3255  (void)height;
3256  }
3257 #if defined(CONFIG_ANDROID) || defined(CONFIG_IOS)
3258 
3284  virtual void onFacePositionChanged(int imageWidth, int imageHeight, Rectangle* vecRectangle, int* vecDistance, int numFaces){
3285  (void)imageWidth;
3286  (void)imageHeight;
3287  (void)vecRectangle;
3288  (void)vecDistance;
3289  (void)numFaces;
3290  }
3291 #endif
3292 
3303  virtual void onCameraExposureAreaChanged(int x, int y, int width, int height) {
3304  (void)x;
3305  (void)y;
3306  (void)width;
3307  (void)height;
3308  }
3309 
3319  virtual void onAudioMixingFinished() {
3320  }
3321 
3332  }
3337  virtual void onRemoteAudioMixingBegin() {
3338  }
3341  virtual void onRemoteAudioMixingEnd() {
3342  }
3343 
3350  virtual void onAudioEffectFinished(int soundId) {
3351  }
3352 
3353 
3373  virtual void onFirstRemoteAudioDecoded(uid_t uid, int elapsed) {
3374  (void)uid;
3375  (void)elapsed;
3376  }
3377 
3386  virtual void onVideoDeviceStateChanged(const char* deviceId, int deviceType, int deviceState) {
3387  (void)deviceId;
3388  (void)deviceType;
3389  (void)deviceState;
3390  }
3391 
3402  (void)localVideoState;
3403  (void)error;
3404  }
3405 
3413  virtual void onVideoSizeChanged(uid_t uid, int width, int height, int rotation) {
3414  (void)uid;
3415  (void)width;
3416  (void)height;
3417  (void)rotation;
3418  }
3429  virtual void onRemoteVideoStateChanged(uid_t uid, REMOTE_VIDEO_STATE state, REMOTE_VIDEO_STATE_REASON reason, int elapsed) {
3430  (void)uid;
3431  (void)state;
3432  (void)reason;
3433  (void)elapsed;
3434  }
3435 
3466  virtual void onUserEnableLocalVideo(uid_t uid, bool enabled) {
3467  (void)uid;
3468  (void)enabled;
3469  }
3470 
3471 // virtual void onStreamError(int streamId, int code, int parameter, const char* message, size_t length) {}
3480  virtual void onStreamMessage(uid_t uid, int streamId, const char* data, size_t length) {
3481  (void)uid;
3482  (void)streamId;
3483  (void)data;
3484  (void)length;
3485  }
3486 
3496  virtual void onStreamMessageError(uid_t uid, int streamId, int code, int missed, int cached) {
3497  (void)uid;
3498  (void)streamId;
3499  (void)code;
3500  (void)missed;
3501  (void)cached;
3502  }
3503 
3505  virtual void onMediaEngineLoadSuccess() {
3506  }
3509  }
3510 
3520  }
3521 
3527  }
3528 
3533  virtual void onFirstLocalAudioFrame(int elapsed) {
3534  (void)elapsed;
3535  }
3536 
3546  virtual void onFirstRemoteAudioFrame(uid_t uid, int elapsed) {
3547  (void)uid;
3548  (void)elapsed;
3549  }
3550 
3563  (void) url;
3564  (void) state;
3565  (void) errCode;
3566  }
3567 
3585  virtual void onStreamPublished(const char *url, int error) {
3586  (void)url;
3587  (void)error;
3588  }
3595  virtual void onStreamUnpublished(const char *url) {
3596  (void)url;
3597  }
3605  virtual void onTranscodingUpdated() {
3606  }
3613  virtual void onStreamInjectedStatus(const char* url, uid_t uid, int status) {
3614  (void)url;
3615  (void)uid;
3616  (void)status;
3617  }
3618 
3627  virtual void onAudioRouteChanged(AUDIO_ROUTE_TYPE routing) {
3628  (void)routing;
3629  }
3630 
3639  virtual void onLocalPublishFallbackToAudioOnly(bool isFallbackOrRecover) {
3640  (void)isFallbackOrRecover;
3641  }
3642 
3667  virtual void onRemoteSubscribeFallbackToAudioOnly(uid_t uid, bool isFallbackOrRecover) {
3668  (void)uid;
3669  (void)isFallbackOrRecover;
3670  }
3671 
3691  uid_t uid, unsigned short delay, unsigned short lost,
3692  unsigned short rxKBitRate) {
3693  (void)uid;
3694  (void)delay;
3695  (void)lost;
3696  (void)rxKBitRate;
3697  }
3698 
3718  uid_t uid, unsigned short delay, unsigned short lost,
3719  unsigned short rxKBitRate) {
3720  (void)uid;
3721  (void)delay;
3722  (void)lost;
3723  (void)rxKBitRate;
3724  }
3725 
3744  virtual void onMicrophoneEnabled(bool enabled) {
3745  (void)enabled;
3746  }
3754  (void)state;
3755  (void)reason;
3756  }
3757 
3764  virtual void onNetworkTypeChanged(NETWORK_TYPE type) {
3765  (void)type;
3766  }
3772  virtual void onLocalUserRegistered(uid_t uid, const char* userAccount) {
3773  (void)uid;
3774  (void)userAccount;
3775  }
3784  virtual void onUserInfoUpdated(uid_t uid, const UserInfo& info) {
3785  (void)uid;
3786  (void)info;
3787  }
3788 };
3789 
3796 {
3797 protected:
3799 public:
3804  virtual int getCount() = 0;
3805 
3815  virtual int getDevice(int index, char deviceName[MAX_DEVICE_ID_LENGTH], char deviceId[MAX_DEVICE_ID_LENGTH]) = 0;
3816 
3824  virtual int setDevice(const char deviceId[MAX_DEVICE_ID_LENGTH]) = 0;
3825 
3828  virtual void release() = 0;
3829 };
3830 
3836 {
3837 protected:
3839 public:
3840 
3850 
3861  virtual int startDeviceTest(view_t hwnd) = 0;
3862 
3869  virtual int stopDeviceTest() = 0;
3870 
3881  virtual int setDevice(const char deviceId[MAX_DEVICE_ID_LENGTH]) = 0;
3882 
3890  virtual int getDevice(char deviceId[MAX_DEVICE_ID_LENGTH]) = 0;
3891 
3894  virtual void release() = 0;
3895 };
3896 
3902 {
3903 protected:
3905 public:
3906 
3913  virtual int getCount() = 0;
3914 
3924  virtual int getDevice(int index, char deviceName[MAX_DEVICE_ID_LENGTH], char deviceId[MAX_DEVICE_ID_LENGTH]) = 0;
3925 
3933  virtual int setDevice(const char deviceId[MAX_DEVICE_ID_LENGTH]) = 0;
3934 
3942  virtual int setApplicationVolume(int volume) = 0;
3943 
3952  virtual int getApplicationVolume(int& volume) = 0;
3953 
3964  virtual int setApplicationMute(bool mute) = 0;
3975  virtual int isApplicationMute(bool& mute) = 0;
3976 
3979  virtual void release() = 0;
3980 };
3986 {
3987 protected:
3989 public:
3990 
4002 
4014 
4025  virtual int setPlaybackDevice(const char deviceId[MAX_DEVICE_ID_LENGTH]) = 0;
4026 
4037  virtual int setRecordingDevice(const char deviceId[MAX_DEVICE_ID_LENGTH]) = 0;
4038 
4051  virtual int startPlaybackDeviceTest(const char* testAudioFilePath) = 0;
4052 
4061  virtual int stopPlaybackDeviceTest() = 0;
4062 
4070  virtual int setPlaybackDeviceVolume(int volume) = 0;
4071 
4079  virtual int getPlaybackDeviceVolume(int *volume) = 0;
4080 
4088  virtual int setRecordingDeviceVolume(int volume) = 0;
4089 
4097  virtual int getRecordingDeviceVolume(int *volume) = 0;
4098 
4109  virtual int setPlaybackDeviceMute(bool mute) = 0;
4120  virtual int getPlaybackDeviceMute(bool *mute) = 0;
4131  virtual int setRecordingDeviceMute(bool mute) = 0;
4132 
4143  virtual int getRecordingDeviceMute(bool *mute) = 0;
4144 
4155  virtual int startRecordingDeviceTest(int indicationInterval) = 0;
4156 
4165  virtual int stopRecordingDeviceTest() = 0;
4166 
4174  virtual int getPlaybackDevice(char deviceId[MAX_DEVICE_ID_LENGTH]) = 0;
4175 
4184  virtual int getPlaybackDeviceInfo(char deviceId[MAX_DEVICE_ID_LENGTH], char deviceName[MAX_DEVICE_ID_LENGTH]) = 0;
4185 
4193  virtual int getRecordingDevice(char deviceId[MAX_DEVICE_ID_LENGTH]) = 0;
4194 
4203  virtual int getRecordingDeviceInfo(char deviceId[MAX_DEVICE_ID_LENGTH], char deviceName[MAX_DEVICE_ID_LENGTH]) = 0;
4204 
4217  virtual int startAudioDeviceLoopbackTest(int indicationInterval) = 0;
4218 
4227  virtual int stopAudioDeviceLoopbackTest() = 0;
4228 
4231  virtual void release() = 0;
4232 };
4233 
4237 {
4247  const char* appId;
4248  // For android, it the context(Activity or Application
4249  // for windows,Video hot plug device
4253  void* context;
4264  :eventHandler(NULL)
4265  ,appId(NULL)
4266  ,context(NULL)
4267  ,areaCode(rtc::AREA_CODE_GLOBAL)
4268  {}
4269 };
4270 
4274 {
4275 public:
4280  {
4287  };
4288 
4289  struct Metadata
4290  {
4296  unsigned int uid;
4299  unsigned int size;
4302  unsigned char *buffer;
4305  long long timeStampMs;
4306  };
4307 
4308  virtual ~IMetadataObserver() {};
4309 
4322  virtual int getMaxMetadataSize() = 0;
4323 
4333  virtual bool onReadyToSendMetadata(Metadata &metadata) = 0;
4334 
4339  virtual void onMetadataReceived(const Metadata &metadata) = 0;
4340 };
4341 
4347 {
4348 protected:
4349  virtual ~IRtcEngine() {}
4350 public:
4351 
4366  virtual int initialize(const RtcEngineContext& context) = 0;
4367 
4376  AGORA_CPP_API static void release (bool sync = false);
4377 
4392  virtual int setChannelProfile(CHANNEL_PROFILE_TYPE profile) = 0;
4393 
4410  virtual int setClientRole(CLIENT_ROLE_TYPE role) = 0;
4411 
4447  virtual int joinChannel(const char* token, const char* channelId, const char* info, uid_t uid) = 0;
4487  virtual int switchChannel(const char* token, const char* channelId) = 0;
4488 
4509  virtual int leaveChannel() = 0;
4510 
4525  virtual int renewToken(const char* token) = 0;
4526 
4535  virtual int queryInterface(INTERFACE_ID_TYPE iid, void** inter) = 0;
4536 
4568  virtual int registerLocalUserAccount(
4569  const char* appId, const char* userAccount) = 0;
4603  virtual int joinChannelWithUserAccount(const char* token,
4604  const char* channelId,
4605  const char* userAccount) = 0;
4606 
4624  virtual int getUserInfoByUserAccount(const char* userAccount, UserInfo* userInfo) = 0;
4642  virtual int getUserInfoByUid(uid_t uid, UserInfo* userInfo) = 0;
4643 
4663  virtual int startEchoTest() = 0;
4664 
4681  virtual int startEchoTest(int intervalInSeconds) = 0;
4682 
4689  virtual int stopEchoTest() = 0;
4690 
4708  virtual int enableVideo() = 0;
4709 
4727  virtual int disableVideo() = 0;
4728 
4750  virtual int setVideoProfile(VIDEO_PROFILE_TYPE profile, bool swapWidthAndHeight) = 0;
4751 
4765  virtual int setVideoEncoderConfiguration(const VideoEncoderConfiguration& config) = 0;
4782  virtual int setCameraCapturerConfiguration(const CameraCapturerConfiguration& config) = 0;
4783 
4798  virtual int setupLocalVideo(const VideoCanvas& canvas) = 0;
4799 
4817  virtual int setupRemoteVideo(const VideoCanvas& canvas) = 0;
4818 
4832  virtual int startPreview() = 0;
4833 
4847  virtual int setRemoteUserPriority(uid_t uid, PRIORITY_TYPE userPriority) = 0;
4848 
4855  virtual int stopPreview() = 0;
4856 
4873  virtual int enableAudio() = 0;
4874 
4900  virtual int enableLocalAudio(bool enabled) = 0;
4901 
4912  virtual int disableAudio() = 0;
4913 
4928  virtual int setAudioProfile(AUDIO_PROFILE_TYPE profile, AUDIO_SCENARIO_TYPE scenario) = 0;
4944  virtual int muteLocalAudioStream(bool mute) = 0;
4955  virtual int muteAllRemoteAudioStreams(bool mute) = 0;
4966  virtual int setDefaultMuteAllRemoteAudioStreams(bool mute) = 0;
4967 
4986  virtual int adjustUserPlaybackSignalVolume(unsigned int uid, int volume) = 0;
5001  virtual int muteRemoteAudioStream(uid_t userId, bool mute) = 0;
5018  virtual int muteLocalVideoStream(bool mute) = 0;
5037  virtual int enableLocalVideo(bool enabled) = 0;
5048  virtual int muteAllRemoteVideoStreams(bool mute) = 0;
5059  virtual int setDefaultMuteAllRemoteVideoStreams(bool mute) = 0;
5073  virtual int muteRemoteVideoStream(uid_t userId, bool mute) = 0;
5090  virtual int setRemoteVideoStreamType(uid_t userId, REMOTE_VIDEO_STREAM_TYPE streamType) = 0;
5104  virtual int setRemoteDefaultVideoStreamType(REMOTE_VIDEO_STREAM_TYPE streamType) = 0;
5105 
5122  virtual int enableAudioVolumeIndication(int interval, int smooth, bool report_vad) = 0;
5144  virtual int startAudioRecording(const char* filePath, AUDIO_RECORDING_QUALITY_TYPE quality) = 0;
5145 
5170  virtual int startAudioRecording(const char* filePath, int sampleRate, AUDIO_RECORDING_QUALITY_TYPE quality) = 0;
5179  virtual int stopAudioRecording() = 0;
5208  virtual int startAudioMixing(const char* filePath, bool loopback, bool replace, int cycle) = 0;
5217  virtual int stopAudioMixing() = 0;
5226  virtual int pauseAudioMixing() = 0;
5235  virtual int resumeAudioMixing() = 0;
5256  virtual int setHighQualityAudioParameters(bool fullband, bool stereo, bool fullBitrate) = 0;
5269  virtual int adjustAudioMixingVolume(int volume) = 0;
5280  virtual int adjustAudioMixingPlayoutVolume(int volume) = 0;
5291  virtual int getAudioMixingPlayoutVolume() = 0;
5302  virtual int adjustAudioMixingPublishVolume(int volume) = 0;
5313  virtual int getAudioMixingPublishVolume() = 0;
5314 
5323  virtual int getAudioMixingDuration() = 0;
5332  virtual int getAudioMixingCurrentPosition() = 0;
5341  virtual int setAudioMixingPosition(int pos /*in ms*/) = 0;
5359  virtual int setAudioMixingPitch(int pitch) = 0;
5369  virtual int getEffectsVolume() = 0;
5378  virtual int setEffectsVolume(int volume) = 0;
5388  virtual int setVolumeOfEffect(int soundId, int volume) = 0;
5389 #if defined(CONFIG_ANDROID) || defined(CONFIG_IOS)
5390 
5408  virtual int enableFaceDetection(bool enable) = 0;
5409 #endif
5410 
5441  virtual int playEffect(int soundId, const char* filePath, int loopCount, double pitch, double pan, int gain, bool publish = false) = 0;
5450  virtual int stopEffect(int soundId) = 0;
5457  virtual int stopAllEffects() = 0;
5458 
5474  virtual int preloadEffect(int soundId, const char* filePath) = 0;
5482  virtual int unloadEffect(int soundId) = 0;
5490  virtual int pauseEffect(int soundId) = 0;
5497  virtual int pauseAllEffects() = 0;
5505  virtual int resumeEffect(int soundId) = 0;
5512  virtual int resumeAllEffects() = 0;
5525  virtual int enableSoundPositionIndication(bool enabled) = 0;
5545  virtual int setRemoteVoicePosition(uid_t uid, double pan, double gain) = 0;
5546 
5554  virtual int setLocalVoicePitch(double pitch) = 0;
5564  virtual int setLocalVoiceEqualization(AUDIO_EQUALIZATION_BAND_FREQUENCY bandFrequency, int bandGain) = 0;
5576  virtual int setLocalVoiceReverb(AUDIO_REVERB_TYPE reverbKey, int value) = 0;
5603  virtual int setLocalVoiceChanger(VOICE_CHANGER_PRESET voiceChanger) = 0;
5625  virtual int setLocalVoiceReverbPreset(AUDIO_REVERB_PRESET reverbPreset) = 0;
5626 
5641  virtual int setLogFile(const char* filePath) = 0;
5654  virtual int setLogFilter(unsigned int filter) = 0;
5664  virtual int setLogFileSize(unsigned int fileSizeInKBytes) = 0;
5676  virtual int setLocalRenderMode(RENDER_MODE_TYPE renderMode) = 0;
5691  virtual int setLocalRenderMode(RENDER_MODE_TYPE renderMode, VIDEO_MIRROR_MODE_TYPE mirrorMode) = 0;
5704  virtual int setRemoteRenderMode(uid_t userId, RENDER_MODE_TYPE renderMode) = 0;
5723  virtual int setRemoteRenderMode(uid_t userId, RENDER_MODE_TYPE renderMode, VIDEO_MIRROR_MODE_TYPE mirrorMode) = 0;
5738  virtual int setLocalVideoMirrorMode(VIDEO_MIRROR_MODE_TYPE mirrorMode) = 0;
5747  virtual int enableDualStreamMode(bool enabled) = 0;
5762  virtual int setExternalAudioSource(bool enabled, int sampleRate, int channels) = 0;
5787  virtual int setExternalAudioSink(bool enabled, int sampleRate, int channels) = 0;
5805  virtual int setRecordingAudioFrameParameters(int sampleRate, int channel, RAW_AUDIO_FRAME_OP_MODE_TYPE mode, int samplesPerCall) = 0;
5822  virtual int setPlaybackAudioFrameParameters(int sampleRate, int channel, RAW_AUDIO_FRAME_OP_MODE_TYPE mode, int samplesPerCall) = 0;
5835  virtual int setMixedAudioFrameParameters(int sampleRate, int samplesPerCall) = 0;
5847  virtual int adjustRecordingSignalVolume(int volume) = 0;
5863  virtual int adjustPlaybackSignalVolume(int volume) = 0;
5864 
5881  virtual int enableWebSdkInteroperability(bool enabled) = 0;
5882  //only for live broadcast
5895  virtual int setVideoQualityParameters(bool preferFrameRateOverImageQuality) = 0;
5930 
5931 #if defined(__ANDROID__) || (defined(__APPLE__) && TARGET_OS_IOS)
5932 
5940  virtual int switchCamera() = 0;
5953  virtual int switchCamera(CAMERA_DIRECTION direction) = 0;
5979  virtual int setDefaultAudioRouteToSpeakerphone(bool defaultToSpeaker) = 0;
6000  virtual int setEnableSpeakerphone(bool speakerOn) = 0;
6010  virtual int enableInEarMonitoring(bool enabled) = 0;
6021  virtual int setInEarMonitoringVolume(int volume) = 0;
6030  virtual bool isSpeakerphoneEnabled() = 0;
6031 #endif
6032 
6033 #if (defined(__APPLE__) && TARGET_OS_IOS)
6034 
6051 #endif
6052 
6053 #if (defined(__APPLE__) && TARGET_OS_MAC && !TARGET_OS_IPHONE) || defined(_WIN32)
6054 
6068  virtual int enableLoopbackRecording(bool enabled, const char* deviceName = NULL) = 0;
6069 
6070 #if (defined(__APPLE__) && TARGET_OS_MAC && !TARGET_OS_IPHONE)
6071 
6086  virtual int startScreenCaptureByDisplayId(unsigned int displayId, const Rectangle& regionRect, const ScreenCaptureParameters& captureParams) = 0;
6087 #endif
6088 
6089 #if defined(_WIN32)
6090 
6102  virtual int startScreenCaptureByScreenRect(const Rectangle& screenRect, const Rectangle& regionRect, const ScreenCaptureParameters& captureParams) = 0;
6103 #endif
6104 
6117  virtual int startScreenCaptureByWindowId(view_t windowId, const Rectangle& regionRect, const ScreenCaptureParameters& captureParams) = 0;
6118 
6129  virtual int setScreenCaptureContentHint(VideoContentHint contentHint) = 0;
6130 
6140  virtual int updateScreenCaptureParameters(const ScreenCaptureParameters& captureParams) = 0;
6141 
6151  virtual int updateScreenCaptureRegion(const Rectangle& regionRect) = 0;
6152 
6159  virtual int stopScreenCapture() = 0;
6160 
6161 #if defined(__APPLE__)
6162  typedef unsigned int WindowIDType;
6163 #elif defined(_WIN32)
6164  typedef HWND WindowIDType;
6165 #endif
6166 
6193  virtual int startScreenCapture(WindowIDType windowId, int captureFreq, const Rect *rect, int bitrate) = 0;
6194 
6202  virtual int updateScreenCaptureRegion(const Rect *rect) = 0;
6203 #endif
6204 
6217  virtual int getCallId(agora::util::AString& callId) = 0;
6218 
6229  virtual int rate(const char* callId, int rating, const char* description) = 0;
6230 
6241  virtual int complain(const char* callId, const char* description) = 0;
6242 
6248  virtual const char* getVersion(int* build) = 0;
6249 
6269  virtual int enableLastmileTest() = 0;
6270 
6277  virtual int disableLastmileTest() = 0;
6278 
6299  virtual int startLastmileProbeTest(const LastmileProbeConfig& config) = 0;
6300 
6302  virtual int stopLastmileProbeTest() = 0;
6303 
6310  virtual const char* getErrorDescription(int code) = 0;
6311 
6328  virtual int setEncryptionSecret(const char* secret) = 0;
6329 
6350  virtual int setEncryptionMode(const char* encryptionMode) = 0;
6351 
6367  virtual int registerPacketObserver(IPacketObserver* observer) = 0;
6368 
6387  virtual int createDataStream(int* streamId, bool reliable, bool ordered) = 0;
6388 
6409  virtual int sendStreamMessage(int streamId, const char* data, size_t length) = 0;
6410 
6433  virtual int addPublishStreamUrl(const char *url, bool transcodingEnabled) = 0;
6434 
6451  virtual int removePublishStreamUrl(const char *url) = 0;
6452 
6468  virtual int setLiveTranscoding(const LiveTranscoding &transcoding) = 0;
6469 
6491  virtual int addVideoWatermark(const RtcImage& watermark) = 0;
6492 
6518  virtual int addVideoWatermark(const char* watermarkUrl, const WatermarkOptions& options) = 0;
6519 
6526  virtual int clearVideoWatermarks() = 0;
6527 
6539  virtual int setBeautyEffectOptions(bool enabled, BeautyOptions options) = 0;
6540 
6569  virtual int addInjectStreamUrl(const char* url, const InjectStreamConfig& config) = 0;
6610  virtual int startChannelMediaRelay(const ChannelMediaRelayConfiguration &configuration) = 0;
6634  virtual int updateChannelMediaRelay(const ChannelMediaRelayConfiguration &configuration) = 0;
6659  virtual int stopChannelMediaRelay() = 0;
6660 
6673  virtual int removeInjectStreamUrl(const char* url) = 0;
6674  virtual bool registerEventHandler(IRtcEngineEventHandler *eventHandler) = 0;
6675  virtual bool unregisterEventHandler(IRtcEngineEventHandler *eventHandler) = 0;
6681 
6709  virtual int setParameters(const char* parameters) = 0;
6710 };
6711 
6712 
6714 {
6715 public:
6716  virtual ~IRtcEngineParameter () {}
6720  virtual void release() = 0;
6721 
6730  virtual int setBool(const char* key, bool value) = 0;
6731 
6741  virtual int setInt(const char* key, int value) = 0;
6742 
6752  virtual int setUInt(const char* key, unsigned int value) = 0;
6753 
6763  virtual int setNumber(const char* key, double value) = 0;
6764 
6774  virtual int setString(const char* key, const char* value) = 0;
6775 
6785  virtual int setObject(const char* key, const char* value) = 0;
6786 
6796  virtual int getBool(const char* key, bool& value) = 0;
6797 
6807  virtual int getInt(const char* key, int& value) = 0;
6808 
6817  virtual int getUInt(const char* key, unsigned int& value) = 0;
6818 
6828  virtual int getNumber(const char* key, double& value) = 0;
6829 
6839  virtual int getString(const char* key, agora::util::AString& value) = 0;
6840 
6849  virtual int getObject(const char* key, agora::util::AString& value) = 0;
6850 
6859  virtual int getArray(const char* key, agora::util::AString& value) = 0;
6860 
6869  virtual int setParameters(const char* parameters) = 0;
6870 
6882  virtual int setProfile(const char* profile, bool merge) = 0;
6883 
6884  virtual int convertPath(const char* filePath, agora::util::AString& value) = 0;
6885 };
6886 
6887 class AAudioDeviceManager : public agora::util::AutoPtr<IAudioDeviceManager>
6888 {
6889 public:
6891  {
6893  }
6894 };
6895 
6896 class AVideoDeviceManager : public agora::util::AutoPtr<IVideoDeviceManager>
6897 {
6898 public:
6900  {
6902  }
6903 };
6904 
6905 class AParameter : public agora::util::AutoPtr<IRtcEngineParameter>
6906 {
6907 public:
6908  AParameter(IRtcEngine& engine) { initialize(&engine); }
6909  AParameter(IRtcEngine* engine) { initialize(engine); }
6911 private:
6912  bool initialize(IRtcEngine* engine)
6913  {
6914  IRtcEngineParameter* p = NULL;
6915  if (engine && !engine->queryInterface(AGORA_IID_RTC_ENGINE_PARAMETER, (void**)&p))
6916  reset(p);
6917  return p != NULL;
6918  }
6919 };
6923 {
6924 public:
6926  :m_parameter(&engine){}
6928  :m_parameter(engine){}
6929 
6930 
6931  int enableLocalVideo(bool enabled) {
6932  return setParameters("{\"rtc.video.capture\":%s,\"che.video.local.capture\":%s,\"che.video.local.render\":%s,\"che.video.local.send\":%s}", enabled ? "true" : "false", enabled ? "true" : "false", enabled ? "true" : "false", enabled ? "true" : "false");
6933  }
6934 
6935 
6936 
6937  int muteLocalVideoStream(bool mute) {
6938  return setParameters("{\"rtc.video.mute_me\":%s,\"che.video.local.send\":%s}", mute ? "true" : "false", mute ? "false" : "true");
6939  }
6940 
6941 
6942  int muteAllRemoteVideoStreams(bool mute) {
6943  return m_parameter ? m_parameter->setBool("rtc.video.mute_peers", mute) : -ERR_NOT_INITIALIZED;
6944  }
6945 
6946 
6947 
6949  return m_parameter ? m_parameter->setBool("rtc.video.set_default_mute_peers", mute) : -ERR_NOT_INITIALIZED;
6950  }
6951 
6952 
6953  int muteRemoteVideoStream(uid_t uid, bool mute) {
6954  return setObject("rtc.video.mute_peer", "{\"uid\":%u,\"mute\":%s}", uid, mute ? "true" : "false");
6955  }
6956 
6957 
6958  int setPlaybackDeviceVolume(int volume) {// [0,255]
6959  return m_parameter ? m_parameter->setInt("che.audio.output.volume", volume) : -ERR_NOT_INITIALIZED;
6960  }
6961 
6962 
6963  int startAudioRecording(const char* filePath, AUDIO_RECORDING_QUALITY_TYPE quality) {
6964  return startAudioRecording(filePath, 32000, quality);
6965  }
6966 
6967  int startAudioRecording(const char* filePath, int sampleRate, AUDIO_RECORDING_QUALITY_TYPE quality) {
6968  if (!m_parameter) return -ERR_NOT_INITIALIZED;
6969 #if defined(_WIN32)
6970  util::AString path;
6971  if (!m_parameter->convertPath(filePath, path))
6972  filePath = path->c_str();
6973  else
6974  return -ERR_INVALID_ARGUMENT;
6975 #endif
6976  return setObject("che.audio.start_recording", "{\"filePath\":\"%s\",\"sampleRate\":%d,\"quality\":%d}", filePath, sampleRate, quality);
6977  }
6978 
6979 
6981  return m_parameter ? m_parameter->setBool("che.audio.stop_recording", true) : -ERR_NOT_INITIALIZED;
6982  }
6983 
6984 
6985  int startAudioMixing(const char* filePath, bool loopback, bool replace, int cycle) {
6986  if (!m_parameter) return -ERR_NOT_INITIALIZED;
6987 #if defined(_WIN32)
6988  util::AString path;
6989  if (!m_parameter->convertPath(filePath, path))
6990  filePath = path->c_str();
6991  else
6992  return -ERR_INVALID_ARGUMENT;
6993 #endif
6994  return setObject("che.audio.start_file_as_playout", "{\"filePath\":\"%s\",\"loopback\":%s,\"replace\":%s,\"cycle\":%d}",
6995  filePath,
6996  loopback?"true":"false",
6997  replace?"true":"false",
6998  cycle);
6999  }
7000 
7001 
7003  return m_parameter ? m_parameter->setBool("che.audio.stop_file_as_playout", true) : -ERR_NOT_INITIALIZED;
7004  }
7005 
7006 
7008  return m_parameter ? m_parameter->setBool("che.audio.pause_file_as_playout", true) : -ERR_NOT_INITIALIZED;
7009  }
7010 
7011 
7013  return m_parameter ? m_parameter->setBool("che.audio.pause_file_as_playout", false) : -ERR_NOT_INITIALIZED;
7014  }
7015 
7016 
7017  int adjustAudioMixingVolume(int volume) {
7018  int ret = adjustAudioMixingPlayoutVolume(volume);
7019  if (ret == 0) {
7021  }
7022  return ret;
7023  }
7024 
7025 
7027  return m_parameter ? m_parameter->setInt("che.audio.set_file_as_playout_volume", volume) : -ERR_NOT_INITIALIZED;
7028  }
7029 
7030 
7032  int volume = 0;
7033  int r = m_parameter ? m_parameter->getInt("che.audio.get_file_as_playout_volume", volume) : -ERR_NOT_INITIALIZED;
7034  if (r == 0)
7035  r = volume;
7036  return r;
7037  }
7038 
7039 
7041  return m_parameter ? m_parameter->setInt("che.audio.set_file_as_playout_publish_volume", volume) : -ERR_NOT_INITIALIZED;
7042  }
7043 
7044 
7046  int volume = 0;
7047  int r = m_parameter ? m_parameter->getInt("che.audio.get_file_as_playout_publish_volume", volume) : -ERR_NOT_INITIALIZED;
7048  if (r == 0)
7049  r = volume;
7050  return r;
7051  }
7052 
7053 
7055  int duration = 0;
7056  int r = m_parameter ? m_parameter->getInt("che.audio.get_mixing_file_length_ms", duration) : -ERR_NOT_INITIALIZED;
7057  if (r == 0)
7058  r = duration;
7059  return r;
7060  }
7061 
7062 
7064  if (!m_parameter) return -ERR_NOT_INITIALIZED;
7065  int pos = 0;
7066  int r = m_parameter->getInt("che.audio.get_mixing_file_played_ms", pos);
7067  if (r == 0)
7068  r = pos;
7069  return r;
7070  }
7071 
7072  int setAudioMixingPosition(int pos /*in ms*/) {
7073  return m_parameter ? m_parameter->setInt("che.audio.mixing.file.position", pos) : -ERR_NOT_INITIALIZED;
7074  }
7075 
7076  int setAudioMixingPitch(int pitch) {
7077  if (!m_parameter) {
7078  return -ERR_NOT_INITIALIZED;
7079  }
7080  if (pitch > 12 || pitch < -12) {
7081  return -ERR_INVALID_ARGUMENT;
7082  }
7083  return m_parameter->setInt("che.audio.set_playout_file_pitch_semitones", pitch);
7084  }
7085 
7087  if (!m_parameter) return -ERR_NOT_INITIALIZED;
7088  int volume = 0;
7089  int r = m_parameter->getInt("che.audio.game_get_effects_volume", volume);
7090  if (r == 0)
7091  r = volume;
7092  return r;
7093  }
7094 
7095 
7096  int setEffectsVolume(int volume) {
7097  return m_parameter ? m_parameter->setInt("che.audio.game_set_effects_volume", volume) : -ERR_NOT_INITIALIZED;
7098  }
7099 
7100 
7101  int setVolumeOfEffect(int soundId, int volume) {
7102  return setObject(
7103  "che.audio.game_adjust_effect_volume",
7104  "{\"soundId\":%d,\"gain\":%d}",
7105  soundId, volume);
7106  }
7107 
7108 
7109  int playEffect(int soundId, const char* filePath, int loopCount, double pitch, double pan, int gain, bool publish = false) {
7110 #if defined(_WIN32)
7111  util::AString path;
7112  if (!m_parameter->convertPath(filePath, path))
7113  filePath = path->c_str();
7114  else if (!filePath)
7115  filePath = "";
7116 #endif
7117  return setObject(
7118  "che.audio.game_play_effect",
7119  "{\"soundId\":%d,\"filePath\":\"%s\",\"loopCount\":%d, \"pitch\":%lf,\"pan\":%lf,\"gain\":%d, \"send2far\":%d}",
7120  soundId, filePath, loopCount, pitch, pan, gain, publish);
7121  }
7122 
7123 
7124  int stopEffect(int soundId) {
7125  return m_parameter ? m_parameter->setInt(
7126  "che.audio.game_stop_effect", soundId) : -ERR_NOT_INITIALIZED;
7127  }
7128 
7129 
7131  return m_parameter ? m_parameter->setBool(
7132  "che.audio.game_stop_all_effects", true) : -ERR_NOT_INITIALIZED;
7133  }
7134 
7135 
7136  int preloadEffect(int soundId, char* filePath) {
7137  return setObject(
7138  "che.audio.game_preload_effect",
7139  "{\"soundId\":%d,\"filePath\":\"%s\"}",
7140  soundId, filePath);
7141  }
7142 
7143 
7144  int unloadEffect(int soundId) {
7145  return m_parameter ? m_parameter->setInt(
7146  "che.audio.game_unload_effect", soundId) : -ERR_NOT_INITIALIZED;
7147  }
7148 
7149 
7150  int pauseEffect(int soundId) {
7151  return m_parameter ? m_parameter->setInt(
7152  "che.audio.game_pause_effect", soundId) : -ERR_NOT_INITIALIZED;
7153  }
7154 
7155 
7157  return m_parameter ? m_parameter->setBool(
7158  "che.audio.game_pause_all_effects", true) : -ERR_NOT_INITIALIZED;
7159  }
7160 
7161 
7162  int resumeEffect(int soundId) {
7163  return m_parameter ? m_parameter->setInt(
7164  "che.audio.game_resume_effect", soundId) : -ERR_NOT_INITIALIZED;
7165  }
7166 
7167 
7169  return m_parameter ? m_parameter->setBool(
7170  "che.audio.game_resume_all_effects", true) : -ERR_NOT_INITIALIZED;
7171  }
7172 
7173 
7174  int enableSoundPositionIndication(bool enabled) {
7175  return m_parameter ? m_parameter->setBool(
7176  "che.audio.enable_sound_position", enabled) : -ERR_NOT_INITIALIZED;
7177  }
7178 
7179 
7180  int setRemoteVoicePosition(uid_t uid, double pan, double gain) {
7181  return setObject("che.audio.game_place_sound_position", "{\"uid\":%u,\"pan\":%lf,\"gain\":%lf}", uid, pan, gain);
7182  }
7183 
7184 
7185  int setLocalVoicePitch(double pitch) {
7186  return m_parameter ? m_parameter->setInt(
7187  "che.audio.morph.pitch_shift",
7188  static_cast<int>(pitch * 100)) : -ERR_NOT_INITIALIZED;
7189  }
7190 
7192  return setObject(
7193  "che.audio.morph.equalization",
7194  "{\"index\":%d,\"gain\":%d}",
7195  static_cast<int>(bandFrequency), bandGain);
7196  }
7197 
7198  int setLocalVoiceReverb(AUDIO_REVERB_TYPE reverbKey, int value) {
7199  return setObject(
7200  "che.audio.morph.reverb",
7201  "{\"key\":%d,\"value\":%d}",
7202  static_cast<int>(reverbKey), value);
7203  }
7204 
7205 
7207  if(voiceChanger == 0x00000000)
7208  {
7209  return m_parameter ? m_parameter->setInt("che.audio.morph.voice_changer", static_cast<int>(voiceChanger)) : -ERR_NOT_INITIALIZED;
7210  }
7211  else if(voiceChanger > 0x00000000 && voiceChanger < 0x00100000)
7212  {
7213  return m_parameter ? m_parameter->setInt("che.audio.morph.voice_changer", static_cast<int>(voiceChanger)) : -ERR_NOT_INITIALIZED;
7214  }
7215  else if(voiceChanger > 0x00100000 && voiceChanger < 0x00200000)
7216  {
7217  return m_parameter ? m_parameter->setInt("che.audio.morph.voice_changer", static_cast<int>(voiceChanger - 0x00100000 + 6)) : -ERR_NOT_INITIALIZED;
7218  }
7219  else if(voiceChanger > 0x00200000 && voiceChanger < 0x00300000)
7220  {
7221  return m_parameter ? m_parameter->setInt("che.audio.morph.beauty_voice", static_cast<int>(voiceChanger - 0x00200000)) : -ERR_NOT_INITIALIZED;
7222  }
7223  else
7224  {
7225  return -ERR_NOT_INITIALIZED;
7226  }
7227  }
7228 
7229 
7231  if(reverbPreset == 0x00000000)
7232  {
7233  return m_parameter ? m_parameter->setInt("che.audio.morph.reverb_preset", static_cast<int>(reverbPreset)) : -ERR_NOT_INITIALIZED;
7234  }
7235  else if(reverbPreset > 0x00000000 && reverbPreset < 0x00100000)
7236  {
7237  return m_parameter ? m_parameter->setInt("che.audio.morph.reverb_preset", static_cast<int>(reverbPreset + 8)) : -ERR_NOT_INITIALIZED;
7238  }
7239  else if(reverbPreset > 0x00100000 && reverbPreset < 0x00200000)
7240  {
7241  return m_parameter ? m_parameter->setInt("che.audio.morph.reverb_preset", static_cast<int>(reverbPreset - 0x00100000)) : -ERR_NOT_INITIALIZED;
7242  }
7243  else if(reverbPreset > 0x00200000 && reverbPreset < 0x00200002)
7244  {
7245  return m_parameter ? m_parameter->setInt("che.audio.morph.virtual_stereo", static_cast<int>(reverbPreset - 0x00200000)) : -ERR_NOT_INITIALIZED;
7246  }
7247  else
7248  {
7249  return -ERR_NOT_INITIALIZED;
7250  }
7251  }
7252 
7259  int pauseAudio() {
7260  return m_parameter ? m_parameter->setBool("che.pause.audio", true) : -ERR_NOT_INITIALIZED;
7261  }
7262 
7263 
7264  int resumeAudio() {
7265  return m_parameter ? m_parameter->setBool("che.pause.audio", false) : -ERR_NOT_INITIALIZED;
7266  }
7267 
7268 
7269  int setHighQualityAudioParameters(bool fullband, bool stereo, bool fullBitrate) {
7270  return setObject("che.audio.codec.hq", "{\"fullband\":%s,\"stereo\":%s,\"fullBitrate\":%s}", fullband ? "true" : "false", stereo ? "true" : "false", fullBitrate ? "true" : "false");
7271  }
7272 
7273 
7274  int adjustRecordingSignalVolume(int volume) {//[0, 400]: e.g. 50~0.5x 100~1x 400~4x
7275  if (volume < 0)
7276  volume = 0;
7277  else if (volume > 400)
7278  volume = 400;
7279  return m_parameter ? m_parameter->setInt("che.audio.record.signal.volume", volume) : -ERR_NOT_INITIALIZED;
7280  }
7281 
7282 
7283  int adjustPlaybackSignalVolume(int volume) {//[0, 400]
7284  if (volume < 0)
7285  volume = 0;
7286  else if (volume > 400)
7287  volume = 400;
7288  return m_parameter ? m_parameter->setInt("che.audio.playout.signal.volume", volume) : -ERR_NOT_INITIALIZED;
7289  }
7290 
7291 
7292  int enableAudioVolumeIndication(int interval, int smooth, bool report_vad) { // in ms: <= 0: disable, > 0: enable, interval in ms
7293  if (interval < 0)
7294  interval = 0;
7295  return setObject("che.audio.volume_indication", "{\"interval\":%d,\"smooth\":%d,\"vad\":%d}", interval, smooth, report_vad);
7296  }
7297 
7298 
7299  int muteLocalAudioStream(bool mute) {
7300  return setParameters("{\"rtc.audio.mute_me\":%s,\"che.audio.mute_me\":%s}", mute ? "true" : "false", mute ? "true" : "false");
7301  }
7302  // mute/unmute all peers. unmute will clear all muted peers specified mutePeer() interface
7303 
7304 
7305  int muteRemoteAudioStream(uid_t uid, bool mute) {
7306  return setObject("rtc.audio.mute_peer", "{\"uid\":%u,\"mute\":%s}", uid, mute?"true":"false");
7307  }
7308 
7309 
7310  int muteAllRemoteAudioStreams(bool mute) {
7311  return m_parameter ? m_parameter->setBool("rtc.audio.mute_peers", mute) : -ERR_NOT_INITIALIZED;
7312  }
7313 
7314 
7316  return m_parameter ? m_parameter->setBool("rtc.audio.set_default_mute_peers", mute) : -ERR_NOT_INITIALIZED;
7317  }
7318 
7319 
7320  int setExternalAudioSource(bool enabled, int sampleRate, int channels) {
7321  if (enabled)
7322  return setParameters("{\"che.audio.external_capture\":true,\"che.audio.external_capture.push\":true,\"che.audio.set_capture_raw_audio_format\":{\"sampleRate\":%d,\"channelCnt\":%d,\"mode\":%d}}", sampleRate, channels, RAW_AUDIO_FRAME_OP_MODE_TYPE::RAW_AUDIO_FRAME_OP_MODE_READ_WRITE);
7323  else
7324  return setParameters("{\"che.audio.external_capture\":false,\"che.audio.external_capture.push\":false}");
7325  }
7326 
7327 
7328  int setExternalAudioSink(bool enabled, int sampleRate, int channels) {
7329  if (enabled)
7330  return setParameters("{\"che.audio.external_render\":true,\"che.audio.external_render.pull\":true,\"che.audio.set_render_raw_audio_format\":{\"sampleRate\":%d,\"channelCnt\":%d,\"mode\":%d}}", sampleRate, channels, RAW_AUDIO_FRAME_OP_MODE_TYPE::RAW_AUDIO_FRAME_OP_MODE_READ_ONLY);
7331  else
7332  return setParameters("{\"che.audio.external_render\":false,\"che.audio.external_render.pull\":false}");
7333  }
7334 
7335 
7336  int setLogFile(const char* filePath) {
7337  if (!m_parameter) return -ERR_NOT_INITIALIZED;
7338 #if defined(_WIN32)
7339  util::AString path;
7340  if (!m_parameter->convertPath(filePath, path))
7341  filePath = path->c_str();
7342  else if (!filePath)
7343  filePath = "";
7344 #endif
7345  return m_parameter->setString("rtc.log_file", filePath);
7346  }
7347 
7348 
7349  int setLogFilter(unsigned int filter) {
7350  return m_parameter ? m_parameter->setUInt("rtc.log_filter", filter&LOG_FILTER_MASK) : -ERR_NOT_INITIALIZED;
7351  }
7352 
7353 
7354  int setLogFileSize(unsigned int fileSizeInKBytes) {
7355  return m_parameter ? m_parameter->setUInt("rtc.log_size", fileSizeInKBytes) : -ERR_NOT_INITIALIZED;
7356  }
7357 
7358 
7360  return setRemoteRenderMode(0, renderMode);
7361  }
7362 
7363 
7365  return setParameters("{\"che.video.render_mode\":[{\"uid\":%u,\"renderMode\":%d}]}", uid, renderMode);
7366  }
7367 
7368 
7370  if (!m_parameter) return -ERR_NOT_INITIALIZED;
7371  return m_parameter->setInt("che.video.camera_capture_mode", (int)config.preference);
7372  }
7373 
7374 
7375  int enableDualStreamMode(bool enabled) {
7376  return setParameters("{\"rtc.dual_stream_mode\":%s,\"che.video.enableLowBitRateStream\":%d}", enabled ? "true" : "false", enabled ? 1 : 0);
7377  }
7378 
7379 
7381  return setParameters("{\"rtc.video.set_remote_video_stream\":{\"uid\":%u,\"stream\":%d}, \"che.video.setstream\":{\"uid\":%u,\"stream\":%d}}", uid, streamType, uid, streamType);
7382 // return setObject("rtc.video.set_remote_video_stream", "{\"uid\":%u,\"stream\":%d}", uid, streamType);
7383  }
7384 
7385 
7387  return m_parameter ? m_parameter->setInt("rtc.video.set_remote_default_video_stream_type", streamType) : -ERR_NOT_INITIALIZED;
7388  }
7389 
7390 
7391  int setRecordingAudioFrameParameters(int sampleRate, int channel, RAW_AUDIO_FRAME_OP_MODE_TYPE mode, int samplesPerCall) {
7392  return setObject("che.audio.set_capture_raw_audio_format", "{\"sampleRate\":%d,\"channelCnt\":%d,\"mode\":%d,\"samplesPerCall\":%d}", sampleRate, channel, mode, samplesPerCall);
7393  }
7394 
7395  int setPlaybackAudioFrameParameters(int sampleRate, int channel, RAW_AUDIO_FRAME_OP_MODE_TYPE mode, int samplesPerCall) {
7396  return setObject("che.audio.set_render_raw_audio_format", "{\"sampleRate\":%d,\"channelCnt\":%d,\"mode\":%d,\"samplesPerCall\":%d}", sampleRate, channel, mode, samplesPerCall);
7397  }
7398 
7399  int setMixedAudioFrameParameters(int sampleRate, int samplesPerCall) {
7400  return setObject("che.audio.set_mixed_raw_audio_format", "{\"sampleRate\":%d,\"samplesPerCall\":%d}", sampleRate, samplesPerCall);
7401  }
7402 
7403 
7404  int enableWebSdkInteroperability(bool enabled) {//enable interoperability with zero-plugin web sdk
7405  return setParameters("{\"rtc.video.web_h264_interop_enable\":%s,\"che.video.web_h264_interop_enable\":%s}", enabled ? "true" : "false", enabled ? "true" : "false");
7406  }
7407 
7408  //only for live broadcast
7409 
7410  int setVideoQualityParameters(bool preferFrameRateOverImageQuality) {
7411  return setParameters("{\"rtc.video.prefer_frame_rate\":%s,\"che.video.prefer_frame_rate\":%s}", preferFrameRateOverImageQuality ? "true" : "false", preferFrameRateOverImageQuality ? "true" : "false");
7412  }
7413 
7414 
7416  if (!m_parameter) return -ERR_NOT_INITIALIZED;
7417  const char *value;
7418  switch (mirrorMode) {
7420  value = "default";
7421  break;
7423  value = "forceMirror";
7424  break;
7426  value = "disableMirror";
7427  break;
7428  default:
7429  return -ERR_INVALID_ARGUMENT;
7430  }
7431  return m_parameter->setString("che.video.localViewMirrorSetting", value);
7432  }
7433 
7434 
7436  return m_parameter ? m_parameter->setInt("rtc.local_publish_fallback_option", option) : -ERR_NOT_INITIALIZED;
7437  }
7438 
7439 
7441  return m_parameter ? m_parameter->setInt("rtc.remote_subscribe_fallback_option", option) : -ERR_NOT_INITIALIZED;
7442  }
7443 
7444 #if (defined(__APPLE__) && TARGET_OS_MAC && !TARGET_OS_IPHONE) || defined(_WIN32)
7445 
7446  int enableLoopbackRecording(bool enabled, const char* deviceName = NULL) {
7447  if (!deviceName) {
7448  return setParameters("{\"che.audio.loopback.recording\":%s}", enabled ? "true" : "false");
7449  }
7450  else {
7451  return setParameters("{\"che.audio.loopback.deviceName\":\"%s\",\"che.audio.loopback.recording\":%s}", deviceName, enabled ? "true" : "false");
7452  }
7453  }
7454 #endif
7455 
7456 
7457  int setInEarMonitoringVolume(int volume) {
7458  return m_parameter ? m_parameter->setInt("che.audio.headset.monitoring.parameter", volume) : -ERR_NOT_INITIALIZED;
7459  }
7460 
7461 protected:
7463  return m_parameter;
7464  }
7465  int setParameters(const char* format, ...) {
7466  char buf[512];
7467  va_list args;
7468  va_start(args, format);
7469  vsnprintf(buf, sizeof(buf)-1, format, args);
7470  va_end(args);
7471  return m_parameter ? m_parameter->setParameters(buf) : -ERR_NOT_INITIALIZED;
7472  }
7473  int setObject(const char* key, const char* format, ...) {
7474  char buf[512];
7475  va_list args;
7476  va_start(args, format);
7477  vsnprintf(buf, sizeof(buf)-1, format, args);
7478  va_end(args);
7479  return m_parameter ? m_parameter->setObject(key, buf) : -ERR_NOT_INITIALIZED;
7480  }
7482  return m_parameter ? m_parameter->setBool("che.video.peer.stop_render", true) : -ERR_NOT_INITIALIZED;
7483  }
7484 private:
7485  AParameter m_parameter;
7486 };
7487 
7488 } //namespace rtc
7489 } // namespace agora
7490 
7491 
7492 #define getAgoraRtcEngineVersion getAgoraSdkVersion
7493 
7495 
7498 
7504 AGORA_API agora::rtc::IRtcEngine* AGORA_CALL createAgoraRtcEngine();
7505 
7507 
7508 
7510 #define getAgoraRtcEngineErrorDescription getAgoraSdkErrorDescription
7511 #define setAgoraRtcEngineExternalSymbolLoader setAgoraSdkExternalSymbolLoader
7512 
7513 #endif
Definition: IAgoraRtcEngine.h:4236
int unloadEffect(int soundId)
Definition: IAgoraRtcEngine.h:7144
virtual int setLocalVoiceReverbPreset(AUDIO_REVERB_PRESET reverbPreset)=0
int setParameters(const char *format,...)
Definition: IAgoraRtcEngine.h:7465
virtual int muteAllRemoteVideoStreams(bool mute)=0
Definition: IAgoraRtcEngine.h:1295
unsigned short txKBitRate
Definition: IAgoraRtcEngine.h:1462
Definition: IAgoraRtcEngine.h:554
virtual int muteAllRemoteAudioStreams(bool mute)=0
virtual void onLocalAudioStats(const LocalAudioStats &stats)
Definition: IAgoraRtcEngine.h:2929
virtual int joinChannel(const char *token, const char *channelId, const char *info, uid_t uid)=0
Definition: IAgoraRtcEngine.h:2403
Definition: IAgoraRtcEngine.h:460
int adjustAudioMixingPublishVolume(int volume)
Definition: IAgoraRtcEngine.h:7040
virtual int setRemoteRenderMode(uid_t userId, RENDER_MODE_TYPE renderMode)=0
virtual int setVideoProfile(VIDEO_PROFILE_TYPE profile, bool swapWidthAndHeight)=0
struct agora::rtc::Rect Rect
Definition: IAgoraRtcEngine.h:1594
virtual int complain(const char *callId, const char *description)=0
unsigned int expectedUplinkBitrate
Definition: IAgoraRtcEngine.h:1394
virtual int setParameters(const char *parameters)=0
int receivedBitrate
Definition: IAgoraRtcEngine.h:1809
AUDIO_REVERB_TYPE
Definition: IAgoraRtcEngine.h:781
VIDEO_MIRROR_MODE_TYPE
Definition: IAgoraRtcEngine.h:357
int resumeAudio()
Definition: IAgoraRtcEngine.h:7264
Definition: IAgoraRtcEngine.h:504
virtual int startPlaybackDeviceTest(const char *testAudioFilePath)=0
Definition: IAgoraRtcEngine.h:2562
RtcImage * watermark
Definition: IAgoraRtcEngine.h:2114
int setInEarMonitoringVolume(int volume)
Definition: IAgoraRtcEngine.h:7457
virtual int muteLocalVideoStream(bool mute)=0
Definition: IAgoraRtcEngine.h:987
Definition: IAgoraRtcEngine.h:470
virtual int clearVideoWatermarks()=0
virtual const char * getErrorDescription(int code)=0
Definition: IAgoraRtcEngine.h:1608
virtual int setRecordingDeviceVolume(int volume)=0
virtual void onRtmpStreamingStateChanged(const char *url, RTMP_STREAM_PUBLISH_STATE state, RTMP_STREAM_PUBLISH_ERROR errCode)
Definition: IAgoraRtcEngine.h:3562
virtual int preloadEffect(int soundId, const char *filePath)=0
AVideoDeviceManager(IRtcEngine *engine)
Definition: IAgoraRtcEngine.h:6899
virtual void onStreamUnpublished(const char *url)
Definition: IAgoraRtcEngine.h:3595
Definition: IAgoraRtcEngine.h:2341
Definition: IAgoraRtcEngine.h:346
Definition: IAgoraRtcEngine.h:1074
Definition: IAgoraRtcEngine.h:382
Definition: IAgoraRtcEngine.h:1110
Definition: IAgoraRtcEngine.h:730
int setDefaultMuteAllRemoteAudioStreams(bool mute)
Definition: IAgoraRtcEngine.h:7315
unsigned int packetLossRate
Definition: IAgoraRtcEngine.h:1364
Definition: IAgoraRtcEngine.h:1559
AUDIO_SAMPLE_RATE_TYPE audioSampleRate
Definition: IAgoraRtcEngine.h:2122
Definition: IAgoraRtcEngine.h:1570
virtual int stopChannelMediaRelay()=0
int frozenRate
Definition: IAgoraRtcEngine.h:1763
Definition: IAgoraRtcEngine.h:956
Definition: IAgoraRtcEngine.h:700
Definition: IAgoraRtcEngine.h:450
Definition: IAgoraRtcEngine.h:60
virtual int adjustRecordingSignalVolume(int volume)=0
REMOTE_VIDEO_STREAM_TYPE
Definition: IAgoraRtcEngine.h:703
virtual bool isSpeakerphoneEnabled()=0
int getAudioMixingPlayoutVolume()
Definition: IAgoraRtcEngine.h:7031
const char * metadata
Definition: IAgoraRtcEngine.h:2109
VideoCanvas(view_t v, int m, const char *ch, uid_t u)
Definition: IAgoraRtcEngine.h:2451
Definition: IAgoraRtcEngine.h:1010
virtual void onRemoteSubscribeFallbackToAudioOnly(uid_t uid, bool isFallbackOrRecover)
Definition: IAgoraRtcEngine.h:3667
Definition: IAgoraRtcEngine.h:1191
Definition: IAgoraRtcEngine.h:156
Definition: IAgoraRtcEngine.h:970
Definition: IAgoraRtcEngine.h:372
Rect(int t, int l, int b, int r)
Definition: IAgoraRtcEngine.h:2337
unsigned short rxKBitRate
Definition: IAgoraRtcEngine.h:1466
LOCAL_VIDEO_STREAM_STATE
Definition: IAgoraRtcEngine.h:223
virtual int setRemoteUserPriority(uid_t uid, PRIORITY_TYPE userPriority)=0
virtual void onStreamMessage(uid_t uid, int streamId, const char *data, size_t length)
Definition: IAgoraRtcEngine.h:3480
VideoDimensions()
Definition: IAgoraRtcEngine.h:1827
virtual void onRtcStats(const RtcStats &stats)
Definition: IAgoraRtcEngine.h:2873
virtual int startScreenCaptureByScreenRect(const Rectangle &screenRect, const Rectangle &regionRect, const ScreenCaptureParameters &captureParams)=0
virtual int setAudioMixingPitch(int pitch)=0
Definition: IAgoraRtcEngine.h:302
int setLocalVoiceEqualization(AUDIO_EQUALIZATION_BAND_FREQUENCY bandFrequency, int bandGain)
Definition: IAgoraRtcEngine.h:7191
virtual int muteRemoteAudioStream(uid_t userId, bool mute)=0
Definition: IAgoraRtcEngine.h:850
Rect()
Definition: IAgoraRtcEngine.h:2336
virtual void onRemoteAudioStateChanged(uid_t uid, REMOTE_AUDIO_STATE state, REMOTE_AUDIO_STATE_REASON reason, int elapsed)
Definition: IAgoraRtcEngine.h:2976
Definition: IAgoraRtcEngine.h:232
Definition: IAgoraRtcEngine.h:1078
Definition: IAgoraRtcEngine.h:822
Definition: IAgoraRtcEngine.h:2165
Definition: IAgoraRtcEngine.h:1293
float lighteningLevel
Definition: IAgoraRtcEngine.h:2502
bool queryInterface(C1 *c, C2 iid)
Definition: AgoraBase.h:81
int left
Definition: IAgoraRtcEngine.h:2328
Definition: IAgoraRtcEngine.h:1283
int width
Definition: IAgoraRtcEngine.h:2180
int audioChannels
Definition: IAgoraRtcEngine.h:2134
unsigned int WindowIDType
Definition: IAgoraRtcEngine.h:6162
DEGRADATION_PREFERENCE degradationPreference
Definition: IAgoraRtcEngine.h:1934
virtual const char * getVersion(int *build)=0
Definition: IAgoraRtcEngine.h:1260
Definition: IAgoraRtcEngine.h:788
virtual void onCameraExposureAreaChanged(int x, int y, int width, int height)
Definition: IAgoraRtcEngine.h:3303
REMOTE_AUDIO_STATE
Definition: IAgoraRtcEngine.h:963
Definition: IAgoraRtcEngine.h:2528
int bitrate
Definition: IAgoraRtcEngine.h:1921
Definition: IAgoraRtcEngine.h:1616
virtual int startScreenCapture(WindowIDType windowId, int captureFreq, const Rect *rect, int bitrate)=0
virtual int startPreview()=0
unsigned int txBytes
Definition: IAgoraRtcEngine.h:1437
int rendererOutputFrameRate
Definition: IAgoraRtcEngine.h:1687
Definition: IAgoraRtcEngine.h:740
Definition: IAgoraRtcEngine.h:333
virtual int setDevice(const char deviceId[MAX_DEVICE_ID_LENGTH])=0
virtual void onUserMuteVideo(uid_t uid, bool muted)
Definition: IAgoraRtcEngine.h:3162
int setLogFilter(unsigned int filter)
Definition: IAgoraRtcEngine.h:7349
int sentFrameRate
Definition: IAgoraRtcEngine.h:1681
AREA_CODE
Definition: IAgoraRtcEngine.h:2546
Definition: IAgoraRtcEngine.h:376
Definition: IAgoraRtcEngine.h:2033
Definition: IAgoraRtcEngine.h:88
Definition: IAgoraRtcEngine.h:4286
virtual int isApplicationMute(bool &mute)=0
void reset(pointer_type ptr=0)
Definition: AgoraBase.h:75
Definition: IAgoraRtcEngine.h:42
Definition: IAgoraRtcEngine.h:773
int pauseAudio()
Definition: IAgoraRtcEngine.h:7259
Definition: IAgoraRtcEngine.h:759
virtual int enableLocalVideo(bool enabled)=0
Definition: IAgoraRtcEngine.h:1018
Definition: IAgoraRtcEngine.h:374
LIGHTENING_CONTRAST_LEVEL lighteningContrastLevel
Definition: IAgoraRtcEngine.h:2499
Definition: IAgoraRtcEngine.h:2367
AUDIO_MIXING_STATE_TYPE
Definition: IAgoraRtcEngine.h:147
Definition: IAgoraRtcEngine.h:310
virtual int setVolumeOfEffect(int soundId, int volume)=0
virtual void onLocalUserRegistered(uid_t uid, const char *userAccount)
Definition: IAgoraRtcEngine.h:3772
int renderMode
Definition: IAgoraRtcEngine.h:2410
int minBitrate
Definition: IAgoraRtcEngine.h:1928
FRAME_RATE
Definition: IAgoraRtcEngine.h:1103
bool probeDownlink
Definition: IAgoraRtcEngine.h:1392
virtual int pauseEffect(int soundId)=0
Definition: IAgoraRtcEngine.h:1043
virtual void onLocalVideoStats(const LocalVideoStats &stats)
Definition: IAgoraRtcEngine.h:2905
Definition: IAgoraRtcEngine.h:506
bool lowLatency
Definition: IAgoraRtcEngine.h:2082
Definition: IAgoraRtcEngine.h:931
Definition: IAgoraRtcEngine.h:454
Definition: IAgoraRtcEngine.h:432
virtual void onStreamInjectedStatus(const char *url, uid_t uid, int status)
Definition: IAgoraRtcEngine.h:3613
virtual int registerPacketObserver(IPacketObserver *observer)=0
virtual int resumeAllEffects()=0
Definition: IAgoraRtcEngine.h:738
virtual int setDefaultMuteAllRemoteVideoStreams(bool mute)=0
AUDIO_SAMPLE_RATE_TYPE audioSampleRate
Definition: IAgoraRtcEngine.h:2199
Definition: IAgoraRtcEngine.h:1573
virtual int pauseAllEffects()=0
unsigned int volume
Definition: IAgoraRtcEngine.h:1411
virtual void onUserEnableLocalVideo(uid_t uid, bool enabled)
Definition: IAgoraRtcEngine.h:3466
Definition: IAgoraRtcEngine.h:510
Definition: IAgoraRtcEngine.h:573
Definition: IAgoraRtcEngine.h:1039
unsigned int duration
Definition: IAgoraRtcEngine.h:1433
AParameter & parameter()
Definition: IAgoraRtcEngine.h:7462
Definition: IAgoraRtcEngine.h:1585
Definition: IAgoraRtcEngine.h:1131
Definition: AgoraBase.h:41
virtual int adjustUserPlaybackSignalVolume(unsigned int uid, int volume)=0
virtual int setApplicationMute(bool mute)=0
virtual void onUserJoined(uid_t uid, int elapsed)
Definition: IAgoraRtcEngine.h:2741
Definition: IAgoraRtcEngine.h:478
Definition: IAgoraRtcEngine.h:276
IRtcEngineEventHandler * eventHandler
Definition: IAgoraRtcEngine.h:4240
VideoEncoderConfiguration(const VideoDimensions &d, FRAME_RATE f, int b, ORIENTATION_MODE m, VIDEO_MIRROR_MODE_TYPE mr=VIDEO_MIRROR_MODE_AUTO)
Definition: IAgoraRtcEngine.h:1941
int setRemoteVideoStreamType(uid_t uid, REMOTE_VIDEO_STREAM_TYPE streamType)
Definition: IAgoraRtcEngine.h:7380
const int DEFAULT_MIN_BITRATE
Definition: IAgoraRtcEngine.h:1853
int enableAudioVolumeIndication(int interval, int smooth, bool report_vad)
Definition: IAgoraRtcEngine.h:7292
int setRemoteVoicePosition(uid_t uid, double pan, double gain)
Definition: IAgoraRtcEngine.h:7180
Definition: IAgoraRtcEngine.h:665
virtual int pauseAudioMixing()=0
const unsigned char * buffer
Definition: IAgoraRtcEngine.h:2593
Definition: IAgoraRtcEngine.h:1062
NETWORK_TYPE
Definition: IAgoraRtcEngine.h:1272
int startAudioRecording(const char *filePath, int sampleRate, AUDIO_RECORDING_QUALITY_TYPE quality)
Definition: IAgoraRtcEngine.h:6967
int pauseAudioMixing()
Definition: IAgoraRtcEngine.h:7007
int width
Definition: IAgoraRtcEngine.h:2060
Definition: IAgoraRtcEngine.h:688
Definition: IAgoraRtcEngine.h:1403
double cpuTotalUsage
Definition: IAgoraRtcEngine.h:1510
virtual int getString(const char *key, agora::util::AString &value)=0
Definition: IAgoraRtcEngine.h:761
virtual void onLocalAudioStateChanged(LOCAL_AUDIO_STREAM_STATE state, LOCAL_AUDIO_STREAM_ERROR error)
Definition: IAgoraRtcEngine.h:2959
RtcEngineParameters(IRtcEngine *engine)
Definition: IAgoraRtcEngine.h:6927
MEDIA_DEVICE_STATE_TYPE
Definition: IAgoraRtcEngine.h:181
int resumeAllEffects()
Definition: IAgoraRtcEngine.h:7168
Definition: IAgoraRtcEngine.h:153
virtual void onVideoStopped()
Definition: IAgoraRtcEngine.h:3044
VideoCanvas(view_t v, int rm, const char *ch, uid_t u, VIDEO_MIRROR_MODE_TYPE mm)
Definition: IAgoraRtcEngine.h:2470
Definition: IAgoraRtcEngine.h:784
int bitrate
Definition: IAgoraRtcEngine.h:2388
Definition: IAgoraRtcEngine.h:524
Definition: IAgoraRtcEngine.h:2297
Definition: IAgoraRtcEngine.h:641
Definition: IAgoraRtcEngine.h:726
Definition: IAgoraRtcEngine.h:2579
virtual ~IRtcEngine()
Definition: IAgoraRtcEngine.h:4349
int videoFramerate
Definition: IAgoraRtcEngine.h:2189
Definition: IAgoraRtcEngine.h:1188
METADATA_TYPE
Definition: IAgoraRtcEngine.h:4279
Definition: IAgoraRtcEngine.h:1082
Definition: IAgoraRtcEngine.h:748
Definition: IAgoraRtcEngine.h:194
Definition: IAgoraRtcEngine.h:571
Definition: IAgoraRtcEngine.h:416
Definition: IAgoraRtcEngine.h:1047
Definition: IAgoraRtcEngine.h:321
Definition: IAgoraRtcEngine.h:1657
Definition: IAgoraRtcEngine.h:458
Definition: IAgoraRtcEngine.h:777
unsigned short txVideoKBitRate
Definition: IAgoraRtcEngine.h:1482
Definition: IAgoraRtcEngine.h:887
int sentSampleRate
Definition: IAgoraRtcEngine.h:1775
RTMP_STREAM_LIFE_CYCLE_TYPE
Definition: IAgoraRtcEngine.h:2275
unsigned char * buffer
Definition: IAgoraRtcEngine.h:4302
unsigned int userCount
Definition: IAgoraRtcEngine.h:1502
Definition: IAgoraRtcEngine.h:862
virtual void onActiveSpeaker(uid_t uid)
Definition: IAgoraRtcEngine.h:3034
Definition: IAgoraRtcEngine.h:398
virtual IVideoDeviceCollection * enumerateVideoDevices()=0
Definition: IAgoraRtcEngine.h:1664
virtual int registerLocalUserAccount(const char *appId, const char *userAccount)=0
Definition: IAgoraRtcEngine.h:2291
Definition: IAgoraRtcEngine.h:492
VideoEncoderConfiguration()
Definition: IAgoraRtcEngine.h:1956
Definition: IAgoraRtcEngine.h:349
virtual int startAudioMixing(const char *filePath, bool loopback, bool replace, int cycle)=0
virtual int setEncryptionMode(const char *encryptionMode)=0
VIDEO_CODEC_PROFILE_TYPE videoCodecProfile
Definition: IAgoraRtcEngine.h:2091
virtual int createDataStream(int *streamId, bool reliable, bool ordered)=0
ChannelMediaInfo * destInfos
Definition: IAgoraRtcEngine.h:2258
Definition: IAgoraRtcEngine.h:752
Definition: IAgoraRtcEngine.h:1357
Definition: IAgoraRtcEngine.h:230
unsigned short rxPacketLossRate
Definition: IAgoraRtcEngine.h:1493
unsigned int uid_t
Definition: IAgoraRtcEngine.h:18
CONNECTION_CHANGED_REASON_TYPE
Definition: IAgoraRtcEngine.h:1233
Definition: IAgoraRtcEngine.h:1362
Definition: IAgoraRtcEngine.h:1384
Definition: IAgoraRtcEngine.h:891
int enableSoundPositionIndication(bool enabled)
Definition: IAgoraRtcEngine.h:7174
Definition: AgoraBase.h:111
virtual void onCameraReady()
Definition: IAgoraRtcEngine.h:3238
virtual int getAudioMixingPublishVolume()=0
Definition: IAgoraRtcEngine.h:765
struct agora::rtc::TranscodingUser TranscodingUser
int rendererOutputFrameRate
Definition: IAgoraRtcEngine.h:1749
Definition: IAgoraRtcEngine.h:226
AUDIO_ROUTE_TYPE
Definition: IAgoraRtcEngine.h:1300
Definition: IAgoraRtcEngine.h:34
Definition: IAgoraRtcEngine.h:2558
virtual int switchCamera()=0
uid_t uid
Definition: IAgoraRtcEngine.h:1725
Definition: IAgoraRtcEngine.h:1303
Definition: IAgoraRtcEngine.h:514
virtual ~IAudioDeviceCollection()
Definition: IAgoraRtcEngine.h:3904
virtual int getAudioMixingDuration()=0
void * priv
Definition: IAgoraRtcEngine.h:2425
Definition: IAgoraRtcEngine.h:185
virtual int startRecordingDeviceTest(int indicationInterval)=0
Definition: IAgoraRtcEngine.h:706
int sentBitrate
Definition: IAgoraRtcEngine.h:1677
LIGHTENING_CONTRAST_LEVEL
Definition: IAgoraRtcEngine.h:2487
virtual int setDevice(const char deviceId[MAX_DEVICE_ID_LENGTH])=0
virtual int stopAudioDeviceLoopbackTest()=0
Definition: IAgoraRtcEngine.h:802
virtual int adjustAudioMixingPublishVolume(int volume)=0
int startAudioMixing(const char *filePath, bool loopback, bool replace, int cycle)
Definition: IAgoraRtcEngine.h:6985
int setAudioMixingPitch(int pitch)
Definition: IAgoraRtcEngine.h:7076
Definition: IAgoraRtcEngine.h:317
STREAM_FALLBACK_OPTIONS
Definition: IAgoraRtcEngine.h:1155
QUALITY_TYPE
Definition: IAgoraRtcEngine.h:314
const char * channelId
Definition: IAgoraRtcEngine.h:1423
AUDIO_PROFILE_TYPE
Definition: IAgoraRtcEngine.h:530
Definition: IAgoraRtcEngine.h:191
unsigned int jitter
Definition: IAgoraRtcEngine.h:1366
int enableWebSdkInteroperability(bool enabled)
Definition: IAgoraRtcEngine.h:7404
unsigned int userCount
Definition: IAgoraRtcEngine.h:2097
Definition: IAgoraRtcEngine.h:496
int muteAllRemoteAudioStreams(bool mute)
Definition: IAgoraRtcEngine.h:7310
int sentBitrate
Definition: IAgoraRtcEngine.h:1778
Definition: IAgoraRtcEngine.h:1236
virtual void onUserOffline(uid_t uid, USER_OFFLINE_REASON_TYPE reason)
Definition: IAgoraRtcEngine.h:2756
RtcImage()
Definition: IAgoraRtcEngine.h:2034
Definition: IAgoraRtcEngine.h:418
BeautyOptions(LIGHTENING_CONTRAST_LEVEL contrastLevel, float lightening, float smoothness, float redness)
Definition: IAgoraRtcEngine.h:2512
int x
Definition: IAgoraRtcEngine.h:2306
LASTMILE_PROBE_RESULT_STATE state
Definition: IAgoraRtcEngine.h:1374
Definition: IAgoraRtcEngine.h:4346
Definition: IAgoraRtcEngine.h:2322
int adjustPlaybackSignalVolume(int volume)
Definition: IAgoraRtcEngine.h:7283
Definition: IAgoraRtcEngine.h:923
Definition: IAgoraRtcEngine.h:943
ChannelMediaInfo * srcInfo
Definition: IAgoraRtcEngine.h:2250
AAudioDeviceManager(IRtcEngine *engine)
Definition: IAgoraRtcEngine.h:6890
Definition: IAgoraRtcEngine.h:1309
virtual int startDeviceTest(view_t hwnd)=0
Definition: IAgoraRtcEngine.h:1306
virtual void onRequestToken()
Definition: IAgoraRtcEngine.h:2836
virtual int getUserInfoByUserAccount(const char *userAccount, UserInfo *userInfo)=0
Definition: IAgoraRtcEngine.h:1660
Definition: IAgoraRtcEngine.h:1051
virtual int getAudioMixingCurrentPosition()=0
virtual void onConnectionLost()
Definition: IAgoraRtcEngine.h:2810
int setLocalVoicePitch(double pitch)
Definition: IAgoraRtcEngine.h:7185
Definition: IAgoraRtcEngine.h:228
virtual int addInjectStreamUrl(const char *url, const InjectStreamConfig &config)=0
AParameter(IRtcEngine &engine)
Definition: IAgoraRtcEngine.h:6908
virtual void onMicrophoneEnabled(bool enabled)
Definition: IAgoraRtcEngine.h:3744
int frozenRate
Definition: IAgoraRtcEngine.h:1815
int setLocalVoiceChanger(VOICE_CHANGER_PRESET voiceChanger)
Definition: IAgoraRtcEngine.h:7206
VIDEO_CODEC_TYPE codecType
Definition: IAgoraRtcEngine.h:1715
Definition: IAgoraRtcEngine.h:1857
int pauseEffect(int soundId)
Definition: IAgoraRtcEngine.h:7150
Definition: IAgoraRtcEngine.h:1014
virtual void onRemoteVideoStateChanged(uid_t uid, REMOTE_VIDEO_STATE state, REMOTE_VIDEO_STATE_REASON reason, int elapsed)
Definition: IAgoraRtcEngine.h:3429
Definition: IAgoraRtcEngine.h:2055
unsigned int size
Definition: IAgoraRtcEngine.h:2596
Definition: IAgoraRtcEngine.h:1002
Definition: IAgoraRtcEngine.h:2302
Definition: IAgoraRtcEngine.h:170
AUDIO_MIXING_ERROR_TYPE
Definition: IAgoraRtcEngine.h:164
Definition: IAgoraRtcEngine.h:394
virtual int setRemoteDefaultVideoStreamType(REMOTE_VIDEO_STREAM_TYPE streamType)=0
Definition: IAgoraRtcEngine.h:129
Definition: IAgoraRtcEngine.h:209
Definition: IAgoraRtcEngine.h:814
DEGRADATION_PREFERENCE
Definition: IAgoraRtcEngine.h:1145
Definition: IAgoraRtcEngine.h:715
Definition: IAgoraRtcEngine.h:6887
int memoryAppUsageInKbytes
Definition: IAgoraRtcEngine.h:1528
unsigned int rxBytes
Definition: IAgoraRtcEngine.h:1441
int resumeAudioMixing()
Definition: IAgoraRtcEngine.h:7012
int setRemoteSubscribeFallbackOption(STREAM_FALLBACK_OPTIONS option)
Definition: IAgoraRtcEngine.h:7440
virtual int setPlaybackDevice(const char deviceId[MAX_DEVICE_ID_LENGTH])=0
LiveTranscoding()
Definition: IAgoraRtcEngine.h:2141
virtual void onRemoteVideoStats(const RemoteVideoStats &stats)
Definition: IAgoraRtcEngine.h:2918
Definition: IAgoraRtcEngine.h:1599
struct agora::rtc::RtcImage RtcImage
Definition: IAgoraRtcEngine.h:218
virtual CONNECTION_STATE_TYPE getConnectionState()=0
virtual int setLocalPublishFallbackOption(STREAM_FALLBACK_OPTIONS option)=0
virtual int setRecordingDeviceMute(bool mute)=0
Definition: IAgoraRtcEngine.h:907
Definition: IAgoraRtcEngine.h:518
int videoFramerate
Definition: IAgoraRtcEngine.h:2075
int muteLocalAudioStream(bool mute)
Definition: IAgoraRtcEngine.h:7299
RAW_AUDIO_FRAME_OP_MODE_TYPE
Definition: IAgoraRtcEngine.h:712
Definition: IAgoraRtcEngine.h:150
LastmileProbeOneWayResult uplinkReport
Definition: IAgoraRtcEngine.h:1376
virtual void onRemoteVideoTransportStats(uid_t uid, unsigned short delay, unsigned short lost, unsigned short rxKBitRate)
Definition: IAgoraRtcEngine.h:3717
Definition: IAgoraRtcEngine.h:858
int areaCode
Definition: IAgoraRtcEngine.h:4262
Definition: IAgoraRtcEngine.h:264
virtual int startAudioDeviceLoopbackTest(int indicationInterval)=0
AUDIO_SCENARIO_TYPE
Definition: IAgoraRtcEngine.h:568
Definition: IAgoraRtcEngine.h:410
Definition: IAgoraRtcEngine.h:1158
Definition: IAgoraRtcEngine.h:1176
Definition: IAgoraRtcEngine.h:448
CHANNEL_MEDIA_RELAY_STATE
Definition: IAgoraRtcEngine.h:1654
virtual void onFacePositionChanged(int imageWidth, int imageHeight, Rectangle *vecRectangle, int *vecDistance, int numFaces)
Definition: IAgoraRtcEngine.h:3284
virtual bool registerEventHandler(IRtcEngineEventHandler *eventHandler)=0
virtual void onCameraFocusAreaChanged(int x, int y, int width, int height)
Definition: IAgoraRtcEngine.h:3251
Definition: IAgoraRtcEngine.h:1250
VideoDimensions dimensions
Definition: IAgoraRtcEngine.h:2378
virtual void onFirstRemoteAudioFrame(uid_t uid, int elapsed)
Definition: IAgoraRtcEngine.h:3546
virtual int setBeautyEffectOptions(bool enabled, BeautyOptions options)=0
Definition: IAgoraRtcEngine.h:1281
unsigned short txAudioKBitRate
Definition: IAgoraRtcEngine.h:1474
Definition: IAgoraRtcEngine.h:854
Definition: IAgoraRtcEngine.h:1264
virtual int setAudioSessionOperationRestriction(AUDIO_SESSION_OPERATION_RESTRICTION restriction)=0
virtual int switchChannel(const char *token, const char *channelId)=0
virtual int setVideoEncoderConfiguration(const VideoEncoderConfiguration &config)=0
Definition: IAgoraRtcEngine.h:579
RtcEngineParameters(IRtcEngine &engine)
Definition: IAgoraRtcEngine.h:6925
Definition: IAgoraRtcEngine.h:538
virtual void onLastmileProbeResult(const LastmileProbeResult &result)
Definition: IAgoraRtcEngine.h:2777
VideoDimensions(int w, int h)
Definition: IAgoraRtcEngine.h:1830
int preloadEffect(int soundId, char *filePath)
Definition: IAgoraRtcEngine.h:7136
Definition: IAgoraRtcEngine.h:3901
virtual int setDefaultMuteAllRemoteAudioStreams(bool mute)=0
InjectStreamConfig()
Definition: IAgoraRtcEngine.h:2215
Definition: IAgoraRtcEngine.h:680
int decoderOutputFrameRate
Definition: IAgoraRtcEngine.h:1746
Definition: IAgoraRtcEngine.h:392
virtual int disableLastmileTest()=0
int zOrder
Definition: IAgoraRtcEngine.h:1997
uid_t uid
Definition: IAgoraRtcEngine.h:2424
virtual int startScreenCaptureByWindowId(view_t windowId, const Rectangle &regionRect, const ScreenCaptureParameters &captureParams)=0
Definition: IAgoraRtcEngine.h:763
virtual int getRecordingDeviceVolume(int *volume)=0
MEDIA_DEVICE_TYPE
Definition: IAgoraRtcEngine.h:199
virtual int startChannelMediaRelay(const ChannelMediaRelayConfiguration &configuration)=0
unsigned int rxVideoBytes
Definition: IAgoraRtcEngine.h:1457
uid_t uid
Definition: IAgoraRtcEngine.h:1787
virtual IAudioDeviceCollection * enumeratePlaybackDevices()=0
int setVolumeOfEffect(int soundId, int volume)
Definition: IAgoraRtcEngine.h:7101
Definition: IAgoraRtcEngine.h:520
MEDIA_ENGINE_EVENT_CODE_TYPE
Definition: IAgoraRtcEngine.h:56
uid_t uid
Definition: IAgoraRtcEngine.h:1408
virtual int startScreenCaptureByDisplayId(unsigned int displayId, const Rectangle &regionRect, const ScreenCaptureParameters &captureParams)=0
Definition: IAgoraRtcEngine.h:426
virtual ~IRtcEngineParameter()
Definition: IAgoraRtcEngine.h:6716
int audioLossRate
Definition: IAgoraRtcEngine.h:1799
int playEffect(int soundId, const char *filePath, int loopCount, double pitch, double pan, int gain, bool publish=false)
Definition: IAgoraRtcEngine.h:7109
VIDEO_CODEC_PROFILE_TYPE
Definition: IAgoraRtcEngine.h:734
Rectangle positionInPortraitMode
Definition: IAgoraRtcEngine.h:2356
int right
Definition: IAgoraRtcEngine.h:2334
virtual int setRemoteVoicePosition(uid_t uid, double pan, double gain)=0
virtual int registerMediaMetadataObserver(IMetadataObserver *observer, IMetadataObserver::METADATA_TYPE type)=0
ORIENTATION_MODE orientationMode
Definition: IAgoraRtcEngine.h:1931
Definition: IAgoraRtcEngine.h:1348
int jitterBufferDelay
Definition: IAgoraRtcEngine.h:1796
virtual int setPlaybackDeviceVolume(int volume)=0
virtual int getDevice(int index, char deviceName[MAX_DEVICE_ID_LENGTH], char deviceId[MAX_DEVICE_ID_LENGTH])=0
RtcEngineContext()
Definition: IAgoraRtcEngine.h:4263
int getAudioMixingPublishVolume()
Definition: IAgoraRtcEngine.h:7045
virtual int setRemoteSubscribeFallbackOption(STREAM_FALLBACK_OPTIONS option)=0
Definition: IAgoraRtcEngine.h:1650
QUALITY_ADAPT_INDICATION qualityAdaptIndication
Definition: IAgoraRtcEngine.h:1697
Definition: IAgoraRtcEngine.h:261
virtual void onConnectionStateChanged(CONNECTION_STATE_TYPE state, CONNECTION_CHANGED_REASON_TYPE reason)
Definition: IAgoraRtcEngine.h:3752
int setRemoteDefaultVideoStreamType(REMOTE_VIDEO_STREAM_TYPE streamType)
Definition: IAgoraRtcEngine.h:7386
Definition: AgoraBase.h:283
UserInfo()
Definition: IAgoraRtcEngine.h:2537
Definition: IAgoraRtcEngine.h:958
Definition: IAgoraRtcEngine.h:728
virtual int adjustAudioMixingPlayoutVolume(int volume)=0
int encodedBitrate
Definition: IAgoraRtcEngine.h:1701
Definition: IAgoraRtcEngine.h:452
int startAudioRecording(const char *filePath, AUDIO_RECORDING_QUALITY_TYPE quality)
Definition: IAgoraRtcEngine.h:6963
virtual void onAudioEffectFinished(int soundId)
Definition: IAgoraRtcEngine.h:3350
virtual void onApiCallExecuted(int err, const char *api, const char *result)
Definition: IAgoraRtcEngine.h:2824
Definition: IAgoraRtcEngine.h:2550
Definition: IAgoraRtcEngine.h:434
ScreenCaptureParameters(const VideoDimensions &d, int f, int b, bool c)
Definition: IAgoraRtcEngine.h:2397
Definition: IAgoraRtcEngine.h:1318
int encodedFrameHeight
Definition: IAgoraRtcEngine.h:1707
Definition: IAgoraRtcEngine.h:97
void * context
Definition: IAgoraRtcEngine.h:4253
Definition: IAgoraRtcEngine.h:1258
Definition: IAgoraRtcEngine.h:866
bool captureMouseCursor
Definition: IAgoraRtcEngine.h:2394
int y
Definition: IAgoraRtcEngine.h:1980
virtual ~IVideoDeviceManager()
Definition: IAgoraRtcEngine.h:3838
Definition: IAgoraRtcEngine.h:329
virtual bool onReceiveAudioPacket(Packet &packet)=0
Definition: IAgoraRtcEngine.h:1277
float rednessLevel
Definition: IAgoraRtcEngine.h:2510
CAPTURER_OUTPUT_PREFERENCE preference
Definition: IAgoraRtcEngine.h:2168
virtual void onAudioVolumeIndication(const AudioVolumeInfo *speakers, unsigned int speakerNumber, int totalVolume)
Definition: IAgoraRtcEngine.h:3018
Definition: IAgoraRtcEngine.h:979
static AGORA_CPP_API void release(bool sync=false)
virtual void onFirstRemoteVideoDecoded(uid_t uid, int width, int height, int elapsed)
Definition: IAgoraRtcEngine.h:3092
TranscodingUser * transcodingUsers
Definition: IAgoraRtcEngine.h:2100
Definition: IAgoraRtcEngine.h:440
virtual void onClientRoleChanged(CLIENT_ROLE_TYPE oldRole, CLIENT_ROLE_TYPE newRole)
Definition: IAgoraRtcEngine.h:2719
Definition: IAgoraRtcEngine.h:258
unsigned int availableBandwidth
Definition: IAgoraRtcEngine.h:1368
Definition: IAgoraRtcEngine.h:466
Definition: IAgoraRtcEngine.h:1285
int setHighQualityAudioParameters(bool fullband, bool stereo, bool fullBitrate)
Definition: IAgoraRtcEngine.h:7269
Definition: IAgoraRtcEngine.h:911
virtual int setRecordingDevice(const char deviceId[MAX_DEVICE_ID_LENGTH])=0
Definition: IAgoraRtcEngine.h:771
Definition: IAgoraRtcEngine.h:117
Definition: IAgoraRtcEngine.h:468
virtual void onUserMuteAudio(uid_t uid, bool muted)
Definition: IAgoraRtcEngine.h:3133
int audioChannels
Definition: IAgoraRtcEngine.h:2212
virtual int setPlaybackDeviceMute(bool mute)=0
Definition: IAgoraRtcEngine.h:239
virtual int sendStreamMessage(int streamId, const char *data, size_t length)=0
virtual void onAudioMixingStateChanged(AUDIO_MIXING_STATE_TYPE state, AUDIO_MIXING_ERROR_TYPE errorCode)
Definition: IAgoraRtcEngine.h:3331
Definition: IAgoraRtcEngine.h:1275
virtual int getRecordingDevice(char deviceId[MAX_DEVICE_ID_LENGTH])=0
Definition: IAgoraRtcEngine.h:488
virtual int stopLastmileProbeTest()=0
USER_OFFLINE_REASON_TYPE
Definition: IAgoraRtcEngine.h:613
Definition: IAgoraRtcEngine.h:790
int receivedBitrate
Definition: IAgoraRtcEngine.h:1743
int enableLocalVideo(bool enabled)
Definition: IAgoraRtcEngine.h:6931
virtual int getNumber(const char *key, double &value)=0
virtual int stopAllEffects()=0
AUDIO_CODEC_PROFILE_TYPE
Definition: IAgoraRtcEngine.h:953
Definition: IAgoraRtcEngine.h:1216
Definition: IAgoraRtcEngine.h:456
virtual int setExternalAudioSource(bool enabled, int sampleRate, int channels)=0
int height
Definition: IAgoraRtcEngine.h:1826
virtual void onError(int err, const char *msg)
Definition: IAgoraRtcEngine.h:2662
virtual int setLocalRenderMode(RENDER_MODE_TYPE renderMode)=0
virtual int stopAudioMixing()=0
int setLocalPublishFallbackOption(STREAM_FALLBACK_OPTIONS option)
Definition: IAgoraRtcEngine.h:7435
virtual void onLeaveChannel(const RtcStats &stats)
Definition: IAgoraRtcEngine.h:2707
Definition: IAgoraRtcEngine.h:442
Definition: IAgoraRtcEngine.h:775
virtual int setupLocalVideo(const VideoCanvas &canvas)=0
Definition: IAgoraRtcEngine.h:2583
uid_t uid
Definition: IAgoraRtcEngine.h:2532
Definition: IAgoraRtcEngine.h:1240
int stopAudioRecording()
Definition: IAgoraRtcEngine.h:6980
Definition: IAgoraRtcEngine.h:575
unsigned int rxAudioBytes
Definition: IAgoraRtcEngine.h:1453
char userAccount[MAX_USER_ACCOUNT_LENGTH]
Definition: IAgoraRtcEngine.h:2536
int y
Definition: IAgoraRtcEngine.h:2046
virtual bool unregisterEventHandler(IRtcEngineEventHandler *eventHandler)=0
unsigned int rtt
Definition: IAgoraRtcEngine.h:1380
VideoEncoderConfiguration(int width, int height, FRAME_RATE f, int b, ORIENTATION_MODE m, VIDEO_MIRROR_MODE_TYPE mr=VIDEO_MIRROR_MODE_AUTO)
Definition: IAgoraRtcEngine.h:1948
Definition: IAgoraRtcEngine.h:2494
Definition: IAgoraRtcEngine.h:620
struct agora::rtc::WatermarkOptions WatermarkOptions
Definition: IAgoraRtcEngine.h:1355
int gatewayRtt
Definition: IAgoraRtcEngine.h:1513
unsigned short lastmileDelay
Definition: IAgoraRtcEngine.h:1485
int targetFrameRate
Definition: IAgoraRtcEngine.h:1693
virtual int setLiveTranscoding(const LiveTranscoding &transcoding)=0
virtual int removePublishStreamUrl(const char *url)=0
char channelId[MAX_CHANNEL_ID_LENGTH]
Definition: IAgoraRtcEngine.h:2422
int width
Definition: IAgoraRtcEngine.h:2048
AParameter(IRtcEngine *engine)
Definition: IAgoraRtcEngine.h:6909
Definition: IAgoraRtcEngine.h:842
Definition: IAgoraRtcEngine.h:1561
Definition: IAgoraRtcEngine.h:935
virtual int enableWebSdkInteroperability(bool enabled)=0
Definition: IAgoraRtcEngine.h:159
int setRemoteRenderMode(uid_t uid, RENDER_MODE_TYPE renderMode)
Definition: IAgoraRtcEngine.h:7364
unsigned int vad
Definition: IAgoraRtcEngine.h:1420
virtual int stopEffect(int soundId)=0
double cpuAppUsage
Definition: IAgoraRtcEngine.h:1506
Definition: IAgoraRtcEngine.h:1179
Definition: IAgoraRtcEngine.h:69
virtual void onRemoteAudioTransportStats(uid_t uid, unsigned short delay, unsigned short lost, unsigned short rxKBitRate)
Definition: IAgoraRtcEngine.h:3690
REMOTE_VIDEO_STREAM_TYPE rxStreamType
Definition: IAgoraRtcEngine.h:1753
Definition: IAgoraRtcEngine.h:2574
const int STANDARD_BITRATE
Definition: IAgoraRtcEngine.h:1843
Definition: IAgoraRtcEngine.h:834
Definition: IAgoraRtcEngine.h:3985
unsigned short rxAudioKBitRate
Definition: IAgoraRtcEngine.h:1470
virtual void onConnectionBanned()
Definition: IAgoraRtcEngine.h:2816
Definition: IAgoraRtcEngine.h:696
Rectangle positionInLandscapeMode
Definition: IAgoraRtcEngine.h:2351
virtual int getDevice(int index, char deviceName[MAX_DEVICE_ID_LENGTH], char deviceId[MAX_DEVICE_ID_LENGTH])=0
virtual int setEffectsVolume(int volume)=0
unsigned int txAudioBytes
Definition: IAgoraRtcEngine.h:1445
virtual int enableInEarMonitoring(bool enabled)=0
Definition: IAgoraRtcEngine.h:1330
int x
Definition: IAgoraRtcEngine.h:2044
virtual void onVideoDeviceStateChanged(const char *deviceId, int deviceType, int deviceState)
Definition: IAgoraRtcEngine.h:3386
const char * channelName
Definition: IAgoraRtcEngine.h:2231
int height
Definition: IAgoraRtcEngine.h:1986
CAMERA_DIRECTION cameraDirection
Definition: IAgoraRtcEngine.h:2171
CHANNEL_MEDIA_RELAY_EVENT
Definition: IAgoraRtcEngine.h:1612
int audioChannel
Definition: IAgoraRtcEngine.h:2015
virtual int renewToken(const char *token)=0
Definition: IAgoraRtcEngine.h:279
int setLogFile(const char *filePath)
Definition: IAgoraRtcEngine.h:7336
VIDEO_CODEC_TYPE
Definition: IAgoraRtcEngine.h:744
int muteRemoteAudioStream(uid_t uid, bool mute)
Definition: IAgoraRtcEngine.h:7305
int videoBitrate
Definition: IAgoraRtcEngine.h:2194
virtual void onNetworkQuality(uid_t uid, int txQuality, int rxQuality)
Definition: IAgoraRtcEngine.h:2885
virtual ~IRtcEngineEventHandler()
Definition: IAgoraRtcEngine.h:2639
AUDIO_SAMPLE_RATE_TYPE
Definition: IAgoraRtcEngine.h:723
Definition: IAgoraRtcEngine.h:1297
double memoryAppUsageRatio
Definition: IAgoraRtcEngine.h:1518
virtual int updateChannelMediaRelay(const ChannelMediaRelayConfiguration &configuration)=0
Definition: IAgoraRtcEngine.h:1108
Definition: IAgoraRtcEngine.h:353
virtual void onUserEnableVideo(uid_t uid, bool enabled)
Definition: IAgoraRtcEngine.h:3199
Definition: IAgoraRtcEngine.h:66
CAPTURER_OUTPUT_PREFERENCE
Definition: IAgoraRtcEngine.h:1169
int setPlaybackAudioFrameParameters(int sampleRate, int channel, RAW_AUDIO_FRAME_OP_MODE_TYPE mode, int samplesPerCall)
Definition: IAgoraRtcEngine.h:7395
virtual void onTranscodingUpdated()
Definition: IAgoraRtcEngine.h:3605
virtual int setLogFileSize(unsigned int fileSizeInKBytes)=0
Definition: IAgoraRtcEngine.h:464
Definition: IAgoraRtcEngine.h:746
Definition: IAgoraRtcEngine.h:1428
Definition: IAgoraRtcEngine.h:1202
Definition: IAgoraRtcEngine.h:1315
unsigned int txVideoBytes
Definition: IAgoraRtcEngine.h:1449
Definition: IAgoraRtcEngine.h:1244
Definition: IAgoraRtcEngine.h:1782
int videoGop
Definition: IAgoraRtcEngine.h:2086
Definition: IAgoraRtcEngine.h:1229
ScreenCaptureParameters()
Definition: IAgoraRtcEngine.h:2396
virtual void onRemoteAudioMixingEnd()
Definition: IAgoraRtcEngine.h:3341
Definition: IAgoraRtcEngine.h:512
Definition: IAgoraRtcEngine.h:2588
LastmileProbeOneWayResult downlinkReport
Definition: IAgoraRtcEngine.h:1378
Definition: IAgoraRtcEngine.h:577
Rectangle(int xx, int yy, int ww, int hh)
Definition: IAgoraRtcEngine.h:2318
virtual int removeInjectStreamUrl(const char *url)=0
int y
Definition: IAgoraRtcEngine.h:2309
Definition: IAgoraRtcEngine.h:874
virtual int queryInterface(INTERFACE_ID_TYPE iid, void **inter)=0
RTMP_STREAM_PUBLISH_STATE
Definition: IAgoraRtcEngine.h:625
Definition: IAgoraRtcEngine.h:430
FRAME_RATE frameRate
Definition: IAgoraRtcEngine.h:1865
const char * appId
Definition: IAgoraRtcEngine.h:4247
Definition: IAgoraRtcEngine.h:1112
VOICE_CHANGER_PRESET
Definition: IAgoraRtcEngine.h:798
int adjustAudioMixingPlayoutVolume(int volume)
Definition: IAgoraRtcEngine.h:7026
Definition: IAgoraRtcEngine.h:306
virtual void onNetworkTypeChanged(NETWORK_TYPE type)
Definition: IAgoraRtcEngine.h:3764
Definition: IAgoraRtcEngine.h:698
virtual int stopRecordingDeviceTest()=0
const int COMPATIBLE_BITRATE
Definition: IAgoraRtcEngine.h:1849
Definition: IAgoraRtcEngine.h:1141
Definition: IAgoraRtcEngine.h:2490
virtual int getRecordingDeviceInfo(char deviceId[MAX_DEVICE_ID_LENGTH], char deviceName[MAX_DEVICE_ID_LENGTH])=0
VIDEO_MIRROR_MODE_TYPE mirrorMode
Definition: IAgoraRtcEngine.h:1939
int pauseAllEffects()
Definition: IAgoraRtcEngine.h:7156
unsigned int backgroundColor
Definition: IAgoraRtcEngine.h:2094
virtual int getUserInfoByUid(uid_t uid, UserInfo *userInfo)=0
LOCAL_AUDIO_STREAM_STATE
Definition: IAgoraRtcEngine.h:254
Definition: IAgoraRtcEngine.h:838
Definition: IAgoraRtcEngine.h:1114
int height
Definition: IAgoraRtcEngine.h:1739
CHANNEL_MEDIA_RELAY_ERROR
Definition: IAgoraRtcEngine.h:1567
Definition: IAgoraRtcEngine.h:708
Definition: IAgoraRtcEngine.h:285
Definition: IAgoraRtcEngine.h:1248
virtual void onFirstRemoteVideoFrame(uid_t uid, int width, int height, int elapsed)
Definition: IAgoraRtcEngine.h:3112
Definition: IAgoraRtcEngine.h:1246
Definition: IAgoraRtcEngine.h:365
MAX_USER_ACCOUNT_LENGTH_TYPE
Definition: IAgoraRtcEngine.h:30
Definition: IAgoraRtcEngine.h:446
int stopAllEffects()
Definition: IAgoraRtcEngine.h:7130
Definition: IAgoraRtcEngine.h:1628
Definition: IAgoraRtcEngine.h:6713
virtual void onTokenPrivilegeWillExpire(const char *token)
Definition: IAgoraRtcEngine.h:2845
virtual int setParameters(const char *parameters)=0
virtual int enableLocalAudio(bool enabled)=0
virtual void onAudioDeviceVolumeChanged(MEDIA_DEVICE_TYPE deviceType, int volume, bool muted)
Definition: IAgoraRtcEngine.h:3226
Definition: IAgoraRtcEngine.h:1327
Definition: IAgoraRtcEngine.h:1160
VideoDimensions dimensions
Definition: IAgoraRtcEngine.h:1860
Definition: IAgoraRtcEngine.h:686
Definition: IAgoraRtcEngine.h:414
int networkTransportDelay
Definition: IAgoraRtcEngine.h:1793
int height
Definition: IAgoraRtcEngine.h:2315
int setObject(const char *key, const char *format,...)
Definition: IAgoraRtcEngine.h:7473
Definition: IAgoraRtcEngine.h:508
virtual void onMetadataReceived(const Metadata &metadata)=0
Definition: IAgoraRtcEngine.h:6896
virtual void onStreamPublished(const char *url, int error)
Definition: IAgoraRtcEngine.h:3585
Definition: IAgoraRtcEngine.h:1242
Definition: IAgoraRtcEngine.h:176
virtual int enableLastmileTest()=0
VideoCanvas()
Definition: IAgoraRtcEngine.h:2433
LOCAL_VIDEO_STREAM_ERROR
Definition: IAgoraRtcEngine.h:237
CAMERA_DIRECTION
Definition: IAgoraRtcEngine.h:1353
int stopAllRemoteVideo()
Definition: IAgoraRtcEngine.h:7481
Definition: IAgoraRtcEngine.h:472
Definition: IAgoraRtcEngine.h:420
virtual int setCameraCapturerConfiguration(const CameraCapturerConfiguration &config)=0
virtual int setLogFile(const char *filePath)=0
Definition: IAgoraRtcEngine.h:806
int encoderOutputFrameRate
Definition: IAgoraRtcEngine.h:1684
virtual int stopScreenCapture()=0
virtual int setLocalVoiceReverb(AUDIO_REVERB_TYPE reverbKey, int value)=0
REMOTE_VIDEO_STATE_REASON
Definition: IAgoraRtcEngine.h:1059
virtual void onRemoteAudioMixingBegin()
Definition: IAgoraRtcEngine.h:3337
virtual int setupRemoteVideo(const VideoCanvas &canvas)=0
virtual int setDefaultAudioRouteToSpeakerphone(bool defaultToSpeaker)=0
virtual void onFirstLocalAudioFrame(int elapsed)
Definition: IAgoraRtcEngine.h:3533
int setLocalRenderMode(RENDER_MODE_TYPE renderMode)
Definition: IAgoraRtcEngine.h:7359
Definition: IAgoraRtcEngine.h:1106
Definition: IAgoraRtcEngine.h:810
Definition: IAgoraRtcEngine.h:1622
int muteRemoteVideoStream(uid_t uid, bool mute)
Definition: IAgoraRtcEngine.h:6953
Definition: IAgoraRtcEngine.h:6905
virtual int stopPlaybackDeviceTest()=0
virtual int setLocalVideoMirrorMode(VIDEO_MIRROR_MODE_TYPE mirrorMode)=0
virtual int getPlaybackDeviceVolume(int *volume)=0
Definition: IAgoraRtcEngine.h:546
Definition: IAgoraRtcEngine.h:1605
Definition: IAgoraRtcEngine.h:26
int delay
Definition: IAgoraRtcEngine.h:1731
Definition: IAgoraRtcEngine.h:2242
virtual int muteRemoteVideoStream(uid_t userId, bool mute)=0
long long timeStampMs
Definition: IAgoraRtcEngine.h:4305
virtual void onMediaEngineStartCallSuccess()
Definition: IAgoraRtcEngine.h:3508
Definition: IAgoraRtcEngine.h:597
virtual int enableSoundPositionIndication(bool enabled)=0
Definition: IAgoraRtcEngine.h:2566
unsigned short rxVideoKBitRate
Definition: IAgoraRtcEngine.h:1478
int numChannels
Definition: IAgoraRtcEngine.h:1802
CONNECTION_STATE_TYPE
Definition: IAgoraRtcEngine.h:1195
double memoryTotalUsageRatio
Definition: IAgoraRtcEngine.h:1523
virtual int getEffectsVolume()=0
Definition: IAgoraRtcEngine.h:1637
int totalActiveTime
Definition: IAgoraRtcEngine.h:1816
int numChannels
Definition: IAgoraRtcEngine.h:1772
Definition: IAgoraRtcEngine.h:1147
virtual void onWarning(int warn, const char *msg)
Definition: IAgoraRtcEngine.h:2648
virtual int setPlaybackAudioFrameParameters(int sampleRate, int channel, RAW_AUDIO_FRAME_OP_MODE_TYPE mode, int samplesPerCall)=0
AUDIO_CODEC_PROFILE_TYPE audioCodecProfile
Definition: IAgoraRtcEngine.h:2138
virtual int getArray(const char *key, agora::util::AString &value)=0
Definition: IAgoraRtcEngine.h:1667
virtual void onFirstLocalVideoFrame(int width, int height, int elapsed)
Definition: IAgoraRtcEngine.h:3053
Definition: IAgoraRtcEngine.h:63
Definition: IAgoraRtcEngine.h:319
Definition: IAgoraRtcEngine.h:1324
virtual int setProfile(const char *profile, bool merge)=0
Definition: IAgoraRtcEngine.h:1209
Definition: IAgoraRtcEngine.h:883
RENDER_MODE_TYPE
Definition: IAgoraRtcEngine.h:337
virtual int leaveChannel()=0
virtual int setHighQualityAudioParameters(bool fullband, bool stereo, bool fullBitrate)=0
Definition: IAgoraRtcEngine.h:386
Definition: IAgoraRtcEngine.h:2484
Definition: IAgoraRtcEngine.h:331
int setDefaultMuteAllRemoteVideoStreams(bool mute)
Definition: IAgoraRtcEngine.h:6948
Definition: IAgoraRtcEngine.h:919
Definition: IAgoraRtcEngine.h:1602
virtual int getBool(const char *key, bool &value)=0
Definition: IAgoraRtcEngine.h:1151
Definition: IAgoraRtcEngine.h:327
virtual void onAudioDeviceStateChanged(const char *deviceId, int deviceType, int deviceState)
Definition: IAgoraRtcEngine.h:3212
Definition: IAgoraRtcEngine.h:1055
VideoCanvas(view_t v, int rm, uid_t u, VIDEO_MIRROR_MODE_TYPE mm)
Definition: IAgoraRtcEngine.h:2461
Definition: IAgoraRtcEngine.h:422
Definition: IAgoraRtcEngine.h:1672
Definition: IAgoraRtcEngine.h:692
virtual int setScreenCaptureContentHint(VideoContentHint contentHint)=0
Definition: IAgoraRtcEngine.h:616
int videoGop
Definition: IAgoraRtcEngine.h:2186
virtual int setClientRole(CLIENT_ROLE_TYPE role)=0
Definition: IAgoraRtcEngine.h:1173
REMOTE_VIDEO_STATE
Definition: IAgoraRtcEngine.h:1036
virtual int rate(const char *callId, int rating, const char *description)=0
int stopAudioMixing()
Definition: IAgoraRtcEngine.h:7002
bool probeUplink
Definition: IAgoraRtcEngine.h:1388
LASTMILE_PROBE_RESULT_STATE
Definition: IAgoraRtcEngine.h:1291
int audioBitrate
Definition: IAgoraRtcEngine.h:2125
Definition: IAgoraRtcEngine.h:1312
unsigned int expectedDownlinkBitrate
Definition: IAgoraRtcEngine.h:1396
VideoCanvas(view_t v, int m, uid_t u)
Definition: IAgoraRtcEngine.h:2442
Definition: IAgoraRtcEngine.h:717
Definition: IAgoraRtcEngine.h:482
int setRecordingAudioFrameParameters(int sampleRate, int channel, RAW_AUDIO_FRAME_OP_MODE_TYPE mode, int samplesPerCall)
Definition: IAgoraRtcEngine.h:7391
Definition: IAgoraRtcEngine.h:618
virtual int playEffect(int soundId, const char *filePath, int loopCount, double pitch, double pan, int gain, bool publish=false)=0
RtcStats()
Definition: IAgoraRtcEngine.h:1529
Definition: IAgoraRtcEngine.h:786
virtual int setAudioMixingPosition(int pos)=0
virtual int stopPreview()=0
Definition: IAgoraRtcEngine.h:361
Definition: IAgoraRtcEngine.h:563
Definition: IAgoraRtcEngine.h:167
Definition: IAgoraRtcEngine.h:323
PRIORITY_TYPE
Definition: IAgoraRtcEngine.h:1184
Definition: IAgoraRtcEngine.h:2228
Definition: IAgoraRtcEngine.h:870
Definition: AgoraBase.h:792
Definition: IAgoraRtcEngine.h:188
virtual int enableLoopbackRecording(bool enabled, const char *deviceName=NULL)=0
virtual int setRemoteVideoStreamType(uid_t userId, REMOTE_VIDEO_STREAM_TYPE streamType)=0
virtual int updateScreenCaptureRegion(const Rectangle &regionRect)=0
virtual ~IAudioDeviceManager()
Definition: IAgoraRtcEngine.h:3988
Definition: IAgoraRtcEngine.h:584
Definition: IAgoraRtcEngine.h:927
Definition: IAgoraRtcEngine.h:830
Definition: IAgoraRtcEngine.h:50
virtual void onLastmileQuality(int quality)
Definition: IAgoraRtcEngine.h:2767
int muteAllRemoteVideoStreams(bool mute)
Definition: IAgoraRtcEngine.h:6942
Definition: IAgoraRtcEngine.h:412
Definition: IAgoraRtcEngine.h:1582
Definition: IAgoraRtcEngine.h:486
int height
Definition: IAgoraRtcEngine.h:2050
int encodedFrameWidth
Definition: IAgoraRtcEngine.h:1704
Rectangle()
Definition: IAgoraRtcEngine.h:2317
CLIENT_ROLE_TYPE
Definition: IAgoraRtcEngine.h:604
Definition: IAgoraRtcEngine.h:632
virtual int startAudioRecording(const char *filePath, AUDIO_RECORDING_QUALITY_TYPE quality)=0
virtual void onFirstRemoteAudioDecoded(uid_t uid, int elapsed)
Definition: IAgoraRtcEngine.h:3373
Definition: IAgoraRtcEngine.h:1116
int quality
Definition: IAgoraRtcEngine.h:1790
Definition: IAgoraRtcEngine.h:1970
Definition: IAgoraRtcEngine.h:2636
virtual int enableAudioVolumeIndication(int interval, int smooth, bool report_vad)=0
int setLogFileSize(unsigned int fileSizeInKBytes)
Definition: IAgoraRtcEngine.h:7354
virtual int muteLocalAudioStream(bool mute)=0
virtual int setInEarMonitoringVolume(int volume)=0
Definition: IAgoraRtcEngine.h:667
view_t view
Definition: IAgoraRtcEngine.h:2407
int audioBitrate
Definition: IAgoraRtcEngine.h:2204
Definition: IAgoraRtcEngine.h:818
Definition: IAgoraRtcEngine.h:767
bool visibleInPreview
Definition: IAgoraRtcEngine.h:2346
const char * url
Definition: IAgoraRtcEngine.h:2042
Definition: IAgoraRtcEngine.h:719
Definition: IAgoraRtcEngine.h:215
virtual void onChannelMediaRelayEvent(CHANNEL_MEDIA_RELAY_EVENT code)
Definition: IAgoraRtcEngine.h:3526
Definition: IAgoraRtcEngine.h:522
virtual int updateScreenCaptureParameters(const ScreenCaptureParameters &captureParams)=0
virtual ~IMetadataObserver()
Definition: IAgoraRtcEngine.h:4308
Definition: IAgoraRtcEngine.h:915
virtual int setVideoQualityParameters(bool preferFrameRateOverImageQuality)=0
virtual int setUInt(const char *key, unsigned int value)=0
int totalFrozenTime
Definition: IAgoraRtcEngine.h:1759
virtual int getPlaybackDevice(char deviceId[MAX_DEVICE_ID_LENGTH])=0
virtual void onConnectionInterrupted()
Definition: IAgoraRtcEngine.h:2796
int resumeEffect(int soundId)
Definition: IAgoraRtcEngine.h:7162
int packetLossRate
Definition: IAgoraRtcEngine.h:1752
virtual void onStreamMessageError(uid_t uid, int streamId, int code, int missed, int cached)
Definition: IAgoraRtcEngine.h:3496
virtual void onChannelMediaRelayStateChanged(CHANNEL_MEDIA_RELAY_STATE state, CHANNEL_MEDIA_RELAY_ERROR code)
Definition: IAgoraRtcEngine.h:3519
Definition: IAgoraRtcEngine.h:609
ChannelMediaRelayConfiguration()
Definition: IAgoraRtcEngine.h:2266
virtual void onVideoSizeChanged(uid_t uid, int width, int height, int rotation)
Definition: IAgoraRtcEngine.h:3413
virtual int getPlaybackDeviceMute(bool *mute)=0
Definition: IAgoraRtcEngine.h:390
virtual int setNumber(const char *key, double value)=0
Definition: IAgoraRtcEngine.h:462
virtual int adjustAudioMixingVolume(int volume)=0
Definition: IAgoraRtcEngine.h:1279
Definition: IAgoraRtcEngine.h:583
virtual void onRejoinChannelSuccess(const char *channel, uid_t uid, int elapsed)
Definition: IAgoraRtcEngine.h:2693
virtual void onLocalVideoStateChanged(LOCAL_VIDEO_STREAM_STATE localVideoState, LOCAL_VIDEO_STREAM_ERROR error)
Definition: IAgoraRtcEngine.h:3401
WatermarkOptions()
Definition: IAgoraRtcEngine.h:2358
Definition: IAgoraRtcEngine.h:2279
virtual int setLocalVoiceChanger(VOICE_CHANGER_PRESET voiceChanger)=0
Definition: IAgoraRtcEngine.h:402
AutoPtr(pointer_type p=0)
Definition: AgoraBase.h:49
Definition: IAgoraRtcEngine.h:498
Definition: IAgoraRtcEngine.h:983
ScreenCaptureParameters(int width, int height, int f, int b, bool c)
Definition: IAgoraRtcEngine.h:2398
Definition: IAgoraRtcEngine.h:245
Definition: IAgoraRtcEngine.h:438
int width
Definition: IAgoraRtcEngine.h:1983
Definition: IAgoraRtcEngine.h:173
Definition: IAgoraRtcEngine.h:212
AParameter(IRtcEngineParameter *p)
Definition: IAgoraRtcEngine.h:6910
Definition: IAgoraRtcEngine.h:1118
AGORA_API agora::rtc::IRtcEngine *AGORA_CALL createAgoraRtcEngine()
virtual int startLastmileProbeTest(const LastmileProbeConfig &config)=0
int setLocalVoiceReverb(AUDIO_REVERB_TYPE reverbKey, int value)
Definition: IAgoraRtcEngine.h:7198
Definition: IAgoraRtcEngine.h:203
Definition: IAgoraRtcEngine.h:2554
Definition: IAgoraRtcEngine.h:542
Definition: IAgoraRtcEngine.h:736
Definition: IAgoraRtcEngine.h:502
virtual bool onSendAudioPacket(Packet &packet)=0
RTMP_STREAM_PUBLISH_ERROR
Definition: IAgoraRtcEngine.h:650
virtual int getDevice(char deviceId[MAX_DEVICE_ID_LENGTH])=0
Definition: IAgoraRtcEngine.h:325
Definition: IAgoraRtcEngine.h:206
virtual int adjustPlaybackSignalVolume(int volume)=0
Definition: IAgoraRtcEngine.h:826
Definition: IAgoraRtcEngine.h:3835
virtual int unloadEffect(int soundId)=0
Definition: IAgoraRtcEngine.h:607
virtual int setObject(const char *key, const char *value)=0
int receivedSampleRate
Definition: IAgoraRtcEngine.h:1806
Definition: IAgoraRtcEngine.h:4289
virtual int enableFaceDetection(bool enable)=0
CHANNEL_PROFILE_TYPE
Definition: IAgoraRtcEngine.h:589
INJECT_STREAM_STATUS
Definition: IAgoraRtcEngine.h:677
ENCRYPTION_CONFIG
Definition: IAgoraRtcEngine.h:2569
RtcImage * backgroundImage
Definition: IAgoraRtcEngine.h:2119
virtual int joinChannelWithUserAccount(const char *token, const char *channelId, const char *userAccount)=0
virtual bool onReadyToSendMetadata(Metadata &metadata)=0
Definition: IAgoraRtcEngine.h:396
Definition: IAgoraRtcEngine.h:516
Definition: IAgoraRtcEngine.h:2177
Definition: IAgoraRtcEngine.h:78
virtual int initialize(const RtcEngineContext &context)=0
virtual int getAudioMixingPlayoutVolume()=0
Definition: IAgoraRtcEngine.h:950
int totalFrozenTime
Definition: IAgoraRtcEngine.h:1813
Definition: IAgoraRtcEngine.h:769
AUDIO_RECORDING_QUALITY_TYPE
Definition: IAgoraRtcEngine.h:297
Definition: IAgoraRtcEngine.h:1321
Definition: IAgoraRtcEngine.h:1262
virtual int getCallId(agora::util::AString &callId)=0
virtual int setChannelProfile(CHANNEL_PROFILE_TYPE profile)=0
Definition: AgoraBase.h:264
Definition: IAgoraRtcEngine.h:903
Definition: IAgoraRtcEngine.h:4273
Definition: IAgoraRtcEngine.h:1588
Definition: IAgoraRtcEngine.h:1287
const char * token
Definition: IAgoraRtcEngine.h:2234
Definition: IAgoraRtcEngine.h:939
Definition: IAgoraRtcEngine.h:444
MAX_DEVICE_ID_LENGTH_TYPE
Definition: IAgoraRtcEngine.h:22
MAX_CHANNEL_ID_LENGTH_TYPE
Definition: IAgoraRtcEngine.h:38
Definition: IAgoraRtcEngine.h:1238
virtual int setMixedAudioFrameParameters(int sampleRate, int samplesPerCall)=0
Definition: IAgoraRtcEngine.h:792
Definition: IAgoraRtcEngine.h:406
int setLocalVoiceReverbPreset(AUDIO_REVERB_PRESET reverbPreset)
Definition: IAgoraRtcEngine.h:7230
int height
Definition: IAgoraRtcEngine.h:2183
int getAudioMixingDuration()
Definition: IAgoraRtcEngine.h:7054
TranscodingUser()
Definition: IAgoraRtcEngine.h:2016
virtual int stopEchoTest()=0
virtual void onAudioMixingFinished()
Definition: IAgoraRtcEngine.h:3319
float smoothnessLevel
Definition: IAgoraRtcEngine.h:2506
Definition: IAgoraRtcEngine.h:241
Definition: IAgoraRtcEngine.h:342
int enableDualStreamMode(bool enabled)
Definition: IAgoraRtcEngine.h:7375
Definition: IAgoraRtcEngine.h:100
int getEffectsVolume()
Definition: IAgoraRtcEngine.h:7086
int adjustAudioMixingVolume(int volume)
Definition: IAgoraRtcEngine.h:7017
virtual void onAudioRouteChanged(AUDIO_ROUTE_TYPE routing)
Definition: IAgoraRtcEngine.h:3627
virtual int setLocalVoiceEqualization(AUDIO_EQUALIZATION_BAND_FREQUENCY bandFrequency, int bandGain)=0
Definition: AgoraBase.h:112
int enableLoopbackRecording(bool enabled, const char *deviceName=NULL)
Definition: IAgoraRtcEngine.h:7446
virtual int enableDualStreamMode(bool enabled)=0
Definition: IAgoraRtcEngine.h:1768
Definition: IAgoraRtcEngine.h:428
Definition: IAgoraRtcEngine.h:378
virtual int setLocalVoicePitch(double pitch)=0
virtual int setAudioProfile(AUDIO_PROFILE_TYPE profile, AUDIO_SCENARIO_TYPE scenario)=0
Definition: IAgoraRtcEngine.h:490
Definition: IAgoraRtcEngine.h:53
virtual void onRemoteAudioStats(const RemoteAudioStats &stats)
Definition: IAgoraRtcEngine.h:2941
unsigned int size
Definition: IAgoraRtcEngine.h:4299
int x
Definition: IAgoraRtcEngine.h:1977
virtual int enableVideo()=0
int muteLocalVideoStream(bool mute)
Definition: IAgoraRtcEngine.h:6937
int bottom
Definition: IAgoraRtcEngine.h:2331
virtual int setDevice(const char deviceId[MAX_DEVICE_ID_LENGTH])=0
int stopEffect(int soundId)
Definition: IAgoraRtcEngine.h:7124
Definition: IAgoraRtcEngine.h:3795
virtual IAudioDeviceCollection * enumerateRecordingDevices()=0
Definition: IAgoraRtcEngine.h:895
virtual int setApplicationVolume(int volume)=0
Definition: IAgoraRtcEngine.h:899
int setExternalAudioSink(bool enabled, int sampleRate, int channels)
Definition: IAgoraRtcEngine.h:7328
virtual int getPlaybackDeviceInfo(char deviceId[MAX_DEVICE_ID_LENGTH], char deviceName[MAX_DEVICE_ID_LENGTH])=0
Definition: IAgoraRtcEngine.h:1372
int setVideoQualityParameters(bool preferFrameRateOverImageQuality)
Definition: IAgoraRtcEngine.h:7410
Definition: IAgoraRtcEngine.h:494
Definition: IAgoraRtcEngine.h:600
Definition: IAgoraRtcEngine.h:500
int videoBitrate
Definition: IAgoraRtcEngine.h:2070
int adjustRecordingSignalVolume(int volume)
Definition: IAgoraRtcEngine.h:7274
virtual void onAudioQuality(uid_t uid, int quality, unsigned short delay, unsigned short lost)
Definition: IAgoraRtcEngine.h:2860
Definition: IAgoraRtcEngine.h:133
Definition: IAgoraRtcEngine.h:4283
Definition: IAgoraRtcEngine.h:1021
Definition: IAgoraRtcEngine.h:424
Definition: IAgoraRtcEngine.h:593
virtual int resumeEffect(int soundId)=0
virtual int setBool(const char *key, bool value)=0
AUDIO_SESSION_OPERATION_RESTRICTION
Definition: IAgoraRtcEngine.h:1338
Definition: IAgoraRtcEngine.h:1822
Definition: IAgoraRtcEngine.h:1563
int top
Definition: IAgoraRtcEngine.h:2325
Definition: IAgoraRtcEngine.h:384
VIDEO_MIRROR_MODE_TYPE mirrorMode
Definition: IAgoraRtcEngine.h:2431
virtual int getUInt(const char *key, unsigned int &value)=0
Definition: IAgoraRtcEngine.h:380
QUALITY_REPORT_FORMAT_TYPE
Definition: IAgoraRtcEngine.h:46
Definition: IAgoraRtcEngine.h:1333
Definition: IAgoraRtcEngine.h:1256
int setPlaybackDeviceVolume(int volume)
Definition: IAgoraRtcEngine.h:6958
virtual ~IVideoDeviceCollection()
Definition: IAgoraRtcEngine.h:3798
Definition: IAgoraRtcEngine.h:635
Definition: IAgoraRtcEngine.h:267
uid_t uid
Definition: IAgoraRtcEngine.h:2237
Definition: IAgoraRtcEngine.h:72
virtual int setEncryptionSecret(const char *secret)=0
int targetBitrate
Definition: IAgoraRtcEngine.h:1690
AUDIO_EQUALIZATION_BAND_FREQUENCY
Definition: IAgoraRtcEngine.h:756
int encodedFrameCount
Definition: IAgoraRtcEngine.h:1710
virtual int startEchoTest()=0
LOCAL_AUDIO_STREAM_ERROR
Definition: IAgoraRtcEngine.h:272
Definition: IAgoraRtcEngine.h:2294
virtual int getRecordingDeviceMute(bool *mute)=0
Definition: AgoraBase.h:113
VIDEO_PROFILE_TYPE
Definition: IAgoraRtcEngine.h:369
int setMixedAudioFrameParameters(int sampleRate, int samplesPerCall)
Definition: IAgoraRtcEngine.h:7399
Definition: IAgoraRtcEngine.h:550
BeautyOptions()
Definition: IAgoraRtcEngine.h:2518
int width
Definition: IAgoraRtcEngine.h:1824
virtual int addPublishStreamUrl(const char *url, bool transcodingEnabled)=0
Definition: IAgoraRtcEngine.h:1006
Definition: AgoraBase.h:45
virtual int setExternalAudioSink(bool enabled, int sampleRate, int channels)=0
virtual int resumeAudioMixing()=0
double alpha
Definition: IAgoraRtcEngine.h:2003
int getAudioMixingCurrentPosition()
Definition: IAgoraRtcEngine.h:7063
int setAudioMixingPosition(int pos)
Definition: IAgoraRtcEngine.h:7072
unsigned int uid
Definition: IAgoraRtcEngine.h:4296
virtual void onLocalPublishFallbackToAudioOnly(bool isFallbackOrRecover)
Definition: IAgoraRtcEngine.h:3639
Definition: IAgoraRtcEngine.h:1136
virtual void onJoinChannelSuccess(const char *channel, uid_t uid, int elapsed)
Definition: IAgoraRtcEngine.h:2679
Definition: IAgoraRtcEngine.h:973
virtual int setRecordingAudioFrameParameters(int sampleRate, int channel, RAW_AUDIO_FRAME_OP_MODE_TYPE mode, int samplesPerCall)=0
Definition: IAgoraRtcEngine.h:1268
virtual void onUserInfoUpdated(uid_t uid, const UserInfo &info)
Definition: IAgoraRtcEngine.h:3784
Definition: IAgoraRtcEngine.h:1720
HWND WindowIDType
Definition: IAgoraRtcEngine.h:6164
Definition: IAgoraRtcEngine.h:6922
unsigned short txPacketLossRate
Definition: IAgoraRtcEngine.h:1489
Definition: IAgoraRtcEngine.h:581
virtual int stopAudioRecording()=0
virtual int disableVideo()=0
virtual int getInt(const char *key, int &value)=0
Definition: IAgoraRtcEngine.h:1578
int setExternalAudioSource(bool enabled, int sampleRate, int channels)
Definition: IAgoraRtcEngine.h:7320
Definition: IAgoraRtcEngine.h:1625
Definition: IAgoraRtcEngine.h:1619
uid_t uid
Definition: IAgoraRtcEngine.h:1973
virtual int enableAudio()=0
int frameRate
Definition: IAgoraRtcEngine.h:2383
const char * transcodingExtraInfo
Definition: IAgoraRtcEngine.h:2105
virtual int disableAudio()=0
int totalActiveTime
Definition: IAgoraRtcEngine.h:1764
int width
Definition: IAgoraRtcEngine.h:1735
Definition: IAgoraRtcEngine.h:750
Definition: IAgoraRtcEngine.h:474
REMOTE_AUDIO_STATE_REASON
Definition: IAgoraRtcEngine.h:992
virtual int getObject(const char *key, agora::util::AString &value)=0
VideoContentHint
Definition: IAgoraRtcEngine.h:2287
int width
Definition: IAgoraRtcEngine.h:2312
Definition: IAgoraRtcEngine.h:1164
virtual int setString(const char *key, const char *value)=0
struct agora::rtc::LiveTranscoding LiveTranscoding
Definition: IAgoraRtcEngine.h:653
int setEffectsVolume(int volume)
Definition: IAgoraRtcEngine.h:7096
virtual int getApplicationVolume(int &volume)=0
Definition: IAgoraRtcEngine.h:644
int height
Definition: IAgoraRtcEngine.h:2065
Definition: IAgoraRtcEngine.h:388
virtual int setLogFilter(unsigned int filter)=0
Definition: IAgoraRtcEngine.h:629
virtual int addVideoWatermark(const RtcImage &watermark)=0
QUALITY_ADAPT_INDICATION
Definition: IAgoraRtcEngine.h:1557
virtual bool onReceiveVideoPacket(Packet &packet)=0
virtual int setEnableSpeakerphone(bool speakerOn)=0
Definition: IAgoraRtcEngine.h:2282
AUDIO_REVERB_PRESET
Definition: IAgoraRtcEngine.h:879
ORIENTATION_MODE
Definition: IAgoraRtcEngine.h:1123
virtual int getMaxMetadataSize()=0
Definition: IAgoraRtcEngine.h:996
Definition: IAgoraRtcEngine.h:562
virtual void onMediaEngineLoadSuccess()
Definition: IAgoraRtcEngine.h:3505
Definition: IAgoraRtcEngine.h:846
virtual bool onSendVideoPacket(Packet &packet)=0
Definition: IAgoraRtcEngine.h:94
int minFrameRate
Definition: IAgoraRtcEngine.h:1868
Definition: IAgoraRtcEngine.h:363
Definition: IAgoraRtcEngine.h:436
int setLocalVideoMirrorMode(VIDEO_MIRROR_MODE_TYPE mirrorMode)
Definition: IAgoraRtcEngine.h:7415
int setCameraCapturerConfiguration(const CameraCapturerConfiguration &config)
Definition: IAgoraRtcEngine.h:7369
Definition: IAgoraRtcEngine.h:690
INTERFACE_ID_TYPE
Definition: AgoraBase.h:109
virtual int setInt(const char *key, int value)=0
void * view_t
Definition: IAgoraRtcEngine.h:19
Definition: IAgoraRtcEngine.h:1222
virtual int convertPath(const char *filePath, agora::util::AString &value)=0
Definition: IAgoraRtcEngine.h:1149
int destCount
Definition: IAgoraRtcEngine.h:2264