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 {
350 };
351 
354 {
357  VIDEO_MIRROR_MODE_AUTO = 0,//determined by SDK
359  VIDEO_MIRROR_MODE_ENABLED = 1,//enabled mirror
361  VIDEO_MIRROR_MODE_DISABLED = 2,//disable mirror
362 };
363 
366 {
521 };
522 
526 enum AUDIO_PROFILE_TYPE // sample rate, bit rate, mono/stereo, speech/music codec
527 {
533  AUDIO_PROFILE_DEFAULT = 0, // use default settings
537  AUDIO_PROFILE_SPEECH_STANDARD = 1, // 32Khz, 18Kbps, mono, speech
541  AUDIO_PROFILE_MUSIC_STANDARD = 2, // 48Khz, 48Kbps, mono, music
545  AUDIO_PROFILE_MUSIC_STANDARD_STEREO = 3, // 48Khz, 56Kbps, stereo, music
549  AUDIO_PROFILE_MUSIC_HIGH_QUALITY = 4, // 48Khz, 128Kbps, mono, music
553  AUDIO_PROFILE_MUSIC_HIGH_QUALITY_STEREO = 5, // 48Khz, 192Kbps, stereo, music
559 };
560 
563 enum AUDIO_SCENARIO_TYPE // set a suitable scenario for your app type
564 {
580 };
581 
585 {
596 };
597 
600 {
605 };
606 
609 {
616 };
621 {
640 };
641 
646 {
669 };
670 
673 {
696 };
699 {
704 };
705 
709 {
716 };
717 
720 {
727 };
728 
731 {
737 };
738 
749 };
750 
753 {
774 };
775 
778 {
780  AUDIO_REVERB_DRY_LEVEL = 0, // (dB, [-20,10]), the level of the dry signal
782  AUDIO_REVERB_WET_LEVEL = 1, // (dB, [-20,10]), the level of the early reflection signal (wet signal)
784  AUDIO_REVERB_ROOM_SIZE = 2, // ([0,100]), the room size of the reflection
786  AUDIO_REVERB_WET_DELAY = 3, // (ms, [0,200]), the length of the initial delay of the wet signal in ms
788  AUDIO_REVERB_STRENGTH = 4, // ([0,100]), the strength of the reverberation
789 };
790 
795  VOICE_CHANGER_OFF = 0, //Turn off the voice changer
814 };
815 
820  AUDIO_REVERB_OFF = 0, // Turn off audio reverb
842 };
845 {
850 };
851 
855 {
861  REMOTE_AUDIO_STATE_STOPPED = 0, // Default state, audio is started or remote user disabled/muted audio stream
864  REMOTE_AUDIO_STATE_STARTING = 1, // The first audio frame packet has been received
870  REMOTE_AUDIO_STATE_DECODING = 2, // The first remote audio frame has been decoded or fronzen state ends
874  REMOTE_AUDIO_STATE_FROZEN = 3, // Remote audio is frozen, probably due to network issue
878  REMOTE_AUDIO_STATE_FAILED = 4, // Remote audio play failed
879 };
880 
884 {
913 };
914 
916 // enum REMOTE_VIDEO_STATE
917 // {
918 // // REMOTE_VIDEO_STATE_STOPPED is not used at this version. Ignore this value.
919 // // REMOTE_VIDEO_STATE_STOPPED = 0, // Default state, video is started or remote user disabled/muted video stream
920 // /** 1: The remote video is playing. */
921 // REMOTE_VIDEO_STATE_RUNNING = 1, // Running state, remote video can be displayed normally
922 // /** 2: The remote video is frozen. */
923 // REMOTE_VIDEO_STATE_FROZEN = 2, // Remote video is frozen, probably due to network issue.
924 // };
925 
931 
935 
939 
943 
947 };
948 
954 
958 
962 
966 
970 
974 
978 
982 
986 
990 
991 };
992 
995 {
1010 };
1011 
1033 };
1034 
1043 };
1044 
1047 {
1056 };
1057 
1061  {
1071  };
1072 
1076 {
1083 };
1084 
1087 {
1121 };
1122 
1125 {
1160 };
1161 
1164 {
1179 };
1180 
1189 };
1213 };
1214 
1215 #if (defined(__APPLE__) && TARGET_OS_IOS)
1216 
1228 };
1229 #endif
1230 
1231 #if defined(__ANDROID__) || (defined(__APPLE__) && TARGET_OS_IOS)
1237 };
1238 #endif
1239 
1243  unsigned int packetLossRate;
1245  unsigned int jitter;
1246  /* The estimated available bandwidth (bps). */
1247  unsigned int availableBandwidth;
1248 };
1249 
1259  unsigned int rtt;
1260 };
1261 
1276 };
1277 
1283 {
1290  unsigned int volume;
1299  unsigned int vad;
1302  const char * channelId;
1303 };
1304 
1307 struct RtcStats
1308 {
1312  unsigned int duration;
1316  unsigned int txBytes;
1320  unsigned int rxBytes;
1324  unsigned int txAudioBytes;
1328  unsigned int txVideoBytes;
1332  unsigned int rxAudioBytes;
1336  unsigned int rxVideoBytes;
1337 
1341  unsigned short txKBitRate;
1345  unsigned short rxKBitRate;
1349  unsigned short rxAudioKBitRate;
1353  unsigned short txAudioKBitRate;
1357  unsigned short rxVideoKBitRate;
1361  unsigned short txVideoKBitRate;
1364  unsigned short lastmileDelay;
1368  unsigned short txPacketLossRate;
1372  unsigned short rxPacketLossRate;
1381  unsigned int userCount;
1385  double cpuAppUsage;
1409  : duration(0)
1410  , txBytes(0)
1411  , rxBytes(0)
1412  , txAudioBytes(0)
1413  , txVideoBytes(0)
1414  , rxAudioBytes(0)
1415  , rxVideoBytes(0)
1416  , txKBitRate(0)
1417  , rxKBitRate(0)
1418  , rxAudioKBitRate(0)
1419  , txAudioKBitRate(0)
1420  , rxVideoKBitRate(0)
1421  , txVideoKBitRate(0)
1422  , lastmileDelay(0)
1423  , txPacketLossRate(0)
1424  , rxPacketLossRate(0)
1425  , userCount(0)
1426  , cpuAppUsage(0)
1427  , cpuTotalUsage(0)
1428  , gatewayRtt(0)
1429  , memoryAppUsageRatio(0)
1431  , memoryAppUsageInKbytes(0) {}
1432 };
1433 
1443 };
1444 
1488 };
1489 
1530 };
1531 
1547 };
1548 
1552 {
1595 };
1596 
1600 {
1607  int delay;
1611  int width;
1615  int height;
1640 };
1641 
1644 {
1654 };
1655 
1658 {
1665  int quality;
1690 };
1691 
1697  int width;
1699  int height;
1701  : width(640), height(480)
1702  {}
1703  VideoDimensions(int w, int h)
1704  : width(w), height(h)
1705  {}
1706 };
1707 
1716 const int STANDARD_BITRATE = 0;
1717 
1722 const int COMPATIBLE_BITRATE = -1;
1723 
1726 const int DEFAULT_MIN_BITRATE = -1;
1727 
1791  int bitrate;
1810 
1812  const VideoDimensions& d, FRAME_RATE f,
1814  : dimensions(d), frameRate(f), minFrameRate(-1), bitrate(b),
1817  {}
1819  int width, int height, FRAME_RATE f,
1821  : dimensions(width, height), frameRate(f),
1822  minFrameRate(-1), bitrate(b),
1825  {}
1827  : dimensions(640, 480)
1829  , minFrameRate(-1)
1835  {}
1836 };
1837 
1840 typedef struct TranscodingUser {
1844 
1847  int x;
1850  int y;
1853  int width;
1856  int height;
1857 
1867  int zOrder;
1873  double alpha;
1887  : uid(0)
1888  , x(0)
1889  , y(0)
1890  , width(0)
1891  , height(0)
1892  , zOrder(0)
1893  , alpha(1.0)
1894  , audioChannel(0)
1895  {}
1896 
1897 } TranscodingUser;
1898 
1903 typedef struct RtcImage {
1905  url(NULL),
1906  x(0),
1907  y(0),
1908  width(0),
1909  height(0)
1910  {}
1912  const char* url;
1914  int x;
1916  int y;
1918  int width;
1920  int height;
1921 } RtcImage;
1922 
1925 typedef struct LiveTranscoding {
1930  int width;
1935  int height;
1946 
1953 
1964  unsigned int backgroundColor;
1967  unsigned int userCount;
1976 
1979  const char *metadata;
2009 
2010 
2012  : width(360)
2013  , height(640)
2014  , videoBitrate(400)
2015  , videoFramerate(15)
2016  , lowLatency(false)
2017  , videoGop(30)
2019  , backgroundColor(0x000000)
2020  , userCount(0)
2021  , transcodingUsers(NULL)
2022  , transcodingExtraInfo(NULL)
2023  , metadata(NULL)
2024  , watermark(NULL)
2025  , backgroundImage(NULL)
2027  , audioBitrate(48)
2028  , audioChannels(1)
2030  {}
2031 } LiveTranscoding;
2032 
2036 
2039  #if defined(__ANDROID__) || (defined(__APPLE__) && TARGET_OS_IOS)
2040 
2042  #endif
2043  };
2044 
2050  int width;
2053  int height;
2083 
2084  // width / height default set to 0 means pull the stream with its original resolution
2086  : width(0)
2087  , height(0)
2088  , videoGop(30)
2089  , videoFramerate(15)
2090  , videoBitrate(400)
2092  , audioBitrate(48)
2093  , audioChannels(1)
2094  {}
2095 };
2101  const char* channelName;
2104  const char* token;
2108 };
2109 
2135 
2137  : srcInfo(nullptr)
2138  , destInfos(nullptr)
2139  , destCount(0)
2140  {}
2141 };
2142 
2146 {
2153 };
2154 
2158 {
2168 };
2169 
2173 {
2176  int x;
2179  int y;
2182  int width;
2185  int height;
2186 
2187  Rectangle(): x(0), y(0), width(0), height(0) {}
2188  Rectangle(int xx, int yy, int ww, int hh): x(xx), y(yy), width(ww), height(hh) {}
2189 };
2190 
2192 typedef struct Rect {
2195  int top;
2198  int left;
2201  int bottom;
2204  int right;
2205 
2206  Rect(): top(0), left(0), bottom(0), right(0) {}
2207  Rect(int t, int l, int b, int r): top(t), left(l), bottom(b), right(r) {}
2208 } Rect;
2209 
2211 typedef struct WatermarkOptions {
2227 
2229  : visibleInPreview(true)
2230  , positionInLandscapeMode(0, 0, 0, 0)
2231  , positionInPortraitMode(0, 0, 0, 0)
2232  {}
2234 
2238 {
2258  int bitrate;
2265 
2267  ScreenCaptureParameters(const VideoDimensions& d, int f, int b, bool c) : dimensions(d), frameRate(f), bitrate(b), captureMouseCursor(c) {}
2268  ScreenCaptureParameters(int width, int height, int f, int b, bool c) : dimensions(width, height), frameRate(f), bitrate(b), captureMouseCursor(c) {}
2269 };
2270 
2274 {
2295  void *priv; // private data (underlying video engine denotes it)
2302 
2304  : view(NULL)
2306  , uid(0)
2307  , priv(NULL)
2309  {
2310  channelId[0] = '\0';
2311  }
2312  VideoCanvas(view_t v, int m, uid_t u)
2313  : view(v)
2314  , renderMode(m)
2315  , uid(u)
2316  , priv(NULL)
2318  {
2319  channelId[0] = '\0';
2320  }
2321  VideoCanvas(view_t v, int m, const char *ch, uid_t u)
2322  : view(v)
2323  , renderMode(m)
2324  , uid(u)
2325  , priv(NULL)
2327  {
2328  strncpy(channelId, ch, MAX_CHANNEL_ID_LENGTH);
2329  channelId[MAX_CHANNEL_ID_LENGTH - 1] = '\0';
2330  }
2332  : view(v)
2333  , renderMode(rm)
2334  , uid(u)
2335  , priv(NULL)
2336  , mirrorMode(mm)
2337  {
2338  channelId[0] = '\0';
2339  }
2340  VideoCanvas(view_t v, int rm, const char *ch, uid_t u, VIDEO_MIRROR_MODE_TYPE mm)
2341  : view(v)
2342  , renderMode(rm)
2343  , uid(u)
2344  , priv(NULL)
2345  , mirrorMode(mm)
2346  {
2347  strncpy(channelId, ch, MAX_CHANNEL_ID_LENGTH);
2348  channelId[MAX_CHANNEL_ID_LENGTH - 1] = '\0';
2349  }
2350 };
2351 
2358  {
2365  };
2366 
2370 
2373 
2377 
2381 
2382 BeautyOptions(LIGHTENING_CONTRAST_LEVEL contrastLevel, float lightening, float smoothness, float redness)
2383  : lighteningLevel(lightening),
2384  smoothnessLevel(smoothness),
2385  rednessLevel(redness),
2386  lighteningContrastLevel(contrastLevel) {}
2387 
2389  : lighteningLevel(0),
2390  smoothnessLevel(0),
2391  rednessLevel(0),
2393 };
2394 
2395 struct UserInfo {
2399  : uid(0) {
2400  userAccount[0] = '\0';
2401  }
2402 };
2403 
2407 {
2408 public:
2411  struct Packet
2412  {
2416  const unsigned char* buffer;
2419  unsigned int size;
2420  };
2428  virtual bool onSendAudioPacket(Packet& packet) = 0;
2436  virtual bool onSendVideoPacket(Packet& packet) = 0;
2444  virtual bool onReceiveAudioPacket(Packet& packet) = 0;
2452  virtual bool onReceiveVideoPacket(Packet& packet) = 0;
2453 };
2454 
2460 {
2461 public:
2463 
2471  virtual void onWarning(int warn, const char* msg) {
2472  (void)warn;
2473  (void)msg;
2474  }
2475 
2485  virtual void onError(int err, const char* msg) {
2486  (void)err;
2487  (void)msg;
2488  }
2489 
2502  virtual void onJoinChannelSuccess(const char* channel, uid_t uid, int elapsed) {
2503  (void)channel;
2504  (void)uid;
2505  (void)elapsed;
2506  }
2507 
2516  virtual void onRejoinChannelSuccess(const char* channel, uid_t uid, int elapsed) {
2517  (void)channel;
2518  (void)uid;
2519  (void)elapsed;
2520  }
2521 
2530  virtual void onLeaveChannel(const RtcStats& stats) {
2531  (void)stats;
2532  }
2533 
2542  virtual void onClientRoleChanged(CLIENT_ROLE_TYPE oldRole, CLIENT_ROLE_TYPE newRole) {
2543  }
2544 
2564  virtual void onUserJoined(uid_t uid, int elapsed) {
2565  (void)uid;
2566  (void)elapsed;
2567  }
2568 
2579  virtual void onUserOffline(uid_t uid, USER_OFFLINE_REASON_TYPE reason) {
2580  (void)uid;
2581  (void)reason;
2582  }
2583 
2590  virtual void onLastmileQuality(int quality) {
2591  (void)quality;
2592  }
2593 
2600  virtual void onLastmileProbeResult(const LastmileProbeResult& result) {
2601  (void)result;
2602  }
2603 
2619  virtual void onConnectionInterrupted() {}
2620 
2633  virtual void onConnectionLost() {}
2634 
2639  virtual void onConnectionBanned() {}
2640 
2647  virtual void onApiCallExecuted(int err, const char* api, const char* result) {
2648  (void)err;
2649  (void)api;
2650  (void)result;
2651  }
2652 
2659  virtual void onRequestToken() {
2660  }
2661 
2668  virtual void onTokenPrivilegeWillExpire(const char* token) {
2669  (void)token;
2670  }
2671 
2683  virtual void onAudioQuality(uid_t uid, int quality, unsigned short delay, unsigned short lost) {
2684  (void)uid;
2685  (void)quality;
2686  (void)delay;
2687  (void)lost;
2688  }
2689 
2696  virtual void onRtcStats(const RtcStats& stats) {
2697  (void)stats;
2698  }
2699 
2708  virtual void onNetworkQuality(uid_t uid, int txQuality, int rxQuality) {
2709  (void)uid;
2710  (void)txQuality;
2711  (void)rxQuality;
2712  }
2713 
2726  virtual void onLocalVideoStats(const LocalVideoStats& stats) {
2727  (void)stats;
2728  }
2729 
2739  virtual void onRemoteVideoStats(const RemoteVideoStats& stats) {
2740  (void)stats;
2741  }
2742 
2750  virtual void onLocalAudioStats(const LocalAudioStats& stats) {
2751  (void)stats;
2752  }
2753 
2762  virtual void onRemoteAudioStats(const RemoteAudioStats& stats) {
2763  (void)stats;
2764  }
2765 
2781  (void)state;
2782  (void)error;
2783  }
2784 
2797  virtual void onRemoteAudioStateChanged(uid_t uid, REMOTE_AUDIO_STATE state, REMOTE_AUDIO_STATE_REASON reason, int elapsed) {
2798  (void)uid;
2799  (void)state;
2800  (void)reason;
2801  (void)elapsed;
2802  }
2803 
2839  virtual void onAudioVolumeIndication(const AudioVolumeInfo* speakers, unsigned int speakerNumber, int totalVolume) {
2840  (void)speakers;
2841  (void)speakerNumber;
2842  (void)totalVolume;
2843  }
2844 
2855  virtual void onActiveSpeaker(uid_t uid) {
2856  (void)uid;
2857  }
2858 
2865  virtual void onVideoStopped() {}
2866 
2874  virtual void onFirstLocalVideoFrame(int width, int height, int elapsed) {
2875  (void)width;
2876  (void)height;
2877  (void)elapsed;
2878  }
2879 
2912  virtual void onFirstRemoteVideoDecoded(uid_t uid, int width, int height, int elapsed) {
2913  (void)uid;
2914  (void)width;
2915  (void)height;
2916  (void)elapsed;
2917  }
2918 
2930  virtual void onFirstRemoteVideoFrame(uid_t uid, int width, int height, int elapsed) {
2931  (void)uid;
2932  (void)width;
2933  (void)height;
2934  (void)elapsed;
2935  }
2936 
2949  virtual void onUserMuteAudio(uid_t uid, bool muted) {
2950  (void)uid;
2951  (void)muted;
2952  }
2953 
2978  virtual void onUserMuteVideo(uid_t uid, bool muted) {
2979  (void)uid;
2980  (void)muted;
2981  }
2982 
3014  virtual void onUserEnableVideo(uid_t uid, bool enabled) {
3015  (void)uid;
3016  (void)enabled;
3017  }
3018 
3027  virtual void onAudioDeviceStateChanged(const char* deviceId, int deviceType, int deviceState) {
3028  (void)deviceId;
3029  (void)deviceType;
3030  (void)deviceState;
3031  }
3032 
3041  virtual void onAudioDeviceVolumeChanged(MEDIA_DEVICE_TYPE deviceType, int volume, bool muted) {
3042  (void)deviceType;
3043  (void)volume;
3044  (void)muted;
3045  }
3046 
3053  virtual void onCameraReady() {}
3054 
3066  virtual void onCameraFocusAreaChanged(int x, int y, int width, int height) {
3067  (void)x;
3068  (void)y;
3069  (void)width;
3070  (void)height;
3071  }
3072 
3084  virtual void onCameraExposureAreaChanged(int x, int y, int width, int height) {
3085  (void)x;
3086  (void)y;
3087  (void)width;
3088  (void)height;
3089  }
3090 
3100  virtual void onAudioMixingFinished() {
3101  }
3102 
3114  virtual void onAudioMixingStateChanged(fAUDIO_MIXING_STATE_TYPE state, AUDIO_MIXING_ERROR_TYPE errorCode){
3115  }
3120  virtual void onRemoteAudioMixingBegin() {
3121  }
3124  virtual void onRemoteAudioMixingEnd() {
3125  }
3126 
3133  virtual void onAudioEffectFinished(int soundId) {
3134  }
3135 
3136 
3153  virtual void onFirstRemoteAudioDecoded(uid_t uid, int elapsed) {
3154  (void)uid;
3155  (void)elapsed;
3156  }
3157 
3166  virtual void onVideoDeviceStateChanged(const char* deviceId, int deviceType, int deviceState) {
3167  (void)deviceId;
3168  (void)deviceType;
3169  (void)deviceState;
3170  }
3171 
3182  (void)localVideoState;
3183  (void)error;
3184  }
3185 
3193  virtual void onVideoSizeChanged(uid_t uid, int width, int height, int rotation) {
3194  (void)uid;
3195  (void)width;
3196  (void)height;
3197  (void)rotation;
3198  }
3209  virtual void onRemoteVideoStateChanged(uid_t uid, REMOTE_VIDEO_STATE state, REMOTE_VIDEO_STATE_REASON reason, int elapsed) {
3210  (void)uid;
3211  (void)state;
3212  (void)reason;
3213  (void)elapsed;
3214  }
3215 
3245  virtual void onUserEnableLocalVideo(uid_t uid, bool enabled) {
3246  (void)uid;
3247  (void)enabled;
3248  }
3249 
3250 // virtual void onStreamError(int streamId, int code, int parameter, const char* message, size_t length) {}
3259  virtual void onStreamMessage(uid_t uid, int streamId, const char* data, size_t length) {
3260  (void)uid;
3261  (void)streamId;
3262  (void)data;
3263  (void)length;
3264  }
3265 
3275  virtual void onStreamMessageError(uid_t uid, int streamId, int code, int missed, int cached) {
3276  (void)uid;
3277  (void)streamId;
3278  (void)code;
3279  (void)missed;
3280  (void)cached;
3281  }
3282 
3284  virtual void onMediaEngineLoadSuccess() {
3285  }
3288  }
3289 
3299  }
3300 
3306  }
3307 
3312  virtual void onFirstLocalAudioFrame(int elapsed) {
3313  (void)elapsed;
3314  }
3315 
3323  virtual void onFirstRemoteAudioFrame(uid_t uid, int elapsed) {
3324  (void)uid;
3325  (void)elapsed;
3326  }
3327 
3340  (void) url;
3341  (void) state;
3342  (void) errCode;
3343  }
3344 
3364  virtual void onStreamPublished(const char *url, int error) {
3365  (void)url;
3366  (void)error;
3367  }
3376  virtual void onStreamUnpublished(const char *url) {
3377  (void)url;
3378  }
3386  virtual void onTranscodingUpdated() {
3387  }
3394  virtual void onStreamInjectedStatus(const char* url, uid_t uid, int status) {
3395  (void)url;
3396  (void)uid;
3397  (void)status;
3398  }
3399 
3408  virtual void onAudioRouteChanged(AUDIO_ROUTE_TYPE routing) {
3409  (void)routing;
3410  }
3411 
3420  virtual void onLocalPublishFallbackToAudioOnly(bool isFallbackOrRecover) {
3421  (void)isFallbackOrRecover;
3422  }
3423 
3448  virtual void onRemoteSubscribeFallbackToAudioOnly(uid_t uid, bool isFallbackOrRecover) {
3449  (void)uid;
3450  (void)isFallbackOrRecover;
3451  }
3452 
3472  uid_t uid, unsigned short delay, unsigned short lost,
3473  unsigned short rxKBitRate) {
3474  (void)uid;
3475  (void)delay;
3476  (void)lost;
3477  (void)rxKBitRate;
3478  }
3479 
3499  uid_t uid, unsigned short delay, unsigned short lost,
3500  unsigned short rxKBitRate) {
3501  (void)uid;
3502  (void)delay;
3503  (void)lost;
3504  (void)rxKBitRate;
3505  }
3506 
3523  virtual void onMicrophoneEnabled(bool enabled) {
3524  (void)enabled;
3525  }
3533  (void)state;
3534  (void)reason;
3535  }
3536 
3543  virtual void onNetworkTypeChanged(NETWORK_TYPE type) {
3544  (void)type;
3545  }
3551  virtual void onLocalUserRegistered(uid_t uid, const char* userAccount) {
3552  (void)uid;
3553  (void)userAccount;
3554  }
3563  virtual void onUserInfoUpdated(uid_t uid, const UserInfo& info) {
3564  (void)uid;
3565  (void)info;
3566  }
3567 };
3568 
3575 {
3576 protected:
3578 public:
3583  virtual int getCount() = 0;
3584 
3594  virtual int getDevice(int index, char deviceName[MAX_DEVICE_ID_LENGTH], char deviceId[MAX_DEVICE_ID_LENGTH]) = 0;
3595 
3603  virtual int setDevice(const char deviceId[MAX_DEVICE_ID_LENGTH]) = 0;
3604 
3607  virtual void release() = 0;
3608 };
3609 
3615 {
3616 protected:
3618 public:
3619 
3629 
3640  virtual int startDeviceTest(view_t hwnd) = 0;
3641 
3648  virtual int stopDeviceTest() = 0;
3649 
3660  virtual int setDevice(const char deviceId[MAX_DEVICE_ID_LENGTH]) = 0;
3661 
3669  virtual int getDevice(char deviceId[MAX_DEVICE_ID_LENGTH]) = 0;
3670 
3673  virtual void release() = 0;
3674 };
3675 
3681 {
3682 protected:
3684 public:
3685 
3692  virtual int getCount() = 0;
3693 
3703  virtual int getDevice(int index, char deviceName[MAX_DEVICE_ID_LENGTH], char deviceId[MAX_DEVICE_ID_LENGTH]) = 0;
3704 
3712  virtual int setDevice(const char deviceId[MAX_DEVICE_ID_LENGTH]) = 0;
3713 
3721  virtual int setApplicationVolume(int volume) = 0;
3722 
3731  virtual int getApplicationVolume(int& volume) = 0;
3732 
3743  virtual int setApplicationMute(bool mute) = 0;
3754  virtual int isApplicationMute(bool& mute) = 0;
3755 
3758  virtual void release() = 0;
3759 };
3765 {
3766 protected:
3768 public:
3769 
3781 
3793 
3804  virtual int setPlaybackDevice(const char deviceId[MAX_DEVICE_ID_LENGTH]) = 0;
3805 
3816  virtual int setRecordingDevice(const char deviceId[MAX_DEVICE_ID_LENGTH]) = 0;
3817 
3830  virtual int startPlaybackDeviceTest(const char* testAudioFilePath) = 0;
3831 
3840  virtual int stopPlaybackDeviceTest() = 0;
3841 
3849  virtual int setPlaybackDeviceVolume(int volume) = 0;
3850 
3858  virtual int getPlaybackDeviceVolume(int *volume) = 0;
3859 
3867  virtual int setRecordingDeviceVolume(int volume) = 0;
3868 
3876  virtual int getRecordingDeviceVolume(int *volume) = 0;
3877 
3888  virtual int setPlaybackDeviceMute(bool mute) = 0;
3899  virtual int getPlaybackDeviceMute(bool *mute) = 0;
3910  virtual int setRecordingDeviceMute(bool mute) = 0;
3911 
3922  virtual int getRecordingDeviceMute(bool *mute) = 0;
3923 
3934  virtual int startRecordingDeviceTest(int indicationInterval) = 0;
3935 
3944  virtual int stopRecordingDeviceTest() = 0;
3945 
3953  virtual int getPlaybackDevice(char deviceId[MAX_DEVICE_ID_LENGTH]) = 0;
3954 
3963  virtual int getPlaybackDeviceInfo(char deviceId[MAX_DEVICE_ID_LENGTH], char deviceName[MAX_DEVICE_ID_LENGTH]) = 0;
3964 
3972  virtual int getRecordingDevice(char deviceId[MAX_DEVICE_ID_LENGTH]) = 0;
3973 
3982  virtual int getRecordingDeviceInfo(char deviceId[MAX_DEVICE_ID_LENGTH], char deviceName[MAX_DEVICE_ID_LENGTH]) = 0;
3983 
3996  virtual int startAudioDeviceLoopbackTest(int indicationInterval) = 0;
3997 
4006  virtual int stopAudioDeviceLoopbackTest() = 0;
4007 
4010  virtual void release() = 0;
4011 };
4012 
4016 {
4023  const char* appId;
4024  // For android, it the context(Activity or Application
4025  // for windows,Video hot plug device
4029  void* context;
4031  :eventHandler(NULL)
4032  ,appId(NULL)
4033  ,context(NULL)
4034  {}
4035 };
4036 
4040 {
4041 public:
4046  {
4053  };
4054 
4055  struct Metadata
4056  {
4062  unsigned int uid;
4065  unsigned int size;
4068  unsigned char *buffer;
4071  long long timeStampMs;
4072  };
4073 
4074  virtual ~IMetadataObserver() {};
4075 
4088  virtual int getMaxMetadataSize() = 0;
4089 
4099  virtual bool onReadyToSendMetadata(Metadata &metadata) = 0;
4100 
4105  virtual void onMetadataReceived(const Metadata &metadata) = 0;
4106 };
4107 
4113 {
4114 protected:
4115  virtual ~IRtcEngine() {}
4116 public:
4117 
4132  virtual int initialize(const RtcEngineContext& context) = 0;
4133 
4142  virtual void release(bool sync=false) = 0;
4143 
4158  virtual int setChannelProfile(CHANNEL_PROFILE_TYPE profile) = 0;
4159 
4176  virtual int setClientRole(CLIENT_ROLE_TYPE role) = 0;
4177 
4213  virtual int joinChannel(const char* token, const char* channelId, const char* info, uid_t uid) = 0;
4252  virtual int switchChannel(const char* token, const char* channelId) = 0;
4253 
4274  virtual int leaveChannel() = 0;
4275 
4290  virtual int renewToken(const char* token) = 0;
4299  virtual int queryInterface(INTERFACE_ID_TYPE iid, void** inter) = 0;
4331  virtual int registerLocalUserAccount(
4332  const char* appId, const char* userAccount) = 0;
4366  virtual int joinChannelWithUserAccount(const char* token,
4367  const char* channelId,
4368  const char* userAccount) = 0;
4369 
4387  virtual int getUserInfoByUserAccount(const char* userAccount, UserInfo* userInfo) = 0;
4405  virtual int getUserInfoByUid(uid_t uid, UserInfo* userInfo) = 0;
4406 
4426  virtual int startEchoTest() = 0;
4427 
4444  virtual int startEchoTest(int intervalInSeconds) = 0;
4445 
4452  virtual int stopEchoTest() = 0;
4453 
4471  virtual int enableVideo() = 0;
4472 
4490  virtual int disableVideo() = 0;
4491 
4513  virtual int setVideoProfile(VIDEO_PROFILE_TYPE profile, bool swapWidthAndHeight) = 0;
4514 
4528  virtual int setVideoEncoderConfiguration(const VideoEncoderConfiguration& config) = 0;
4545  virtual int setCameraCapturerConfiguration(const CameraCapturerConfiguration& config) = 0;
4546 
4563  virtual int setupLocalVideo(const VideoCanvas& canvas) = 0;
4564 
4582  virtual int setupRemoteVideo(const VideoCanvas& canvas) = 0;
4583 
4597  virtual int startPreview() = 0;
4598 
4612  virtual int setRemoteUserPriority(uid_t uid, PRIORITY_TYPE userPriority) = 0;
4613 
4620  virtual int stopPreview() = 0;
4621 
4638  virtual int enableAudio() = 0;
4639 
4664  virtual int enableLocalAudio(bool enabled) = 0;
4665 
4676  virtual int disableAudio() = 0;
4677 
4692  virtual int setAudioProfile(AUDIO_PROFILE_TYPE profile, AUDIO_SCENARIO_TYPE scenario) = 0;
4708  virtual int muteLocalAudioStream(bool mute) = 0;
4719  virtual int muteAllRemoteAudioStreams(bool mute) = 0;
4737  virtual int setDefaultMuteAllRemoteAudioStreams(bool mute) = 0;
4738 
4757  virtual int adjustUserPlaybackSignalVolume(unsigned int uid, int volume) = 0;
4772  virtual int muteRemoteAudioStream(uid_t userId, bool mute) = 0;
4789  virtual int muteLocalVideoStream(bool mute) = 0;
4808  virtual int enableLocalVideo(bool enabled) = 0;
4819  virtual int muteAllRemoteVideoStreams(bool mute) = 0;
4834  virtual int setDefaultMuteAllRemoteVideoStreams(bool mute) = 0;
4848  virtual int muteRemoteVideoStream(uid_t userId, bool mute) = 0;
4865  virtual int setRemoteVideoStreamType(uid_t userId, REMOTE_VIDEO_STREAM_TYPE streamType) = 0;
4879  virtual int setRemoteDefaultVideoStreamType(REMOTE_VIDEO_STREAM_TYPE streamType) = 0;
4880 
4897  virtual int enableAudioVolumeIndication(int interval, int smooth, bool report_vad) = 0;
4919  virtual int startAudioRecording(const char* filePath, AUDIO_RECORDING_QUALITY_TYPE quality) = 0;
4920 
4945  virtual int startAudioRecording(const char* filePath, int sampleRate, AUDIO_RECORDING_QUALITY_TYPE quality) = 0;
4954  virtual int stopAudioRecording() = 0;
4983  virtual int startAudioMixing(const char* filePath, bool loopback, bool replace, int cycle) = 0;
4992  virtual int stopAudioMixing() = 0;
5001  virtual int pauseAudioMixing() = 0;
5010  virtual int resumeAudioMixing() = 0;
5031  virtual int setHighQualityAudioParameters(bool fullband, bool stereo, bool fullBitrate) = 0;
5044  virtual int adjustAudioMixingVolume(int volume) = 0;
5055  virtual int adjustAudioMixingPlayoutVolume(int volume) = 0;
5066  virtual int getAudioMixingPlayoutVolume() = 0;
5077  virtual int adjustAudioMixingPublishVolume(int volume) = 0;
5088  virtual int getAudioMixingPublishVolume() = 0;
5089 
5098  virtual int getAudioMixingDuration() = 0;
5107  virtual int getAudioMixingCurrentPosition() = 0;
5116  virtual int setAudioMixingPosition(int pos /*in ms*/) = 0;
5126  virtual int getEffectsVolume() = 0;
5135  virtual int setEffectsVolume(int volume) = 0;
5145  virtual int setVolumeOfEffect(int soundId, int volume) = 0;
5146 
5178  virtual int playEffect(int soundId, const char* filePath, int loopCount, double pitch, double pan, int gain, bool publish = false) = 0;
5187  virtual int stopEffect(int soundId) = 0;
5194  virtual int stopAllEffects() = 0;
5195 
5211  virtual int preloadEffect(int soundId, const char* filePath) = 0;
5219  virtual int unloadEffect(int soundId) = 0;
5227  virtual int pauseEffect(int soundId) = 0;
5234  virtual int pauseAllEffects() = 0;
5242  virtual int resumeEffect(int soundId) = 0;
5249  virtual int resumeAllEffects() = 0;
5262  virtual int enableSoundPositionIndication(bool enabled) = 0;
5282  virtual int setRemoteVoicePosition(uid_t uid, double pan, double gain) = 0;
5283 
5291  virtual int setLocalVoicePitch(double pitch) = 0;
5301  virtual int setLocalVoiceEqualization(AUDIO_EQUALIZATION_BAND_FREQUENCY bandFrequency, int bandGain) = 0;
5313  virtual int setLocalVoiceReverb(AUDIO_REVERB_TYPE reverbKey, int value) = 0;
5324  virtual int setLocalVoiceChanger(VOICE_CHANGER_PRESET voiceChanger) = 0;
5337  virtual int setLocalVoiceReverbPreset(AUDIO_REVERB_PRESET reverbPreset) = 0;
5338 
5353  virtual int setLogFile(const char* filePath) = 0;
5366  virtual int setLogFilter(unsigned int filter) = 0;
5376  virtual int setLogFileSize(unsigned int fileSizeInKBytes) = 0;
5388  virtual int setLocalRenderMode(RENDER_MODE_TYPE renderMode) = 0;
5406  virtual int setLocalRenderMode(RENDER_MODE_TYPE renderMode, VIDEO_MIRROR_MODE_TYPE mirrorMode) = 0;
5419  virtual int setRemoteRenderMode(uid_t userId, RENDER_MODE_TYPE renderMode) = 0;
5440  virtual int setRemoteRenderMode(uid_t userId, RENDER_MODE_TYPE renderMode, VIDEO_MIRROR_MODE_TYPE mirrorMode) = 0;
5458  virtual int setLocalVideoMirrorMode(VIDEO_MIRROR_MODE_TYPE mirrorMode) = 0;
5467  virtual int enableDualStreamMode(bool enabled) = 0;
5482  virtual int setExternalAudioSource(bool enabled, int sampleRate, int channels) = 0;
5507  virtual int setExternalAudioSink(bool enabled, int sampleRate, int channels) = 0;
5525  virtual int setRecordingAudioFrameParameters(int sampleRate, int channel, RAW_AUDIO_FRAME_OP_MODE_TYPE mode, int samplesPerCall) = 0;
5542  virtual int setPlaybackAudioFrameParameters(int sampleRate, int channel, RAW_AUDIO_FRAME_OP_MODE_TYPE mode, int samplesPerCall) = 0;
5555  virtual int setMixedAudioFrameParameters(int sampleRate, int samplesPerCall) = 0;
5567  virtual int adjustRecordingSignalVolume(int volume) = 0;
5583  virtual int adjustPlaybackSignalVolume(int volume) = 0;
5584 
5601  virtual int enableWebSdkInteroperability(bool enabled) = 0;
5602  //only for live broadcast
5615  virtual int setVideoQualityParameters(bool preferFrameRateOverImageQuality) = 0;
5650 
5651 #if defined(__ANDROID__) || (defined(__APPLE__) && TARGET_OS_IOS)
5652 
5660  virtual int switchCamera() = 0;
5662 
5675  virtual int switchCamera(CAMERA_DIRECTION direction) = 0;
5677 
5704  virtual int setDefaultAudioRouteToSpeakerphone(bool defaultToSpeaker) = 0;
5725  virtual int setEnableSpeakerphone(bool speakerOn) = 0;
5735  virtual int enableInEarMonitoring(bool enabled) = 0;
5746  virtual int setInEarMonitoringVolume(int volume) = 0;
5755  virtual bool isSpeakerphoneEnabled() = 0;
5756 #endif
5757 
5758 #if (defined(__APPLE__) && TARGET_OS_IOS)
5759 
5776 #endif
5777 
5778 #if (defined(__APPLE__) && TARGET_OS_MAC && !TARGET_OS_IPHONE) || defined(_WIN32)
5779 
5793  virtual int enableLoopbackRecording(bool enabled, const char* deviceName = NULL) = 0;
5794 
5795 #if (defined(__APPLE__) && TARGET_OS_MAC && !TARGET_OS_IPHONE)
5796 
5809  virtual int startScreenCaptureByDisplayId(unsigned int displayId, const Rectangle& regionRect, const ScreenCaptureParameters& captureParams) = 0;
5810 #endif
5811 
5812 #if defined(_WIN32)
5813 
5823  virtual int startScreenCaptureByScreenRect(const Rectangle& screenRect, const Rectangle& regionRect, const ScreenCaptureParameters& captureParams) = 0;
5824 #endif
5825 
5948  virtual int startScreenCaptureByWindowId(view_t windowId, const Rectangle& regionRect, const ScreenCaptureParameters& captureParams) = 0;
5949 
5960  virtual int setScreenCaptureContentHint(VideoContentHint contentHint) = 0;
5961 
5971  virtual int updateScreenCaptureParameters(const ScreenCaptureParameters& captureParams) = 0;
5972 
5982  virtual int updateScreenCaptureRegion(const Rectangle& regionRect) = 0;
5983 
5990  virtual int stopScreenCapture() = 0;
5991 
5992 #if defined(__APPLE__)
5993  typedef unsigned int WindowIDType;
5994 #elif defined(_WIN32)
5995  typedef HWND WindowIDType;
5996 #endif
5997 
6024  virtual int startScreenCapture(WindowIDType windowId, int captureFreq, const Rect *rect, int bitrate) = 0;
6025 
6033  virtual int updateScreenCaptureRegion(const Rect *rect) = 0;
6034 #endif
6035 
6048  virtual int getCallId(agora::util::AString& callId) = 0;
6049 
6060  virtual int rate(const char* callId, int rating, const char* description) = 0;
6061 
6072  virtual int complain(const char* callId, const char* description) = 0;
6073 
6079  virtual const char* getVersion(int* build) = 0;
6080 
6100  virtual int enableLastmileTest() = 0;
6101 
6108  virtual int disableLastmileTest() = 0;
6109 
6130  virtual int startLastmileProbeTest(const LastmileProbeConfig& config) = 0;
6131 
6133  virtual int stopLastmileProbeTest() = 0;
6134 
6141  virtual const char* getErrorDescription(int code) = 0;
6142 
6159  virtual int setEncryptionSecret(const char* secret) = 0;
6160 
6181  virtual int setEncryptionMode(const char* encryptionMode) = 0;
6182 
6198  virtual int registerPacketObserver(IPacketObserver* observer) = 0;
6199 
6218  virtual int createDataStream(int* streamId, bool reliable, bool ordered) = 0;
6219 
6240  virtual int sendStreamMessage(int streamId, const char* data, size_t length) = 0;
6241 
6264  virtual int addPublishStreamUrl(const char *url, bool transcodingEnabled) = 0;
6265 
6282  virtual int removePublishStreamUrl(const char *url) = 0;
6283 
6299  virtual int setLiveTranscoding(const LiveTranscoding &transcoding) = 0;
6300 
6322  virtual int addVideoWatermark(const RtcImage& watermark) = 0;
6323 
6349  virtual int addVideoWatermark(const char* watermarkUrl, const WatermarkOptions& options) = 0;
6350 
6357  virtual int clearVideoWatermarks() = 0;
6358 
6372  virtual int setBeautyEffectOptions(bool enabled, BeautyOptions options) = 0;
6373 
6404  virtual int addInjectStreamUrl(const char* url, const InjectStreamConfig& config) = 0;
6445  virtual int startChannelMediaRelay(const ChannelMediaRelayConfiguration &configuration) = 0;
6469  virtual int updateChannelMediaRelay(const ChannelMediaRelayConfiguration &configuration) = 0;
6494  virtual int stopChannelMediaRelay() = 0;
6495 
6508  virtual int removeInjectStreamUrl(const char* url) = 0;
6509  virtual bool registerEventHandler(IRtcEngineEventHandler *eventHandler) = 0;
6510  virtual bool unregisterEventHandler(IRtcEngineEventHandler *eventHandler) = 0;
6516 
6544  virtual int setParameters(const char* parameters) = 0;
6545 };
6546 
6548 class IRtcEngineParameter
6549 {
6550 public:
6554  virtual void release() = 0;
6555 
6564  virtual int setBool(const char* key, bool value) = 0;
6565 
6575  virtual int setInt(const char* key, int value) = 0;
6576 
6586  virtual int setUInt(const char* key, unsigned int value) = 0;
6587 
6597  virtual int setNumber(const char* key, double value) = 0;
6598 
6608  virtual int setString(const char* key, const char* value) = 0;
6609 
6619  virtual int setObject(const char* key, const char* value) = 0;
6620 
6630  virtual int getBool(const char* key, bool& value) = 0;
6631 
6641  virtual int getInt(const char* key, int& value) = 0;
6642 
6651  virtual int getUInt(const char* key, unsigned int& value) = 0;
6652 
6662  virtual int getNumber(const char* key, double& value) = 0;
6663 
6673  virtual int getString(const char* key, agora::util::AString& value) = 0;
6674 
6683  virtual int getObject(const char* key, agora::util::AString& value) = 0;
6684 
6693  virtual int getArray(const char* key, agora::util::AString& value) = 0;
6694 
6703  virtual int setParameters(const char* parameters) = 0;
6704 
6716  virtual int setProfile(const char* profile, bool merge) = 0;
6717 
6718  virtual int convertPath(const char* filePath, agora::util::AString& value) = 0;
6719 };
6721 class AAudioDeviceManager : public agora::util::AutoPtr<IAudioDeviceManager>
6722 {
6723 public:
6725  {
6727  }
6728 };
6730 class AVideoDeviceManager : public agora::util::AutoPtr<IVideoDeviceManager>
6731 {
6732 public:
6734  {
6736  }
6737 };
6739 class AParameter : public agora::util::AutoPtr<IRtcEngineParameter>
6740 {
6741 public:
6742  AParameter(IRtcEngine& engine) { initialize(&engine); }
6743  AParameter(IRtcEngine* engine) { initialize(engine); }
6745 private:
6746  bool initialize(IRtcEngine* engine)
6747  {
6748  IRtcEngineParameter* p = NULL;
6749  if (engine && !engine->queryInterface(AGORA_IID_RTC_ENGINE_PARAMETER, (void**)&p))
6750  reset(p);
6751  return p != NULL;
6752  }
6753 };
6756 class RtcEngineParameters
6757 {
6758 public:
6760  :m_parameter(&engine){}
6762  :m_parameter(engine){}
6763 
6765  int enableLocalVideo(bool enabled) {
6766  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");
6767  }
6768 
6769 
6771  int muteLocalVideoStream(bool mute) {
6772  return setParameters("{\"rtc.video.mute_me\":%s,\"che.video.local.send\":%s}", mute ? "true" : "false", mute ? "false" : "true");
6773  }
6774 
6776  int muteAllRemoteVideoStreams(bool mute) {
6777  return m_parameter ? m_parameter->setBool("rtc.video.mute_peers", mute) : -ERR_NOT_INITIALIZED;
6778  }
6779 
6780 
6782  int setDefaultMuteAllRemoteVideoStreams(bool mute) {
6783  return m_parameter ? m_parameter->setBool("rtc.video.set_default_mute_peers", mute) : -ERR_NOT_INITIALIZED;
6784  }
6785 
6787  int muteRemoteVideoStream(uid_t uid, bool mute) {
6788  return setObject("rtc.video.mute_peer", "{\"uid\":%u,\"mute\":%s}", uid, mute ? "true" : "false");
6789  }
6790 
6792  int setPlaybackDeviceVolume(int volume) {// [0,255]
6793  return m_parameter ? m_parameter->setInt("che.audio.output.volume", volume) : -ERR_NOT_INITIALIZED;
6794  }
6795 
6797  int startAudioRecording(const char* filePath, AUDIO_RECORDING_QUALITY_TYPE quality) {
6798  return startAudioRecording(filePath, 32000, quality);
6799  }
6801  int startAudioRecording(const char* filePath, int sampleRate, AUDIO_RECORDING_QUALITY_TYPE quality) {
6802  if (!m_parameter) return -ERR_NOT_INITIALIZED;
6803 #if defined(_WIN32)
6804  util::AString path;
6805  if (!m_parameter->convertPath(filePath, path))
6806  filePath = path->c_str();
6807  else
6808  return -ERR_INVALID_ARGUMENT;
6809 #endif
6810  return setObject("che.audio.start_recording", "{\"filePath\":\"%s\",\"sampleRate\":%d,\"quality\":%d}", filePath, sampleRate, quality);
6811  }
6812 
6814  int stopAudioRecording() {
6815  return m_parameter ? m_parameter->setBool("che.audio.stop_recording", true) : -ERR_NOT_INITIALIZED;
6816  }
6817 
6819  int startAudioMixing(const char* filePath, bool loopback, bool replace, int cycle) {
6820  if (!m_parameter) return -ERR_NOT_INITIALIZED;
6821 #if defined(_WIN32)
6822  util::AString path;
6823  if (!m_parameter->convertPath(filePath, path))
6824  filePath = path->c_str();
6825  else
6826  return -ERR_INVALID_ARGUMENT;
6827 #endif
6828  return setObject("che.audio.start_file_as_playout", "{\"filePath\":\"%s\",\"loopback\":%s,\"replace\":%s,\"cycle\":%d}",
6829  filePath,
6830  loopback?"true":"false",
6831  replace?"true":"false",
6832  cycle);
6833  }
6834 
6836  int stopAudioMixing() {
6837  return m_parameter ? m_parameter->setBool("che.audio.stop_file_as_playout", true) : -ERR_NOT_INITIALIZED;
6838  }
6839 
6841  int pauseAudioMixing() {
6842  return m_parameter ? m_parameter->setBool("che.audio.pause_file_as_playout", true) : -ERR_NOT_INITIALIZED;
6843  }
6844 
6846  int resumeAudioMixing() {
6847  return m_parameter ? m_parameter->setBool("che.audio.pause_file_as_playout", false) : -ERR_NOT_INITIALIZED;
6848  }
6849 
6851  int adjustAudioMixingVolume(int volume) {
6852  int ret = adjustAudioMixingPlayoutVolume(volume);
6853  if (ret == 0) {
6855  }
6856  return ret;
6857  }
6858 
6860  int adjustAudioMixingPlayoutVolume(int volume) {
6861  return m_parameter ? m_parameter->setInt("che.audio.set_file_as_playout_volume", volume) : -ERR_NOT_INITIALIZED;
6862  }
6863 
6866  int volume = 0;
6867  int r = m_parameter ? m_parameter->getInt("che.audio.get_file_as_playout_volume", volume) : -ERR_NOT_INITIALIZED;
6868  if (r == 0)
6869  r = volume;
6870  return r;
6871  }
6872 
6874  int adjustAudioMixingPublishVolume(int volume) {
6875  return m_parameter ? m_parameter->setInt("che.audio.set_file_as_playout_publish_volume", volume) : -ERR_NOT_INITIALIZED;
6876  }
6877 
6880  int volume = 0;
6881  int r = m_parameter ? m_parameter->getInt("che.audio.get_file_as_playout_publish_volume", volume) : -ERR_NOT_INITIALIZED;
6882  if (r == 0)
6883  r = volume;
6884  return r;
6885  }
6886 
6888  int getAudioMixingDuration() {
6889  int duration = 0;
6890  int r = m_parameter ? m_parameter->getInt("che.audio.get_mixing_file_length_ms", duration) : -ERR_NOT_INITIALIZED;
6891  if (r == 0)
6892  r = duration;
6893  return r;
6894  }
6895 
6898  if (!m_parameter) return -ERR_NOT_INITIALIZED;
6899  int pos = 0;
6900  int r = m_parameter->getInt("che.audio.get_mixing_file_played_ms", pos);
6901  if (r == 0)
6902  r = pos;
6903  return r;
6904  }
6906  int setAudioMixingPosition(int pos /*in ms*/) {
6907  return m_parameter ? m_parameter->setInt("che.audio.mixing.file.position", pos) : -ERR_NOT_INITIALIZED;
6908  }
6909 
6911  int getEffectsVolume() {
6912  if (!m_parameter) return -ERR_NOT_INITIALIZED;
6913  int volume = 0;
6914  int r = m_parameter->getInt("che.audio.game_get_effects_volume", volume);
6915  if (r == 0)
6916  r = volume;
6917  return r;
6918  }
6919 
6921  int setEffectsVolume(int volume) {
6922  return m_parameter ? m_parameter->setInt("che.audio.game_set_effects_volume", volume) : -ERR_NOT_INITIALIZED;
6923  }
6924 
6926  int setVolumeOfEffect(int soundId, int volume) {
6927  return setObject(
6928  "che.audio.game_adjust_effect_volume",
6929  "{\"soundId\":%d,\"gain\":%d}",
6930  soundId, volume);
6931  }
6932 
6934  int playEffect(int soundId, const char* filePath, int loopCount, double pitch, double pan, int gain, bool publish = false) {
6935 #if defined(_WIN32)
6936  util::AString path;
6937  if (!m_parameter->convertPath(filePath, path))
6938  filePath = path->c_str();
6939  else if (!filePath)
6940  filePath = "";
6941 #endif
6942  return setObject(
6943  "che.audio.game_play_effect",
6944  "{\"soundId\":%d,\"filePath\":\"%s\",\"loopCount\":%d, \"pitch\":%lf,\"pan\":%lf,\"gain\":%d, \"send2far\":%d}",
6945  soundId, filePath, loopCount, pitch, pan, gain, publish);
6946  }
6947 
6949  int stopEffect(int soundId) {
6950  return m_parameter ? m_parameter->setInt(
6951  "che.audio.game_stop_effect", soundId) : -ERR_NOT_INITIALIZED;
6952  }
6953 
6955  int stopAllEffects() {
6956  return m_parameter ? m_parameter->setBool(
6957  "che.audio.game_stop_all_effects", true) : -ERR_NOT_INITIALIZED;
6958  }
6959 
6961  int preloadEffect(int soundId, char* filePath) {
6962  return setObject(
6963  "che.audio.game_preload_effect",
6964  "{\"soundId\":%d,\"filePath\":\"%s\"}",
6965  soundId, filePath);
6966  }
6967 
6969  int unloadEffect(int soundId) {
6970  return m_parameter ? m_parameter->setInt(
6971  "che.audio.game_unload_effect", soundId) : -ERR_NOT_INITIALIZED;
6972  }
6973 
6975  int pauseEffect(int soundId) {
6976  return m_parameter ? m_parameter->setInt(
6977  "che.audio.game_pause_effect", soundId) : -ERR_NOT_INITIALIZED;
6978  }
6979 
6981  int pauseAllEffects() {
6982  return m_parameter ? m_parameter->setBool(
6983  "che.audio.game_pause_all_effects", true) : -ERR_NOT_INITIALIZED;
6984  }
6985 
6987  int resumeEffect(int soundId) {
6988  return m_parameter ? m_parameter->setInt(
6989  "che.audio.game_resume_effect", soundId) : -ERR_NOT_INITIALIZED;
6990  }
6991 
6993  int resumeAllEffects() {
6994  return m_parameter ? m_parameter->setBool(
6995  "che.audio.game_resume_all_effects", true) : -ERR_NOT_INITIALIZED;
6996  }
6997 
6999  int enableSoundPositionIndication(bool enabled) {
7000  return m_parameter ? m_parameter->setBool(
7001  "che.audio.enable_sound_position", enabled) : -ERR_NOT_INITIALIZED;
7002  }
7003 
7005  int setRemoteVoicePosition(uid_t uid, double pan, double gain) {
7006  return setObject("che.audio.game_place_sound_position", "{\"uid\":%u,\"pan\":%lf,\"gain\":%lf}", uid, pan, gain);
7007  }
7008 
7010  int setLocalVoicePitch(double pitch) {
7011  return m_parameter ? m_parameter->setInt(
7012  "che.audio.morph.pitch_shift",
7013  static_cast<int>(pitch * 100)) : -ERR_NOT_INITIALIZED;
7014  }
7016  int setLocalVoiceEqualization(AUDIO_EQUALIZATION_BAND_FREQUENCY bandFrequency, int bandGain) {
7017  return setObject(
7018  "che.audio.morph.equalization",
7019  "{\"index\":%d,\"gain\":%d}",
7020  static_cast<int>(bandFrequency), bandGain);
7021  }
7023  int setLocalVoiceReverb(AUDIO_REVERB_TYPE reverbKey, int value) {
7024  return setObject(
7025  "che.audio.morph.reverb",
7026  "{\"key\":%d,\"value\":%d}",
7027  static_cast<int>(reverbKey), value);
7028  }
7029 
7031  int setLocalVoiceChanger(VOICE_CHANGER_PRESET voiceChanger) {
7032  return m_parameter ? m_parameter->setInt("che.audio.morph.voice_changer", static_cast<int>(voiceChanger)) : -ERR_NOT_INITIALIZED;
7033  }
7034 
7037  return m_parameter ? m_parameter->setInt("che.audio.morph.reverb_preset", static_cast<int>(reverbPreset)) : -ERR_NOT_INITIALIZED;
7038  }
7039 
7040 
7042  int pauseAudio() {
7043  return m_parameter ? m_parameter->setBool("che.pause.audio", true) : -ERR_NOT_INITIALIZED;
7044  }
7045 
7047  int resumeAudio() {
7048  return m_parameter ? m_parameter->setBool("che.pause.audio", false) : -ERR_NOT_INITIALIZED;
7049  }
7050 
7052  int setHighQualityAudioParameters(bool fullband, bool stereo, bool fullBitrate) {
7053  return setObject("che.audio.codec.hq", "{\"fullband\":%s,\"stereo\":%s,\"fullBitrate\":%s}", fullband ? "true" : "false", stereo ? "true" : "false", fullBitrate ? "true" : "false");
7054  }
7055 
7057  int adjustRecordingSignalVolume(int volume) {//[0, 400]: e.g. 50~0.5x 100~1x 400~4x
7058  if (volume < 0)
7059  volume = 0;
7060  else if (volume > 400)
7061  volume = 400;
7062  return m_parameter ? m_parameter->setInt("che.audio.record.signal.volume", volume) : -ERR_NOT_INITIALIZED;
7063  }
7064 
7066  int adjustPlaybackSignalVolume(int volume) {//[0, 400]
7067  if (volume < 0)
7068  volume = 0;
7069  else if (volume > 400)
7070  volume = 400;
7071  return m_parameter ? m_parameter->setInt("che.audio.playout.signal.volume", volume) : -ERR_NOT_INITIALIZED;
7072  }
7073 
7075  int enableAudioVolumeIndication(int interval, int smooth, bool report_vad) { // in ms: <= 0: disable, > 0: enable, interval in ms
7076  if (interval < 0)
7077  interval = 0;
7078  return setObject("che.audio.volume_indication", "{\"interval\":%d,\"smooth\":%d,\"vad\":%d}", interval, smooth, report_vad);
7079  }
7080 
7082  int muteLocalAudioStream(bool mute) {
7083  return setParameters("{\"rtc.audio.mute_me\":%s,\"che.audio.mute_me\":%s}", mute ? "true" : "false", mute ? "true" : "false");
7084  }
7085  // mute/unmute all peers. unmute will clear all muted peers specified mutePeer() interface
7086 
7088  int muteRemoteAudioStream(uid_t uid, bool mute) {
7089  return setObject("rtc.audio.mute_peer", "{\"uid\":%u,\"mute\":%s}", uid, mute?"true":"false");
7090  }
7091 
7093  int muteAllRemoteAudioStreams(bool mute) {
7094  return m_parameter ? m_parameter->setBool("rtc.audio.mute_peers", mute) : -ERR_NOT_INITIALIZED;
7095  }
7096 
7098  int setDefaultMuteAllRemoteAudioStreams(bool mute) {
7099  return m_parameter ? m_parameter->setBool("rtc.audio.set_default_mute_peers", mute) : -ERR_NOT_INITIALIZED;
7100  }
7101 
7103  int setExternalAudioSource(bool enabled, int sampleRate, int channels) {
7104  if (enabled)
7105  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);
7106  else
7107  return setParameters("{\"che.audio.external_capture\":false,\"che.audio.external_capture.push\":false}");
7108  }
7109 
7111  int setExternalAudioSink(bool enabled, int sampleRate, int channels) {
7112  if (enabled)
7113  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);
7114  else
7115  return setParameters("{\"che.audio.external_render\":false,\"che.audio.external_render.pull\":false}");
7116  }
7117 
7119  int setLogFile(const char* filePath) {
7120  if (!m_parameter) return -ERR_NOT_INITIALIZED;
7121 #if defined(_WIN32)
7122  util::AString path;
7123  if (!m_parameter->convertPath(filePath, path))
7124  filePath = path->c_str();
7125  else if (!filePath)
7126  filePath = "";
7127 #endif
7128  return m_parameter->setString("rtc.log_file", filePath);
7129  }
7130 
7132  int setLogFilter(unsigned int filter) {
7133  return m_parameter ? m_parameter->setUInt("rtc.log_filter", filter&LOG_FILTER_MASK) : -ERR_NOT_INITIALIZED;
7134  }
7135 
7137  int setLogFileSize(unsigned int fileSizeInKBytes) {
7138  return m_parameter ? m_parameter->setUInt("rtc.log_size", fileSizeInKBytes) : -ERR_NOT_INITIALIZED;
7139  }
7140 
7142  int setLocalRenderMode(RENDER_MODE_TYPE renderMode) {
7143  return setRemoteRenderMode(0, renderMode);
7144  }
7145 
7147  int setRemoteRenderMode(uid_t uid, RENDER_MODE_TYPE renderMode) {
7148  return setObject("che.video.render_mode", "{\"uid\":%u,\"renderMode\":%d}", uid, renderMode);
7149  }
7150 
7153  if (!m_parameter) return -ERR_NOT_INITIALIZED;
7154  return m_parameter->setInt("che.video.camera_capture_mode", (int)config.preference);
7155  }
7156 
7158  int enableDualStreamMode(bool enabled) {
7159  return setParameters("{\"rtc.dual_stream_mode\":%s,\"che.video.enableLowBitRateStream\":%d}", enabled ? "true" : "false", enabled ? 1 : 0);
7160  }
7161 
7164  return setParameters("{\"rtc.video.set_remote_video_stream\":{\"uid\":%u,\"stream\":%d}, \"che.video.setstream\":{\"uid\":%u,\"stream\":%d}}", uid, streamType, uid, streamType);
7165 // return setObject("rtc.video.set_remote_video_stream", "{\"uid\":%u,\"stream\":%d}", uid, streamType);
7166  }
7167 
7170  return m_parameter ? m_parameter->setInt("rtc.video.set_remote_default_video_stream_type", streamType) : -ERR_NOT_INITIALIZED;
7171  }
7172 
7174  int setRecordingAudioFrameParameters(int sampleRate, int channel, RAW_AUDIO_FRAME_OP_MODE_TYPE mode, int samplesPerCall) {
7175  return setObject("che.audio.set_capture_raw_audio_format", "{\"sampleRate\":%d,\"channelCnt\":%d,\"mode\":%d,\"samplesPerCall\":%d}", sampleRate, channel, mode, samplesPerCall);
7176  }
7178  int setPlaybackAudioFrameParameters(int sampleRate, int channel, RAW_AUDIO_FRAME_OP_MODE_TYPE mode, int samplesPerCall) {
7179  return setObject("che.audio.set_render_raw_audio_format", "{\"sampleRate\":%d,\"channelCnt\":%d,\"mode\":%d,\"samplesPerCall\":%d}", sampleRate, channel, mode, samplesPerCall);
7180  }
7182  int setMixedAudioFrameParameters(int sampleRate, int samplesPerCall) {
7183  return setObject("che.audio.set_mixed_raw_audio_format", "{\"sampleRate\":%d,\"samplesPerCall\":%d}", sampleRate, samplesPerCall);
7184  }
7185 
7187  int enableWebSdkInteroperability(bool enabled) {//enable interoperability with zero-plugin web sdk
7188  return setParameters("{\"rtc.video.web_h264_interop_enable\":%s,\"che.video.web_h264_interop_enable\":%s}", enabled ? "true" : "false", enabled ? "true" : "false");
7189  }
7190 
7191  //only for live broadcast
7193  int setVideoQualityParameters(bool preferFrameRateOverImageQuality) {
7194  return setParameters("{\"rtc.video.prefer_frame_rate\":%s,\"che.video.prefer_frame_rate\":%s}", preferFrameRateOverImageQuality ? "true" : "false", preferFrameRateOverImageQuality ? "true" : "false");
7195  }
7196 
7199  if (!m_parameter) return -ERR_NOT_INITIALIZED;
7200  const char *value;
7201  switch (mirrorMode) {
7203  value = "default";
7204  break;
7206  value = "forceMirror";
7207  break;
7209  value = "disableMirror";
7210  break;
7211  default:
7212  return -ERR_INVALID_ARGUMENT;
7213  }
7214  return m_parameter->setString("che.video.localViewMirrorSetting", value);
7215  }
7216 
7219  return m_parameter ? m_parameter->setInt("rtc.local_publish_fallback_option", option) : -ERR_NOT_INITIALIZED;
7220  }
7221 
7224  return m_parameter ? m_parameter->setInt("rtc.remote_subscribe_fallback_option", option) : -ERR_NOT_INITIALIZED;
7225  }
7226 
7227 #if (defined(__APPLE__) && TARGET_OS_MAC && !TARGET_OS_IPHONE) || defined(_WIN32)
7229  int enableLoopbackRecording(bool enabled, const char* deviceName = NULL) {
7230  if (!deviceName) {
7231  return setParameters("{\"che.audio.loopback.recording\":%s}", enabled ? "true" : "false");
7232  }
7233  else {
7234  return setParameters("{\"che.audio.loopback.deviceName\":\"%s\",\"che.audio.loopback.recording\":%s}", deviceName, enabled ? "true" : "false");
7235  }
7236  }
7237 #endif
7238 
7240  int setInEarMonitoringVolume(int volume) {
7241  return m_parameter ? m_parameter->setInt("che.audio.headset.monitoring.parameter", volume) : -ERR_NOT_INITIALIZED;
7242  }
7243 
7244 protected:
7245  AParameter& parameter() {
7246  return m_parameter;
7247  }
7248  int setParameters(const char* format, ...) {
7249  char buf[512];
7250  va_list args;
7251  va_start(args, format);
7252  vsnprintf(buf, sizeof(buf)-1, format, args);
7253  va_end(args);
7254  return m_parameter ? m_parameter->setParameters(buf) : -ERR_NOT_INITIALIZED;
7255  }
7256  int setObject(const char* key, const char* format, ...) {
7257  char buf[512];
7258  va_list args;
7259  va_start(args, format);
7260  vsnprintf(buf, sizeof(buf)-1, format, args);
7261  va_end(args);
7262  return m_parameter ? m_parameter->setObject(key, buf) : -ERR_NOT_INITIALIZED;
7263  }
7264  int stopAllRemoteVideo() {
7265  return m_parameter ? m_parameter->setBool("che.video.peer.stop_render", true) : -ERR_NOT_INITIALIZED;
7266  }
7267 private:
7268  AParameter m_parameter;
7269 };
7270 
7271 } //namespace rtc
7272 } // namespace agora
7273 
7274 
7275 #define getAgoraRtcEngineVersion getAgoraSdkVersion
7276 
7278 
7281 
7287 AGORA_API agora::rtc::IRtcEngine* AGORA_CALL createAgoraRtcEngine();
7288 
7290 
7291 
7293 #define getAgoraRtcEngineErrorDescription getAgoraSdkErrorDescription
7294 #define setAgoraRtcEngineExternalSymbolLoader setAgoraSdkExternalSymbolLoader
7295 
7296 #endif
Definition: IAgoraRtcEngine.h:4015
int unloadEffect(int soundId)
Definition: IAgoraRtcEngine.h:6968
virtual int setLocalVoiceReverbPreset(AUDIO_REVERB_PRESET reverbPreset)=0
int setParameters(const char *format,...)
Definition: IAgoraRtcEngine.h:7247
virtual int muteAllRemoteVideoStreams(bool mute)=0
Definition: IAgoraRtcEngine.h:1186
unsigned short txKBitRate
Definition: IAgoraRtcEngine.h:1341
Definition: IAgoraRtcEngine.h:549
virtual int muteAllRemoteAudioStreams(bool mute)=0
virtual void onLocalAudioStats(const LocalAudioStats &stats)
Definition: IAgoraRtcEngine.h:2750
virtual int joinChannel(const char *token, const char *channelId, const char *info, uid_t uid)=0
Definition: IAgoraRtcEngine.h:2273
Definition: IAgoraRtcEngine.h:456
int adjustAudioMixingPublishVolume(int volume)
Definition: IAgoraRtcEngine.h:6873
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:1473
virtual int complain(const char *callId, const char *description)=0
unsigned int expectedUplinkBitrate
Definition: IAgoraRtcEngine.h:1273
virtual int setParameters(const char *parameters)=0
int receivedBitrate
Definition: IAgoraRtcEngine.h:1684
AUDIO_REVERB_TYPE
Definition: IAgoraRtcEngine.h:777
VIDEO_MIRROR_MODE_TYPE
Definition: IAgoraRtcEngine.h:353
int resumeAudio()
Definition: IAgoraRtcEngine.h:7046
Definition: IAgoraRtcEngine.h:500
virtual int startPlaybackDeviceTest(const char *testAudioFilePath)=0
RtcImage * watermark
Definition: IAgoraRtcEngine.h:1984
int setInEarMonitoringVolume(int volume)
Definition: IAgoraRtcEngine.h:7239
virtual int muteLocalVideoStream(bool mute)=0
Definition: IAgoraRtcEngine.h:878
Definition: IAgoraRtcEngine.h:466
virtual int clearVideoWatermarks()=0
virtual const char * getErrorDescription(int code)=0
Definition: IAgoraRtcEngine.h:1487
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:3339
virtual int preloadEffect(int soundId, const char *filePath)=0
AVideoDeviceManager(IRtcEngine *engine)
Definition: IAgoraRtcEngine.h:6732
virtual void onStreamUnpublished(const char *url)
Definition: IAgoraRtcEngine.h:3376
Definition: IAgoraRtcEngine.h:2211
Definition: IAgoraRtcEngine.h:346
Definition: IAgoraRtcEngine.h:965
Definition: IAgoraRtcEngine.h:378
Definition: IAgoraRtcEngine.h:1001
Definition: IAgoraRtcEngine.h:726
int setDefaultMuteAllRemoteAudioStreams(bool mute)
Definition: IAgoraRtcEngine.h:7097
unsigned int packetLossRate
Definition: IAgoraRtcEngine.h:1243
Definition: IAgoraRtcEngine.h:1438
AUDIO_SAMPLE_RATE_TYPE audioSampleRate
Definition: IAgoraRtcEngine.h:1992
Definition: IAgoraRtcEngine.h:1449
virtual int stopChannelMediaRelay()=0
int frozenRate
Definition: IAgoraRtcEngine.h:1639
Definition: IAgoraRtcEngine.h:847
Definition: IAgoraRtcEngine.h:695
Definition: IAgoraRtcEngine.h:446
Definition: IAgoraRtcEngine.h:60
virtual int adjustRecordingSignalVolume(int volume)=0
REMOTE_VIDEO_STREAM_TYPE
Definition: IAgoraRtcEngine.h:698
virtual bool isSpeakerphoneEnabled()=0
int getAudioMixingPlayoutVolume()
Definition: IAgoraRtcEngine.h:6864
const char * metadata
Definition: IAgoraRtcEngine.h:1979
VideoCanvas(view_t v, int m, const char *ch, uid_t u)
Definition: IAgoraRtcEngine.h:2321
Definition: IAgoraRtcEngine.h:901
virtual void onRemoteSubscribeFallbackToAudioOnly(uid_t uid, bool isFallbackOrRecover)
Definition: IAgoraRtcEngine.h:3448
Definition: IAgoraRtcEngine.h:1082
Definition: IAgoraRtcEngine.h:156
Definition: IAgoraRtcEngine.h:861
Definition: IAgoraRtcEngine.h:368
Rect(int t, int l, int b, int r)
Definition: IAgoraRtcEngine.h:2207
unsigned short rxKBitRate
Definition: IAgoraRtcEngine.h:1345
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:3259
VideoDimensions()
Definition: IAgoraRtcEngine.h:1700
virtual void onRtcStats(const RtcStats &stats)
Definition: IAgoraRtcEngine.h:2696
virtual int startScreenCaptureByScreenRect(const Rectangle &screenRect, const Rectangle &regionRect, const ScreenCaptureParameters &captureParams)=0
Definition: IAgoraRtcEngine.h:302
int setLocalVoiceEqualization(AUDIO_EQUALIZATION_BAND_FREQUENCY bandFrequency, int bandGain)
Definition: IAgoraRtcEngine.h:7015
virtual int muteRemoteAudioStream(uid_t userId, bool mute)=0
Rect()
Definition: IAgoraRtcEngine.h:2206
virtual void onRemoteAudioStateChanged(uid_t uid, REMOTE_AUDIO_STATE state, REMOTE_AUDIO_STATE_REASON reason, int elapsed)
Definition: IAgoraRtcEngine.h:2797
Definition: IAgoraRtcEngine.h:232
Definition: IAgoraRtcEngine.h:810
Definition: IAgoraRtcEngine.h:2035
Definition: IAgoraRtcEngine.h:1184
float lighteningLevel
Definition: IAgoraRtcEngine.h:2372
bool queryInterface(C1 *c, C2 iid)
Definition: AgoraBase.h:76
int left
Definition: IAgoraRtcEngine.h:2198
Definition: IAgoraRtcEngine.h:1174
int width
Definition: IAgoraRtcEngine.h:2050
int audioChannels
Definition: IAgoraRtcEngine.h:2004
unsigned int WindowIDType
Definition: IAgoraRtcEngine.h:5992
DEGRADATION_PREFERENCE degradationPreference
Definition: IAgoraRtcEngine.h:1804
virtual const char * getVersion(int *build)=0
Definition: IAgoraRtcEngine.h:1151
Definition: IAgoraRtcEngine.h:784
virtual void onCameraExposureAreaChanged(int x, int y, int width, int height)
Definition: IAgoraRtcEngine.h:3084
REMOTE_AUDIO_STATE
Definition: IAgoraRtcEngine.h:854
Definition: IAgoraRtcEngine.h:2395
int bitrate
Definition: IAgoraRtcEngine.h:1791
Definition: IAgoraRtcEngine.h:1495
virtual int startScreenCapture(WindowIDType windowId, int captureFreq, const Rect *rect, int bitrate)=0
virtual int startPreview()=0
unsigned int txBytes
Definition: IAgoraRtcEngine.h:1316
int rendererOutputFrameRate
Definition: IAgoraRtcEngine.h:1566
Definition: IAgoraRtcEngine.h:736
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:2978
int setLogFilter(unsigned int filter)
Definition: IAgoraRtcEngine.h:7131
int sentFrameRate
Definition: IAgoraRtcEngine.h:1560
Definition: IAgoraRtcEngine.h:372
Definition: IAgoraRtcEngine.h:1903
Definition: IAgoraRtcEngine.h:88
Definition: IAgoraRtcEngine.h:4052
virtual int isApplicationMute(bool &mute)=0
void reset(pointer_type ptr=0)
Definition: AgoraBase.h:70
Definition: IAgoraRtcEngine.h:42
Definition: IAgoraRtcEngine.h:769
int pauseAudio()
Definition: IAgoraRtcEngine.h:7041
Definition: IAgoraRtcEngine.h:755
virtual int enableLocalVideo(bool enabled)=0
Definition: IAgoraRtcEngine.h:909
Definition: IAgoraRtcEngine.h:370
LIGHTENING_CONTRAST_LEVEL lighteningContrastLevel
Definition: IAgoraRtcEngine.h:2369
Definition: IAgoraRtcEngine.h:2237
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:3551
int renderMode
Definition: IAgoraRtcEngine.h:2280
int minBitrate
Definition: IAgoraRtcEngine.h:1798
FRAME_RATE
Definition: IAgoraRtcEngine.h:994
bool probeDownlink
Definition: IAgoraRtcEngine.h:1271
virtual int pauseEffect(int soundId)=0
Definition: IAgoraRtcEngine.h:934
virtual void onLocalVideoStats(const LocalVideoStats &stats)
Definition: IAgoraRtcEngine.h:2726
Definition: IAgoraRtcEngine.h:502
bool lowLatency
Definition: IAgoraRtcEngine.h:1952
Definition: IAgoraRtcEngine.h:832
Definition: IAgoraRtcEngine.h:450
Definition: IAgoraRtcEngine.h:428
virtual void onStreamInjectedStatus(const char *url, uid_t uid, int status)
Definition: IAgoraRtcEngine.h:3394
virtual int registerPacketObserver(IPacketObserver *observer)=0
virtual int resumeAllEffects()=0
Definition: IAgoraRtcEngine.h:734
virtual int setDefaultMuteAllRemoteVideoStreams(bool mute)=0
AUDIO_SAMPLE_RATE_TYPE audioSampleRate
Definition: IAgoraRtcEngine.h:2069
Definition: IAgoraRtcEngine.h:1452
virtual int pauseAllEffects()=0
unsigned int volume
Definition: IAgoraRtcEngine.h:1290
virtual void onUserEnableLocalVideo(uid_t uid, bool enabled)
Definition: IAgoraRtcEngine.h:3245
Definition: IAgoraRtcEngine.h:506
Definition: IAgoraRtcEngine.h:568
Definition: IAgoraRtcEngine.h:930
unsigned int duration
Definition: IAgoraRtcEngine.h:1312
AParameter & parameter()
Definition: IAgoraRtcEngine.h:7244
Definition: IAgoraRtcEngine.h:1464
Definition: IAgoraRtcEngine.h:1022
Definition: AgoraBase.h:36
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:2564
Definition: IAgoraRtcEngine.h:474
Definition: IAgoraRtcEngine.h:276
IRtcEngineEventHandler * eventHandler
Definition: IAgoraRtcEngine.h:4019
VideoEncoderConfiguration(const VideoDimensions &d, FRAME_RATE f, int b, ORIENTATION_MODE m, VIDEO_MIRROR_MODE_TYPE mr=VIDEO_MIRROR_MODE_AUTO)
Definition: IAgoraRtcEngine.h:1811
int setRemoteVideoStreamType(uid_t uid, REMOTE_VIDEO_STREAM_TYPE streamType)
Definition: IAgoraRtcEngine.h:7162
const int DEFAULT_MIN_BITRATE
Definition: IAgoraRtcEngine.h:1726
int enableAudioVolumeIndication(int interval, int smooth, bool report_vad)
Definition: IAgoraRtcEngine.h:7074
int setRemoteVoicePosition(uid_t uid, double pan, double gain)
Definition: IAgoraRtcEngine.h:7004
Definition: IAgoraRtcEngine.h:660
virtual int pauseAudioMixing()=0
const unsigned char * buffer
Definition: IAgoraRtcEngine.h:2416
Definition: IAgoraRtcEngine.h:953
NETWORK_TYPE
Definition: IAgoraRtcEngine.h:1163
int pauseAudioMixing()
Definition: IAgoraRtcEngine.h:6840
int width
Definition: IAgoraRtcEngine.h:1930
Definition: IAgoraRtcEngine.h:683
Definition: IAgoraRtcEngine.h:1282
double cpuTotalUsage
Definition: IAgoraRtcEngine.h:1389
virtual int getString(const char *key, agora::util::AString &value)=0
Definition: IAgoraRtcEngine.h:757
virtual void onLocalAudioStateChanged(LOCAL_AUDIO_STREAM_STATE state, LOCAL_AUDIO_STREAM_ERROR error)
Definition: IAgoraRtcEngine.h:2780
MEDIA_DEVICE_STATE_TYPE
Definition: IAgoraRtcEngine.h:181
int resumeAllEffects()
Definition: IAgoraRtcEngine.h:6992
Definition: IAgoraRtcEngine.h:153
virtual void onVideoStopped()
Definition: IAgoraRtcEngine.h:2865
VideoCanvas(view_t v, int rm, const char *ch, uid_t u, VIDEO_MIRROR_MODE_TYPE mm)
Definition: IAgoraRtcEngine.h:2340
Definition: IAgoraRtcEngine.h:780
int bitrate
Definition: IAgoraRtcEngine.h:2258
Definition: IAgoraRtcEngine.h:520
Definition: IAgoraRtcEngine.h:2167
Definition: IAgoraRtcEngine.h:636
Definition: IAgoraRtcEngine.h:722
virtual ~IRtcEngine()
Definition: IAgoraRtcEngine.h:4115
int videoFramerate
Definition: IAgoraRtcEngine.h:2059
Definition: IAgoraRtcEngine.h:1079
METADATA_TYPE
Definition: IAgoraRtcEngine.h:4045
Definition: IAgoraRtcEngine.h:744
Definition: IAgoraRtcEngine.h:194
Definition: IAgoraRtcEngine.h:566
Definition: IAgoraRtcEngine.h:412
Definition: IAgoraRtcEngine.h:938
Definition: IAgoraRtcEngine.h:321
Definition: IAgoraRtcEngine.h:1536
Definition: IAgoraRtcEngine.h:454
Definition: IAgoraRtcEngine.h:773
unsigned short txVideoKBitRate
Definition: IAgoraRtcEngine.h:1361
int sentSampleRate
Definition: IAgoraRtcEngine.h:1650
RTMP_STREAM_LIFE_CYCLE_TYPE
Definition: IAgoraRtcEngine.h:2145
unsigned char * buffer
Definition: IAgoraRtcEngine.h:4068
unsigned int userCount
Definition: IAgoraRtcEngine.h:1381
virtual void onActiveSpeaker(uid_t uid)
Definition: IAgoraRtcEngine.h:2855
Definition: IAgoraRtcEngine.h:394
virtual IVideoDeviceCollection * enumerateVideoDevices()=0
Definition: IAgoraRtcEngine.h:1543
virtual int registerLocalUserAccount(const char *appId, const char *userAccount)=0
Definition: IAgoraRtcEngine.h:2161
Definition: IAgoraRtcEngine.h:488
VideoEncoderConfiguration()
Definition: IAgoraRtcEngine.h:1826
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:1961
virtual int createDataStream(int *streamId, bool reliable, bool ordered)=0
ChannelMediaInfo * destInfos
Definition: IAgoraRtcEngine.h:2128
Definition: IAgoraRtcEngine.h:748
Definition: IAgoraRtcEngine.h:1236
Definition: IAgoraRtcEngine.h:230
unsigned short rxPacketLossRate
Definition: IAgoraRtcEngine.h:1372
unsigned int uid_t
Definition: IAgoraRtcEngine.h:18
CONNECTION_CHANGED_REASON_TYPE
Definition: IAgoraRtcEngine.h:1124
Definition: IAgoraRtcEngine.h:1241
Definition: IAgoraRtcEngine.h:1263
int enableSoundPositionIndication(bool enabled)
Definition: IAgoraRtcEngine.h:6998
Definition: AgoraBase.h:106
virtual void onCameraReady()
Definition: IAgoraRtcEngine.h:3053
virtual int getAudioMixingPublishVolume()=0
Definition: IAgoraRtcEngine.h:761
struct agora::rtc::TranscodingUser TranscodingUser
int rendererOutputFrameRate
Definition: IAgoraRtcEngine.h:1625
Definition: IAgoraRtcEngine.h:226
AUDIO_ROUTE_TYPE
Definition: IAgoraRtcEngine.h:1191
Definition: IAgoraRtcEngine.h:34
virtual int switchCamera()=0
uid_t uid
Definition: IAgoraRtcEngine.h:1604
Definition: IAgoraRtcEngine.h:1194
Definition: IAgoraRtcEngine.h:510
virtual ~IAudioDeviceCollection()
Definition: IAgoraRtcEngine.h:3683
virtual int getAudioMixingDuration()=0
void * priv
Definition: IAgoraRtcEngine.h:2295
Definition: IAgoraRtcEngine.h:185
virtual int startRecordingDeviceTest(int indicationInterval)=0
Definition: IAgoraRtcEngine.h:701
int sentBitrate
Definition: IAgoraRtcEngine.h:1556
LIGHTENING_CONTRAST_LEVEL
Definition: IAgoraRtcEngine.h:2357
virtual int setDevice(const char deviceId[MAX_DEVICE_ID_LENGTH])=0
virtual int stopAudioDeviceLoopbackTest()=0
Definition: IAgoraRtcEngine.h:795
virtual int adjustAudioMixingPublishVolume(int volume)=0
int startAudioMixing(const char *filePath, bool loopback, bool replace, int cycle)
Definition: IAgoraRtcEngine.h:6818
Definition: IAgoraRtcEngine.h:317
STREAM_FALLBACK_OPTIONS
Definition: IAgoraRtcEngine.h:1046
QUALITY_TYPE
Definition: IAgoraRtcEngine.h:314
const char * channelId
Definition: IAgoraRtcEngine.h:1302
AUDIO_PROFILE_TYPE
Definition: IAgoraRtcEngine.h:526
Definition: IAgoraRtcEngine.h:191
unsigned int jitter
Definition: IAgoraRtcEngine.h:1245
int enableWebSdkInteroperability(bool enabled)
Definition: IAgoraRtcEngine.h:7186
unsigned int userCount
Definition: IAgoraRtcEngine.h:1967
Definition: IAgoraRtcEngine.h:492
int muteAllRemoteAudioStreams(bool mute)
Definition: IAgoraRtcEngine.h:7092
int sentBitrate
Definition: IAgoraRtcEngine.h:1653
Definition: IAgoraRtcEngine.h:1127
virtual void onUserOffline(uid_t uid, USER_OFFLINE_REASON_TYPE reason)
Definition: IAgoraRtcEngine.h:2579
RtcImage()
Definition: IAgoraRtcEngine.h:1904
Definition: IAgoraRtcEngine.h:414
BeautyOptions(LIGHTENING_CONTRAST_LEVEL contrastLevel, float lightening, float smoothness, float redness)
Definition: IAgoraRtcEngine.h:2382
int x
Definition: IAgoraRtcEngine.h:2176
LASTMILE_PROBE_RESULT_STATE state
Definition: IAgoraRtcEngine.h:1253
Definition: IAgoraRtcEngine.h:4112
Definition: IAgoraRtcEngine.h:2192
int adjustPlaybackSignalVolume(int volume)
Definition: IAgoraRtcEngine.h:7065
Definition: IAgoraRtcEngine.h:826
Definition: IAgoraRtcEngine.h:841
ChannelMediaInfo * srcInfo
Definition: IAgoraRtcEngine.h:2120
AAudioDeviceManager(IRtcEngine *engine)
Definition: IAgoraRtcEngine.h:6723
Definition: IAgoraRtcEngine.h:1200
virtual int startDeviceTest(view_t hwnd)=0
Definition: IAgoraRtcEngine.h:1197
virtual void onRequestToken()
Definition: IAgoraRtcEngine.h:2659
virtual int getUserInfoByUserAccount(const char *userAccount, UserInfo *userInfo)=0
Definition: IAgoraRtcEngine.h:1539
Definition: IAgoraRtcEngine.h:942
virtual int getAudioMixingCurrentPosition()=0
virtual void onConnectionLost()
Definition: IAgoraRtcEngine.h:2633
int setLocalVoicePitch(double pitch)
Definition: IAgoraRtcEngine.h:7009
Definition: IAgoraRtcEngine.h:228
virtual int addInjectStreamUrl(const char *url, const InjectStreamConfig &config)=0
AParameter(IRtcEngine &engine)
Definition: IAgoraRtcEngine.h:6741
virtual void onMicrophoneEnabled(bool enabled)
Definition: IAgoraRtcEngine.h:3523
int frozenRate
Definition: IAgoraRtcEngine.h:1689
int setLocalVoiceChanger(VOICE_CHANGER_PRESET voiceChanger)
Definition: IAgoraRtcEngine.h:7030
VIDEO_CODEC_TYPE codecType
Definition: IAgoraRtcEngine.h:1594
Definition: IAgoraRtcEngine.h:1730
int pauseEffect(int soundId)
Definition: IAgoraRtcEngine.h:6974
Definition: IAgoraRtcEngine.h:905
virtual void onRemoteVideoStateChanged(uid_t uid, REMOTE_VIDEO_STATE state, REMOTE_VIDEO_STATE_REASON reason, int elapsed)
Definition: IAgoraRtcEngine.h:3209
Definition: IAgoraRtcEngine.h:1925
unsigned int size
Definition: IAgoraRtcEngine.h:2419
Definition: IAgoraRtcEngine.h:893
Definition: IAgoraRtcEngine.h:2172
Definition: IAgoraRtcEngine.h:170
AUDIO_MIXING_ERROR_TYPE
Definition: IAgoraRtcEngine.h:164
Definition: IAgoraRtcEngine.h:390
virtual int setRemoteDefaultVideoStreamType(REMOTE_VIDEO_STREAM_TYPE streamType)=0
Definition: IAgoraRtcEngine.h:129
Definition: IAgoraRtcEngine.h:209
Definition: IAgoraRtcEngine.h:804
DEGRADATION_PREFERENCE
Definition: IAgoraRtcEngine.h:1036
Definition: IAgoraRtcEngine.h:711
Definition: IAgoraRtcEngine.h:6720
int memoryAppUsageInKbytes
Definition: IAgoraRtcEngine.h:1407
unsigned int rxBytes
Definition: IAgoraRtcEngine.h:1320
int resumeAudioMixing()
Definition: IAgoraRtcEngine.h:6845
int setRemoteSubscribeFallbackOption(STREAM_FALLBACK_OPTIONS option)
Definition: IAgoraRtcEngine.h:7222
virtual int setPlaybackDevice(const char deviceId[MAX_DEVICE_ID_LENGTH])=0
LiveTranscoding()
Definition: IAgoraRtcEngine.h:2011
virtual void onRemoteVideoStats(const RemoteVideoStats &stats)
Definition: IAgoraRtcEngine.h:2739
Definition: IAgoraRtcEngine.h:1478
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:514
int videoFramerate
Definition: IAgoraRtcEngine.h:1945
int muteLocalAudioStream(bool mute)
Definition: IAgoraRtcEngine.h:7081
RAW_AUDIO_FRAME_OP_MODE_TYPE
Definition: IAgoraRtcEngine.h:708
Definition: IAgoraRtcEngine.h:150
LastmileProbeOneWayResult uplinkReport
Definition: IAgoraRtcEngine.h:1255
virtual void onRemoteVideoTransportStats(uid_t uid, unsigned short delay, unsigned short lost, unsigned short rxKBitRate)
Definition: IAgoraRtcEngine.h:3498
Definition: IAgoraRtcEngine.h:264
virtual int startAudioDeviceLoopbackTest(int indicationInterval)=0
AUDIO_SCENARIO_TYPE
Definition: IAgoraRtcEngine.h:563
Definition: IAgoraRtcEngine.h:406
Definition: IAgoraRtcEngine.h:1049
Definition: IAgoraRtcEngine.h:1067
Definition: IAgoraRtcEngine.h:444
CHANNEL_MEDIA_RELAY_STATE
Definition: IAgoraRtcEngine.h:1533
virtual bool registerEventHandler(IRtcEngineEventHandler *eventHandler)=0
virtual void onCameraFocusAreaChanged(int x, int y, int width, int height)
Definition: IAgoraRtcEngine.h:3066
Definition: IAgoraRtcEngine.h:1141
VideoDimensions dimensions
Definition: IAgoraRtcEngine.h:2248
virtual void onFirstRemoteAudioFrame(uid_t uid, int elapsed)
Definition: IAgoraRtcEngine.h:3323
virtual int setBeautyEffectOptions(bool enabled, BeautyOptions options)=0
Definition: IAgoraRtcEngine.h:1172
unsigned short txAudioKBitRate
Definition: IAgoraRtcEngine.h:1353
Definition: IAgoraRtcEngine.h:1155
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:574
RtcEngineParameters(IRtcEngine &engine)
Definition: IAgoraRtcEngine.h:6758
Definition: IAgoraRtcEngine.h:533
virtual void onLastmileProbeResult(const LastmileProbeResult &result)
Definition: IAgoraRtcEngine.h:2600
VideoDimensions(int w, int h)
Definition: IAgoraRtcEngine.h:1703
int preloadEffect(int soundId, char *filePath)
Definition: IAgoraRtcEngine.h:6960
Definition: IAgoraRtcEngine.h:3680
virtual int setDefaultMuteAllRemoteAudioStreams(bool mute)=0
InjectStreamConfig()
Definition: IAgoraRtcEngine.h:2085
Definition: IAgoraRtcEngine.h:675
int decoderOutputFrameRate
Definition: IAgoraRtcEngine.h:1622
Definition: IAgoraRtcEngine.h:388
virtual int disableLastmileTest()=0
int zOrder
Definition: IAgoraRtcEngine.h:1867
uid_t uid
Definition: IAgoraRtcEngine.h:2294
virtual int startScreenCaptureByWindowId(view_t windowId, const Rectangle &regionRect, const ScreenCaptureParameters &captureParams)=0
Definition: IAgoraRtcEngine.h:759
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:1336
uid_t uid
Definition: IAgoraRtcEngine.h:1662
virtual IAudioDeviceCollection * enumeratePlaybackDevices()=0
int setVolumeOfEffect(int soundId, int volume)
Definition: IAgoraRtcEngine.h:6925
Definition: IAgoraRtcEngine.h:516
MEDIA_ENGINE_EVENT_CODE_TYPE
Definition: IAgoraRtcEngine.h:56
uid_t uid
Definition: IAgoraRtcEngine.h:1287
virtual int startScreenCaptureByDisplayId(unsigned int displayId, const Rectangle &regionRect, const ScreenCaptureParameters &captureParams)=0
Definition: IAgoraRtcEngine.h:422
int audioLossRate
Definition: IAgoraRtcEngine.h:1674
int playEffect(int soundId, const char *filePath, int loopCount, double pitch, double pan, int gain, bool publish=false)
Definition: IAgoraRtcEngine.h:6933
VIDEO_CODEC_PROFILE_TYPE
Definition: IAgoraRtcEngine.h:730
Rectangle positionInPortraitMode
Definition: IAgoraRtcEngine.h:2226
int right
Definition: IAgoraRtcEngine.h:2204
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:1801
Definition: IAgoraRtcEngine.h:1227
int jitterBufferDelay
Definition: IAgoraRtcEngine.h:1671
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:4030
int getAudioMixingPublishVolume()
Definition: IAgoraRtcEngine.h:6878
virtual int setRemoteSubscribeFallbackOption(STREAM_FALLBACK_OPTIONS option)=0
Definition: IAgoraRtcEngine.h:1529
QUALITY_ADAPT_INDICATION qualityAdaptIndication
Definition: IAgoraRtcEngine.h:1576
Definition: IAgoraRtcEngine.h:261
virtual void onConnectionStateChanged(CONNECTION_STATE_TYPE state, CONNECTION_CHANGED_REASON_TYPE reason)
Definition: IAgoraRtcEngine.h:3531
int setRemoteDefaultVideoStreamType(REMOTE_VIDEO_STREAM_TYPE streamType)
Definition: IAgoraRtcEngine.h:7168
Definition: AgoraBase.h:273
UserInfo()
Definition: IAgoraRtcEngine.h:2398
Definition: IAgoraRtcEngine.h:849
Definition: IAgoraRtcEngine.h:724
virtual int adjustAudioMixingPlayoutVolume(int volume)=0
int encodedBitrate
Definition: IAgoraRtcEngine.h:1580
Definition: IAgoraRtcEngine.h:448
int startAudioRecording(const char *filePath, AUDIO_RECORDING_QUALITY_TYPE quality)
Definition: IAgoraRtcEngine.h:6796
virtual void onAudioEffectFinished(int soundId)
Definition: IAgoraRtcEngine.h:3133
virtual void onApiCallExecuted(int err, const char *api, const char *result)
Definition: IAgoraRtcEngine.h:2647
Definition: IAgoraRtcEngine.h:430
ScreenCaptureParameters(const VideoDimensions &d, int f, int b, bool c)
Definition: IAgoraRtcEngine.h:2267
Definition: IAgoraRtcEngine.h:1209
int encodedFrameHeight
Definition: IAgoraRtcEngine.h:1586
Definition: IAgoraRtcEngine.h:97
void * context
Definition: IAgoraRtcEngine.h:4029
Definition: IAgoraRtcEngine.h:1149
bool captureMouseCursor
Definition: IAgoraRtcEngine.h:2264
int y
Definition: IAgoraRtcEngine.h:1850
virtual ~IVideoDeviceManager()
Definition: IAgoraRtcEngine.h:3617
Definition: IAgoraRtcEngine.h:329
virtual bool onReceiveAudioPacket(Packet &packet)=0
Definition: IAgoraRtcEngine.h:1168
float rednessLevel
Definition: IAgoraRtcEngine.h:2380
CAPTURER_OUTPUT_PREFERENCE preference
Definition: IAgoraRtcEngine.h:2038
virtual void onAudioVolumeIndication(const AudioVolumeInfo *speakers, unsigned int speakerNumber, int totalVolume)
Definition: IAgoraRtcEngine.h:2839
Definition: IAgoraRtcEngine.h:870
virtual void onFirstRemoteVideoDecoded(uid_t uid, int width, int height, int elapsed)
Definition: IAgoraRtcEngine.h:2912
TranscodingUser * transcodingUsers
Definition: IAgoraRtcEngine.h:1970
Definition: IAgoraRtcEngine.h:436
virtual void onClientRoleChanged(CLIENT_ROLE_TYPE oldRole, CLIENT_ROLE_TYPE newRole)
Definition: IAgoraRtcEngine.h:2542
Definition: IAgoraRtcEngine.h:258
unsigned int availableBandwidth
Definition: IAgoraRtcEngine.h:1247
Definition: IAgoraRtcEngine.h:462
Definition: IAgoraRtcEngine.h:1176
int setHighQualityAudioParameters(bool fullband, bool stereo, bool fullBitrate)
Definition: IAgoraRtcEngine.h:7051
virtual int setRecordingDevice(const char deviceId[MAX_DEVICE_ID_LENGTH])=0
Definition: IAgoraRtcEngine.h:767
Definition: IAgoraRtcEngine.h:117
Definition: IAgoraRtcEngine.h:464
virtual void onUserMuteAudio(uid_t uid, bool muted)
Definition: IAgoraRtcEngine.h:2949
int audioChannels
Definition: IAgoraRtcEngine.h:2082
virtual int setPlaybackDeviceMute(bool mute)=0
Definition: IAgoraRtcEngine.h:239
virtual int sendStreamMessage(int streamId, const char *data, size_t length)=0
Definition: IAgoraRtcEngine.h:1166
virtual int getRecordingDevice(char deviceId[MAX_DEVICE_ID_LENGTH])=0
Definition: IAgoraRtcEngine.h:484
virtual int stopLastmileProbeTest()=0
USER_OFFLINE_REASON_TYPE
Definition: IAgoraRtcEngine.h:608
Definition: IAgoraRtcEngine.h:786
int receivedBitrate
Definition: IAgoraRtcEngine.h:1619
int enableLocalVideo(bool enabled)
Definition: IAgoraRtcEngine.h:6764
virtual int getNumber(const char *key, double &value)=0
virtual int stopAllEffects()=0
AUDIO_CODEC_PROFILE_TYPE
Definition: IAgoraRtcEngine.h:844
Definition: IAgoraRtcEngine.h:1107
Definition: IAgoraRtcEngine.h:452
virtual int setExternalAudioSource(bool enabled, int sampleRate, int channels)=0
int height
Definition: IAgoraRtcEngine.h:1699
virtual void onError(int err, const char *msg)
Definition: IAgoraRtcEngine.h:2485
virtual int setLocalRenderMode(RENDER_MODE_TYPE renderMode)=0
virtual int stopAudioMixing()=0
int setLocalPublishFallbackOption(STREAM_FALLBACK_OPTIONS option)
Definition: IAgoraRtcEngine.h:7217
virtual void onLeaveChannel(const RtcStats &stats)
Definition: IAgoraRtcEngine.h:2530
Definition: IAgoraRtcEngine.h:438
Definition: IAgoraRtcEngine.h:771
virtual int setupLocalVideo(const VideoCanvas &canvas)=0
Definition: IAgoraRtcEngine.h:2406
uid_t uid
Definition: IAgoraRtcEngine.h:2396
Definition: IAgoraRtcEngine.h:1131
int stopAudioRecording()
Definition: IAgoraRtcEngine.h:6813
Definition: IAgoraRtcEngine.h:570
unsigned int rxAudioBytes
Definition: IAgoraRtcEngine.h:1332
char userAccount[MAX_USER_ACCOUNT_LENGTH]
Definition: IAgoraRtcEngine.h:2397
int y
Definition: IAgoraRtcEngine.h:1916
virtual bool unregisterEventHandler(IRtcEngineEventHandler *eventHandler)=0
unsigned int rtt
Definition: IAgoraRtcEngine.h:1259
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:1818
Definition: IAgoraRtcEngine.h:2364
Definition: IAgoraRtcEngine.h:615
struct agora::rtc::WatermarkOptions WatermarkOptions
Definition: IAgoraRtcEngine.h:1234
int gatewayRtt
Definition: IAgoraRtcEngine.h:1392
unsigned short lastmileDelay
Definition: IAgoraRtcEngine.h:1364
int targetFrameRate
Definition: IAgoraRtcEngine.h:1572
virtual int setLiveTranscoding(const LiveTranscoding &transcoding)=0
virtual int removePublishStreamUrl(const char *url)=0
char channelId[MAX_CHANNEL_ID_LENGTH]
Definition: IAgoraRtcEngine.h:2292
int width
Definition: IAgoraRtcEngine.h:1918
AParameter(IRtcEngine *engine)
Definition: IAgoraRtcEngine.h:6742
Definition: IAgoraRtcEngine.h:1440
Definition: IAgoraRtcEngine.h:835
virtual int enableWebSdkInteroperability(bool enabled)=0
Definition: IAgoraRtcEngine.h:159
int setRemoteRenderMode(uid_t uid, RENDER_MODE_TYPE renderMode)
Definition: IAgoraRtcEngine.h:7146
unsigned int vad
Definition: IAgoraRtcEngine.h:1299
virtual int stopEffect(int soundId)=0
double cpuAppUsage
Definition: IAgoraRtcEngine.h:1385
Definition: IAgoraRtcEngine.h:1070
Definition: IAgoraRtcEngine.h:69
virtual void onRemoteAudioTransportStats(uid_t uid, unsigned short delay, unsigned short lost, unsigned short rxKBitRate)
Definition: IAgoraRtcEngine.h:3471
REMOTE_VIDEO_STREAM_TYPE rxStreamType
Definition: IAgoraRtcEngine.h:1629
const int STANDARD_BITRATE
Definition: IAgoraRtcEngine.h:1716
Definition: IAgoraRtcEngine.h:3764
virtual void release(bool sync=false)=0
unsigned short rxAudioKBitRate
Definition: IAgoraRtcEngine.h:1349
virtual void onConnectionBanned()
Definition: IAgoraRtcEngine.h:2639
Definition: IAgoraRtcEngine.h:691
Rectangle positionInLandscapeMode
Definition: IAgoraRtcEngine.h:2221
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:1324
virtual int enableInEarMonitoring(bool enabled)=0
int x
Definition: IAgoraRtcEngine.h:1914
virtual void onVideoDeviceStateChanged(const char *deviceId, int deviceType, int deviceState)
Definition: IAgoraRtcEngine.h:3166
const char * channelName
Definition: IAgoraRtcEngine.h:2101
int height
Definition: IAgoraRtcEngine.h:1856
CAMERA_DIRECTION cameraDirection
Definition: IAgoraRtcEngine.h:2041
CHANNEL_MEDIA_RELAY_EVENT
Definition: IAgoraRtcEngine.h:1491
int audioChannel
Definition: IAgoraRtcEngine.h:1885
virtual int renewToken(const char *token)=0
Definition: IAgoraRtcEngine.h:279
int setLogFile(const char *filePath)
Definition: IAgoraRtcEngine.h:7118
VIDEO_CODEC_TYPE
Definition: IAgoraRtcEngine.h:740
int muteRemoteAudioStream(uid_t uid, bool mute)
Definition: IAgoraRtcEngine.h:7087
int videoBitrate
Definition: IAgoraRtcEngine.h:2064
virtual void onNetworkQuality(uid_t uid, int txQuality, int rxQuality)
Definition: IAgoraRtcEngine.h:2708
virtual ~IRtcEngineEventHandler()
Definition: IAgoraRtcEngine.h:2462
AUDIO_SAMPLE_RATE_TYPE
Definition: IAgoraRtcEngine.h:719
Definition: IAgoraRtcEngine.h:1188
double memoryAppUsageRatio
Definition: IAgoraRtcEngine.h:1397
virtual int updateChannelMediaRelay(const ChannelMediaRelayConfiguration &configuration)=0
Definition: IAgoraRtcEngine.h:999
virtual void onUserEnableVideo(uid_t uid, bool enabled)
Definition: IAgoraRtcEngine.h:3014
Definition: IAgoraRtcEngine.h:66
CAPTURER_OUTPUT_PREFERENCE
Definition: IAgoraRtcEngine.h:1060
int setPlaybackAudioFrameParameters(int sampleRate, int channel, RAW_AUDIO_FRAME_OP_MODE_TYPE mode, int samplesPerCall)
Definition: IAgoraRtcEngine.h:7177
virtual void onTranscodingUpdated()
Definition: IAgoraRtcEngine.h:3386
virtual int setLogFileSize(unsigned int fileSizeInKBytes)=0
Definition: IAgoraRtcEngine.h:460
Definition: IAgoraRtcEngine.h:742
Definition: IAgoraRtcEngine.h:1307
Definition: IAgoraRtcEngine.h:1093
Definition: IAgoraRtcEngine.h:1206
unsigned int txVideoBytes
Definition: IAgoraRtcEngine.h:1328
Definition: IAgoraRtcEngine.h:1135
Definition: IAgoraRtcEngine.h:1657
int videoGop
Definition: IAgoraRtcEngine.h:1956
Definition: IAgoraRtcEngine.h:1120
ScreenCaptureParameters()
Definition: IAgoraRtcEngine.h:2266
virtual void onRemoteAudioMixingEnd()
Definition: IAgoraRtcEngine.h:3124
Definition: IAgoraRtcEngine.h:508
Definition: IAgoraRtcEngine.h:2411
LastmileProbeOneWayResult downlinkReport
Definition: IAgoraRtcEngine.h:1257
Definition: IAgoraRtcEngine.h:572
Rectangle(int xx, int yy, int ww, int hh)
Definition: IAgoraRtcEngine.h:2188
virtual int removeInjectStreamUrl(const char *url)=0
int y
Definition: IAgoraRtcEngine.h:2179
virtual int queryInterface(INTERFACE_ID_TYPE iid, void **inter)=0
RTMP_STREAM_PUBLISH_STATE
Definition: IAgoraRtcEngine.h:620
Definition: IAgoraRtcEngine.h:426
FRAME_RATE frameRate
Definition: IAgoraRtcEngine.h:1738
const char * appId
Definition: IAgoraRtcEngine.h:4023
Definition: IAgoraRtcEngine.h:1003
VOICE_CHANGER_PRESET
Definition: IAgoraRtcEngine.h:792
int adjustAudioMixingPlayoutVolume(int volume)
Definition: IAgoraRtcEngine.h:6859
Definition: IAgoraRtcEngine.h:306
virtual void onNetworkTypeChanged(NETWORK_TYPE type)
Definition: IAgoraRtcEngine.h:3543
Definition: IAgoraRtcEngine.h:693
virtual int stopRecordingDeviceTest()=0
const int COMPATIBLE_BITRATE
Definition: IAgoraRtcEngine.h:1722
Definition: IAgoraRtcEngine.h:1032
Definition: IAgoraRtcEngine.h:2360
virtual int getRecordingDeviceInfo(char deviceId[MAX_DEVICE_ID_LENGTH], char deviceName[MAX_DEVICE_ID_LENGTH])=0
VIDEO_MIRROR_MODE_TYPE mirrorMode
Definition: IAgoraRtcEngine.h:1809
int pauseAllEffects()
Definition: IAgoraRtcEngine.h:6980
unsigned int backgroundColor
Definition: IAgoraRtcEngine.h:1964
virtual int getUserInfoByUid(uid_t uid, UserInfo *userInfo)=0
LOCAL_AUDIO_STREAM_STATE
Definition: IAgoraRtcEngine.h:254
Definition: IAgoraRtcEngine.h:1005
int height
Definition: IAgoraRtcEngine.h:1615
CHANNEL_MEDIA_RELAY_ERROR
Definition: IAgoraRtcEngine.h:1446
Definition: IAgoraRtcEngine.h:703
Definition: IAgoraRtcEngine.h:285
Definition: IAgoraRtcEngine.h:1139
virtual void onFirstRemoteVideoFrame(uid_t uid, int width, int height, int elapsed)
Definition: IAgoraRtcEngine.h:2930
Definition: IAgoraRtcEngine.h:1137
Definition: IAgoraRtcEngine.h:361
MAX_USER_ACCOUNT_LENGTH_TYPE
Definition: IAgoraRtcEngine.h:30
Definition: IAgoraRtcEngine.h:442
int stopAllEffects()
Definition: IAgoraRtcEngine.h:6954
Definition: IAgoraRtcEngine.h:1507
Definition: IAgoraRtcEngine.h:6547
virtual void onTokenPrivilegeWillExpire(const char *token)
Definition: IAgoraRtcEngine.h:2668
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:3041
Definition: IAgoraRtcEngine.h:1051
VideoDimensions dimensions
Definition: IAgoraRtcEngine.h:1733
Definition: IAgoraRtcEngine.h:681
Definition: IAgoraRtcEngine.h:410
int networkTransportDelay
Definition: IAgoraRtcEngine.h:1668
int height
Definition: IAgoraRtcEngine.h:2185
int setObject(const char *key, const char *format,...)
Definition: IAgoraRtcEngine.h:7255
Definition: IAgoraRtcEngine.h:504
virtual void onMetadataReceived(const Metadata &metadata)=0
Definition: IAgoraRtcEngine.h:6729
virtual void onStreamPublished(const char *url, int error)
Definition: IAgoraRtcEngine.h:3364
Definition: IAgoraRtcEngine.h:1133
Definition: IAgoraRtcEngine.h:176
virtual int enableLastmileTest()=0
VideoCanvas()
Definition: IAgoraRtcEngine.h:2303
LOCAL_VIDEO_STREAM_ERROR
Definition: IAgoraRtcEngine.h:237
CAMERA_DIRECTION
Definition: IAgoraRtcEngine.h:1232
int stopAllRemoteVideo()
Definition: IAgoraRtcEngine.h:7263
Definition: IAgoraRtcEngine.h:468
Definition: IAgoraRtcEngine.h:416
virtual int setCameraCapturerConfiguration(const CameraCapturerConfiguration &config)=0
virtual int setLogFile(const char *filePath)=0
Definition: IAgoraRtcEngine.h:798
int encoderOutputFrameRate
Definition: IAgoraRtcEngine.h:1563
virtual int stopScreenCapture()=0
virtual int setLocalVoiceReverb(AUDIO_REVERB_TYPE reverbKey, int value)=0
REMOTE_VIDEO_STATE_REASON
Definition: IAgoraRtcEngine.h:950
virtual void onRemoteAudioMixingBegin()
Definition: IAgoraRtcEngine.h:3120
virtual int setupRemoteVideo(const VideoCanvas &canvas)=0
virtual int setDefaultAudioRouteToSpeakerphone(bool defaultToSpeaker)=0
virtual void onFirstLocalAudioFrame(int elapsed)
Definition: IAgoraRtcEngine.h:3312
int setLocalRenderMode(RENDER_MODE_TYPE renderMode)
Definition: IAgoraRtcEngine.h:7141
Definition: IAgoraRtcEngine.h:997
Definition: IAgoraRtcEngine.h:801
Definition: IAgoraRtcEngine.h:1501
int muteRemoteVideoStream(uid_t uid, bool mute)
Definition: IAgoraRtcEngine.h:6786
Definition: IAgoraRtcEngine.h:6738
virtual int stopPlaybackDeviceTest()=0
virtual int setLocalVideoMirrorMode(VIDEO_MIRROR_MODE_TYPE mirrorMode)=0
virtual int getPlaybackDeviceVolume(int *volume)=0
Definition: IAgoraRtcEngine.h:541
Definition: IAgoraRtcEngine.h:1484
Definition: IAgoraRtcEngine.h:26
int delay
Definition: IAgoraRtcEngine.h:1607
Definition: IAgoraRtcEngine.h:2112
virtual int muteRemoteVideoStream(uid_t userId, bool mute)=0
long long timeStampMs
Definition: IAgoraRtcEngine.h:4071
virtual void onMediaEngineStartCallSuccess()
Definition: IAgoraRtcEngine.h:3287
Definition: IAgoraRtcEngine.h:592
virtual int enableSoundPositionIndication(bool enabled)=0
unsigned short rxVideoKBitRate
Definition: IAgoraRtcEngine.h:1357
int numChannels
Definition: IAgoraRtcEngine.h:1677
CONNECTION_STATE_TYPE
Definition: IAgoraRtcEngine.h:1086
double memoryTotalUsageRatio
Definition: IAgoraRtcEngine.h:1402
virtual int getEffectsVolume()=0
Definition: IAgoraRtcEngine.h:1516
int numChannels
Definition: IAgoraRtcEngine.h:1647
Definition: IAgoraRtcEngine.h:1038
virtual void onWarning(int warn, const char *msg)
Definition: IAgoraRtcEngine.h:2471
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:2008
virtual int getArray(const char *key, agora::util::AString &value)=0
Definition: IAgoraRtcEngine.h:1546
virtual void onFirstLocalVideoFrame(int width, int height, int elapsed)
Definition: IAgoraRtcEngine.h:2874
Definition: IAgoraRtcEngine.h:63
Definition: IAgoraRtcEngine.h:319
virtual int setProfile(const char *profile, bool merge)=0
Definition: IAgoraRtcEngine.h:1100
Definition: IAgoraRtcEngine.h:820
RENDER_MODE_TYPE
Definition: IAgoraRtcEngine.h:337
virtual int leaveChannel()=0
virtual int setHighQualityAudioParameters(bool fullband, bool stereo, bool fullBitrate)=0
Definition: IAgoraRtcEngine.h:382
Definition: IAgoraRtcEngine.h:2354
Definition: IAgoraRtcEngine.h:331
int setDefaultMuteAllRemoteVideoStreams(bool mute)
Definition: IAgoraRtcEngine.h:6781
Definition: IAgoraRtcEngine.h:823
virtual void onAudioMixingStateChanged(fAUDIO_MIXING_STATE_TYPE state, AUDIO_MIXING_ERROR_TYPE errorCode)
Definition: IAgoraRtcEngine.h:3114
Definition: IAgoraRtcEngine.h:1481
virtual int getBool(const char *key, bool &value)=0
Definition: IAgoraRtcEngine.h:1042
Definition: IAgoraRtcEngine.h:327
virtual void onAudioDeviceStateChanged(const char *deviceId, int deviceType, int deviceState)
Definition: IAgoraRtcEngine.h:3027
Definition: IAgoraRtcEngine.h:946
VideoCanvas(view_t v, int rm, uid_t u, VIDEO_MIRROR_MODE_TYPE mm)
Definition: IAgoraRtcEngine.h:2331
Definition: IAgoraRtcEngine.h:418
Definition: IAgoraRtcEngine.h:1551
Definition: IAgoraRtcEngine.h:687
virtual int setScreenCaptureContentHint(VideoContentHint contentHint)=0
Definition: IAgoraRtcEngine.h:611
int videoGop
Definition: IAgoraRtcEngine.h:2056
virtual int setClientRole(CLIENT_ROLE_TYPE role)=0
Definition: IAgoraRtcEngine.h:1064
REMOTE_VIDEO_STATE
Definition: IAgoraRtcEngine.h:927
virtual int rate(const char *callId, int rating, const char *description)=0
int stopAudioMixing()
Definition: IAgoraRtcEngine.h:6835
bool probeUplink
Definition: IAgoraRtcEngine.h:1267
LASTMILE_PROBE_RESULT_STATE
Definition: IAgoraRtcEngine.h:1182
int audioBitrate
Definition: IAgoraRtcEngine.h:1995
Definition: IAgoraRtcEngine.h:1203
unsigned int expectedDownlinkBitrate
Definition: IAgoraRtcEngine.h:1275
VideoCanvas(view_t v, int m, uid_t u)
Definition: IAgoraRtcEngine.h:2312
Definition: IAgoraRtcEngine.h:713
Definition: IAgoraRtcEngine.h:478
int setRecordingAudioFrameParameters(int sampleRate, int channel, RAW_AUDIO_FRAME_OP_MODE_TYPE mode, int samplesPerCall)
Definition: IAgoraRtcEngine.h:7173
Definition: IAgoraRtcEngine.h:613
virtual int playEffect(int soundId, const char *filePath, int loopCount, double pitch, double pan, int gain, bool publish=false)=0
RtcStats()
Definition: IAgoraRtcEngine.h:1408
Definition: IAgoraRtcEngine.h:782
virtual int setAudioMixingPosition(int pos)=0
virtual int stopPreview()=0
Definition: IAgoraRtcEngine.h:357
Definition: IAgoraRtcEngine.h:558
Definition: IAgoraRtcEngine.h:167
Definition: IAgoraRtcEngine.h:323
PRIORITY_TYPE
Definition: IAgoraRtcEngine.h:1075
Definition: IAgoraRtcEngine.h:2098
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:3767
Definition: IAgoraRtcEngine.h:579
Definition: IAgoraRtcEngine.h:829
Definition: IAgoraRtcEngine.h:50
virtual void onLastmileQuality(int quality)
Definition: IAgoraRtcEngine.h:2590
int muteAllRemoteVideoStreams(bool mute)
Definition: IAgoraRtcEngine.h:6775
Definition: IAgoraRtcEngine.h:408
Definition: IAgoraRtcEngine.h:1461
Definition: IAgoraRtcEngine.h:482
int height
Definition: IAgoraRtcEngine.h:1920
int encodedFrameWidth
Definition: IAgoraRtcEngine.h:1583
Rectangle()
Definition: IAgoraRtcEngine.h:2187
CLIENT_ROLE_TYPE
Definition: IAgoraRtcEngine.h:599
Definition: IAgoraRtcEngine.h:627
virtual int startAudioRecording(const char *filePath, AUDIO_RECORDING_QUALITY_TYPE quality)=0
virtual void onFirstRemoteAudioDecoded(uid_t uid, int elapsed)
Definition: IAgoraRtcEngine.h:3153
Definition: IAgoraRtcEngine.h:1007
int quality
Definition: IAgoraRtcEngine.h:1665
Definition: IAgoraRtcEngine.h:1840
Definition: IAgoraRtcEngine.h:2459
virtual int enableAudioVolumeIndication(int interval, int smooth, bool report_vad)=0
int setLogFileSize(unsigned int fileSizeInKBytes)
Definition: IAgoraRtcEngine.h:7136
virtual int muteLocalAudioStream(bool mute)=0
virtual int setInEarMonitoringVolume(int volume)=0
Definition: IAgoraRtcEngine.h:662
view_t view
Definition: IAgoraRtcEngine.h:2277
int audioBitrate
Definition: IAgoraRtcEngine.h:2074
Definition: IAgoraRtcEngine.h:807
Definition: IAgoraRtcEngine.h:763
bool visibleInPreview
Definition: IAgoraRtcEngine.h:2216
const char * url
Definition: IAgoraRtcEngine.h:1912
Definition: IAgoraRtcEngine.h:715
Definition: IAgoraRtcEngine.h:215
virtual void onChannelMediaRelayEvent(CHANNEL_MEDIA_RELAY_EVENT code)
Definition: IAgoraRtcEngine.h:3305
Definition: IAgoraRtcEngine.h:518
virtual int updateScreenCaptureParameters(const ScreenCaptureParameters &captureParams)=0
virtual ~IMetadataObserver()
Definition: IAgoraRtcEngine.h:4074
virtual int setVideoQualityParameters(bool preferFrameRateOverImageQuality)=0
virtual int setUInt(const char *key, unsigned int value)=0
int totalFrozenTime
Definition: IAgoraRtcEngine.h:1635
virtual int getPlaybackDevice(char deviceId[MAX_DEVICE_ID_LENGTH])=0
virtual void onConnectionInterrupted()
Definition: IAgoraRtcEngine.h:2619
int resumeEffect(int soundId)
Definition: IAgoraRtcEngine.h:6986
int packetLossRate
Definition: IAgoraRtcEngine.h:1628
virtual void onStreamMessageError(uid_t uid, int streamId, int code, int missed, int cached)
Definition: IAgoraRtcEngine.h:3275
virtual void onChannelMediaRelayStateChanged(CHANNEL_MEDIA_RELAY_STATE state, CHANNEL_MEDIA_RELAY_ERROR code)
Definition: IAgoraRtcEngine.h:3298
Definition: IAgoraRtcEngine.h:604
ChannelMediaRelayConfiguration()
Definition: IAgoraRtcEngine.h:2136
virtual void onVideoSizeChanged(uid_t uid, int width, int height, int rotation)
Definition: IAgoraRtcEngine.h:3193
virtual int getPlaybackDeviceMute(bool *mute)=0
Definition: IAgoraRtcEngine.h:386
virtual int setNumber(const char *key, double value)=0
Definition: IAgoraRtcEngine.h:458
virtual int adjustAudioMixingVolume(int volume)=0
Definition: IAgoraRtcEngine.h:1170
Definition: IAgoraRtcEngine.h:578
virtual void onRejoinChannelSuccess(const char *channel, uid_t uid, int elapsed)
Definition: IAgoraRtcEngine.h:2516
virtual void onLocalVideoStateChanged(LOCAL_VIDEO_STREAM_STATE localVideoState, LOCAL_VIDEO_STREAM_ERROR error)
Definition: IAgoraRtcEngine.h:3181
WatermarkOptions()
Definition: IAgoraRtcEngine.h:2228
Definition: IAgoraRtcEngine.h:2149
virtual int setLocalVoiceChanger(VOICE_CHANGER_PRESET voiceChanger)=0
Definition: IAgoraRtcEngine.h:398
AutoPtr(pointer_type p=0)
Definition: AgoraBase.h:44
Definition: IAgoraRtcEngine.h:494
Definition: IAgoraRtcEngine.h:874
ScreenCaptureParameters(int width, int height, int f, int b, bool c)
Definition: IAgoraRtcEngine.h:2268
Definition: IAgoraRtcEngine.h:245
Definition: IAgoraRtcEngine.h:434
int width
Definition: IAgoraRtcEngine.h:1853
Definition: IAgoraRtcEngine.h:173
Definition: IAgoraRtcEngine.h:212
AParameter(IRtcEngineParameter *p)
Definition: IAgoraRtcEngine.h:6743
Definition: IAgoraRtcEngine.h:1009
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:7022
Definition: IAgoraRtcEngine.h:203
Definition: IAgoraRtcEngine.h:537
Definition: IAgoraRtcEngine.h:732
Definition: IAgoraRtcEngine.h:498
virtual bool onSendAudioPacket(Packet &packet)=0
RTMP_STREAM_PUBLISH_ERROR
Definition: IAgoraRtcEngine.h:645
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:813
Definition: IAgoraRtcEngine.h:3614
virtual int unloadEffect(int soundId)=0
Definition: IAgoraRtcEngine.h:602
virtual int setObject(const char *key, const char *value)=0
int receivedSampleRate
Definition: IAgoraRtcEngine.h:1681
Definition: IAgoraRtcEngine.h:4055
CHANNEL_PROFILE_TYPE
Definition: IAgoraRtcEngine.h:584
INJECT_STREAM_STATUS
Definition: IAgoraRtcEngine.h:672
RtcImage * backgroundImage
Definition: IAgoraRtcEngine.h:1989
virtual int joinChannelWithUserAccount(const char *token, const char *channelId, const char *userAccount)=0
virtual bool onReadyToSendMetadata(Metadata &metadata)=0
Definition: IAgoraRtcEngine.h:392
Definition: IAgoraRtcEngine.h:512
Definition: IAgoraRtcEngine.h:2047
Definition: IAgoraRtcEngine.h:78
virtual int initialize(const RtcEngineContext &context)=0
virtual int getAudioMixingPlayoutVolume()=0
int totalFrozenTime
Definition: IAgoraRtcEngine.h:1687
Definition: IAgoraRtcEngine.h:765
AUDIO_RECORDING_QUALITY_TYPE
Definition: IAgoraRtcEngine.h:297
Definition: IAgoraRtcEngine.h:1212
Definition: IAgoraRtcEngine.h:1153
virtual int getCallId(agora::util::AString &callId)=0
virtual int setChannelProfile(CHANNEL_PROFILE_TYPE profile)=0
Definition: AgoraBase.h:254
Definition: IAgoraRtcEngine.h:4039
Definition: IAgoraRtcEngine.h:1467
Definition: IAgoraRtcEngine.h:1178
const char * token
Definition: IAgoraRtcEngine.h:2104
Definition: IAgoraRtcEngine.h:838
Definition: IAgoraRtcEngine.h:440
MAX_DEVICE_ID_LENGTH_TYPE
Definition: IAgoraRtcEngine.h:22
MAX_CHANNEL_ID_LENGTH_TYPE
Definition: IAgoraRtcEngine.h:38
Definition: IAgoraRtcEngine.h:1129
virtual int setMixedAudioFrameParameters(int sampleRate, int samplesPerCall)=0
Definition: IAgoraRtcEngine.h:788
Definition: IAgoraRtcEngine.h:402
int setLocalVoiceReverbPreset(AUDIO_REVERB_PRESET reverbPreset)
Definition: IAgoraRtcEngine.h:7035
int height
Definition: IAgoraRtcEngine.h:2053
int getAudioMixingDuration()
Definition: IAgoraRtcEngine.h:6887
TranscodingUser()
Definition: IAgoraRtcEngine.h:1886
virtual int stopEchoTest()=0
virtual void onAudioMixingFinished()
Definition: IAgoraRtcEngine.h:3100
float smoothnessLevel
Definition: IAgoraRtcEngine.h:2376
Definition: IAgoraRtcEngine.h:241
Definition: IAgoraRtcEngine.h:342
int enableDualStreamMode(bool enabled)
Definition: IAgoraRtcEngine.h:7157
Definition: IAgoraRtcEngine.h:100
int getEffectsVolume()
Definition: IAgoraRtcEngine.h:6910
int adjustAudioMixingVolume(int volume)
Definition: IAgoraRtcEngine.h:6850
virtual void onAudioRouteChanged(AUDIO_ROUTE_TYPE routing)
Definition: IAgoraRtcEngine.h:3408
virtual int setLocalVoiceEqualization(AUDIO_EQUALIZATION_BAND_FREQUENCY bandFrequency, int bandGain)=0
Definition: AgoraBase.h:107
int enableLoopbackRecording(bool enabled, const char *deviceName=NULL)
Definition: IAgoraRtcEngine.h:7228
virtual int enableDualStreamMode(bool enabled)=0
Definition: IAgoraRtcEngine.h:1643
Definition: IAgoraRtcEngine.h:424
Definition: IAgoraRtcEngine.h:374
virtual int setLocalVoicePitch(double pitch)=0
virtual int setAudioProfile(AUDIO_PROFILE_TYPE profile, AUDIO_SCENARIO_TYPE scenario)=0
Definition: IAgoraRtcEngine.h:486
Definition: IAgoraRtcEngine.h:53
virtual void onRemoteAudioStats(const RemoteAudioStats &stats)
Definition: IAgoraRtcEngine.h:2762
unsigned int size
Definition: IAgoraRtcEngine.h:4065
int x
Definition: IAgoraRtcEngine.h:1847
virtual int enableVideo()=0
int muteLocalVideoStream(bool mute)
Definition: IAgoraRtcEngine.h:6770
int bottom
Definition: IAgoraRtcEngine.h:2201
virtual int setDevice(const char deviceId[MAX_DEVICE_ID_LENGTH])=0
int stopEffect(int soundId)
Definition: IAgoraRtcEngine.h:6948
Definition: IAgoraRtcEngine.h:3574
virtual IAudioDeviceCollection * enumerateRecordingDevices()=0
virtual int setApplicationVolume(int volume)=0
int setExternalAudioSink(bool enabled, int sampleRate, int channels)
Definition: IAgoraRtcEngine.h:7110
virtual int getPlaybackDeviceInfo(char deviceId[MAX_DEVICE_ID_LENGTH], char deviceName[MAX_DEVICE_ID_LENGTH])=0
Definition: IAgoraRtcEngine.h:1251
int setVideoQualityParameters(bool preferFrameRateOverImageQuality)
Definition: IAgoraRtcEngine.h:7192
Definition: IAgoraRtcEngine.h:490
Definition: IAgoraRtcEngine.h:595
Definition: IAgoraRtcEngine.h:496
int videoBitrate
Definition: IAgoraRtcEngine.h:1940
int adjustRecordingSignalVolume(int volume)
Definition: IAgoraRtcEngine.h:7056
virtual void onAudioQuality(uid_t uid, int quality, unsigned short delay, unsigned short lost)
Definition: IAgoraRtcEngine.h:2683
Definition: IAgoraRtcEngine.h:133
Definition: IAgoraRtcEngine.h:4049
Definition: IAgoraRtcEngine.h:912
Definition: IAgoraRtcEngine.h:420
Definition: IAgoraRtcEngine.h:588
virtual int resumeEffect(int soundId)=0
virtual int setBool(const char *key, bool value)=0
AUDIO_SESSION_OPERATION_RESTRICTION
Definition: IAgoraRtcEngine.h:1217
Definition: IAgoraRtcEngine.h:1695
Definition: IAgoraRtcEngine.h:1442
int top
Definition: IAgoraRtcEngine.h:2195
Definition: IAgoraRtcEngine.h:380
VIDEO_MIRROR_MODE_TYPE mirrorMode
Definition: IAgoraRtcEngine.h:2301
virtual int getUInt(const char *key, unsigned int &value)=0
Definition: IAgoraRtcEngine.h:376
QUALITY_REPORT_FORMAT_TYPE
Definition: IAgoraRtcEngine.h:46
Definition: IAgoraRtcEngine.h:1147
int setPlaybackDeviceVolume(int volume)
Definition: IAgoraRtcEngine.h:6791
virtual ~IVideoDeviceCollection()
Definition: IAgoraRtcEngine.h:3577
Definition: IAgoraRtcEngine.h:630
Definition: IAgoraRtcEngine.h:267
uid_t uid
Definition: IAgoraRtcEngine.h:2107
Definition: IAgoraRtcEngine.h:72
virtual int setEncryptionSecret(const char *secret)=0
int targetBitrate
Definition: IAgoraRtcEngine.h:1569
AUDIO_EQUALIZATION_BAND_FREQUENCY
Definition: IAgoraRtcEngine.h:752
int encodedFrameCount
Definition: IAgoraRtcEngine.h:1589
virtual int startEchoTest()=0
LOCAL_AUDIO_STREAM_ERROR
Definition: IAgoraRtcEngine.h:272
Definition: IAgoraRtcEngine.h:2164
virtual int getRecordingDeviceMute(bool *mute)=0
Definition: AgoraBase.h:108
VIDEO_PROFILE_TYPE
Definition: IAgoraRtcEngine.h:365
int setMixedAudioFrameParameters(int sampleRate, int samplesPerCall)
Definition: IAgoraRtcEngine.h:7181
Definition: IAgoraRtcEngine.h:545
BeautyOptions()
Definition: IAgoraRtcEngine.h:2388
int width
Definition: IAgoraRtcEngine.h:1697
virtual int addPublishStreamUrl(const char *url, bool transcodingEnabled)=0
Definition: IAgoraRtcEngine.h:897
Definition: AgoraBase.h:40
virtual int setExternalAudioSink(bool enabled, int sampleRate, int channels)=0
virtual int resumeAudioMixing()=0
double alpha
Definition: IAgoraRtcEngine.h:1873
int getAudioMixingCurrentPosition()
Definition: IAgoraRtcEngine.h:6896
int setAudioMixingPosition(int pos)
Definition: IAgoraRtcEngine.h:6905
unsigned int uid
Definition: IAgoraRtcEngine.h:4062
virtual void onLocalPublishFallbackToAudioOnly(bool isFallbackOrRecover)
Definition: IAgoraRtcEngine.h:3420
Definition: IAgoraRtcEngine.h:1027
virtual void onJoinChannelSuccess(const char *channel, uid_t uid, int elapsed)
Definition: IAgoraRtcEngine.h:2502
Definition: IAgoraRtcEngine.h:864
virtual int setRecordingAudioFrameParameters(int sampleRate, int channel, RAW_AUDIO_FRAME_OP_MODE_TYPE mode, int samplesPerCall)=0
Definition: IAgoraRtcEngine.h:1159
virtual void onUserInfoUpdated(uid_t uid, const UserInfo &info)
Definition: IAgoraRtcEngine.h:3563
Definition: IAgoraRtcEngine.h:1599
unsigned short txPacketLossRate
Definition: IAgoraRtcEngine.h:1368
Definition: IAgoraRtcEngine.h:576
virtual int stopAudioRecording()=0
virtual int disableVideo()=0
virtual int getInt(const char *key, int &value)=0
Definition: IAgoraRtcEngine.h:1457
int setExternalAudioSource(bool enabled, int sampleRate, int channels)
Definition: IAgoraRtcEngine.h:7102
Definition: IAgoraRtcEngine.h:1504
Definition: IAgoraRtcEngine.h:1498
uid_t uid
Definition: IAgoraRtcEngine.h:1843
virtual int enableAudio()=0
int frameRate
Definition: IAgoraRtcEngine.h:2253
const char * transcodingExtraInfo
Definition: IAgoraRtcEngine.h:1975
virtual int disableAudio()=0
int width
Definition: IAgoraRtcEngine.h:1611
Definition: IAgoraRtcEngine.h:746
Definition: IAgoraRtcEngine.h:470
REMOTE_AUDIO_STATE_REASON
Definition: IAgoraRtcEngine.h:883
virtual int getObject(const char *key, agora::util::AString &value)=0
VideoContentHint
Definition: IAgoraRtcEngine.h:2157
int width
Definition: IAgoraRtcEngine.h:2182
Definition: IAgoraRtcEngine.h:1055
virtual int setString(const char *key, const char *value)=0
struct agora::rtc::LiveTranscoding LiveTranscoding
Definition: IAgoraRtcEngine.h:648
int setEffectsVolume(int volume)
Definition: IAgoraRtcEngine.h:6920
virtual int getApplicationVolume(int &volume)=0
Definition: IAgoraRtcEngine.h:639
int height
Definition: IAgoraRtcEngine.h:1935
Definition: IAgoraRtcEngine.h:384
virtual int setLogFilter(unsigned int filter)=0
Definition: IAgoraRtcEngine.h:624
virtual int addVideoWatermark(const RtcImage &watermark)=0
QUALITY_ADAPT_INDICATION
Definition: IAgoraRtcEngine.h:1436
virtual bool onReceiveVideoPacket(Packet &packet)=0
virtual int setEnableSpeakerphone(bool speakerOn)=0
Definition: IAgoraRtcEngine.h:2152
AUDIO_REVERB_PRESET
Definition: IAgoraRtcEngine.h:817
ORIENTATION_MODE
Definition: IAgoraRtcEngine.h:1014
virtual int getMaxMetadataSize()=0
Definition: IAgoraRtcEngine.h:887
Definition: IAgoraRtcEngine.h:557
virtual void onMediaEngineLoadSuccess()
Definition: IAgoraRtcEngine.h:3284
virtual bool onSendVideoPacket(Packet &packet)=0
Definition: IAgoraRtcEngine.h:94
int minFrameRate
Definition: IAgoraRtcEngine.h:1741
Definition: IAgoraRtcEngine.h:359
Definition: IAgoraRtcEngine.h:432
int setLocalVideoMirrorMode(VIDEO_MIRROR_MODE_TYPE mirrorMode)
Definition: IAgoraRtcEngine.h:7197
int setCameraCapturerConfiguration(const CameraCapturerConfiguration &config)
Definition: IAgoraRtcEngine.h:7151
Definition: IAgoraRtcEngine.h:685
INTERFACE_ID_TYPE
Definition: AgoraBase.h:104
virtual int setInt(const char *key, int value)=0
void * view_t
Definition: IAgoraRtcEngine.h:19
Definition: IAgoraRtcEngine.h:1113
virtual int convertPath(const char *filePath, agora::util::AString &value)=0
Definition: IAgoraRtcEngine.h:1040
int destCount
Definition: IAgoraRtcEngine.h:2134