Agora Java API Reference for Android
IAgoraRtcEngine.h
1 //
2 // Agora Rtc Engine SDK
3 //
4 // Copyright (c) 2018 Agora.io. All rights reserved.
5 //
6 #pragma once
7 
8 #include "AgoraBase.h"
9 #include "AgoraMediaBase.h"
10 #include "IAgoraLog.h"
11 #include "AgoraOptional.h"
12 #include "IAudioDeviceManager.h"
13 #include "IAgoraRhythmPlayer.h"
14 #include "IAgoraMediaEngine.h"
15 #include "IAgoraH265Transcoder.h"
16 
17 namespace agora {
18 namespace rtm {
19 class IStreamChannel;
20 }
21 namespace rtc {
22 
23 template <typename T>
24 static void SetFrom(Optional<T>* s, const Optional<T>& o) {
25  if (o) {
26  *s = o;
27  }
28 }
29 
30 template <typename T>
31 static void ReplaceBy(Optional<T>* s, const Optional<T>& o) {
32  *s = o;
33 }
34 
35 //class IAudioDeviceManager;
36 
40 enum MEDIA_DEVICE_TYPE {
44  UNKNOWN_AUDIO_DEVICE = -1,
48  AUDIO_PLAYOUT_DEVICE = 0,
52  AUDIO_RECORDING_DEVICE = 1,
56  VIDEO_RENDER_DEVICE = 2,
60  VIDEO_CAPTURE_DEVICE = 3,
64  AUDIO_APPLICATION_PLAYOUT_DEVICE = 4,
68  AUDIO_VIRTUAL_PLAYOUT_DEVICE = 5,
72  AUDIO_VIRTUAL_RECORDING_DEVICE = 6,
73 };
74 
78 enum AUDIO_MIXING_STATE_TYPE {
80  AUDIO_MIXING_STATE_PLAYING = 710,
82  AUDIO_MIXING_STATE_PAUSED = 711,
84  AUDIO_MIXING_STATE_STOPPED = 713,
87  AUDIO_MIXING_STATE_FAILED = 714,
88 };
89 
93 enum AUDIO_MIXING_REASON_TYPE {
95  AUDIO_MIXING_REASON_CAN_NOT_OPEN = 701,
97  AUDIO_MIXING_REASON_TOO_FREQUENT_CALL = 702,
99  AUDIO_MIXING_REASON_INTERRUPTED_EOF = 703,
101  AUDIO_MIXING_REASON_ONE_LOOP_COMPLETED = 721,
103  AUDIO_MIXING_REASON_ALL_LOOPS_COMPLETED = 723,
105  AUDIO_MIXING_REASON_STOPPED_BY_USER = 724,
107  AUDIO_MIXING_REASON_RESUMED_BY_USER = 726,
109  AUDIO_MIXING_REASON_OK = 0,
110 };
111 
115 enum INJECT_STREAM_STATUS {
119  INJECT_STREAM_STATUS_START_SUCCESS = 0,
123  INJECT_STREAM_STATUS_START_ALREADY_EXISTS = 1,
127  INJECT_STREAM_STATUS_START_UNAUTHORIZED = 2,
131  INJECT_STREAM_STATUS_START_TIMEDOUT = 3,
135  INJECT_STREAM_STATUS_START_FAILED = 4,
139  INJECT_STREAM_STATUS_STOP_SUCCESS = 5,
143  INJECT_STREAM_STATUS_STOP_NOT_FOUND = 6,
147  INJECT_STREAM_STATUS_STOP_UNAUTHORIZED = 7,
151  INJECT_STREAM_STATUS_STOP_TIMEDOUT = 8,
155  INJECT_STREAM_STATUS_STOP_FAILED = 9,
159  INJECT_STREAM_STATUS_BROKEN = 10,
160 };
161 
165 enum AUDIO_EQUALIZATION_BAND_FREQUENCY {
169  AUDIO_EQUALIZATION_BAND_31 = 0,
173  AUDIO_EQUALIZATION_BAND_62 = 1,
177  AUDIO_EQUALIZATION_BAND_125 = 2,
181  AUDIO_EQUALIZATION_BAND_250 = 3,
185  AUDIO_EQUALIZATION_BAND_500 = 4,
189  AUDIO_EQUALIZATION_BAND_1K = 5,
193  AUDIO_EQUALIZATION_BAND_2K = 6,
197  AUDIO_EQUALIZATION_BAND_4K = 7,
201  AUDIO_EQUALIZATION_BAND_8K = 8,
205  AUDIO_EQUALIZATION_BAND_16K = 9,
206 };
207 
211 enum AUDIO_REVERB_TYPE {
215  AUDIO_REVERB_DRY_LEVEL = 0,
219  AUDIO_REVERB_WET_LEVEL = 1,
223  AUDIO_REVERB_ROOM_SIZE = 2,
227  AUDIO_REVERB_WET_DELAY = 3,
231  AUDIO_REVERB_STRENGTH = 4,
232 };
233 
234 enum STREAM_FALLBACK_OPTIONS {
239  STREAM_FALLBACK_OPTION_DISABLED = 0,
243  STREAM_FALLBACK_OPTION_VIDEO_STREAM_LOW = 1,
247  STREAM_FALLBACK_OPTION_AUDIO_ONLY = 2,
252  STREAM_FALLBACK_OPTION_VIDEO_STREAM_LAYER_1 = 3,
253  STREAM_FALLBACK_OPTION_VIDEO_STREAM_LAYER_2 = 4,
254  STREAM_FALLBACK_OPTION_VIDEO_STREAM_LAYER_3 = 5,
255  STREAM_FALLBACK_OPTION_VIDEO_STREAM_LAYER_4 = 6,
256  STREAM_FALLBACK_OPTION_VIDEO_STREAM_LAYER_5 = 7,
257  STREAM_FALLBACK_OPTION_VIDEO_STREAM_LAYER_6 = 8,
258 };
259 
260 enum PRIORITY_TYPE {
263  PRIORITY_HIGH = 50,
266  PRIORITY_NORMAL = 100,
267 };
268 
269 struct RtcConnection;
270 
274 {
278  uid_t uid;
329  QUALITY_ADAPT_INDICATION qualityAdaptIndication;
339  VIDEO_CODEC_TYPE codecType;
343  unsigned short txPacketLossRate;
346  CAPTURE_BRIGHTNESS_LEVEL_TYPE captureBrightnessLevel;
366 };
367 
372 {
376  uid_t uid;
380  int quality;
436  int mosValue;
445  uint32_t plcCount;
446 
452 
458 
479  unsigned int rxAudioBytes;
483  int e2eDelay;
484 
486  : uid(0),
487  quality(0),
490  audioLossRate(0),
491  numChannels(0),
493  receivedBitrate(0),
494  totalFrozenTime(0),
495  frozenRate(0),
496  mosValue(0),
498  plcCount(0),
501  totalActiveTime(0),
502  publishDuration(0),
503  qoeQuality(0),
505  rxAudioBytes(0),
506  e2eDelay(0) {}
507 };
508 
516  uid_t uid;
524  int delay __deprecated;
528  int e2eDelay;
532  int width;
536  int height;
559  VIDEO_STREAM_TYPE rxStreamType;
591  int mosValue;
595  unsigned int rxVideoBytes;
596 };
597 
599  struct Region {
602  uid_t uid;
605  double x; // [0,1]
608  double y; // [0,1]
612  double width; // [0,1]
614  double height; // [0,1]
618  int zOrder; // optional, [0, 100] //0 (default): bottom most, 100: top most
619 
623  double alpha;
624 
625  media::base::RENDER_MODE_TYPE renderMode; // RENDER_MODE_HIDDEN: Crop, RENDER_MODE_FIT: Zoom to fit
626 
627  Region()
628  : uid(0),
629  x(0),
630  y(0),
631  width(0),
632  height(0),
633  zOrder(0),
634  alpha(1.0),
635  renderMode(media::base::RENDER_MODE_HIDDEN) {}
636  };
637 
650  const char* backgroundColor; // e.g. "#C0C0C0" in RGB
654  const Region* regions;
660  const char* appData;
664 
666  : canvasWidth(0),
667  canvasHeight(0),
668  backgroundColor(OPTIONAL_NULLPTR),
669  regions(NULL),
670  regionCount(0),
671  appData(OPTIONAL_NULLPTR),
672  appDataLength(0) {}
673 };
674 
681  int width;
685  int height;
689  int videoGop;
701  AUDIO_SAMPLE_RATE_TYPE audioSampleRate;
709 
710  // width / height default set to 0 means pull the stream with its original
711  // resolution
713  : width(0),
714  height(0),
715  videoGop(30),
716  videoFramerate(15),
717  videoBitrate(400),
718  audioSampleRate(AUDIO_SAMPLE_RATE_48000),
719  audioBitrate(48),
720  audioChannels(1) {}
721 };
722 
725 enum RTMP_STREAM_LIFE_CYCLE_TYPE {
728  RTMP_STREAM_LIFE_CYCLE_BIND2CHANNEL = 1,
731  RTMP_STREAM_LIFE_CYCLE_BIND2OWNER = 2,
732 };
733 
740  int width;
744  int height;
752  int bitrate;
766  bool owner;
775  const char* injectStreamUrl;
779  const char* publishUrl;
783  const char* rawStreamUrl;
786  const char* extraInfo;
787 
789  : width(640),
790  height(360),
791  framerate(15),
792  bitrate(500),
793  defaultLayout(1),
794  lifecycle(RTMP_STREAM_LIFE_CYCLE_BIND2CHANNEL),
795  owner(true),
798  injectStreamUrl(NULL),
799  publishUrl(NULL),
800  rawStreamUrl(NULL),
801  extraInfo(NULL) {}
802 };
803 
807 enum CAMERA_DIRECTION {
809  CAMERA_REAR = 0,
811  CAMERA_FRONT = 1,
812 };
813 
818 enum CLOUD_PROXY_TYPE {
821  NONE_PROXY = 0,
824  UDP_PROXY = 1,
826 
828  TCP_PROXY = 2,
830 };
831 
835 #if defined(__ANDROID__) || (defined(__APPLE__) && TARGET_OS_IOS) || defined(__OHOS__)
836 
839  Optional<CAMERA_DIRECTION> cameraDirection;
840 
841  /*- CAMERA_FOCAL_LENGTH_TYPE.CAMERA_FOCAL_LENGTH_DEFAULT:
842  For iOS, if iPhone/iPad has 3 or 2 back camera, it means combination of triple (wide + ultra wide + telephoto) camera
843  or dual wide(wide + ultra wide) camera.In this situation, you can apply for ultra wide len by set smaller zoom fator
844  and bigger zoom fator for telephoto len.Otherwise, it always means wide back/front camera.
845 
846  - CAMERA_FOCAL_LENGTH_TYPE.CAMERA_FOCAL_LENGTH_WIDE_ANGLE:wide camera
847  - CAMERA_FOCAL_LENGTH_TYPE.CAMERA_FOCAL_LENGTH_ULTRA_WIDE:ultra wide camera
848  - CAMERA_FOCAL_LENGTH_TYPE.CAMERA_FOCAL_LENGTH_TELEPHOTO:telephoto camera*/
849  Optional<CAMERA_FOCAL_LENGTH_TYPE> cameraFocalLengthType;
850 #else
851 
853 #endif
854 
855 #if defined(__ANDROID__)
856 
859  Optional<const char *> cameraId;
860 #endif
861  Optional<bool> followEncodeDimensionRatio;
865 };
875  bool isCaptureWindow; // true - capture window, false - capture display
879  int64_t displayId;
884  Rectangle screenRect; //Windows only
889  int64_t windowId;
902 
904 };
905 
906 #if (defined(__APPLE__) && TARGET_OS_MAC && !TARGET_OS_IPHONE)|| (defined(__linux__) && !defined(__ANDROID__) && !defined(__OHOS__))
907 
909 struct SIZE {
912  int width;
915  int height;
916 
917  SIZE() : width(0), height(0) {}
918  SIZE(int ww, int hh) : width(ww), height(hh) {}
919 };
920 #endif
921 
922 #if defined(_WIN32) || (defined(__APPLE__) && TARGET_OS_MAC && !TARGET_OS_IPHONE) || (defined(__linux__) && !defined(__ANDROID__) && !defined(__OHOS__))
923 
928 struct ThumbImageBuffer {
932  const char* buffer;
936  unsigned int length;
940  unsigned int width;
944  unsigned int height;
945  ThumbImageBuffer() : buffer(nullptr), length(0), width(0), height(0) {}
946 };
950 enum ScreenCaptureSourceType {
952  ScreenCaptureSourceType_Unknown = -1,
954  ScreenCaptureSourceType_Window = 0,
956  ScreenCaptureSourceType_Screen = 1,
958  ScreenCaptureSourceType_Custom = 2,
959 };
961 struct ScreenCaptureSourceInfo {
965  ScreenCaptureSourceType type;
969  int64_t sourceId;
973  const char* sourceName;
977  ThumbImageBuffer thumbImage;
981  ThumbImageBuffer iconImage;
985  const char* processPath;
989  const char* sourceTitle;
995  bool primaryMonitor;
996  bool isOccluded;
1000  Rectangle position;
1001 #if defined(_WIN32)
1002 
1005  bool minimizeWindow;
1012  int64_t sourceDisplayId;
1013  ScreenCaptureSourceInfo() : type(ScreenCaptureSourceType_Unknown), sourceId(0), sourceName(nullptr),
1014  processPath(nullptr), sourceTitle(nullptr), primaryMonitor(false), isOccluded(false), minimizeWindow(false), sourceDisplayId(-2) {}
1015 #else
1016  ScreenCaptureSourceInfo() : type(ScreenCaptureSourceType_Unknown), sourceId(0), sourceName(nullptr), processPath(nullptr), sourceTitle(nullptr), primaryMonitor(false), isOccluded(false) {}
1017 #endif
1018 };
1022 class IScreenCaptureSourceList {
1023  protected:
1024  virtual ~IScreenCaptureSourceList(){};
1025 
1026  public:
1032  virtual unsigned int getCount() = 0;
1042  virtual ScreenCaptureSourceInfo getSourceInfo(unsigned int index) = 0;
1049  virtual void release() = 0;
1050 };
1051 #endif // _WIN32 || (__APPLE__ && !TARGET_OS_IPHONE && TARGET_OS_MAC)
1052 
1060 
1062  ~AdvancedAudioOptions() {}
1063 };
1064 
1066  const char* imageUrl;
1067  int fps;
1068  VIDEO_MIRROR_MODE_TYPE mirrorMode;
1069  ImageTrackOptions() : imageUrl(NULL), fps(1), mirrorMode(VIDEO_MIRROR_MODE_DISABLED) {}
1070 };
1071 
1111 
1112  #if defined(__ANDROID__) || (defined(TARGET_OS_IPHONE) && TARGET_OS_IPHONE) || defined(__OHOS__)
1113 
1118  Optional<bool> publishScreenCaptureVideo;
1124  Optional<bool> publishScreenCaptureAudio;
1125  #else
1126 
1150  #endif
1151 
1297 
1303 
1318 
1328 
1338 
1349 
1350  ChannelMediaOptions() {}
1351  ~ChannelMediaOptions() {}
1352 
1353  void SetAll(const ChannelMediaOptions& change) {
1354 #define SET_FROM(X) SetFrom(&X, change.X)
1355 
1356  SET_FROM(publishCameraTrack);
1357  SET_FROM(publishSecondaryCameraTrack);
1358  SET_FROM(publishThirdCameraTrack);
1359  SET_FROM(publishFourthCameraTrack);
1360  SET_FROM(publishMicrophoneTrack);
1361 #if defined(__ANDROID__) || (defined(TARGET_OS_IPHONE) && TARGET_OS_IPHONE) || defined(__OHOS__)
1362  SET_FROM(publishScreenCaptureVideo);
1363  SET_FROM(publishScreenCaptureAudio);
1364 #else
1365  SET_FROM(publishScreenTrack);
1366  SET_FROM(publishSecondaryScreenTrack);
1367  SET_FROM(publishThirdScreenTrack);
1368  SET_FROM(publishFourthScreenTrack);
1369 #endif
1370  SET_FROM(publishTranscodedVideoTrack);
1371  SET_FROM(publishMixedAudioTrack);
1372  SET_FROM(publishLipSyncTrack);
1373  SET_FROM(publishCustomAudioTrack);
1374  SET_FROM(publishCustomAudioTrackId);
1375  SET_FROM(publishCustomVideoTrack);
1376  SET_FROM(publishEncodedVideoTrack);
1377  SET_FROM(publishMediaPlayerAudioTrack);
1378  SET_FROM(publishMediaPlayerVideoTrack);
1379  SET_FROM(autoSubscribeAudio);
1380  SET_FROM(autoSubscribeVideo);
1381  SET_FROM(publishMediaPlayerId);
1383  SET_FROM(clientRoleType);
1384  SET_FROM(audienceLatencyLevel);
1385  SET_FROM(defaultVideoStreamType);
1386  SET_FROM(channelProfile);
1387  SET_FROM(audioDelayMs);
1388  SET_FROM(mediaPlayerAudioDelayMs);
1389  SET_FROM(token);
1390  SET_FROM(enableBuiltInMediaEncryption);
1391  SET_FROM(publishRhythmPlayerTrack);
1392  SET_FROM(customVideoTrackId);
1393  SET_FROM(isAudioFilterable);
1394  SET_FROM(isInteractiveAudience);
1395  SET_FROM(parameters);
1396  SET_FROM(enableMultipath);
1397  SET_FROM(uplinkMultipathMode);
1398  SET_FROM(downlinkMultipathMode);
1399  SET_FROM(preferMultipathType);
1400 #undef SET_FROM
1401  }
1402 
1403  bool operator==(const ChannelMediaOptions& o) const {
1404 #define BEGIN_COMPARE() bool b = true
1405 #define ADD_COMPARE(X) b = (b && (X == o.X))
1406 #define END_COMPARE()
1407 
1408  BEGIN_COMPARE();
1409  ADD_COMPARE(publishCameraTrack);
1410  ADD_COMPARE(publishSecondaryCameraTrack);
1411  ADD_COMPARE(publishThirdCameraTrack);
1412  ADD_COMPARE(publishFourthCameraTrack);
1413  ADD_COMPARE(publishMicrophoneTrack);
1414 #if defined(__ANDROID__) || (defined(TARGET_OS_IPHONE) && TARGET_OS_IPHONE) || defined(__OHOS__)
1415  ADD_COMPARE(publishScreenCaptureVideo);
1416  ADD_COMPARE(publishScreenCaptureAudio);
1417 #else
1418  ADD_COMPARE(publishScreenTrack);
1419  ADD_COMPARE(publishSecondaryScreenTrack);
1420  ADD_COMPARE(publishThirdScreenTrack);
1421  ADD_COMPARE(publishFourthScreenTrack);
1422 #endif
1423  ADD_COMPARE(publishTranscodedVideoTrack);
1424  ADD_COMPARE(publishMixedAudioTrack);
1425  ADD_COMPARE(publishLipSyncTrack);
1426  ADD_COMPARE(publishCustomAudioTrack);
1427  ADD_COMPARE(publishCustomAudioTrackId);
1428  ADD_COMPARE(publishCustomVideoTrack);
1429  ADD_COMPARE(publishEncodedVideoTrack);
1430  ADD_COMPARE(publishMediaPlayerAudioTrack);
1431  ADD_COMPARE(publishMediaPlayerVideoTrack);
1432  ADD_COMPARE(autoSubscribeAudio);
1433  ADD_COMPARE(autoSubscribeVideo);
1434  ADD_COMPARE(publishMediaPlayerId);
1435  ADD_COMPARE(enableAudioRecordingOrPlayout);
1436  ADD_COMPARE(clientRoleType);
1437  ADD_COMPARE(audienceLatencyLevel);
1438  ADD_COMPARE(defaultVideoStreamType);
1439  ADD_COMPARE(channelProfile);
1440  ADD_COMPARE(audioDelayMs);
1441  ADD_COMPARE(mediaPlayerAudioDelayMs);
1442  ADD_COMPARE(token);
1443  ADD_COMPARE(enableBuiltInMediaEncryption);
1444  ADD_COMPARE(publishRhythmPlayerTrack);
1445  ADD_COMPARE(customVideoTrackId);
1446  ADD_COMPARE(isAudioFilterable);
1447  ADD_COMPARE(isInteractiveAudience);
1448  ADD_COMPARE(parameters);
1449  ADD_COMPARE(enableMultipath);
1450  ADD_COMPARE(uplinkMultipathMode);
1451  ADD_COMPARE(downlinkMultipathMode);
1452  ADD_COMPARE(preferMultipathType);
1453  END_COMPARE();
1454 
1455 #undef BEGIN_COMPARE
1456 #undef ADD_COMPARE
1457 #undef END_COMPARE
1458  return b;
1459  }
1460 
1461  ChannelMediaOptions& operator=(const ChannelMediaOptions& replace) {
1462  if (this != &replace) {
1463 #define REPLACE_BY(X) ReplaceBy(&X, replace.X)
1464 
1465  REPLACE_BY(publishCameraTrack);
1466  REPLACE_BY(publishSecondaryCameraTrack);
1467  REPLACE_BY(publishThirdCameraTrack);
1468  REPLACE_BY(publishFourthCameraTrack);
1469  REPLACE_BY(publishMicrophoneTrack);
1470 #if defined(__ANDROID__) || (defined(TARGET_OS_IPHONE) && TARGET_OS_IPHONE) || defined(__OHOS__)
1471  REPLACE_BY(publishScreenCaptureVideo);
1472  REPLACE_BY(publishScreenCaptureAudio);
1473 #else
1474  REPLACE_BY(publishScreenTrack);
1475  REPLACE_BY(publishSecondaryScreenTrack);
1476  REPLACE_BY(publishThirdScreenTrack);
1477  REPLACE_BY(publishFourthScreenTrack);
1478 #endif
1479  REPLACE_BY(publishTranscodedVideoTrack);
1480  REPLACE_BY(publishMixedAudioTrack);
1481  REPLACE_BY(publishLipSyncTrack);
1482  REPLACE_BY(publishCustomAudioTrack);
1483  REPLACE_BY(publishCustomAudioTrackId);
1484  REPLACE_BY(publishCustomVideoTrack);
1485  REPLACE_BY(publishEncodedVideoTrack);
1486  REPLACE_BY(publishMediaPlayerAudioTrack);
1487  REPLACE_BY(publishMediaPlayerVideoTrack);
1488  REPLACE_BY(autoSubscribeAudio);
1489  REPLACE_BY(autoSubscribeVideo);
1490  REPLACE_BY(publishMediaPlayerId);
1491  REPLACE_BY(enableAudioRecordingOrPlayout);
1492  REPLACE_BY(clientRoleType);
1493  REPLACE_BY(audienceLatencyLevel);
1494  REPLACE_BY(defaultVideoStreamType);
1495  REPLACE_BY(channelProfile);
1496  REPLACE_BY(audioDelayMs);
1497  REPLACE_BY(mediaPlayerAudioDelayMs);
1498  REPLACE_BY(token);
1499  REPLACE_BY(enableBuiltInMediaEncryption);
1500  REPLACE_BY(publishRhythmPlayerTrack);
1501  REPLACE_BY(customVideoTrackId);
1502  REPLACE_BY(isAudioFilterable);
1503  REPLACE_BY(isInteractiveAudience);
1504  REPLACE_BY(parameters);
1505  REPLACE_BY(enableMultipath);
1506  REPLACE_BY(uplinkMultipathMode);
1507  REPLACE_BY(downlinkMultipathMode);
1508  REPLACE_BY(preferMultipathType);
1509 #undef REPLACE_BY
1510  }
1511  return *this;
1512  }
1513 };
1514 
1515 enum PROXY_TYPE {
1518  NONE_PROXY_TYPE = 0,
1521  UDP_PROXY_TYPE = 1,
1524  TCP_PROXY_TYPE = 2,
1527  LOCAL_PROXY_TYPE = 3,
1530  TCP_PROXY_AUTO_FALLBACK_TYPE = 4,
1533  HTTP_PROXY_TYPE = 5,
1536  HTTPS_PROXY_TYPE = 6,
1537 };
1538 
1539 enum FeatureType {
1540  VIDEO_VIRTUAL_BACKGROUND = 1,
1541  VIDEO_BEAUTY_EFFECT = 2,
1542 };
1543 
1566 
1568 };
1569 
1581  public:
1582  virtual ~IRtcEngineEventHandler() {}
1583 
1584  virtual const char* eventHandlerType() const { return "event_handler"; }
1585 
1595  virtual void onJoinChannelSuccess(const char* channel, uid_t uid, int elapsed) {
1596  (void)channel;
1597  (void)uid;
1598  (void)elapsed;
1599  }
1600 
1611  virtual void onRejoinChannelSuccess(const char* channel, uid_t uid, int elapsed) {
1612  (void)channel;
1613  (void)uid;
1614  (void)elapsed;
1615  }
1616 
1624  virtual void onProxyConnected(const char* channel, uid_t uid, PROXY_TYPE proxyType, const char* localProxyIp, int elapsed) {
1625  (void)channel;
1626  (void)uid;
1627  (void)proxyType;
1628  (void)localProxyIp;
1629  (void)elapsed;
1630  }
1631 
1637  virtual void onError(int err, const char* msg) {
1638  (void)err;
1639  (void)msg;
1640  }
1641 
1657  virtual void onAudioQuality(uid_t uid, int quality, unsigned short delay, unsigned short lost) __deprecated {
1658  (void)uid;
1659  (void)quality;
1660  (void)delay;
1661  (void)lost;
1662  }
1663 
1669  virtual void onLastmileProbeResult(const LastmileProbeResult& result) {
1670  (void)result;
1671  }
1672 
1699  virtual void onAudioVolumeIndication(const AudioVolumeInfo* speakers, unsigned int speakerNumber,
1700  int totalVolume) {
1701  (void)speakers;
1702  (void)speakerNumber;
1703  (void)totalVolume;
1704  }
1705 
1714  virtual void onLeaveChannel(const RtcStats& stats) { (void)stats; }
1715 
1723  virtual void onRtcStats(const RtcStats& stats) { (void)stats; }
1724 
1738  virtual void onAudioDeviceStateChanged(const char* deviceId, int deviceType, int deviceState) {
1739  (void)deviceId;
1740  (void)deviceType;
1741  (void)deviceState;
1742  }
1743 
1750  virtual void onAudioMixingPositionChanged(int64_t position) {}
1751 
1758  virtual void onAudioMixingFinished() __deprecated {}
1759 
1767  virtual void onAudioEffectFinished(int soundId) {}
1768 
1778  virtual void onVideoDeviceStateChanged(const char* deviceId, int deviceType, int deviceState) {
1779  (void)deviceId;
1780  (void)deviceType;
1781  (void)deviceState;
1782  }
1783 
1806  virtual void onNetworkQuality(uid_t uid, int txQuality, int rxQuality) {
1807  (void)uid;
1808  (void)txQuality;
1809  (void)rxQuality;
1810  }
1811 
1818  virtual void onIntraRequestReceived() {}
1819 
1830  virtual void onUplinkNetworkInfoUpdated(const UplinkNetworkInfo& info) {
1831  (void)info;
1832  }
1833 
1846  virtual void onLastmileQuality(int quality) { (void)quality; }
1847 
1858  virtual void onFirstLocalVideoFrame(VIDEO_SOURCE_TYPE source, int width, int height, int elapsed) {
1859  (void)source;
1860  (void)width;
1861  (void)height;
1862  (void)elapsed;
1863  }
1864 
1875  virtual void onFirstLocalVideoFramePublished(VIDEO_SOURCE_TYPE source, int elapsed) {
1876  (void)source;
1877  (void)elapsed;
1878  }
1879 
1896  virtual void onFirstRemoteVideoDecoded(uid_t uid, int width, int height, int elapsed) __deprecated {
1897  (void)uid;
1898  (void)width;
1899  (void)height;
1900  (void)elapsed;
1901  }
1902 
1911  virtual void onVideoSizeChanged(VIDEO_SOURCE_TYPE sourceType, uid_t uid, int width, int height, int rotation) {
1912  (void)uid;
1913  (void)width;
1914  (void)height;
1915  (void)rotation;
1916  }
1917 
1944  virtual void onLocalVideoStateChanged(VIDEO_SOURCE_TYPE source, LOCAL_VIDEO_STREAM_STATE state, LOCAL_VIDEO_STREAM_REASON reason) {
1945  (void)source;
1946  (void)state;
1947  (void)reason;
1948  }
1949 
1961  virtual void onRemoteVideoStateChanged(uid_t uid, REMOTE_VIDEO_STATE state, REMOTE_VIDEO_STATE_REASON reason, int elapsed) {
1962  (void)uid;
1963  (void)state;
1964  (void)reason;
1965  (void)elapsed;
1966  }
1967 
1975  virtual void onFirstRemoteVideoFrame(uid_t uid, int width, int height, int elapsed) {
1976  (void)uid;
1977  (void)width;
1978  (void)height;
1979  (void)elapsed;
1980  }
1981 
2001  virtual void onUserJoined(uid_t uid, int elapsed) {
2002  (void)uid;
2003  (void)elapsed;
2004  }
2005 
2020  virtual void onUserOffline(uid_t uid, USER_OFFLINE_REASON_TYPE reason) {
2021  (void)uid;
2022  (void)reason;
2023  }
2024 
2037  virtual void onUserMuteAudio(uid_t uid, bool muted) {
2038  (void)uid;
2039  (void)muted;
2040  }
2041 
2056  virtual void onUserMuteVideo(uid_t uid, bool muted) {
2057  (void)uid;
2058  (void)muted;
2059  }
2060 
2073  virtual void onUserEnableVideo(uid_t uid, bool enabled) {
2074  (void)uid;
2075  (void)enabled;
2076  }
2077 
2083  virtual void onUserStateChanged(uid_t uid, REMOTE_USER_STATE state) {
2084  (void)uid;
2085  (void)state;
2086  }
2087 
2098  virtual void onUserEnableLocalVideo(uid_t uid, bool enabled) __deprecated {
2099  (void)uid;
2100  (void)enabled;
2101  }
2102 
2110  virtual void onRemoteAudioStats(const RemoteAudioStats& stats) {
2111  (void)stats;
2112  }
2113 
2121  virtual void onLocalAudioStats(const LocalAudioStats& stats) {
2122  (void)stats;
2123  }
2124 
2138  virtual void onLocalVideoStats(VIDEO_SOURCE_TYPE source, const LocalVideoStats& stats) {
2139  (void)source;
2140  (void)stats;
2141  }
2142 
2151  virtual void onRemoteVideoStats(const RemoteVideoStats& stats) {
2152  (void)stats;
2153  }
2154 
2160  virtual void onCameraReady() __deprecated {}
2161 
2172  virtual void onCameraFocusAreaChanged(int x, int y, int width, int height) {
2173  (void)x;
2174  (void)y;
2175  (void)width;
2176  (void)height;
2177  }
2186  virtual void onCameraExposureAreaChanged(int x, int y, int width, int height) {
2187  (void)x;
2188  (void)y;
2189  (void)width;
2190  (void)height;
2191  }
2192 #if defined(__ANDROID__) || (defined(__APPLE__) && TARGET_OS_IOS) || defined(__OHOS__)
2193 
2223  virtual void onFacePositionChanged(int imageWidth, int imageHeight,
2224  const Rectangle* vecRectangle, const int* vecDistance,
2225  int numFaces) {
2226  (void) imageWidth;
2227  (void) imageHeight;
2228  (void) vecRectangle;
2229  (void) vecDistance;
2230  (void) numFaces;
2231  }
2232 #endif
2233 
2240  virtual void onVideoStopped() __deprecated {}
2241 
2249  virtual void onAudioMixingStateChanged(AUDIO_MIXING_STATE_TYPE state, AUDIO_MIXING_REASON_TYPE reason) {
2250  (void)state;
2251  (void)reason;
2252  }
2253 
2262  virtual void onRhythmPlayerStateChanged(RHYTHM_PLAYER_STATE_TYPE state, RHYTHM_PLAYER_REASON reason) {
2263  (void)state;
2264  (void)reason;
2265  }
2266 
2275  virtual void onConnectionLost() {}
2276 
2288  virtual void onConnectionInterrupted() __deprecated {}
2289 
2293  virtual void onConnectionBanned() __deprecated {}
2294 
2306  virtual void onStreamMessage(uid_t uid, int streamId, const char* data, size_t length, uint64_t sentTs) {
2307  (void)uid;
2308  (void)streamId;
2309  (void)data;
2310  (void)length;
2311  (void)sentTs;
2312  }
2313 
2326  virtual void onStreamMessageError(uid_t uid, int streamId, int code, int missed, int cached) {
2327  (void)uid;
2328  (void)streamId;
2329  (void)code;
2330  (void)missed;
2331  (void)cached;
2332  }
2333 
2347  virtual void onRdtMessage(uid_t userId, RdtStreamType type, const char *data, size_t length) {
2348  (void)userId;
2349  (void)type;
2350  (void)data;
2351  (void)length;
2352  };
2353 
2362  virtual void onRdtStateChanged(uid_t userId, RdtState state) {
2363  (void)userId;
2364  (void)state;
2365  }
2366 
2378  virtual void onMediaControlMessage(uid_t userId, const char* data, size_t length) {
2379  (void)userId;
2380  (void)data;
2381  (void)length;
2382  }
2383 
2393  virtual void onRequestToken() {}
2394 
2406  virtual void onTokenPrivilegeWillExpire(const char* token) {
2407  (void)token;
2408  }
2409 
2415  virtual void onLicenseValidationFailure(LICENSE_ERROR_TYPE error) {
2416  (void)error;
2417  }
2418 
2429  virtual void onFirstLocalAudioFramePublished(int elapsed) {
2430  (void)elapsed;
2431  }
2432 
2449  virtual void onFirstRemoteAudioDecoded(uid_t uid, int elapsed) __deprecated {
2450  (void)uid;
2451  (void)elapsed;
2452  }
2453 
2461  virtual void onFirstRemoteAudioFrame(uid_t uid, int elapsed) __deprecated {
2462  (void)uid;
2463  (void)elapsed;
2464  }
2465 
2480  virtual void onLocalAudioStateChanged(LOCAL_AUDIO_STREAM_STATE state, LOCAL_AUDIO_STREAM_REASON reason) {
2481  (void)state;
2482  (void)reason;
2483  }
2484 
2501  virtual void onRemoteAudioStateChanged(uid_t uid, REMOTE_AUDIO_STATE state, REMOTE_AUDIO_STATE_REASON reason, int elapsed) {
2502  (void)uid;
2503  (void)state;
2504  (void)reason;
2505  (void)elapsed;
2506  }
2507 
2521  virtual void onActiveSpeaker(uid_t uid) {
2522  (void)uid;
2523  }
2524 
2529  virtual void onContentInspectResult(media::CONTENT_INSPECT_RESULT result) { (void)result; }
2530 
2548  virtual void onSnapshotTaken(uid_t uid, const char* filePath, int width, int height, int errCode) {
2549  (void)uid;
2550  (void)filePath;
2551  (void)width;
2552  (void)height;
2553  (void)errCode;
2554  }
2555 
2563  virtual void onClientRoleChanged(CLIENT_ROLE_TYPE oldRole, CLIENT_ROLE_TYPE newRole, const ClientRoleOptions& newRoleOptions) {
2564  (void)oldRole;
2565  (void)newRole;
2566  (void)newRoleOptions;
2567  }
2568 
2576  virtual void onClientRoleChangeFailed(CLIENT_ROLE_CHANGE_FAILED_REASON reason, CLIENT_ROLE_TYPE currentRole) {
2577  (void)reason;
2578  (void)currentRole;
2579  }
2580 
2588  virtual void onAudioDeviceVolumeChanged(MEDIA_DEVICE_TYPE deviceType, int volume, bool muted) {
2589  (void)deviceType;
2590  (void)volume;
2591  (void)muted;
2592  }
2593 
2605  virtual void onRtmpStreamingStateChanged(const char* url, RTMP_STREAM_PUBLISH_STATE state,
2606  RTMP_STREAM_PUBLISH_REASON reason) {
2607  (void)url;
2608  (void)state;
2609  (void)reason;
2610  }
2611 
2617  virtual void onRtmpStreamingEvent(const char* url, RTMP_STREAMING_EVENT eventCode) {
2618  (void)url;
2619  (void)eventCode;
2620  }
2621 
2632  virtual void onTranscodingUpdated() {}
2633 
2647  virtual void onAudioRoutingChanged(int routing) { (void)routing; }
2648 
2680  virtual void onChannelMediaRelayStateChanged(int state, int code) {
2681  (void)state;
2682  (void)code;
2683  }
2684 
2702  virtual void onRemoteSubscribeFallbackToAudioOnly(uid_t uid, bool isFallbackOrRecover) {
2703  (void)uid;
2704  (void)isFallbackOrRecover;
2705  }
2706 
2721  virtual void onRemoteAudioTransportStats(uid_t uid, unsigned short delay, unsigned short lost, unsigned short rxKBitRate) __deprecated {
2722  (void)uid;
2723  (void)delay;
2724  (void)lost;
2725  (void)rxKBitRate;
2726  }
2727 
2745  virtual void onRemoteVideoTransportStats(uid_t uid, unsigned short delay, unsigned short lost, unsigned short rxKBitRate) __deprecated {
2746  (void)uid;
2747  (void)delay;
2748  (void)lost;
2749  (void)rxKBitRate;
2750  }
2751 
2761  CONNECTION_STATE_TYPE state, CONNECTION_CHANGED_REASON_TYPE reason) {
2762  (void)state;
2763  (void)reason;
2764  }
2765 
2775  virtual void onNetworkTypeChanged(NETWORK_TYPE type) {
2776  (void)type;
2777  }
2778 
2786  virtual void onEncryptionError(ENCRYPTION_ERROR_TYPE errorType) {
2787  (void)errorType;
2788  }
2789 
2799  virtual void onPermissionError(PERMISSION_TYPE permissionType) {
2800  (void)permissionType;
2801  }
2802 
2812  virtual void onLocalUserRegistered(uid_t uid, const char* userAccount) {
2813  (void)uid;
2814  (void)userAccount;
2815  }
2816 
2825  virtual void onUserInfoUpdated(uid_t uid, const UserInfo& info) {
2826  (void)uid;
2827  (void)info;
2828  }
2829 
2836  virtual void onUserAccountUpdated(uid_t uid, const char* userAccount){
2837  (void)uid;
2838  (void)userAccount;
2839  }
2840 
2848  virtual void onVideoRenderingTracingResult(uid_t uid, MEDIA_TRACE_EVENT currentEvent, VideoRenderingTracingInfo tracingInfo) {
2849  (void)uid;
2850  (void)currentEvent;
2851  (void)tracingInfo;
2852  }
2853 
2860  virtual void onLocalVideoTranscoderError(const TranscodingVideoStream& stream, VIDEO_TRANSCODER_ERROR error){
2861  (void)stream;
2862  (void)error;
2863  }
2864 
2871  virtual void onUploadLogResult(const char* requestId, bool success, UPLOAD_ERROR_REASON reason) {
2872  (void)requestId;
2873  (void)success;
2874  (void)reason;
2875  }
2876 
2886  virtual void onAudioSubscribeStateChanged(const char* channel, uid_t uid, STREAM_SUBSCRIBE_STATE oldState, STREAM_SUBSCRIBE_STATE newState, int elapseSinceLastState) {
2887  (void)channel;
2888  (void)uid;
2889  (void)oldState;
2890  (void)newState;
2891  (void)elapseSinceLastState;
2892  }
2893 
2903  virtual void onVideoSubscribeStateChanged(const char* channel, uid_t uid, STREAM_SUBSCRIBE_STATE oldState, STREAM_SUBSCRIBE_STATE newState, int elapseSinceLastState) {
2904  (void)channel;
2905  (void)uid;
2906  (void)oldState;
2907  (void)newState;
2908  (void)elapseSinceLastState;
2909  }
2910 
2919  virtual void onAudioPublishStateChanged(const char* channel, STREAM_PUBLISH_STATE oldState, STREAM_PUBLISH_STATE newState, int elapseSinceLastState) {
2920  (void)channel;
2921  (void)oldState;
2922  (void)newState;
2923  (void)elapseSinceLastState;
2924  }
2925 
2935  virtual void onVideoPublishStateChanged(VIDEO_SOURCE_TYPE source, const char* channel, STREAM_PUBLISH_STATE oldState, STREAM_PUBLISH_STATE newState, int elapseSinceLastState) {
2936  (void)source;
2937  (void)channel;
2938  (void)oldState;
2939  (void)newState;
2940  (void)elapseSinceLastState;
2941  }
2942 
2952  virtual void onTranscodedStreamLayoutInfo(uid_t uid, int width, int height, int layoutCount,const VideoLayout* layoutlist) {
2953  (void)uid;
2954  (void)width;
2955  (void)height;
2956  (void)layoutCount;
2957  (void)layoutlist;
2958  }
2959 
2968  virtual void onAudioMetadataReceived(uid_t uid, const char* metadata, size_t length) {
2969  (void)uid;
2970  (void)metadata;
2971  (void)length;
2972  }
2973 
2983  virtual void onExtensionEventWithContext(const ExtensionContext &context, const char* key, const char* value) {
2984  (void)context;
2985  (void)key;
2986  (void)value;
2987  }
2988 
2996  virtual void onExtensionStartedWithContext(const ExtensionContext &context) {
2997  (void)context;
2998  }
2999 
3007  virtual void onExtensionStoppedWithContext(const ExtensionContext &context) {
3008  (void)context;
3009  }
3010 
3021  virtual void onExtensionErrorWithContext(const ExtensionContext &context, int error, const char* message) {
3022  (void)context;
3023  (void)error;
3024  (void)message;
3025  }
3026 
3033  virtual void onSetRtmFlagResult(int code) {
3034  (void)code;
3035  }
3036  virtual void onMultipathStats(const MultipathStats& stats) {
3046  (void)stats;
3047  }
3048 
3061  virtual void onRenewTokenResult(const char* token, RENEW_TOKEN_ERROR_CODE code) {
3062  (void)token;
3063  (void)code;
3064  }
3065 };
3066 
3071  public:
3072  virtual ~IVideoDeviceCollection() {}
3073 
3079  virtual int getCount() = 0;
3080 
3090  virtual int setDevice(const char deviceIdUTF8[MAX_DEVICE_ID_LENGTH]) = 0;
3091 
3102  virtual int getDevice(int index, char deviceNameUTF8[MAX_DEVICE_ID_LENGTH],
3103  char deviceIdUTF8[MAX_DEVICE_ID_LENGTH]) = 0;
3104 
3108  virtual void release() = 0;
3109 };
3110 
3115  public:
3116  virtual ~IVideoDeviceManager() {}
3129 
3140  virtual int setDevice(const char deviceIdUTF8[MAX_DEVICE_ID_LENGTH]) = 0;
3141 
3150  virtual int getDevice(char deviceIdUTF8[MAX_DEVICE_ID_LENGTH]) = 0;
3151 
3152 #if defined(_WIN32) || (defined(__linux__) && !defined(__ANDROID__) && !defined(__OHOS__)) || \
3153  (defined(__APPLE__) && TARGET_OS_MAC && !TARGET_OS_IPHONE)
3154 
3171  virtual int numberOfCapabilities(const char* deviceIdUTF8) = 0;
3172 
3190  virtual int getCapability(const char* deviceIdUTF8, const uint32_t deviceCapabilityNumber, VideoFormat& capability) = 0;
3191 #endif
3192 
3205  virtual int startDeviceTest(view_t hwnd) = 0;
3206 
3213  virtual int stopDeviceTest() = 0;
3214 
3218  virtual void release() = 0;
3219 };
3220 
3227  public:
3228  virtual ~IVideoEffectObject() {}
3229 
3235  enum class VIDEO_EFFECT_NODE_ID : uint32_t {
3237  BEAUTY = 1U << 0,
3239  STYLE_MAKEUP = 1U << 1,
3241  FILTER = 1U << 2,
3242  };
3243 
3251  SAVE = 1,
3253  RESET = 2,
3254  };
3255 
3280  virtual int addOrUpdateVideoEffect(uint32_t nodeId, const char* templateName) = 0;
3281 
3293  virtual int removeVideoEffect(uint32_t nodeId) = 0;
3294 
3307  virtual int performVideoEffectAction(uint32_t nodeId, VIDEO_EFFECT_ACTION actionId) = 0;
3308 
3322  virtual int setVideoEffectFloatParam(const char* option, const char* key, float param) = 0;
3323 
3337  virtual int setVideoEffectIntParam(const char* option, const char* key, int param) = 0;
3338 
3354  virtual int setVideoEffectBoolParam(const char* option, const char* key, bool param) = 0;
3355 
3368  virtual float getVideoEffectFloatParam(const char* option, const char* key) = 0;
3369 
3382  virtual int getVideoEffectIntParam(const char* option, const char* key) = 0;
3383 
3396  virtual bool getVideoEffectBoolParam(const char* option, const char* key) = 0;
3397 
3398 };
3399 
3414  const char* appId;
3420  void* context;
3424  CHANNEL_PROFILE_TYPE channelProfile;
3425 
3429  const char* license;
3430 
3438  AUDIO_SCENARIO_TYPE audioScenario;
3447  unsigned int areaCode;
3448 
3465 
3470 
3479 
3486 
3493 
3495  : eventHandler(NULL), appId(NULL), context(NULL), channelProfile(CHANNEL_PROFILE_LIVE_BROADCASTING),
3496  license(NULL), audioScenario(AUDIO_SCENARIO_DEFAULT), areaCode(AREA_CODE_GLOB),
3498 };
3499 
3503 public:
3504  virtual ~IMetadataObserver() {}
3505 
3511  {
3518  };
3523  {
3524  INVALID_METADATA_SIZE_IN_BYTE = -1,
3525  DEFAULT_METADATA_SIZE_IN_BYTE = 512,
3526  MAX_METADATA_SIZE_IN_BYTE = 1024
3527  };
3528 
3531  struct Metadata
3532  {
3535  const char* channelId;
3540  unsigned int uid;
3543  unsigned int size;
3546  unsigned char *buffer;
3550  long long timeStampMs;
3551 
3552  Metadata() : channelId(NULL), uid(0), size(0), buffer(NULL), timeStampMs(0) {}
3553  };
3554 
3565  virtual int getMaxMetadataSize() { return DEFAULT_METADATA_SIZE_IN_BYTE; }
3566 
3577  virtual bool onReadyToSendMetadata(Metadata &metadata, VIDEO_SOURCE_TYPE source_type) = 0;
3578 
3586  virtual void onMetadataReceived(const Metadata& metadata) = 0;
3587 };
3588 
3595 enum DIRECT_CDN_STREAMING_REASON {
3596  // No error occurs.
3597  DIRECT_CDN_STREAMING_REASON_OK = 0,
3598  // A general error occurs (no specified reason).
3599  DIRECT_CDN_STREAMING_REASON_FAILED = 1,
3600  // Audio publication error.
3601  DIRECT_CDN_STREAMING_REASON_AUDIO_PUBLICATION = 2,
3602  // Video publication error.
3603  DIRECT_CDN_STREAMING_REASON_VIDEO_PUBLICATION = 3,
3604 
3605  DIRECT_CDN_STREAMING_REASON_NET_CONNECT = 4,
3606  // Already exist stream name.
3607  DIRECT_CDN_STREAMING_REASON_BAD_NAME = 5,
3608 };
3609 
3616 enum DIRECT_CDN_STREAMING_STATE {
3617 
3618  DIRECT_CDN_STREAMING_STATE_IDLE = 0,
3619 
3620  DIRECT_CDN_STREAMING_STATE_RUNNING = 1,
3621 
3622  DIRECT_CDN_STREAMING_STATE_STOPPED = 2,
3623 
3624  DIRECT_CDN_STREAMING_STATE_FAILED = 3,
3625 
3626  DIRECT_CDN_STREAMING_STATE_RECOVERING = 4,
3627 };
3628 
3639 
3644 
3648  int fps;
3649 
3654 
3659 };
3660 
3668  public:
3669  virtual ~IDirectCdnStreamingEventHandler() {}
3670 
3677  virtual void onDirectCdnStreamingStateChanged(DIRECT_CDN_STREAMING_STATE state, DIRECT_CDN_STREAMING_REASON reason, const char* message) {
3678  (void)state;
3679  (void)reason;
3680  (void)message;
3681  };
3682 
3683  virtual void onDirectCdnStreamingStats(const DirectCdnStreamingStats& stats) {
3684  (void)stats;
3685  };
3686 };
3687 
3734 
3737 
3738  void SetAll(const DirectCdnStreamingMediaOptions& change) {
3739 #define SET_FROM(X) SetFrom(&X, change.X)
3740  SET_FROM(publishCameraTrack);
3741  SET_FROM(publishMicrophoneTrack);
3742  SET_FROM(publishCustomAudioTrack);
3743  SET_FROM(publishCustomVideoTrack);
3744  SET_FROM(publishMediaPlayerAudioTrack);
3745  SET_FROM(publishMediaPlayerId);
3746  SET_FROM(customVideoTrackId);
3747 #undef SET_FROM
3748  }
3749 
3750  bool operator==(const DirectCdnStreamingMediaOptions& o) const {
3751 #define BEGIN_COMPARE() bool b = true
3752 #define ADD_COMPARE(X) b = (b && (X == o.X))
3753 #define END_COMPARE()
3754 
3755  BEGIN_COMPARE();
3756  ADD_COMPARE(publishCameraTrack);
3757  ADD_COMPARE(publishMicrophoneTrack);
3758  ADD_COMPARE(publishCustomAudioTrack);
3759  ADD_COMPARE(publishCustomVideoTrack);
3760  ADD_COMPARE(publishMediaPlayerAudioTrack);
3761  ADD_COMPARE(customVideoTrackId);
3762  ADD_COMPARE(publishMediaPlayerId);
3763  END_COMPARE();
3764 
3765 #undef BEGIN_COMPARE
3766 #undef ADD_COMPARE
3767 #undef END_COMPARE
3768  return b;
3769  }
3770 
3771  DirectCdnStreamingMediaOptions& operator=(const DirectCdnStreamingMediaOptions& replace) {
3772  if (this != &replace) {
3773 #define REPLACE_BY(X) ReplaceBy(&X, replace.X)
3774 
3775  REPLACE_BY(publishCameraTrack);
3776  REPLACE_BY(publishMicrophoneTrack);
3777  REPLACE_BY(publishCustomAudioTrack);
3778  REPLACE_BY(publishCustomVideoTrack);
3779  REPLACE_BY(publishMediaPlayerAudioTrack);
3780  REPLACE_BY(customVideoTrackId);
3781  REPLACE_BY(publishMediaPlayerId);
3782 #undef REPLACE_BY
3783  }
3784  return *this;
3785  }
3786 };
3787 
3795  agora::media::MEDIA_SOURCE_TYPE mediaSourceType;
3796 
3802  uid_t remoteUid;
3803 
3815  const char* channelId;
3816 
3820  uid_t localUid;
3821 
3822  ExtensionInfo() : mediaSourceType(agora::media::UNKNOWN_MEDIA_SOURCE), remoteUid(0), channelId(NULL), localUid(0) {}
3823 };
3824 
3825 class IMediaPlayer;
3826 class IMediaRecorder;
3827 
3833 using RtcEngineReleaseCallback = void(*)();
3834 
3842  public:
3867  AGORA_CPP_API static void release(RtcEngineReleaseCallback callback = nullptr);
3868 
3885  virtual int initialize(const RtcEngineContext& context) = 0;
3886 
3896  virtual int queryInterface(INTERFACE_ID_TYPE iid, void** inter) = 0;
3897 
3898 
3904  virtual const char* getVersion(int* build) = 0;
3905 
3911  virtual const char* getErrorDescription(int code) = 0;
3912 
3922  virtual int queryCodecCapability(CodecCapInfo* codecInfo, int& size) = 0;
3923 
3933  virtual int queryDeviceScore() = 0;
3934 
3972  virtual int preloadChannel(const char* token, const char* channelId, uid_t uid) = 0;
3973 
4013  virtual int preloadChannelWithUserAccount(const char* token, const char* channelId, const char* userAccount) = 0;
4014 
4032  virtual int updatePreloadChannelToken(const char* token) = 0;
4033 
4093  virtual int joinChannel(const char* token, const char* channelId, const char* info, uid_t uid) = 0;
4094 
4162  virtual int joinChannel(const char* token, const char* channelId, uid_t uid, const ChannelMediaOptions& options) = 0;
4163 
4172  virtual int updateChannelMediaOptions(const ChannelMediaOptions& options) = 0;
4173 
4191  virtual int leaveChannel() = 0;
4192 
4212  virtual int leaveChannel(const LeaveChannelOptions& options) = 0;
4213 
4231  virtual int renewToken(const char* token) = 0;
4232 
4252  virtual int setChannelProfile(CHANNEL_PROFILE_TYPE profile) = 0;
4253 
4277  virtual int setClientRole(CLIENT_ROLE_TYPE role) = 0;
4278 
4301  virtual int setClientRole(CLIENT_ROLE_TYPE role, const ClientRoleOptions& options) = 0;
4302 
4311  virtual int startEchoTest(const EchoTestConfiguration& config) = 0;
4312 
4319  virtual int stopEchoTest() = 0;
4320 
4321 #if defined(__APPLE__) && TARGET_OS_IOS
4322 
4331  virtual int enableMultiCamera(bool enabled, const CameraCapturerConfiguration& config) = 0;
4332 #endif
4333 
4348  virtual int enableVideo() = 0;
4349 
4359  virtual int disableVideo() = 0;
4360 
4372  virtual int startPreview() = 0;
4373 
4381  virtual int startPreview(VIDEO_SOURCE_TYPE sourceType) = 0;
4382 
4390  virtual int stopPreview() = 0;
4391 
4399  virtual int stopPreview(VIDEO_SOURCE_TYPE sourceType) = 0;
4400 
4434  virtual int startLastmileProbeTest(const LastmileProbeConfig& config) = 0;
4435 
4437  virtual int stopLastmileProbeTest() = 0;
4438 
4456 
4466  virtual int setBeautyEffectOptions(bool enabled, const BeautyOptions& options, agora::media::MEDIA_SOURCE_TYPE type = agora::media::PRIMARY_CAMERA_SOURCE) = 0;
4476  virtual int setFaceShapeBeautyOptions(bool enabled, const FaceShapeBeautyOptions& options, agora::media::MEDIA_SOURCE_TYPE type = agora::media::PRIMARY_CAMERA_SOURCE) = 0;
4483  virtual int setFaceShapeAreaOptions(const FaceShapeAreaOptions& options, agora::media::MEDIA_SOURCE_TYPE type = agora::media::PRIMARY_CAMERA_SOURCE) = 0;
4484 
4491  virtual int getFaceShapeBeautyOptions(FaceShapeBeautyOptions& options, agora::media::MEDIA_SOURCE_TYPE type = agora::media::PRIMARY_CAMERA_SOURCE) = 0;
4492 
4500  virtual int getFaceShapeAreaOptions(agora::rtc::FaceShapeAreaOptions::FACE_SHAPE_AREA shapeArea, FaceShapeAreaOptions& options, agora::media::MEDIA_SOURCE_TYPE type = agora::media::PRIMARY_CAMERA_SOURCE) = 0;
4501 
4526  virtual int setFilterEffectOptions(bool enabled, const FilterEffectOptions& options, agora::media::MEDIA_SOURCE_TYPE type = agora::media::PRIMARY_CAMERA_SOURCE) = 0;
4527 
4528 
4541  virtual agora_refptr<IVideoEffectObject> createVideoEffectObject(const char* bundlePath, agora::media::MEDIA_SOURCE_TYPE type = agora::media::PRIMARY_CAMERA_SOURCE) = 0;
4542 
4543 
4556 
4583  virtual int setLowlightEnhanceOptions(bool enabled, const LowlightEnhanceOptions& options, agora::media::MEDIA_SOURCE_TYPE type = agora::media::PRIMARY_CAMERA_SOURCE) = 0;
4610  virtual int setVideoDenoiserOptions(bool enabled, const VideoDenoiserOptions& options, agora::media::MEDIA_SOURCE_TYPE type = agora::media::PRIMARY_CAMERA_SOURCE) = 0;
4637  virtual int setColorEnhanceOptions(bool enabled, const ColorEnhanceOptions& options, agora::media::MEDIA_SOURCE_TYPE type = agora::media::PRIMARY_CAMERA_SOURCE) = 0;
4638 
4671  virtual int enableVirtualBackground(bool enabled, VirtualBackgroundSource backgroundSource, SegmentationProperty segproperty, agora::media::MEDIA_SOURCE_TYPE type = agora::media::PRIMARY_CAMERA_SOURCE) = 0;
4672 
4695  virtual int setupRemoteVideo(const VideoCanvas& canvas) = 0;
4696 
4713  virtual int setupLocalVideo(const VideoCanvas& canvas) = 0;
4714 
4733  virtual int setVideoScenario(VIDEO_APPLICATION_SCENARIO_TYPE scenarioType) = 0;
4734 
4753  virtual int setVideoQoEPreference(VIDEO_QOE_PREFERENCE_TYPE qoePreference) = 0;
4754 
4768  virtual int enableAudio() = 0;
4769 
4781  virtual int disableAudio() = 0;
4782 
4804  virtual int setAudioProfile(AUDIO_PROFILE_TYPE profile, AUDIO_SCENARIO_TYPE scenario) __deprecated = 0;
4805 
4821  virtual int setAudioProfile(AUDIO_PROFILE_TYPE profile) = 0;
4830  virtual int setAudioScenario(AUDIO_SCENARIO_TYPE scenario) = 0;
4853  virtual int enableLocalAudio(bool enabled) = 0;
4854 
4880  virtual int muteLocalAudioStream(bool mute) = 0;
4881 
4923  virtual int muteAllRemoteAudioStreams(bool mute) = 0;
4924 
4941  virtual int muteRemoteAudioStream(uid_t uid, bool mute) = 0;
4942 
4954  virtual int muteLocalVideoStream(bool mute) = 0;
4955 
4980  virtual int enableLocalVideo(bool enabled) = 0;
4981 
5021  virtual int muteAllRemoteVideoStreams(bool mute) = 0;
5022 
5032  virtual int setRemoteDefaultVideoStreamType(VIDEO_STREAM_TYPE streamType) = 0;
5033 
5050  virtual int muteRemoteVideoStream(uid_t uid, bool mute) = 0;
5051 
5069  virtual int setRemoteVideoStreamType(uid_t uid, VIDEO_STREAM_TYPE streamType) = 0;
5070 
5081  virtual int setRemoteVideoSubscriptionOptions(uid_t uid, const VideoSubscriptionOptions &options) = 0;
5082 
5097  virtual int setSubscribeAudioBlocklist(uid_t* uidList, int uidNumber) = 0;
5098 
5115  virtual int setSubscribeAudioAllowlist(uid_t* uidList, int uidNumber) = 0;
5116 
5131  virtual int setSubscribeVideoBlocklist(uid_t* uidList, int uidNumber) = 0;
5132 
5149  virtual int setSubscribeVideoAllowlist(uid_t* uidList, int uidNumber) = 0;
5150 
5177  virtual int enableAudioVolumeIndication(int interval, int smooth, bool reportVad) = 0;
5178 
5199  virtual int startAudioRecording(const char* filePath,
5200  AUDIO_RECORDING_QUALITY_TYPE quality) = 0;
5222  virtual int startAudioRecording(const char* filePath,
5223  int sampleRate,
5224  AUDIO_RECORDING_QUALITY_TYPE quality) = 0;
5225 
5244  virtual int startAudioRecording(const AudioRecordingConfiguration& config) = 0;
5245 
5252 
5261  virtual int stopAudioRecording() = 0;
5262 
5274 
5286  virtual int destroyMediaPlayer(agora_refptr<IMediaPlayer> media_player) = 0;
5287 
5299 
5309  virtual int destroyMediaRecorder(agora_refptr<IMediaRecorder> mediaRecorder) = 0;
5310 
5352  virtual int startAudioMixing(const char* filePath, bool loopback, int cycle) = 0;
5353 
5397  virtual int startAudioMixing(const char* filePath, bool loopback, int cycle, int startPos) = 0;
5398 
5407  virtual int stopAudioMixing() = 0;
5408 
5417  virtual int pauseAudioMixing() = 0;
5418 
5427  virtual int resumeAudioMixing() = 0;
5428 
5437  virtual int selectAudioTrack(int index) = 0;
5446  virtual int getAudioTrackCount() = 0;
5447 
5462  virtual int adjustAudioMixingVolume(int volume) = 0;
5463 
5471  virtual int adjustAudioMixingPublishVolume(int volume) = 0;
5472 
5480  virtual int getAudioMixingPublishVolume() = 0;
5481 
5489  virtual int adjustAudioMixingPlayoutVolume(int volume) = 0;
5490 
5498  virtual int getAudioMixingPlayoutVolume() = 0;
5499 
5508  virtual int getAudioMixingDuration() = 0;
5509 
5520 
5530  virtual int setAudioMixingPosition(int pos /*in ms*/) = 0;
5531 
5542  virtual int setAudioMixingDualMonoMode(media::AUDIO_MIXING_DUAL_MONO_MODE mode) = 0;
5543 
5560  virtual int setAudioMixingPitch(int pitch) = 0;
5561 
5577  virtual int setAudioMixingPlaybackSpeed(int speed) = 0;
5578 
5586  virtual int getEffectsVolume() = 0;
5596  virtual int setEffectsVolume(int volume) = 0;
5620  virtual int preloadEffect(int soundId, const char* filePath, int startPos = 0) = 0;
5662  virtual int playEffect(int soundId, const char* filePath, int loopCount, double pitch, double pan, int gain, bool publish = false, int startPos = 0) = 0;
5693  virtual int playAllEffects(int loopCount, double pitch, double pan, int gain, bool publish = false) = 0;
5694 
5704  virtual int getVolumeOfEffect(int soundId) = 0;
5705 
5716  virtual int setVolumeOfEffect(int soundId, int volume) = 0;
5725  virtual int pauseEffect(int soundId) = 0;
5732  virtual int pauseAllEffects() = 0;
5741  virtual int resumeEffect(int soundId) = 0;
5748  virtual int resumeAllEffects() = 0;
5757  virtual int stopEffect(int soundId) = 0;
5764  virtual int stopAllEffects() = 0;
5773  virtual int unloadEffect(int soundId) = 0;
5780  virtual int unloadAllEffects() = 0;
5799  virtual int getEffectDuration(const char* filePath) = 0;
5816  virtual int setEffectPosition(int soundId, int pos) = 0;
5831  virtual int getEffectCurrentPosition(int soundId) = 0;
5844  virtual int enableSoundPositionIndication(bool enabled) = 0;
5845 
5866  virtual int setRemoteVoicePosition(uid_t uid, double pan, double gain) = 0;
5867 
5877  virtual int enableSpatialAudio(bool enabled) = 0;
5878 
5888  virtual int setRemoteUserSpatialAudioParams(uid_t uid, const agora::SpatialAudioParams& params) = 0;
5889 
5927  virtual int setVoiceBeautifierPreset(VOICE_BEAUTIFIER_PRESET preset) = 0;
5928 
5966  virtual int setAudioEffectPreset(AUDIO_EFFECT_PRESET preset) = 0;
5967 
6004  virtual int setVoiceConversionPreset(VOICE_CONVERSION_PRESET preset) = 0;
6005 
6081  virtual int setAudioEffectParameters(AUDIO_EFFECT_PRESET preset, int param1, int param2) = 0;
6082 
6125  virtual int setVoiceBeautifierParameters(VOICE_BEAUTIFIER_PRESET preset,
6126  int param1, int param2) = 0;
6127 
6140  virtual int setVoiceConversionParameters(VOICE_CONVERSION_PRESET preset,
6141  int param1, int param2) = 0;
6142 
6153  virtual int setLocalVoicePitch(double pitch) = 0;
6154 
6165  virtual int setLocalVoiceFormant(double formantRatio) = 0;
6166 
6178  virtual int setLocalVoiceEqualization(AUDIO_EQUALIZATION_BAND_FREQUENCY bandFrequency, int bandGain) = 0;
6179 
6188  virtual int setLocalVoiceReverb(AUDIO_REVERB_TYPE reverbKey, int value) = 0;
6200  virtual int setHeadphoneEQPreset(HEADPHONE_EQUALIZER_PRESET preset) = 0;
6201 
6211  virtual int setHeadphoneEQParameters(int lowGain, int highGain) = 0;
6212 
6224  virtual int enableVoiceAITuner(bool enabled, VOICE_AI_TUNER_TYPE type) = 0;
6225 
6241  virtual int setLogFile(const char* filePath) = 0;
6242 
6265  virtual int setLogFilter(unsigned int filter) = 0;
6266 
6283  virtual int setLogLevel(commons::LOG_LEVEL level) = 0;
6284 
6299  virtual int setLogFileSize(unsigned int fileSizeInKBytes) = 0;
6300 
6309  virtual int uploadLogFile(agora::util::AString& requestId) = 0;
6310 
6326  virtual int writeLog(commons::LOG_LEVEL level, const char* fmt, ...) = 0;
6327 
6346  virtual int setLocalRenderMode(media::base::RENDER_MODE_TYPE renderMode, VIDEO_MIRROR_MODE_TYPE mirrorMode) = 0;
6347 
6368  virtual int setRemoteRenderMode(uid_t uid, media::base::RENDER_MODE_TYPE renderMode,
6369  VIDEO_MIRROR_MODE_TYPE mirrorMode) = 0;
6380  virtual int setLocalRenderTargetFps(VIDEO_SOURCE_TYPE sourceType, int targetFps) = 0;
6389  virtual int setRemoteRenderTargetFps(int targetFps) = 0;
6390  // The following APIs are either deprecated and going to deleted.
6391 
6409  virtual int setLocalRenderMode(media::base::RENDER_MODE_TYPE renderMode) __deprecated = 0;
6410 
6422  virtual int setLocalVideoMirrorMode(VIDEO_MIRROR_MODE_TYPE mirrorMode) __deprecated = 0;
6423 
6438  virtual int enableDualStreamMode(bool enabled) __deprecated = 0;
6439 
6456  virtual int enableDualStreamMode(bool enabled, const SimulcastStreamConfig& streamConfig) __deprecated = 0;
6457 
6458 
6472  virtual int setDualStreamMode(SIMULCAST_STREAM_MODE mode) = 0;
6473 
6496  virtual int setSimulcastConfig(const SimulcastConfig& simulcastConfig) = 0;
6497 
6511  virtual int setDualStreamMode(SIMULCAST_STREAM_MODE mode, const SimulcastStreamConfig& streamConfig) = 0;
6512 
6527  virtual int enableCustomAudioLocalPlayback(track_id_t trackId, bool enabled) = 0;
6528 
6547  virtual int setRecordingAudioFrameParameters(int sampleRate, int channel,
6548  RAW_AUDIO_FRAME_OP_MODE_TYPE mode,
6549  int samplesPerCall) = 0;
6550 
6570  virtual int setPlaybackAudioFrameParameters(int sampleRate, int channel,
6571  RAW_AUDIO_FRAME_OP_MODE_TYPE mode,
6572  int samplesPerCall) = 0;
6573 
6589  virtual int setMixedAudioFrameParameters(int sampleRate, int channel, int samplesPerCall) = 0;
6590 
6610  virtual int setEarMonitoringAudioFrameParameters(int sampleRate, int channel,
6611  RAW_AUDIO_FRAME_OP_MODE_TYPE mode,
6612  int samplesPerCall) = 0;
6613 
6629  virtual int setPlaybackAudioFrameBeforeMixingParameters(int sampleRate, int channel) = 0;
6630 
6648  virtual int setPlaybackAudioFrameBeforeMixingParameters(int sampleRate, int channel, int samplesPerCall) = 0;
6649 
6660  virtual int enableAudioSpectrumMonitor(int intervalInMS = 100) = 0;
6668  virtual int disableAudioSpectrumMonitor() = 0;
6669 
6695 
6709  virtual int adjustRecordingSignalVolume(int volume) = 0;
6710 
6722  virtual int muteRecordingSignal(bool mute) = 0;
6723 
6737  virtual int adjustPlaybackSignalVolume(int volume) = 0;
6738 
6739  /*
6740  * Adjust the playback volume of the user specified by uid.
6741  *
6742  * You can call this method to adjust the playback volume of the user specified by uid
6743  * in call. If you want to adjust playback volume of the multi user, you can call this
6744  * this method multi times.
6745  *
6746  * @note
6747  * Please call this method after join channel.
6748  * This method adjust the playback volume of specified user.
6749  *
6750  * @param uid Remote user ID.
6751  * @param volume The playback volume of the specified remote user. The value ranges between 0 and 400, including the following:
6752  * 0: Mute.
6753  * 100: (Default) Original volume.
6754  * 400: Four times the original volume with signal-clipping protection.
6755  * @return
6756  * - 0: Success.
6757  * - < 0: Failure.
6758  */
6759  virtual int adjustUserPlaybackSignalVolume(uid_t uid, int volume) = 0;
6760 
6776  virtual int setRemoteSubscribeFallbackOption(STREAM_FALLBACK_OPTIONS option) = 0;
6777 
6791  virtual int setHighPriorityUserList(uid_t* uidList, int uidNum, STREAM_FALLBACK_OPTIONS option) = 0;
6792 
6813  virtual int enableExtension(const char* provider, const char* extension, const ExtensionInfo& extensionInfo, bool enable = true) = 0;
6814 
6828  virtual int setExtensionProperty(const char* provider, const char* extension, const ExtensionInfo& extensionInfo, const char* key, const char* value) = 0;
6829 
6844  virtual int getExtensionProperty(const char* provider, const char* extension, const ExtensionInfo& extensionInfo, const char* key, char* value, int buf_len) = 0;
6845 
6864  virtual int enableLoopbackRecording(bool enabled, const char* deviceName = NULL) = 0;
6865 
6866 
6879  virtual int adjustLoopbackSignalVolume(int volume) = 0;
6880 
6887  virtual int getLoopbackRecordingVolume() = 0;
6888 
6900  virtual int enableInEarMonitoring(bool enabled, int includeAudioFilters) = 0;
6901 
6912  virtual int setInEarMonitoringVolume(int volume) = 0;
6913 
6914 #if defined(_WIN32) || defined(__linux__) || defined(__ANDROID__)
6915  virtual int loadExtensionProvider(const char* path, bool unload_after_use = false) = 0;
6916 #endif
6917 
6929  virtual int setExtensionProviderProperty(const char* provider, const char* key, const char* value) = 0;
6930 
6943  virtual int registerExtension(const char* provider, const char* extension, agora::media::MEDIA_SOURCE_TYPE type = agora::media::UNKNOWN_MEDIA_SOURCE) = 0;
6944 
6965  virtual int enableExtension(const char* provider, const char* extension, bool enable=true, agora::media::MEDIA_SOURCE_TYPE type = agora::media::UNKNOWN_MEDIA_SOURCE) = 0;
6966 
6980  const char* provider, const char* extension,
6981  const char* key, const char* value, agora::media::MEDIA_SOURCE_TYPE type = agora::media::UNKNOWN_MEDIA_SOURCE) = 0;
6982 
6997  const char* provider, const char* extension,
6998  const char* key, char* value, int buf_len, agora::media::MEDIA_SOURCE_TYPE type = agora::media::UNKNOWN_MEDIA_SOURCE) = 0;
6999 
7012 
7020  virtual video_track_id_t createCustomVideoTrack() = 0;
7021 
7029  virtual video_track_id_t createCustomEncodedVideoTrack(const SenderOptions& sender_option) = 0;
7030 
7039  virtual int destroyCustomVideoTrack(video_track_id_t video_track_id) = 0;
7040 
7049  virtual int destroyCustomEncodedVideoTrack(video_track_id_t video_track_id) = 0;
7050 
7051 #if defined(__ANDROID__) || (defined(__APPLE__) && TARGET_OS_IOS) || defined(__OHOS__)
7052 
7060  virtual int switchCamera() = 0;
7061 
7069  virtual bool isCameraZoomSupported() = 0;
7070 
7078  virtual bool isCameraFaceDetectSupported() = 0;
7079 
7087  virtual bool isCameraTorchSupported() = 0;
7088 
7096  virtual bool isCameraFocusSupported() = 0;
7097 
7105  virtual bool isCameraAutoFocusFaceModeSupported() = 0;
7106 
7116  virtual int setCameraZoomFactor(float factor) = 0;
7117 
7126  virtual int enableFaceDetection(bool enabled) = 0;
7127 
7132  virtual float getCameraMaxZoomFactor() = 0;
7133 
7143  virtual int setCameraFocusPositionInPreview(float positionX, float positionY) = 0;
7144 
7152  virtual int setCameraTorchOn(bool isOn) = 0;
7153 
7161  virtual int setCameraAutoFocusFaceModeEnabled(bool enabled) = 0;
7162 
7174  virtual bool isCameraExposurePositionSupported() = 0;
7175 
7191  virtual int setCameraExposurePosition(float positionXinView, float positionYinView) = 0;
7192 
7205  virtual bool isCameraExposureSupported() = 0;
7206 
7217  virtual int setCameraExposureFactor(float factor) = 0;
7218 
7219 #if defined(__APPLE__)
7220 
7227  virtual bool isCameraAutoExposureFaceModeSupported() = 0;
7228 
7229 
7237  virtual int setCameraAutoExposureFaceModeEnabled(bool enabled) = 0;
7238 
7244  virtual int setCameraStabilizationMode(CAMERA_STABILIZATION_MODE mode) = 0;
7245 #endif
7246 
7280  virtual int setDefaultAudioRouteToSpeakerphone(bool defaultToSpeaker) = 0;
7281 
7308  virtual int setEnableSpeakerphone(bool speakerOn) = 0;
7309 
7317  virtual bool isSpeakerphoneEnabled() = 0;
7318 
7325  virtual int setRouteInCommunicationMode(int route) = 0;
7326 #endif // __ANDROID__ || (__APPLE__ && TARGET_OS_IOS) || __OHOS__
7327 
7328 #if defined(__APPLE__)
7329 
7336  virtual bool isCameraCenterStageSupported() = 0;
7337 
7346  virtual int enableCameraCenterStage(bool enabled) = 0;
7347 #endif
7348 
7349 #if defined(_WIN32) || (defined(__APPLE__) && TARGET_OS_MAC && !TARGET_OS_IPHONE)|| (defined(__linux__) && !defined(__ANDROID__) && !defined(__OHOS__))
7350 
7360  virtual IScreenCaptureSourceList* getScreenCaptureSources(const SIZE& thumbSize, const SIZE& iconSize, const bool includeScreen) = 0;
7361 #endif // _WIN32 || (__APPLE__ && !TARGET_OS_IPHONE && TARGET_OS_MAC)
7362 #if (defined(__APPLE__) && TARGET_OS_IOS)
7363 
7387  virtual int setAudioSessionOperationRestriction(AUDIO_SESSION_OPERATION_RESTRICTION restriction) = 0;
7388 #endif // __APPLE__ && TARGET_OS_IOS
7389 
7390 #if defined(_WIN32) || (defined(__APPLE__) && !TARGET_OS_IPHONE && TARGET_OS_MAC) || (defined(__linux__) && !defined(__ANDROID__) && !defined(__OHOS__))
7391 
7412  virtual int startScreenCaptureByDisplayId(int64_t displayId, const Rectangle& regionRect,
7413  const ScreenCaptureParameters& captureParams) = 0;
7414 
7415 #endif // __APPLE__ && TARGET_OS_MAC && !TARGET_OS_IPHONE
7416 
7417 #if defined(_WIN32)
7418 
7441  virtual int startScreenCaptureByScreenRect(const Rectangle& screenRect,
7442  const Rectangle& regionRect,
7443  const ScreenCaptureParameters& captureParams) __deprecated = 0;
7444 #endif
7445 
7446 #if defined(__ANDROID__)
7447 
7453  virtual int getAudioDeviceInfo(DeviceInfo& deviceInfo) = 0;
7454 #endif // __ANDROID__
7455 
7456 #if defined(_WIN32) || (defined(__APPLE__) && TARGET_OS_MAC && !TARGET_OS_IPHONE) || (defined(__linux__) && !defined(__ANDROID__) && !defined(__OHOS__))
7457 
7475  virtual int startScreenCaptureByWindowId(int64_t windowId, const Rectangle& regionRect,
7476  const ScreenCaptureParameters& captureParams) = 0;
7477 
7493  virtual int setScreenCaptureContentHint(VIDEO_CONTENT_HINT contentHint) = 0;
7494 
7511  virtual int updateScreenCaptureRegion(const Rectangle& regionRect) = 0;
7512 
7526  virtual int updateScreenCaptureParameters(const ScreenCaptureParameters& captureParams) = 0;
7527 #endif // _WIN32 || (__APPLE__ && !TARGET_OS_IPHONE && TARGET_OS_MAC)
7528 
7529 #if defined(__ANDROID__) || (defined(__APPLE__) && TARGET_OS_IOS) || defined(__OHOS__)
7530 
7539  virtual int startScreenCapture(const ScreenCaptureParameters2& captureParams) = 0;
7540 
7550  virtual int updateScreenCapture(const ScreenCaptureParameters2& captureParams) = 0;
7551 
7563  virtual int queryScreenCaptureCapability() = 0;
7564 
7576  virtual int queryCameraFocalLengthCapability(agora::rtc::FocalLengthInfo* focalLengthInfos, int& size) = 0;
7577 
7578 #if defined(__ANDROID__)
7579 
7595  virtual int setExternalMediaProjection(void* mediaProjection) = 0;
7596 #endif
7597 #endif
7598 
7599 #if defined(_WIN32) || defined(__APPLE__) || defined(__ANDROID__) || (defined(__linux__) && !defined(__ANDROID__) && !defined (__OHOS__))
7600 
7616  virtual int setScreenCaptureScenario(SCREEN_SCENARIO_TYPE screenScenario) = 0;
7617 
7625  virtual int stopScreenCapture() = 0;
7626 #endif // _WIN32 || (__APPLE__ && !TARGET_OS_IPHONE && TARGET_OS_MAC) || __ANDROID__
7627 
7644  virtual int getCallId(agora::util::AString& callId) = 0;
7645 
7660  virtual int rate(const char* callId, int rating, const char* description) = 0; // 0~10
7661 
7675  virtual int complain(const char* callId, const char* description) = 0;
7676 
7697  virtual int startRtmpStreamWithoutTranscoding(const char* url) = 0;
7698 
7720  virtual int startRtmpStreamWithTranscoding(const char* url, const LiveTranscoding& transcoding) = 0;
7721 
7731  virtual int updateRtmpTranscoding(const LiveTranscoding& transcoding) = 0;
7732 
7733  virtual int startLocalVideoTranscoder(const LocalTranscoderConfiguration& config) = 0;
7734  virtual int updateLocalTranscoderConfiguration(const LocalTranscoderConfiguration& config) = 0;
7735 
7754  virtual int stopRtmpStream(const char* url) = 0;
7755 
7756  virtual int stopLocalVideoTranscoder() = 0;
7757 
7767  virtual int startLocalAudioMixer(const LocalAudioMixerConfiguration& config) = 0;
7768 
7779 
7789  virtual int stopLocalAudioMixer() = 0;
7790 
7800  virtual int startCameraCapture(VIDEO_SOURCE_TYPE sourceType, const CameraCapturerConfiguration& config) = 0;
7801 
7812  virtual int stopCameraCapture(VIDEO_SOURCE_TYPE sourceType) = 0;
7824  virtual int setCameraDeviceOrientation(VIDEO_SOURCE_TYPE type, VIDEO_ORIENTATION orientation) = 0;
7836  virtual int setScreenCaptureOrientation(VIDEO_SOURCE_TYPE type, VIDEO_ORIENTATION orientation) = 0;
7837 
7847  virtual int startScreenCapture(VIDEO_SOURCE_TYPE sourceType, const ScreenCaptureConfiguration& config) = 0;
7848 
7859  virtual int stopScreenCapture(VIDEO_SOURCE_TYPE sourceType) = 0;
7860 
7865  virtual CONNECTION_STATE_TYPE getConnectionState() = 0;
7866 
7867  // The following APIs are not implemented yet.
7868  virtual bool registerEventHandler(IRtcEngineEventHandler* eventHandler) = 0;
7869  virtual bool unregisterEventHandler(IRtcEngineEventHandler* eventHandler) = 0;
7870  virtual int setRemoteUserPriority(uid_t uid, PRIORITY_TYPE userPriority) = 0;
7871 
7883  virtual int registerPacketObserver(IPacketObserver* observer) = 0;
7884 
7885 
7907  virtual int enableEncryption(bool enabled, const EncryptionConfig& config) = 0;
7908 
7940  virtual int createDataStream(int* streamId, bool reliable, bool ordered) = 0;
7941 
7951  virtual int createDataStream(int* streamId, const DataStreamConfig& config) = 0;
7952 
7983  virtual int sendStreamMessage(int streamId, const char* data, size_t length) = 0;
7984 
7998  virtual int sendRdtMessage(uid_t uid, RdtStreamType type, const char *data, size_t length) = 0;
7999 
8012  virtual int sendMediaControlMessage(uid_t uid, const char* data, size_t length) = 0;
8013 
8035  virtual int addVideoWatermark(const RtcImage& watermark) __deprecated = 0;
8036 
8064  virtual int addVideoWatermark(const char* watermarkUrl, const WatermarkOptions& options) = 0;
8065 
8079  virtual int addVideoWatermark(const WatermarkConfig& configs) = 0;
8080 
8094  virtual int removeVideoWatermark(const char* id) = 0;
8095 
8103  virtual int clearVideoWatermarks() = 0;
8104 
8105  // The following APIs are either deprecated and going to deleted.
8106 
8115  virtual int pauseAudio() __deprecated = 0;
8124  virtual int resumeAudio() __deprecated = 0;
8125 
8143  virtual int enableWebSdkInteroperability(bool enabled) __deprecated = 0;
8144 
8154  virtual int sendCustomReportMessage(const char* id, const char* category, const char* event, const char* label, int value) = 0;
8155 
8177  virtual int registerMediaMetadataObserver(IMetadataObserver *observer, IMetadataObserver::METADATA_TYPE type) = 0;
8178 
8187  virtual int unregisterMediaMetadataObserver(IMetadataObserver* observer, IMetadataObserver::METADATA_TYPE type) = 0;
8188 
8197  virtual int startAudioFrameDump(const char* channel_id, uid_t uid, const char* location, const char* uuid, const char* passwd, long duration_ms, bool auto_upload) = 0;
8198 
8202  virtual int stopAudioFrameDump(const char* channel_id, uid_t uid, const char* location) = 0;
8203 
8219  virtual int setAINSMode(bool enabled, AUDIO_AINS_MODE mode) = 0;
8220 
8252  virtual int registerLocalUserAccount(const char* appId, const char* userAccount) = 0;
8253 
8284  virtual int joinChannelWithUserAccount(const char* token, const char* channelId, const char* userAccount) = 0;
8285 
8317  virtual int joinChannelWithUserAccount(const char* token, const char* channelId, const char* userAccount, const ChannelMediaOptions& options) = 0;
8318 
8351  virtual int joinChannelWithUserAccountEx(const char* token, const char* channelId,
8352  const char* userAccount, const ChannelMediaOptions& options,
8353  IRtcEngineEventHandler* eventHandler) = 0;
8354 
8372  virtual int getUserInfoByUserAccount(const char* userAccount, rtc::UserInfo* userInfo) = 0;
8373 
8391  virtual int getUserInfoByUid(uid_t uid, rtc::UserInfo* userInfo) = 0;
8392 
8428 
8457  virtual int stopChannelMediaRelay() = 0;
8458 
8468  virtual int pauseAllChannelMediaRelay() = 0;
8469 
8479  virtual int resumeAllChannelMediaRelay() = 0;
8480 
8495  virtual int setDirectCdnStreamingAudioConfiguration(AUDIO_PROFILE_TYPE profile) = 0;
8496 
8514 
8531  const char* publishUrl, const DirectCdnStreamingMediaOptions& options) = 0;
8532 
8544  virtual int stopDirectCdnStreaming() = 0;
8545 
8560 
8571  virtual int startRhythmPlayer(const char* sound1, const char* sound2, const AgoraRhythmPlayerConfig& config) = 0;
8572 
8579  virtual int stopRhythmPlayer() = 0;
8580 
8589  virtual int configRhythmPlayer(const AgoraRhythmPlayerConfig& config) = 0;
8590 
8620  virtual int takeSnapshot(uid_t uid, const char* filePath) = 0;
8621 
8646  virtual int takeSnapshot(uid_t uid, const media::SnapshotConfig& config) = 0;
8647 
8657  virtual int enableContentInspect(bool enabled, const media::ContentInspectConfig &config) = 0;
8658  /*
8659  * Adjust the custom audio publish volume by track id.
8660  * @param trackId custom audio track id.
8661  * @param volume The volume, range is [0,100]:
8662  * 0: mute, 100: The original volume
8663  * @return
8664  * - 0: Success.
8665  * - < 0: Failure.
8666  */
8667  virtual int adjustCustomAudioPublishVolume(track_id_t trackId, int volume) = 0;
8668 
8669  /*
8670  * Adjust the custom audio playout volume by track id.
8671  * @param trackId custom audio track id.
8672  * @param volume The volume, range is [0,100]:
8673  * 0: mute, 100: The original volume
8674  * @return
8675  * - 0: Success.
8676  * - < 0: Failure.
8677  */
8678  virtual int adjustCustomAudioPlayoutVolume(track_id_t trackId, int volume) = 0;
8679 
8709  virtual int setCloudProxy(CLOUD_PROXY_TYPE proxyType) = 0;
8718  virtual int setLocalAccessPoint(const LocalAccessPointConfiguration& config) = 0;
8719 
8727  virtual int setAdvancedAudioOptions(AdvancedAudioOptions& options, int sourceType = 0) = 0;
8728 
8739  virtual int setAVSyncSource(const char* channelId, uid_t uid) = 0;
8740 
8747  virtual int enableVideoImageSource(bool enable, const ImageTrackOptions& options) = 0;
8748 
8749  /*
8750  * Get monotonic time in ms which can be used by capture time,
8751  * typical scenario is as follows:
8752  *
8753  * ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
8754  * | // custom audio/video base capture time, e.g. the first audio/video capture time. |
8755  * | int64_t custom_capture_time_base; |
8756  * | |
8757  * | int64_t agora_monotonic_time = getCurrentMonotonicTimeInMs(); |
8758  * | |
8759  * | // offset is fixed once calculated in the begining. |
8760  * | const int64_t offset = agora_monotonic_time - custom_capture_time_base; |
8761  * | |
8762  * | // realtime_custom_audio/video_capture_time is the origin capture time that customer provided.|
8763  * | // actual_audio/video_capture_time is the actual capture time transfered to sdk. |
8764  * | int64_t actual_audio_capture_time = realtime_custom_audio_capture_time + offset; |
8765  * | int64_t actual_video_capture_time = realtime_custom_video_capture_time + offset; |
8766  * ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
8767  *
8768  * @return
8769  * - >= 0: Success.
8770  * - < 0: Failure.
8771  */
8772  virtual int64_t getCurrentMonotonicTimeInMs() = 0;
8773 
8788  virtual int getNetworkType() = 0;
8789 
8798  virtual int setParameters(const char* parameters) = 0;
8799 
8814  virtual int startMediaRenderingTracing() = 0;
8815 
8829  virtual int enableInstantMediaRendering() = 0;
8830 
8834  virtual uint64_t getNtpWallTimeInMs() = 0;
8835 
8844  virtual bool isFeatureAvailableOnDevice(FeatureType type) = 0;
8845 
8856  virtual int sendAudioMetadata(const char* metadata, size_t length) = 0;
8857 
8868  virtual int queryHDRCapability(VIDEO_MODULE_TYPE videoModule, HDR_CAPABILITY& capability) = 0;
8869 };
8870 
8871 // The following types are either deprecated or not implmented yet.
8872 enum QUALITY_REPORT_FORMAT_TYPE {
8875  QUALITY_REPORT_JSON = 0,
8878  QUALITY_REPORT_HTML = 1,
8879 };
8880 
8882 enum MEDIA_DEVICE_STATE_TYPE {
8885  MEDIA_DEVICE_STATE_IDLE = 0,
8888  MEDIA_DEVICE_STATE_ACTIVE = 1,
8891  MEDIA_DEVICE_STATE_DISABLED = 2,
8892 
8895  MEDIA_DEVICE_STATE_PLUGGED_IN = 3,
8896 
8899  MEDIA_DEVICE_STATE_NOT_PRESENT = 4,
8902  MEDIA_DEVICE_STATE_UNPLUGGED = 8
8903 };
8904 
8905 enum VIDEO_PROFILE_TYPE { // res fps
8907  VIDEO_PROFILE_LANDSCAPE_120P = 0, // 160x120 15
8909  VIDEO_PROFILE_LANDSCAPE_120P_3 = 2, // 120x120 15
8911  VIDEO_PROFILE_LANDSCAPE_180P = 10, // 320x180 15
8913  VIDEO_PROFILE_LANDSCAPE_180P_3 = 12, // 180x180 15
8915  VIDEO_PROFILE_LANDSCAPE_180P_4 = 13, // 240x180 15
8917  VIDEO_PROFILE_LANDSCAPE_240P = 20, // 320x240 15
8919  VIDEO_PROFILE_LANDSCAPE_240P_3 = 22, // 240x240 15
8921  VIDEO_PROFILE_LANDSCAPE_240P_4 = 23, // 424x240 15
8923  VIDEO_PROFILE_LANDSCAPE_360P = 30, // 640x360 15
8925  VIDEO_PROFILE_LANDSCAPE_360P_3 = 32, // 360x360 15
8927  VIDEO_PROFILE_LANDSCAPE_360P_4 = 33, // 640x360 30
8929  VIDEO_PROFILE_LANDSCAPE_360P_6 = 35, // 360x360 30
8931  VIDEO_PROFILE_LANDSCAPE_360P_7 = 36, // 480x360 15
8933  VIDEO_PROFILE_LANDSCAPE_360P_8 = 37, // 480x360 30
8935  VIDEO_PROFILE_LANDSCAPE_360P_9 = 38, // 640x360 15
8937  VIDEO_PROFILE_LANDSCAPE_360P_10 = 39, // 640x360 24
8939  VIDEO_PROFILE_LANDSCAPE_360P_11 = 100, // 640x360 24
8941  VIDEO_PROFILE_LANDSCAPE_480P = 40, // 640x480 15
8943  VIDEO_PROFILE_LANDSCAPE_480P_3 = 42, // 480x480 15
8945  VIDEO_PROFILE_LANDSCAPE_480P_4 = 43, // 640x480 30
8947  VIDEO_PROFILE_LANDSCAPE_480P_6 = 45, // 480x480 30
8949  VIDEO_PROFILE_LANDSCAPE_480P_8 = 47, // 848x480 15
8951  VIDEO_PROFILE_LANDSCAPE_480P_9 = 48, // 848x480 30
8953  VIDEO_PROFILE_LANDSCAPE_480P_10 = 49, // 640x480 10
8955  VIDEO_PROFILE_LANDSCAPE_720P = 50, // 1280x720 15
8957  VIDEO_PROFILE_LANDSCAPE_720P_3 = 52, // 1280x720 30
8959  VIDEO_PROFILE_LANDSCAPE_720P_5 = 54, // 960x720 15
8961  VIDEO_PROFILE_LANDSCAPE_720P_6 = 55, // 960x720 30
8963  VIDEO_PROFILE_LANDSCAPE_1080P = 60, // 1920x1080 15
8965  VIDEO_PROFILE_LANDSCAPE_1080P_3 = 62, // 1920x1080 30
8967  VIDEO_PROFILE_LANDSCAPE_1080P_5 = 64, // 1920x1080 60
8969  VIDEO_PROFILE_LANDSCAPE_1440P = 66, // 2560x1440 30
8971  VIDEO_PROFILE_LANDSCAPE_1440P_2 = 67, // 2560x1440 60
8973  VIDEO_PROFILE_LANDSCAPE_4K = 70, // 3840x2160 30
8975  VIDEO_PROFILE_LANDSCAPE_4K_3 = 72, // 3840x2160 60
8977  VIDEO_PROFILE_PORTRAIT_120P = 1000, // 120x160 15
8979  VIDEO_PROFILE_PORTRAIT_120P_3 = 1002, // 120x120 15
8981  VIDEO_PROFILE_PORTRAIT_180P = 1010, // 180x320 15
8983  VIDEO_PROFILE_PORTRAIT_180P_3 = 1012, // 180x180 15
8985  VIDEO_PROFILE_PORTRAIT_180P_4 = 1013, // 180x240 15
8987  VIDEO_PROFILE_PORTRAIT_240P = 1020, // 240x320 15
8989  VIDEO_PROFILE_PORTRAIT_240P_3 = 1022, // 240x240 15
8991  VIDEO_PROFILE_PORTRAIT_240P_4 = 1023, // 240x424 15
8993  VIDEO_PROFILE_PORTRAIT_360P = 1030, // 360x640 15
8995  VIDEO_PROFILE_PORTRAIT_360P_3 = 1032, // 360x360 15
8997  VIDEO_PROFILE_PORTRAIT_360P_4 = 1033, // 360x640 30
8999  VIDEO_PROFILE_PORTRAIT_360P_6 = 1035, // 360x360 30
9001  VIDEO_PROFILE_PORTRAIT_360P_7 = 1036, // 360x480 15
9003  VIDEO_PROFILE_PORTRAIT_360P_8 = 1037, // 360x480 30
9005  VIDEO_PROFILE_PORTRAIT_360P_9 = 1038, // 360x640 15
9007  VIDEO_PROFILE_PORTRAIT_360P_10 = 1039, // 360x640 24
9009  VIDEO_PROFILE_PORTRAIT_360P_11 = 1100, // 360x640 24
9011  VIDEO_PROFILE_PORTRAIT_480P = 1040, // 480x640 15
9013  VIDEO_PROFILE_PORTRAIT_480P_3 = 1042, // 480x480 15
9015  VIDEO_PROFILE_PORTRAIT_480P_4 = 1043, // 480x640 30
9017  VIDEO_PROFILE_PORTRAIT_480P_6 = 1045, // 480x480 30
9019  VIDEO_PROFILE_PORTRAIT_480P_8 = 1047, // 480x848 15
9021  VIDEO_PROFILE_PORTRAIT_480P_9 = 1048, // 480x848 30
9023  VIDEO_PROFILE_PORTRAIT_480P_10 = 1049, // 480x640 10
9025  VIDEO_PROFILE_PORTRAIT_720P = 1050, // 720x1280 15
9027  VIDEO_PROFILE_PORTRAIT_720P_3 = 1052, // 720x1280 30
9029  VIDEO_PROFILE_PORTRAIT_720P_5 = 1054, // 720x960 15
9031  VIDEO_PROFILE_PORTRAIT_720P_6 = 1055, // 720x960 30
9033  VIDEO_PROFILE_PORTRAIT_1080P = 1060, // 1080x1920 15
9035  VIDEO_PROFILE_PORTRAIT_1080P_3 = 1062, // 1080x1920 30
9037  VIDEO_PROFILE_PORTRAIT_1080P_5 = 1064, // 1080x1920 60
9039  VIDEO_PROFILE_PORTRAIT_1440P = 1066, // 1440x2560 30
9041  VIDEO_PROFILE_PORTRAIT_1440P_2 = 1067, // 1440x2560 60
9043  VIDEO_PROFILE_PORTRAIT_4K = 1070, // 2160x3840 30
9045  VIDEO_PROFILE_PORTRAIT_4K_3 = 1072, // 2160x3840 60
9047  VIDEO_PROFILE_DEFAULT = VIDEO_PROFILE_LANDSCAPE_360P,
9048 };
9049 
9050 class AAudioDeviceManager : public agora::util::AutoPtr<IAudioDeviceManager> {
9051  public:
9052  AAudioDeviceManager(IRtcEngine* engine) {
9053  queryInterface(engine, AGORA_IID_AUDIO_DEVICE_MANAGER);
9054  }
9055 };
9056 
9057 class AVideoDeviceManager : public agora::util::AutoPtr<IVideoDeviceManager> {
9058  public:
9059  AVideoDeviceManager(IRtcEngine* engine) {
9060  queryInterface(engine, AGORA_IID_VIDEO_DEVICE_MANAGER);
9061  }
9062 };
9063 
9064 } // namespace rtc
9065 } // namespace agora
9066 
9072 #define getAgoraRtcEngineVersion getAgoraSdkVersion
9073 
9075 
9078 
9085 
9087 
9088 
9095 #define getAgoraRtcEngineErrorDescription getAgoraSdkErrorDescription
9096 #define setAgoraRtcEngineExternalSymbolLoader setAgoraSdkExternalSymbolLoader
agora::rtc::IRtcEngine::setDirectCdnStreamingAudioConfiguration
virtual int setDirectCdnStreamingAudioConfiguration(AUDIO_PROFILE_TYPE profile)=0
agora::rtc::IRtcEngine::getErrorDescription
virtual const char * getErrorDescription(int code)=0
agora::rtc::IRtcEngine::enableAudioSpectrumMonitor
virtual int enableAudioSpectrumMonitor(int intervalInMS=100)=0
agora::rtc::IRtcEngine::setSubscribeVideoAllowlist
virtual int setSubscribeVideoAllowlist(uid_t *uidList, int uidNumber)=0
agora::rtc::IRtcEngine::adjustRecordingSignalVolume
virtual int adjustRecordingSignalVolume(int volume)=0
agora::rtc::IRtcEngine::enableWebSdkInteroperability
virtual int enableWebSdkInteroperability(bool enabled) __deprecated=0
agora::rtc::IRtcEngine::enableSpatialAudio
virtual int enableSpatialAudio(bool enabled)=0
agora::rtc::ChannelMediaOptions::publishMediaPlayerAudioTrack
Optional< bool > publishMediaPlayerAudioTrack
Definition: IAgoraRtcEngine.h:1179
agora::rtc::PublisherConfiguration::extraInfo
const char * extraInfo
Definition: IAgoraRtcEngine.h:786
agora::rtc::IRtcEngine::setAVSyncSource
virtual int setAVSyncSource(const char *channelId, uid_t uid)=0
agora::VideoLayout
Definition: AgoraBase.h:7544
agora::rtc::RtcEngineContext::appId
const char * appId
Definition: IAgoraRtcEngine.h:3414
agora::rtc::IRtcEngine::setSubscribeAudioBlocklist
virtual int setSubscribeAudioBlocklist(uid_t *uidList, int uidNumber)=0
agora::rtc::IRtcEngine::sendRdtMessage
virtual int sendRdtMessage(uid_t uid, RdtStreamType type, const char *data, size_t length)=0
Send Reliable message to remote uid in channel.
agora::rtc::IRtcEngineEventHandler::onUserAccountUpdated
virtual void onUserAccountUpdated(uid_t uid, const char *userAccount)
Definition: IAgoraRtcEngine.h:2836
agora::rtc::IRtcEngine::enableInEarMonitoring
virtual int enableInEarMonitoring(bool enabled, int includeAudioFilters)=0
agora::rtc::IRtcEngineEventHandler::onRtmpStreamingEvent
virtual void onRtmpStreamingEvent(const char *url, RTMP_STREAMING_EVENT eventCode)
Definition: IAgoraRtcEngine.h:2617
agora::rtc::IRtcEngineEventHandler::onExtensionErrorWithContext
virtual void onExtensionErrorWithContext(const ExtensionContext &context, int error, const char *message)
Definition: IAgoraRtcEngine.h:3021
agora::rtc::LocalVideoStats::regulatedCaptureFrameHeight
int regulatedCaptureFrameHeight
Definition: IAgoraRtcEngine.h:307
agora::rtc::IRtcEngine::setEffectPosition
virtual int setEffectPosition(int soundId, int pos)=0
agora::rtc::UserInfo
Definition: AgoraBase.h:7053
agora::rtc::RemoteVideoStats::publishDuration
int publishDuration
Definition: IAgoraRtcEngine.h:583
agora::rtc::FilterEffectOptions
Definition: AgoraBase.h:5428
agora::rtc::IRtcEngine::stopDirectCdnStreaming
virtual int stopDirectCdnStreaming()=0
agora::rtc::LastmileProbeResult
Definition: AgoraBase.h:4758
agora::rtc::AudioEncodedFrameObserverConfig
Definition: AgoraBase.h:6375
agora::rtc::ScreenCaptureParameters
Definition: AgoraBase.h:6093
agora::rtc::IRtcEngine::muteAllRemoteVideoStreams
virtual int muteAllRemoteVideoStreams(bool mute)=0
agora::rtc::IRtcEngine::setRemoteVideoSubscriptionOptions
virtual int setRemoteVideoSubscriptionOptions(uid_t uid, const VideoSubscriptionOptions &options)=0
agora::rtc::AudioVolumeInfo
Definition: AgoraBase.h:3772
agora::rtc::RemoteVideoStats::e2eDelay
int e2eDelay
Definition: IAgoraRtcEngine.h:528
agora::rtc::InjectStreamConfig::audioChannels
int audioChannels
Definition: IAgoraRtcEngine.h:708
agora::rtc::IVideoEffectObject::SAVE
@ SAVE
Definition: IAgoraRtcEngine.h:3251
agora::rtc::LocalVideoStats::regulatedCaptureFrameWidth
int regulatedCaptureFrameWidth
Definition: IAgoraRtcEngine.h:303
agora::rtc::IRtcEngine::pauseEffect
virtual int pauseEffect(int soundId)=0
agora::rtc::BeautyOptions
Definition: AgoraBase.h:5111
agora::rtc::ChannelMediaOptions::publishSecondaryCameraTrack
Optional< bool > publishSecondaryCameraTrack
Definition: IAgoraRtcEngine.h:1092
agora::rtc::SenderOptions
Definition: AgoraBase.h:1293
agora::rtc::IRtcEngine::muteLocalVideoStream
virtual int muteLocalVideoStream(bool mute)=0
agora::rtc::RtcEngineContext::eventHandler
IRtcEngineEventHandler * eventHandler
Definition: IAgoraRtcEngine.h:3407
agora::rtc::ChannelMediaOptions::enableMultipath
Optional< bool > enableMultipath
Definition: IAgoraRtcEngine.h:1317
agora::rtc::IRtcEngine::stopPreview
virtual int stopPreview(VIDEO_SOURCE_TYPE sourceType)=0
agora::rtc::IRtcEngine::startScreenCapture
virtual int startScreenCapture(VIDEO_SOURCE_TYPE sourceType, const ScreenCaptureConfiguration &config)=0
agora::rtc::IRtcEngineEventHandler::onIntraRequestReceived
virtual void onIntraRequestReceived()
Definition: IAgoraRtcEngine.h:1818
agora::rtc::VideoCompositingLayout
Definition: IAgoraRtcEngine.h:598
agora::rtc::VideoCompositingLayout::canvasHeight
int canvasHeight
Definition: IAgoraRtcEngine.h:647
agora::rtc::IRtcEngine::setVoiceConversionPreset
virtual int setVoiceConversionPreset(VOICE_CONVERSION_PRESET preset)=0
agora::rtc::DirectCdnStreamingStats::videoHeight
int videoHeight
Definition: IAgoraRtcEngine.h:3643
agora::rtc::LastmileProbeConfig
Definition: AgoraBase.h:4688
agora::rtc::IRtcEngine::enableLocalVideo
virtual int enableLocalVideo(bool enabled)=0
agora::rtc::IRtcEngineEventHandler::onLeaveChannel
virtual void onLeaveChannel(const RtcStats &stats)
Definition: IAgoraRtcEngine.h:1714
agora::rtc::IRtcEngine::joinChannel
virtual int joinChannel(const char *token, const char *channelId, uid_t uid, const ChannelMediaOptions &options)=0
agora::rtc::IRtcEngineEventHandler::onRhythmPlayerStateChanged
virtual void onRhythmPlayerStateChanged(RHYTHM_PLAYER_STATE_TYPE state, RHYTHM_PLAYER_REASON reason)
Definition: IAgoraRtcEngine.h:2262
agora::rtc::IDirectCdnStreamingEventHandler::onDirectCdnStreamingStateChanged
virtual void onDirectCdnStreamingStateChanged(DIRECT_CDN_STREAMING_STATE state, DIRECT_CDN_STREAMING_REASON reason, const char *message)
Definition: IAgoraRtcEngine.h:3677
agora::rtc::IRtcEngine::getAudioTrackCount
virtual int getAudioTrackCount()=0
agora::rtc::IRtcEngineEventHandler::onStreamMessage
virtual void onStreamMessage(uid_t uid, int streamId, const char *data, size_t length, uint64_t sentTs)
Definition: IAgoraRtcEngine.h:2306
agora::rtc::IRtcEngineEventHandler::onFirstRemoteVideoDecoded
virtual void onFirstRemoteVideoDecoded(uid_t uid, int width, int height, int elapsed) __deprecated
Definition: IAgoraRtcEngine.h:1896
agora::rtc::LocalVideoStats::uid
uid_t uid
Definition: IAgoraRtcEngine.h:278
agora::rtc::IRtcEngine::stopChannelMediaRelay
virtual int stopChannelMediaRelay()=0
agora::rtc::IRtcEngineEventHandler::onAudioEffectFinished
virtual void onAudioEffectFinished(int soundId)
Definition: IAgoraRtcEngine.h:1767
agora::rtc::IVideoEffectObject::getVideoEffectFloatParam
virtual float getVideoEffectFloatParam(const char *option, const char *key)=0
Gets a float parameter from the video effect.
agora::rtc::RtcEngineContext::threadPriority
Optional< THREAD_PRIORITY_TYPE > threadPriority
Definition: IAgoraRtcEngine.h:3469
agora::rtc::IRtcEngine::registerAudioEncodedFrameObserver
virtual int registerAudioEncodedFrameObserver(const AudioEncodedFrameObserverConfig &config, IAudioEncodedFrameObserver *observer)=0
agora::rtc::RemoteAudioStats::frozenTimeByCustom
uint32_t frozenTimeByCustom
Definition: IAgoraRtcEngine.h:457
agora::rtc::IRtcEngine::queryHDRCapability
virtual int queryHDRCapability(VIDEO_MODULE_TYPE videoModule, HDR_CAPABILITY &capability)=0
Queries the HDR capability of the video module.
agora::rtc::IRtcEngine::setFaceShapeBeautyOptions
virtual int setFaceShapeBeautyOptions(bool enabled, const FaceShapeBeautyOptions &options, agora::media::MEDIA_SOURCE_TYPE type=agora::media::PRIMARY_CAMERA_SOURCE)=0
agora::rtc::ChannelMediaOptions::enableBuiltInMediaEncryption
Optional< bool > enableBuiltInMediaEncryption
Definition: IAgoraRtcEngine.h:1271
agora::rtc::IRtcEngine::resumeAllEffects
virtual int resumeAllEffects()=0
agora::rtc::IRtcEngine::joinChannelWithUserAccountEx
virtual int joinChannelWithUserAccountEx(const char *token, const char *channelId, const char *userAccount, const ChannelMediaOptions &options, IRtcEngineEventHandler *eventHandler)=0
agora::rtc::InjectStreamConfig::width
int width
Definition: IAgoraRtcEngine.h:681
agora::rtc::IRtcEngine::pauseAudioMixing
virtual int pauseAudioMixing()=0
agora::rtc::IRtcEngine::setPlaybackAudioFrameBeforeMixingParameters
virtual int setPlaybackAudioFrameBeforeMixingParameters(int sampleRate, int channel)=0
agora::rtc::IRtcEngineEventHandler::onRemoteAudioTransportStats
virtual void onRemoteAudioTransportStats(uid_t uid, unsigned short delay, unsigned short lost, unsigned short rxKBitRate) __deprecated
Definition: IAgoraRtcEngine.h:2721
agora::rtc::RemoteAudioStats::totalActiveTime
int totalActiveTime
Definition: IAgoraRtcEngine.h:463
agora::agora_refptr
Definition: AgoraRefPtr.h:44
agora::rtc::IRtcEngineEventHandler::onFirstRemoteAudioFrame
virtual void onFirstRemoteAudioFrame(uid_t uid, int elapsed) __deprecated
Definition: IAgoraRtcEngine.h:2461
agora::rtc::IVideoDeviceCollection::release
virtual void release()=0
agora::rtc::IVideoDeviceManager::enumerateVideoDevices
virtual IVideoDeviceCollection * enumerateVideoDevices()=0
agora::rtc::LeaveChannelOptions::stopAudioMixing
bool stopAudioMixing
Definition: IAgoraRtcEngine.h:1553
agora::rtc::IRtcEngine::getVersion
virtual const char * getVersion(int *build)=0
agora::rtc::RemoteVideoStats::totalActiveTime
int totalActiveTime
Definition: IAgoraRtcEngine.h:579
agora::rtc::IRtcEngine::setAudioMixingPitch
virtual int setAudioMixingPitch(int pitch)=0
agora::rtc::ChannelMediaOptions::publishRhythmPlayerTrack
Optional< bool > publishRhythmPlayerTrack
Definition: IAgoraRtcEngine.h:1277
agora::rtc::ChannelMediaOptions::publishCustomVideoTrack
Optional< bool > publishCustomVideoTrack
Definition: IAgoraRtcEngine.h:1167
agora::rtc::IRtcEngineEventHandler::onLocalVideoStateChanged
virtual void onLocalVideoStateChanged(VIDEO_SOURCE_TYPE source, LOCAL_VIDEO_STREAM_STATE state, LOCAL_VIDEO_STREAM_REASON reason)
Definition: IAgoraRtcEngine.h:1944
agora::media::IAudioSpectrumObserver
Definition: AgoraMediaBase.h:1598
agora::rtc::DirectCdnStreamingStats::videoWidth
int videoWidth
Definition: IAgoraRtcEngine.h:3638
agora::rtc::IMetadataObserver::Metadata::buffer
unsigned char * buffer
Definition: IAgoraRtcEngine.h:3546
agora::rtc::PublisherConfiguration::publishUrl
const char * publishUrl
Definition: IAgoraRtcEngine.h:779
agora::rtc::IRtcEngine::enableVoiceAITuner
virtual int enableVoiceAITuner(bool enabled, VOICE_AI_TUNER_TYPE type)=0
agora::rtc::ExtensionInfo
Definition: IAgoraRtcEngine.h:3791
agora::rtc::IRtcEngineEventHandler::onVideoRenderingTracingResult
virtual void onVideoRenderingTracingResult(uid_t uid, MEDIA_TRACE_EVENT currentEvent, VideoRenderingTracingInfo tracingInfo)
Definition: IAgoraRtcEngine.h:2848
agora::rtc::ExtensionInfo::remoteUid
uid_t remoteUid
Definition: IAgoraRtcEngine.h:3802
agora::rtc::PublisherConfiguration::lifecycle
int lifecycle
Definition: IAgoraRtcEngine.h:761
agora::rtc::IRtcEngine::startPreview
virtual int startPreview()=0
agora::rtc::IMetadataObserver::Metadata::timeStampMs
long long timeStampMs
Definition: IAgoraRtcEngine.h:3550
agora::rtc::IRtcEngineEventHandler::onLocalAudioStats
virtual void onLocalAudioStats(const LocalAudioStats &stats)
Definition: IAgoraRtcEngine.h:2121
agora::rtc::IRtcEngine::setAINSMode
virtual int setAINSMode(bool enabled, AUDIO_AINS_MODE mode)=0
agora::rtc::IRtcEngine::updateLocalAudioMixerConfiguration
virtual int updateLocalAudioMixerConfiguration(const LocalAudioMixerConfiguration &config)=0
agora::rtc::ChannelMediaOptions::autoSubscribeAudio
Optional< bool > autoSubscribeAudio
Definition: IAgoraRtcEngine.h:1209
agora::rtc::IRtcEngineEventHandler::onCameraExposureAreaChanged
virtual void onCameraExposureAreaChanged(int x, int y, int width, int height)
Definition: IAgoraRtcEngine.h:2186
agora::rtc::LocalAccessPointConfiguration
Definition: AgoraBase.h:7345
agora::rtc::IRtcEngineEventHandler::onClientRoleChangeFailed
virtual void onClientRoleChangeFailed(CLIENT_ROLE_CHANGE_FAILED_REASON reason, CLIENT_ROLE_TYPE currentRole)
Definition: IAgoraRtcEngine.h:2576
agora::rtc::IVideoDeviceCollection::getDevice
virtual int getDevice(int index, char deviceNameUTF8[MAX_DEVICE_ID_LENGTH], char deviceIdUTF8[MAX_DEVICE_ID_LENGTH])=0
agora::rtc::ChannelMediaOptions::uplinkMultipathMode
Optional< MultipathMode > uplinkMultipathMode
Definition: IAgoraRtcEngine.h:1327
agora::rtc::DirectCdnStreamingStats::videoBitrate
int videoBitrate
Definition: IAgoraRtcEngine.h:3653
agora::rtc::IRtcEngineEventHandler::onLastmileQuality
virtual void onLastmileQuality(int quality)
Definition: IAgoraRtcEngine.h:1846
agora::rtc::IRtcEngine::enableInstantMediaRendering
virtual int enableInstantMediaRendering()=0
Enable instant media rendering.
agora::rtc::IRtcEngine::setRemoteRenderMode
virtual int setRemoteRenderMode(uid_t uid, media::base::RENDER_MODE_TYPE renderMode, VIDEO_MIRROR_MODE_TYPE mirrorMode)=0
agora::rtc::ChannelMediaOptions::isAudioFilterable
Optional< bool > isAudioFilterable
Definition: IAgoraRtcEngine.h:1296
agora::rtc::LiveTranscoding
Definition: AgoraBase.h:4332
agora::rtc::ChannelMediaOptions::audienceLatencyLevel
Optional< AUDIENCE_LATENCY_LEVEL_TYPE > audienceLatencyLevel
Definition: IAgoraRtcEngine.h:1234
agora::rtc::IRtcEngineEventHandler::onRemoteVideoTransportStats
virtual void onRemoteVideoTransportStats(uid_t uid, unsigned short delay, unsigned short lost, unsigned short rxKBitRate) __deprecated
Definition: IAgoraRtcEngine.h:2745
agora::rtc::IVideoEffectObject::VIDEO_EFFECT_ACTION
VIDEO_EFFECT_ACTION
Actions that can be performed on video effect nodes.
Definition: IAgoraRtcEngine.h:3249
agora::rtc::LocalVideoStats::sentFrameRate
int sentFrameRate
Definition: IAgoraRtcEngine.h:286
agora::rtc::Rectangle
Definition: AgoraBase.h:2281
agora::rtc::IRtcEngine::setDirectCdnStreamingVideoConfiguration
virtual int setDirectCdnStreamingVideoConfiguration(const VideoEncoderConfiguration &config)=0
agora::rtc::IRtcEngine::createDataStream
virtual int createDataStream(int *streamId, bool reliable, bool ordered)=0
agora::rtc::IVideoDeviceManager::release
virtual void release()=0
agora::rtc::IRtcEngine::setVolumeOfEffect
virtual int setVolumeOfEffect(int soundId, int volume)=0
agora::rtc::IRtcEngineEventHandler::onUserInfoUpdated
virtual void onUserInfoUpdated(uid_t uid, const UserInfo &info)
Definition: IAgoraRtcEngine.h:2825
agora::rtc::IRtcEngineEventHandler::onNetworkTypeChanged
virtual void onNetworkTypeChanged(NETWORK_TYPE type)
Definition: IAgoraRtcEngine.h:2775
agora::rtc::IRtcEngineEventHandler::onFirstRemoteAudioDecoded
virtual void onFirstRemoteAudioDecoded(uid_t uid, int elapsed) __deprecated
Definition: IAgoraRtcEngine.h:2449
agora::rtc::InjectStreamConfig::videoFramerate
int videoFramerate
Definition: IAgoraRtcEngine.h:693
agora::rtc::IRtcEngine::setDualStreamMode
virtual int setDualStreamMode(SIMULCAST_STREAM_MODE mode, const SimulcastStreamConfig &streamConfig)=0
agora::rtc::IRtcEngine::stopAudioFrameDump
virtual int stopAudioFrameDump(const char *channel_id, uid_t uid, const char *location)=0
agora::rtc::IRtcEngine::enableAudioVolumeIndication
virtual int enableAudioVolumeIndication(int interval, int smooth, bool reportVad)=0
agora::rtc::ChannelMediaOptions::mediaPlayerAudioDelayMs
Optional< int > mediaPlayerAudioDelayMs
Definition: IAgoraRtcEngine.h:1254
agora::rtc::IMetadataObserver::onReadyToSendMetadata
virtual bool onReadyToSendMetadata(Metadata &metadata, VIDEO_SOURCE_TYPE source_type)=0
agora::rtc::IRtcEngine::registerPacketObserver
virtual int registerPacketObserver(IPacketObserver *observer)=0
agora::rtc::RemoteAudioStats::networkTransportDelay
int networkTransportDelay
Definition: IAgoraRtcEngine.h:384
agora::rtc::IRtcEngine::unregisterMediaMetadataObserver
virtual int unregisterMediaMetadataObserver(IMetadataObserver *observer, IMetadataObserver::METADATA_TYPE type)=0
agora::rtc::IRtcEngineEventHandler::onLocalVideoTranscoderError
virtual void onLocalVideoTranscoderError(const TranscodingVideoStream &stream, VIDEO_TRANSCODER_ERROR error)
Definition: IAgoraRtcEngine.h:2860
agora::rtc::IRtcEngine::getUserInfoByUid
virtual int getUserInfoByUid(uid_t uid, rtc::UserInfo *userInfo)=0
agora::rtc::IRtcEngine::pauseAllEffects
virtual int pauseAllEffects()=0
agora::rtc::IRtcEngine::disableAudioSpectrumMonitor
virtual int disableAudioSpectrumMonitor()=0
agora::rtc::IVideoEffectObject::VIDEO_EFFECT_NODE_ID::STYLE_MAKEUP
@ STYLE_MAKEUP
agora::rtc::IRtcEngineEventHandler::onFirstLocalAudioFramePublished
virtual void onFirstLocalAudioFramePublished(int elapsed)
Definition: IAgoraRtcEngine.h:2429
agora::util::AutoPtr
Definition: AgoraBase.h:100
agora::rtc::LocalVideoStats::sentBitrate
int sentBitrate
Definition: IAgoraRtcEngine.h:282
agora::rtc::IRtcEngine::getAudioMixingPublishVolume
virtual int getAudioMixingPublishVolume()=0
agora::rtc::IRtcEngine::addVideoWatermark
virtual int addVideoWatermark(const char *watermarkUrl, const WatermarkOptions &options)=0
agora::rtc::IRtcEngineEventHandler::onRejoinChannelSuccess
virtual void onRejoinChannelSuccess(const char *channel, uid_t uid, int elapsed)
Definition: IAgoraRtcEngine.h:1611
agora::rtc::RemoteVideoStats::totalFrozenTime
int totalFrozenTime
Definition: IAgoraRtcEngine.h:565
agora::rtc::IRtcEngineEventHandler::onMultipathStats
virtual void onMultipathStats(const MultipathStats &stats)
Report the multipath transmission statistics.
Definition: IAgoraRtcEngine.h:3045
agora::rtc::IMetadataObserver::METADATA_TYPE
METADATA_TYPE
Definition: IAgoraRtcEngine.h:3511
agora::rtc::IRtcEngine::setCloudProxy
virtual int setCloudProxy(CLOUD_PROXY_TYPE proxyType)=0
agora::rtc::RemoteAudioStats::receivedBitrate
int receivedBitrate
Definition: IAgoraRtcEngine.h:407
agora::rtc::VideoEncoderConfiguration
Definition: AgoraBase.h:1960
agora::rtc::IMetadataObserver::Metadata::channelId
const char * channelId
Definition: IAgoraRtcEngine.h:3535
agora::rtc::IRtcEngineEventHandler
Definition: IAgoraRtcEngine.h:1580
agora::rtc::VideoCompositingLayout::Region::height
double height
Definition: IAgoraRtcEngine.h:614
agora::rtc::IRtcEngine::leaveChannel
virtual int leaveChannel(const LeaveChannelOptions &options)=0
agora::rtc::IVideoDeviceManager::getDevice
virtual int getDevice(char deviceIdUTF8[MAX_DEVICE_ID_LENGTH])=0
agora::rtc::IRtcEngine::startAudioMixing
virtual int startAudioMixing(const char *filePath, bool loopback, int cycle, int startPos)=0
agora::rtc::IRtcEngineEventHandler::onUserMuteAudio
virtual void onUserMuteAudio(uid_t uid, bool muted)
Definition: IAgoraRtcEngine.h:2037
agora::rtc::ChannelMediaOptions::publishCustomAudioTrackId
Optional< int > publishCustomAudioTrackId
Definition: IAgoraRtcEngine.h:1161
agora::rtc::VideoSubscriptionOptions
Definition: AgoraBase.h:1649
agora::rtc::IRtcEngine::registerLocalUserAccount
virtual int registerLocalUserAccount(const char *appId, const char *userAccount)=0
agora::rtc::IRtcEngineEventHandler::onUplinkNetworkInfoUpdated
virtual void onUplinkNetworkInfoUpdated(const UplinkNetworkInfo &info)
Definition: IAgoraRtcEngine.h:1830
agora::rtc::DirectCdnStreamingMediaOptions::publishMicrophoneTrack
Optional< bool > publishMicrophoneTrack
Definition: IAgoraRtcEngine.h:3705
agora::rtc::EchoTestConfiguration
Definition: AgoraBase.h:7030
agora::rtc::RtcImage
Definition: AgoraBase.h:4142
agora::rtc::VideoCompositingLayout::backgroundColor
const char * backgroundColor
Definition: IAgoraRtcEngine.h:650
agora::rtc::IRtcEngine::getAudioMixingCurrentPosition
virtual int getAudioMixingCurrentPosition()=0
agora::rtc::IRtcEngine::startDirectCdnStreaming
virtual int startDirectCdnStreaming(IDirectCdnStreamingEventHandler *eventHandler, const char *publishUrl, const DirectCdnStreamingMediaOptions &options)=0
agora::rtc::IRtcEngine::registerAudioSpectrumObserver
virtual int registerAudioSpectrumObserver(agora::media::IAudioSpectrumObserver *observer)=0
agora::rtc::LocalVideoStats::encodedBitrate
int encodedBitrate
Definition: IAgoraRtcEngine.h:333
agora::rtc::LocalVideoStats::qualityAdaptIndication
QUALITY_ADAPT_INDICATION qualityAdaptIndication
Definition: IAgoraRtcEngine.h:329
agora::rtc::IRtcEngine::enableDualStreamMode
virtual int enableDualStreamMode(bool enabled, const SimulcastStreamConfig &streamConfig) __deprecated=0
agora::rtc::ChannelMediaOptions::customVideoTrackId
Optional< video_track_id_t > customVideoTrackId
Definition: IAgoraRtcEngine.h:1290
agora::rtc::SimulcastStreamConfig
Definition: AgoraBase.h:2175
agora::rtc::IRtcEngineEventHandler::onConnectionInterrupted
virtual void onConnectionInterrupted() __deprecated
Definition: IAgoraRtcEngine.h:2288
agora::rtc::IRtcEngine::setMixedAudioFrameParameters
virtual int setMixedAudioFrameParameters(int sampleRate, int channel, int samplesPerCall)=0
agora::rtc::IRtcEngine::getVolumeOfEffect
virtual int getVolumeOfEffect(int soundId)=0
agora::rtc::IMetadataObserver::getMaxMetadataSize
virtual int getMaxMetadataSize()
Definition: IAgoraRtcEngine.h:3565
agora::rtc::FaceShapeBeautyOptions
Face shape beauty options. This structure defines options for facial adjustments of different facial ...
Definition: AgoraBase.h:5389
agora::rtc::IRtcEngine::setSubscribeAudioAllowlist
virtual int setSubscribeAudioAllowlist(uid_t *uidList, int uidNumber)=0
agora::rtc::IRtcEngine::getConnectionState
virtual CONNECTION_STATE_TYPE getConnectionState()=0
agora::rtc::ExtensionInfo::channelId
const char * channelId
Definition: IAgoraRtcEngine.h:3815
agora::rtc::IRtcEngine::isFeatureAvailableOnDevice
virtual bool isFeatureAvailableOnDevice(FeatureType type)=0
Whether the target feature is available for the device.
agora::rtc::IRtcEngine::setExtensionProperty
virtual int setExtensionProperty(const char *provider, const char *extension, const char *key, const char *value, agora::media::MEDIA_SOURCE_TYPE type=agora::media::UNKNOWN_MEDIA_SOURCE)=0
agora::rtc::IRtcEngine::enableEncryption
virtual int enableEncryption(bool enabled, const EncryptionConfig &config)=0
agora::rtc::IRtcEngine::getFaceShapeBeautyOptions
virtual int getFaceShapeBeautyOptions(FaceShapeBeautyOptions &options, agora::media::MEDIA_SOURCE_TYPE type=agora::media::PRIMARY_CAMERA_SOURCE)=0
agora::rtc::IRtcEngine::enableContentInspect
virtual int enableContentInspect(bool enabled, const media::ContentInspectConfig &config)=0
agora::rtc::IRtcEngineEventHandler::onRemoteAudioStateChanged
virtual void onRemoteAudioStateChanged(uid_t uid, REMOTE_AUDIO_STATE state, REMOTE_AUDIO_STATE_REASON reason, int elapsed)
Definition: IAgoraRtcEngine.h:2501
agora::rtc::IRtcEngine::startRhythmPlayer
virtual int startRhythmPlayer(const char *sound1, const char *sound2, const AgoraRhythmPlayerConfig &config)=0
agora::rtc::IRtcEngine::configRhythmPlayer
virtual int configRhythmPlayer(const AgoraRhythmPlayerConfig &config)=0
agora::rtc::IRtcEngine::setPlaybackAudioFrameBeforeMixingParameters
virtual int setPlaybackAudioFrameBeforeMixingParameters(int sampleRate, int channel, int samplesPerCall)=0
agora::rtc::ExtensionContext
Definition: AgoraMediaBase.h:41
agora::rtc::IVideoEffectObject::VIDEO_EFFECT_NODE_ID
VIDEO_EFFECT_NODE_ID
Types of video effect nodes that can be applied.
Definition: IAgoraRtcEngine.h:3235
agora::rtc::IRtcEngine::adjustAudioMixingPublishVolume
virtual int adjustAudioMixingPublishVolume(int volume)=0
agora::rtc::DirectCdnStreamingMediaOptions::publishCameraTrack
Optional< bool > publishCameraTrack
Definition: IAgoraRtcEngine.h:3699
agora::rtc::IVideoDeviceCollection::getCount
virtual int getCount()=0
agora::rtc::IVideoEffectObject::VIDEO_EFFECT_NODE_ID::FILTER
@ FILTER
agora::rtc::IRtcEngine::getAudioMixingDuration
virtual int getAudioMixingDuration()=0
agora::rtc::IRtcEngine::destroyMediaRecorder
virtual int destroyMediaRecorder(agora_refptr< IMediaRecorder > mediaRecorder)=0
agora::rtc::RemoteAudioStats::frozenRateByCustomPlcCount
uint32_t frozenRateByCustomPlcCount
Definition: IAgoraRtcEngine.h:441
agora::rtc::ScreenCaptureConfiguration::params
ScreenCaptureParameters params
Definition: IAgoraRtcEngine.h:893
agora::rtc::IRtcEngineEventHandler::onVideoDeviceStateChanged
virtual void onVideoDeviceStateChanged(const char *deviceId, int deviceType, int deviceState)
Definition: IAgoraRtcEngine.h:1778
agora::rtc::IMetadataObserver
Definition: IAgoraRtcEngine.h:3502
agora::rtc::VideoCompositingLayout::appData
const char * appData
Definition: IAgoraRtcEngine.h:660
agora::rtc::IVideoEffectObject::setVideoEffectBoolParam
virtual int setVideoEffectBoolParam(const char *option, const char *key, bool param)=0
Sets a boolean parameter for the video effect.
agora::rtc::RemoteAudioStats::totalFrozenTime
int totalFrozenTime
Definition: IAgoraRtcEngine.h:414
agora::rtc::IVideoEffectObject::setVideoEffectFloatParam
virtual int setVideoEffectFloatParam(const char *option, const char *key, float param)=0
Sets a float parameter for the video effect.
agora::rtc::IRtcEngineEventHandler::onAudioMixingPositionChanged
virtual void onAudioMixingPositionChanged(int64_t position)
Reports current AudioMixing progress.
Definition: IAgoraRtcEngine.h:1750
agora::rtc::IRtcEngine::setRemoteVoicePosition
virtual int setRemoteVoicePosition(uid_t uid, double pan, double gain)=0
agora::rtc::IRtcEngine::registerMediaMetadataObserver
virtual int registerMediaMetadataObserver(IMetadataObserver *observer, IMetadataObserver::METADATA_TYPE type)=0
agora::rtc::ColorEnhanceOptions
Definition: AgoraBase.h:5551
agora::rtc::PublisherConfiguration::defaultLayout
int defaultLayout
Definition: IAgoraRtcEngine.h:758
agora::rtc::IRtcEngineEventHandler::onTranscodingUpdated
virtual void onTranscodingUpdated()
Definition: IAgoraRtcEngine.h:2632
agora::rtc::IRtcEngine::updateRtmpTranscoding
virtual int updateRtmpTranscoding(const LiveTranscoding &transcoding)=0
agora::rtc::ScreenCaptureConfiguration::displayId
int64_t displayId
Definition: IAgoraRtcEngine.h:879
agora::rtc::RemoteAudioStats::publishDuration
int publishDuration
Definition: IAgoraRtcEngine.h:467
agora::rtc::IRtcEngineEventHandler::onRequestToken
virtual void onRequestToken()
Definition: IAgoraRtcEngine.h:2393
agora::rtc::IRtcEngineEventHandler::onError
virtual void onError(int err, const char *msg)
Definition: IAgoraRtcEngine.h:1637
agora::rtc::IRtcEngine::getNtpWallTimeInMs
virtual uint64_t getNtpWallTimeInMs()=0
agora::rtc::IRtcEngine::startRtmpStreamWithoutTranscoding
virtual int startRtmpStreamWithoutTranscoding(const char *url)=0
agora::rtc::VideoCompositingLayout::regionCount
int regionCount
Definition: IAgoraRtcEngine.h:657
agora::rtc::ExtensionInfo::mediaSourceType
agora::media::MEDIA_SOURCE_TYPE mediaSourceType
Definition: IAgoraRtcEngine.h:3795
agora::rtc::IRtcEngineEventHandler::onProxyConnected
virtual void onProxyConnected(const char *channel, uid_t uid, PROXY_TYPE proxyType, const char *localProxyIp, int elapsed)
Definition: IAgoraRtcEngine.h:1624
agora::rtc::IRtcEngineEventHandler::onExtensionEventWithContext
virtual void onExtensionEventWithContext(const ExtensionContext &context, const char *key, const char *value)
Definition: IAgoraRtcEngine.h:2983
agora::rtc::IRtcEngine::enableExtension
virtual int enableExtension(const char *provider, const char *extension, bool enable=true, agora::media::MEDIA_SOURCE_TYPE type=agora::media::UNKNOWN_MEDIA_SOURCE)=0
agora::rtc::IRtcEngineEventHandler::onUserStateChanged
virtual void onUserStateChanged(uid_t uid, REMOTE_USER_STATE state)
Definition: IAgoraRtcEngine.h:2083
agora::rtc::PublisherConfiguration::height
int height
Definition: IAgoraRtcEngine.h:744
agora::rtc::IRtcEngineEventHandler::onAudioMixingFinished
virtual void onAudioMixingFinished() __deprecated
Definition: IAgoraRtcEngine.h:1758
agora::rtc::AVideoDeviceManager
Definition: IAgoraRtcEngine.h:9057
agora::rtc::LocalVideoStats::codecType
VIDEO_CODEC_TYPE codecType
Definition: IAgoraRtcEngine.h:339
agora::rtc::ExtensionInfo::localUid
uid_t localUid
Definition: IAgoraRtcEngine.h:3820
agora::rtc::IRtcEngine::setSubscribeVideoBlocklist
virtual int setSubscribeVideoBlocklist(uid_t *uidList, int uidNumber)=0
agora::rtc::LocalTranscoderConfiguration
Definition: AgoraBase.h:4556
agora::rtc::IRtcEngine::adjustAudioMixingPlayoutVolume
virtual int adjustAudioMixingPlayoutVolume(int volume)=0
agora::rtc::IRtcEngine::removeVideoWatermark
virtual int removeVideoWatermark(const char *id)=0
Remove a watermark image from the local video.
agora::rtc::InjectStreamConfig::audioBitrate
int audioBitrate
Definition: IAgoraRtcEngine.h:705
agora::rtc::IRtcEngine::setCameraDeviceOrientation
virtual int setCameraDeviceOrientation(VIDEO_SOURCE_TYPE type, VIDEO_ORIENTATION orientation)=0
agora::rtc::IRtcEngineEventHandler::onAudioVolumeIndication
virtual void onAudioVolumeIndication(const AudioVolumeInfo *speakers, unsigned int speakerNumber, int totalVolume)
Definition: IAgoraRtcEngine.h:1699
agora::rtc::IRtcEngineEventHandler::onStreamMessageError
virtual void onStreamMessageError(uid_t uid, int streamId, int code, int missed, int cached)
Definition: IAgoraRtcEngine.h:2326
agora::rtc::IPacketObserver
Definition: AgoraBase.h:3824
agora::rtc::LocalVideoStats::dualStreamEnabled
bool dualStreamEnabled
Definition: IAgoraRtcEngine.h:350
agora::rtc::IRtcEngine::writeLog
virtual int writeLog(commons::LOG_LEVEL level, const char *fmt,...)=0
agora::rtc::RemoteAudioStats::rxAudioBytes
unsigned int rxAudioBytes
Definition: IAgoraRtcEngine.h:479
agora::rtc::ChannelMediaOptions::publishEncodedVideoTrack
Optional< bool > publishEncodedVideoTrack
Definition: IAgoraRtcEngine.h:1173
agora::rtc::IRtcEngine::setDualStreamMode
virtual int setDualStreamMode(SIMULCAST_STREAM_MODE mode)=0
agora::rtc::DirectCdnStreamingStats
Definition: IAgoraRtcEngine.h:3634
agora::rtc::VideoFormat
Definition: AgoraBase.h:3087
agora::rtc::RemoteVideoStats::uid
uid_t uid
Definition: IAgoraRtcEngine.h:516
agora::rtc::IRtcEngineEventHandler::onUserOffline
virtual void onUserOffline(uid_t uid, USER_OFFLINE_REASON_TYPE reason)
Definition: IAgoraRtcEngine.h:2020
agora::rtc::IRtcEngine::registerExtension
virtual int registerExtension(const char *provider, const char *extension, agora::media::MEDIA_SOURCE_TYPE type=agora::media::UNKNOWN_MEDIA_SOURCE)=0
agora::rtc::IRtcEngine::stopRtmpStream
virtual int stopRtmpStream(const char *url)=0
agora::rtc::DataStreamConfig
Definition: AgoraBase.h:2130
agora::rtc::IRtcEngineEventHandler::onCameraFocusAreaChanged
virtual void onCameraFocusAreaChanged(int x, int y, int width, int height)
Definition: IAgoraRtcEngine.h:2172
agora::rtc::VideoCompositingLayout::Region::y
double y
Definition: IAgoraRtcEngine.h:608
agora::rtc::IRtcEngine::stopAudioMixing
virtual int stopAudioMixing()=0
agora::rtc::IVideoEffectObject::RESET
@ RESET
Definition: IAgoraRtcEngine.h:3253
agora::rtc::PublisherConfiguration
Definition: IAgoraRtcEngine.h:736
agora::rtc::IRtcEngineEventHandler::onExtensionStartedWithContext
virtual void onExtensionStartedWithContext(const ExtensionContext &context)
Definition: IAgoraRtcEngine.h:2996
agora::rtc::IRtcEngine::setLogLevel
virtual int setLogLevel(commons::LOG_LEVEL level)=0
agora::rtc::RtcEngineContext::logConfig
commons::LogConfig logConfig
Definition: IAgoraRtcEngine.h:3464
agora::rtc::IRtcEngine::setRemoteDefaultVideoStreamType
virtual int setRemoteDefaultVideoStreamType(VIDEO_STREAM_TYPE streamType)=0
agora::rtc::LocalAudioMixerConfiguration
Definition: AgoraBase.h:4665
agora::rtc::IRtcEngine::setRemoteVideoStreamType
virtual int setRemoteVideoStreamType(uid_t uid, VIDEO_STREAM_TYPE streamType)=0
agora::rtc::IRtcEngineEventHandler::onUserEnableVideo
virtual void onUserEnableVideo(uid_t uid, bool enabled)
Definition: IAgoraRtcEngine.h:2073
agora::rtc::IRtcEngineEventHandler::onRtmpStreamingStateChanged
virtual void onRtmpStreamingStateChanged(const char *url, RTMP_STREAM_PUBLISH_STATE state, RTMP_STREAM_PUBLISH_REASON reason)
Definition: IAgoraRtcEngine.h:2605
agora::rtc::InjectStreamConfig::height
int height
Definition: IAgoraRtcEngine.h:685
agora::rtc::IRtcEngine::destroyVideoEffectObject
virtual int destroyVideoEffectObject(agora_refptr< IVideoEffectObject > videoEffectObject)=0
Destroys a video effect object.
agora::rtc::ChannelMediaOptions::publishFourthCameraTrack
Optional< bool > publishFourthCameraTrack
Definition: IAgoraRtcEngine.h:1104
agora::rtc::IRtcEngine::startRtmpStreamWithTranscoding
virtual int startRtmpStreamWithTranscoding(const char *url, const LiveTranscoding &transcoding)=0
agora::rtc::DirectCdnStreamingMediaOptions
Definition: IAgoraRtcEngine.h:3693
agora::rtc::IRtcEngine::setVideoEncoderConfiguration
virtual int setVideoEncoderConfiguration(const VideoEncoderConfiguration &config)=0
agora::rtc::AdvancedAudioOptions
Definition: IAgoraRtcEngine.h:1055
agora::rtc::IRtcEngine::queryCodecCapability
virtual int queryCodecCapability(CodecCapInfo *codecInfo, int &size)=0
agora::rtc::IRtcEngine::stopAllEffects
virtual int stopAllEffects()=0
agora::rtc::IRtcEngine::setLocalRenderMode
virtual int setLocalRenderMode(media::base::RENDER_MODE_TYPE renderMode) __deprecated=0
agora::rtc::IRtcEngine::pauseAllChannelMediaRelay
virtual int pauseAllChannelMediaRelay()=0
agora::rtc::LocalVideoStats::captureFrameHeight
int captureFrameHeight
Definition: IAgoraRtcEngine.h:295
agora::rtc::IRtcEngineEventHandler::onAudioQuality
virtual void onAudioQuality(uid_t uid, int quality, unsigned short delay, unsigned short lost) __deprecated
Definition: IAgoraRtcEngine.h:1657
agora::rtc::IRtcEngine::startAudioMixing
virtual int startAudioMixing(const char *filePath, bool loopback, int cycle)=0
agora::rtc::IRtcEngine::adjustLoopbackSignalVolume
virtual int adjustLoopbackSignalVolume(int volume)=0
agora::rtc::IRtcEngine::takeSnapshot
virtual int takeSnapshot(uid_t uid, const char *filePath)=0
agora::rtc::RtcEngineContext::license
const char * license
Definition: IAgoraRtcEngine.h:3429
agora::rtc::ScreenCaptureConfiguration::regionRect
Rectangle regionRect
Definition: IAgoraRtcEngine.h:901
agora::rtc::VideoCompositingLayout::canvasWidth
int canvasWidth
Definition: IAgoraRtcEngine.h:642
agora::rtc::IRtcEngine::sendMediaControlMessage
virtual int sendMediaControlMessage(uid_t uid, const char *data, size_t length)=0
Send media control message.
agora::rtc::LeaveChannelOptions::stopMicrophoneRecording
bool stopMicrophoneRecording
Definition: IAgoraRtcEngine.h:1565
agora::rtc::PublisherConfiguration::rawStreamUrl
const char * rawStreamUrl
Definition: IAgoraRtcEngine.h:783
agora::rtc::RemoteAudioStats::mosValue
int mosValue
Definition: IAgoraRtcEngine.h:436
agora::rtc::IRtcEngineEventHandler::onRemoteVideoStats
virtual void onRemoteVideoStats(const RemoteVideoStats &stats)
Definition: IAgoraRtcEngine.h:2151
agora::rtc::IRtcEngine::setAudioEffectParameters
virtual int setAudioEffectParameters(AUDIO_EFFECT_PRESET preset, int param1, int param2)=0
agora::rtc::IRtcEngine::setColorEnhanceOptions
virtual int setColorEnhanceOptions(bool enabled, const ColorEnhanceOptions &options, agora::media::MEDIA_SOURCE_TYPE type=agora::media::PRIMARY_CAMERA_SOURCE)=0
agora::rtc::IRtcEngineEventHandler::onTokenPrivilegeWillExpire
virtual void onTokenPrivilegeWillExpire(const char *token)
Definition: IAgoraRtcEngine.h:2406
agora::rtc::LocalVideoStats::targetFrameRate
int targetFrameRate
Definition: IAgoraRtcEngine.h:325
agora::rtc::DirectCdnStreamingStats::audioBitrate
int audioBitrate
Definition: IAgoraRtcEngine.h:3658
agora::rtc::IRtcEngine::setRemoteSubscribeFallbackOption
virtual int setRemoteSubscribeFallbackOption(STREAM_FALLBACK_OPTIONS option)=0
agora::rtc::IRtcEngine::getExtensionProperty
virtual int getExtensionProperty(const char *provider, const char *extension, const ExtensionInfo &extensionInfo, const char *key, char *value, int buf_len)=0
agora::rtc::RtcEngineContext::channelProfile
CHANNEL_PROFILE_TYPE channelProfile
Definition: IAgoraRtcEngine.h:3424
agora::rtc::IRtcEngineEventHandler::onRemoteSubscribeFallbackToAudioOnly
virtual void onRemoteSubscribeFallbackToAudioOnly(uid_t uid, bool isFallbackOrRecover)
Definition: IAgoraRtcEngine.h:2702
agora::rtc::IRtcEngine::setEarMonitoringAudioFrameParameters
virtual int setEarMonitoringAudioFrameParameters(int sampleRate, int channel, RAW_AUDIO_FRAME_OP_MODE_TYPE mode, int samplesPerCall)=0
agora::rtc::IRtcEngineEventHandler::onContentInspectResult
virtual void onContentInspectResult(media::CONTENT_INSPECT_RESULT result)
Definition: IAgoraRtcEngine.h:2529
agora::rtc::IRtcEngineEventHandler::onAudioDeviceStateChanged
virtual void onAudioDeviceStateChanged(const char *deviceId, int deviceType, int deviceState)
Definition: IAgoraRtcEngine.h:1738
agora::rtc::IAudioEncodedFrameObserver
Definition: AgoraBase.h:6392
agora::rtc::ChannelMediaOptions::token
Optional< const char * > token
Definition: IAgoraRtcEngine.h:1263
agora::rtc::ChannelMediaOptions::parameters
Optional< const char * > parameters
Definition: IAgoraRtcEngine.h:1302
agora::rtc::LeaveChannelOptions
Definition: IAgoraRtcEngine.h:1547
agora::rtc::IRtcEngineEventHandler::onRemoteAudioStats
virtual void onRemoteAudioStats(const RemoteAudioStats &stats)
Definition: IAgoraRtcEngine.h:2110
agora::rtc::IRtcEngine::setEffectsVolume
virtual int setEffectsVolume(int volume)=0
agora::rtc::IRtcEngine::playAllEffects
virtual int playAllEffects(int loopCount, double pitch, double pan, int gain, bool publish=false)=0
agora::rtc::DirectCdnStreamingStats::fps
int fps
Definition: IAgoraRtcEngine.h:3648
agora::rtc::IRtcEngine::stopLastmileProbeTest
virtual int stopLastmileProbeTest()=0
agora::rtc::ChannelMediaRelayConfiguration
Definition: AgoraBase.h:6601
agora::rtc::IRtcEngine::setAdvancedAudioOptions
virtual int setAdvancedAudioOptions(AdvancedAudioOptions &options, int sourceType=0)=0
agora::rtc::IRtcEngine::createMediaPlayer
virtual agora_refptr< IMediaPlayer > createMediaPlayer()=0
agora::rtc::IRtcEngine::queryInterface
virtual int queryInterface(INTERFACE_ID_TYPE iid, void **inter)=0
agora::rtc::IVideoDeviceCollection
Definition: IAgoraRtcEngine.h:3070
agora::rtc::IRtcEngine::renewToken
virtual int renewToken(const char *token)=0
agora::rtc::IRtcEngine::pauseAudio
virtual int pauseAudio() __deprecated=0
agora::rtc::IRtcEngine::setAudioProfile
virtual int setAudioProfile(AUDIO_PROFILE_TYPE profile)=0
agora::rtc::IRtcEngine::sendStreamMessage
virtual int sendStreamMessage(int streamId, const char *data, size_t length)=0
agora::rtc::LocalVideoStats::txPacketLossRate
unsigned short txPacketLossRate
Definition: IAgoraRtcEngine.h:343
agora::rtc::IRtcEngineEventHandler::onLocalVideoStats
virtual void onLocalVideoStats(VIDEO_SOURCE_TYPE source, const LocalVideoStats &stats)
Definition: IAgoraRtcEngine.h:2138
agora::rtc::ChannelMediaOptions::publishCustomAudioTrack
Optional< bool > publishCustomAudioTrack
Definition: IAgoraRtcEngine.h:1157
agora::rtc::RemoteVideoStats::avSyncTimeMs
int avSyncTimeMs
Definition: IAgoraRtcEngine.h:574
agora::rtc::IRtcEngine::setFilterEffectOptions
virtual int setFilterEffectOptions(bool enabled, const FilterEffectOptions &options, agora::media::MEDIA_SOURCE_TYPE type=agora::media::PRIMARY_CAMERA_SOURCE)=0
agora::rtc::RtcEngineContext::domainLimit
bool domainLimit
Definition: IAgoraRtcEngine.h:3485
agora::rtc::VideoDenoiserOptions
Definition: AgoraBase.h:5503
agora::rtc::IRtcEngine::setLocalVideoMirrorMode
virtual int setLocalVideoMirrorMode(VIDEO_MIRROR_MODE_TYPE mirrorMode) __deprecated=0
agora::rtc::RemoteVideoStats::decoderOutputFrameRate
int decoderOutputFrameRate
Definition: IAgoraRtcEngine.h:546
agora::rtc::RtcEngineContext::context
void * context
Definition: IAgoraRtcEngine.h:3420
agora::rtc::IRtcEngine::stopLocalAudioMixer
virtual int stopLocalAudioMixer()=0
agora::rtc::IRtcEngineEventHandler::onActiveSpeaker
virtual void onActiveSpeaker(uid_t uid)
Definition: IAgoraRtcEngine.h:2521
agora::rtc::RemoteAudioStats::frozenCntByCustom
uint32_t frozenCntByCustom
Definition: IAgoraRtcEngine.h:451
agora::rtc::ChannelMediaOptions::publishCameraTrack
Optional< bool > publishCameraTrack
Definition: IAgoraRtcEngine.h:1086
agora::rtc::RemoteAudioStats::e2eDelay
int e2eDelay
Definition: IAgoraRtcEngine.h:483
agora::rtc::IRtcEngineEventHandler::onFirstLocalVideoFrame
virtual void onFirstLocalVideoFrame(VIDEO_SOURCE_TYPE source, int width, int height, int elapsed)
Definition: IAgoraRtcEngine.h:1858
agora::rtc::ChannelMediaOptions::clientRoleType
Optional< CLIENT_ROLE_TYPE > clientRoleType
Definition: IAgoraRtcEngine.h:1230
agora::rtc::ChannelMediaOptions::publishThirdCameraTrack
Optional< bool > publishThirdCameraTrack
Definition: IAgoraRtcEngine.h:1098
agora::rtc::IRtcEngineEventHandler::onJoinChannelSuccess
virtual void onJoinChannelSuccess(const char *channel, uid_t uid, int elapsed)
Definition: IAgoraRtcEngine.h:1595
agora::rtc::DirectCdnStreamingMediaOptions::publishMediaPlayerId
Optional< int > publishMediaPlayerId
Definition: IAgoraRtcEngine.h:3728
agora::rtc::ChannelMediaOptions::channelProfile
Optional< CHANNEL_PROFILE_TYPE > channelProfile
Definition: IAgoraRtcEngine.h:1244
agora::rtc::RemoteAudioStats::audioLossRate
int audioLossRate
Definition: IAgoraRtcEngine.h:394
agora::rtc::VideoCompositingLayout::Region::zOrder
int zOrder
Definition: IAgoraRtcEngine.h:618
agora::rtc::IRtcEngine::queryDeviceScore
virtual int queryDeviceScore()=0
agora::rtc::LocalVideoStats::captureFrameRate
int captureFrameRate
Definition: IAgoraRtcEngine.h:289
agora::rtc::VirtualBackgroundSource
Definition: AgoraBase.h:5577
agora::rtc::IRtcEngine::setParameters
virtual int setParameters(const char *parameters)=0
agora::rtc::IRtcEngine::muteRemoteVideoStream
virtual int muteRemoteVideoStream(uid_t uid, bool mute)=0
agora::rtc::IRtcEngine::setLowlightEnhanceOptions
virtual int setLowlightEnhanceOptions(bool enabled, const LowlightEnhanceOptions &options, agora::media::MEDIA_SOURCE_TYPE type=agora::media::PRIMARY_CAMERA_SOURCE)=0
agora::rtc::IVideoDeviceManager
Definition: IAgoraRtcEngine.h:3114
agora::rtc::RemoteVideoStats::frozenRate
int frozenRate
Definition: IAgoraRtcEngine.h:569
agora::rtc::ScreenCaptureConfiguration::windowId
int64_t windowId
Definition: IAgoraRtcEngine.h:889
agora::rtc::IRtcEngine::enableLocalAudio
virtual int enableLocalAudio(bool enabled)=0
agora::rtc::IRtcEngine::setupLocalVideo
virtual int setupLocalVideo(const VideoCanvas &canvas)=0
agora::rtc::VideoCompositingLayout::appDataLength
int appDataLength
Definition: IAgoraRtcEngine.h:663
agora::rtc::IRtcEngine::setLocalVoiceReverb
virtual int setLocalVoiceReverb(AUDIO_REVERB_TYPE reverbKey, int value)=0
agora::rtc::IRtcEngine::stopEffect
virtual int stopEffect(int soundId)=0
agora::rtc::VideoCompositingLayout::Region::alpha
double alpha
Definition: IAgoraRtcEngine.h:623
agora::rtc::IRtcEngine::enableCustomAudioLocalPlayback
virtual int enableCustomAudioLocalPlayback(track_id_t trackId, bool enabled)=0
agora::rtc::IVideoEffectObject::addOrUpdateVideoEffect
virtual int addOrUpdateVideoEffect(uint32_t nodeId, const char *templateName)=0
Adds or updates video effects with specified node ID and template.
agora::rtc::DirectCdnStreamingMediaOptions::publishCustomVideoTrack
Optional< bool > publishCustomVideoTrack
Definition: IAgoraRtcEngine.h:3717
agora::rtc::ScreenCaptureConfiguration::isCaptureWindow
bool isCaptureWindow
Definition: IAgoraRtcEngine.h:875
agora::rtc::LocalVideoStats::encodedFrameHeight
int encodedFrameHeight
Definition: IAgoraRtcEngine.h:316
agora::rtc::IRtcEngineEventHandler::onAudioMetadataReceived
virtual void onAudioMetadataReceived(uid_t uid, const char *metadata, size_t length)
Definition: IAgoraRtcEngine.h:2968
agora::rtc::IRtcEngine::setLocalVoiceFormant
virtual int setLocalVoiceFormant(double formantRatio)=0
agora::rtc::AdvancedAudioOptions::audioProcessingChannels
Optional< int > audioProcessingChannels
Definition: IAgoraRtcEngine.h:1059
agora::rtc::IRtcEngine::getUserInfoByUserAccount
virtual int getUserInfoByUserAccount(const char *userAccount, rtc::UserInfo *userInfo)=0
agora::rtc::IRtcEngine::setLogFile
virtual int setLogFile(const char *filePath)=0
agora::rtc::IRtcEngine::enableVirtualBackground
virtual int enableVirtualBackground(bool enabled, VirtualBackgroundSource backgroundSource, SegmentationProperty segproperty, agora::media::MEDIA_SOURCE_TYPE type=agora::media::PRIMARY_CAMERA_SOURCE)=0
agora::rtc::IVideoDeviceCollection::setDevice
virtual int setDevice(const char deviceIdUTF8[MAX_DEVICE_ID_LENGTH])=0
agora::rtc::IRtcEngine::setCameraCapturerConfiguration
virtual int setCameraCapturerConfiguration(const CameraCapturerConfiguration &config)=0
agora::rtc::FaceShapeAreaOptions::FACE_SHAPE_AREA
FACE_SHAPE_AREA
The specific facial area to be adjusted.
Definition: AgoraBase.h:5174
agora::rtc::RemoteVideoStats::__deprecated
int delay __deprecated
Definition: IAgoraRtcEngine.h:524
agora::rtc::CameraCapturerConfiguration::deviceId
Optional< const char * > deviceId
Definition: IAgoraRtcEngine.h:852
agora::rtc::RemoteAudioStats::quality
int quality
Definition: IAgoraRtcEngine.h:380
agora::rtc::PublisherConfiguration::width
int width
Definition: IAgoraRtcEngine.h:740
agora::rtc::VideoCompositingLayout::Region::width
double width
Definition: IAgoraRtcEngine.h:612
agora::rtc::IRtcEngine::startEchoTest
virtual int startEchoTest(const EchoTestConfiguration &config)=0
agora::rtc::IRtcEngine::startOrUpdateChannelMediaRelay
virtual int startOrUpdateChannelMediaRelay(const ChannelMediaRelayConfiguration &configuration)=0
agora::rtc::IRtcEngineEventHandler::onConnectionBanned
virtual void onConnectionBanned() __deprecated
Definition: IAgoraRtcEngine.h:2293
agora::rtc::IRtcEngine::getEffectsVolume
virtual int getEffectsVolume()=0
agora::rtc::IRtcEngineEventHandler::onEncryptionError
virtual void onEncryptionError(ENCRYPTION_ERROR_TYPE errorType)
Definition: IAgoraRtcEngine.h:2786
agora::rtc::IRtcEngineEventHandler::onCameraReady
virtual void onCameraReady() __deprecated
Definition: IAgoraRtcEngine.h:2160
agora::rtc::IRtcEngine::getEffectDuration
virtual int getEffectDuration(const char *filePath)=0
agora::rtc::CodecCapInfo
Definition: AgoraBase.h:1937
agora::commons::LogConfig
Definition: IAgoraLog.h:83
agora::rtc::IRtcEngine::setPlaybackAudioFrameParameters
virtual int setPlaybackAudioFrameParameters(int sampleRate, int channel, RAW_AUDIO_FRAME_OP_MODE_TYPE mode, int samplesPerCall)=0
agora::rtc::IRtcEngine::setLogFileSize
virtual int setLogFileSize(unsigned int fileSizeInKBytes)=0
agora::rtc::IRtcEngineEventHandler::onRenewTokenResult
virtual void onRenewTokenResult(const char *token, RENEW_TOKEN_ERROR_CODE code)
Reports the result of calling renewToken.
Definition: IAgoraRtcEngine.h:3061
agora::rtc::LeaveChannelOptions::stopAllEffect
bool stopAllEffect
Definition: IAgoraRtcEngine.h:1559
agora::rtc::ChannelMediaOptions::defaultVideoStreamType
Optional< VIDEO_STREAM_TYPE > defaultVideoStreamType
Definition: IAgoraRtcEngine.h:1239
agora::rtc::IRtcEngine::preloadChannelWithUserAccount
virtual int preloadChannelWithUserAccount(const char *token, const char *channelId, const char *userAccount)=0
agora::rtc::RemoteVideoStats::rxVideoBytes
unsigned int rxVideoBytes
Definition: IAgoraRtcEngine.h:595
createAgoraRtcEngine
AGORA_API agora::rtc::IRtcEngine *AGORA_CALL createAgoraRtcEngine()
agora::rtc::IRtcEngine::setBeautyEffectOptions
virtual int setBeautyEffectOptions(bool enabled, const BeautyOptions &options, agora::media::MEDIA_SOURCE_TYPE type=agora::media::PRIMARY_CAMERA_SOURCE)=0
agora::rtc::IRtcEngine::startAudioRecording
virtual int startAudioRecording(const AudioRecordingConfiguration &config)=0
agora::rtc::RtcEngineContext::autoRegisterAgoraExtensions
bool autoRegisterAgoraExtensions
Definition: IAgoraRtcEngine.h:3492
agora::rtc::LocalVideoStats
Definition: IAgoraRtcEngine.h:274
agora::rtc::IMetadataObserver::onMetadataReceived
virtual void onMetadataReceived(const Metadata &metadata)=0
agora::rtc::IRtcEngine::setAudioMixingPlaybackSpeed
virtual int setAudioMixingPlaybackSpeed(int speed)=0
agora::rtc::IRtcEngine::createVideoEffectObject
virtual agora_refptr< IVideoEffectObject > createVideoEffectObject(const char *bundlePath, agora::media::MEDIA_SOURCE_TYPE type=agora::media::PRIMARY_CAMERA_SOURCE)=0
Creates a video effect object and returns its pointer.
agora::rtc::MultipathStats
Aggregates statistics for all network paths used in multipath transmission.
Definition: AgoraBase.h:2625
agora::rtc::IRtcEngine::resumeAllChannelMediaRelay
virtual int resumeAllChannelMediaRelay()=0
agora::rtc::IRtcEngine::setExtensionProperty
virtual int setExtensionProperty(const char *provider, const char *extension, const ExtensionInfo &extensionInfo, const char *key, const char *value)=0
agora::rtc::ChannelMediaOptions::publishMediaPlayerId
Optional< int > publishMediaPlayerId
Definition: IAgoraRtcEngine.h:1225
agora::rtc::IDirectCdnStreamingEventHandler
Definition: IAgoraRtcEngine.h:3667
agora::rtc::IRtcEngineEventHandler::onLocalAudioStateChanged
virtual void onLocalAudioStateChanged(LOCAL_AUDIO_STREAM_STATE state, LOCAL_AUDIO_STREAM_REASON reason)
Definition: IAgoraRtcEngine.h:2480
agora::rtc::IRtcEngine::setRemoteRenderTargetFps
virtual int setRemoteRenderTargetFps(int targetFps)=0
agora::rtc::IRtcEngineEventHandler::onAudioSubscribeStateChanged
virtual void onAudioSubscribeStateChanged(const char *channel, uid_t uid, STREAM_SUBSCRIBE_STATE oldState, STREAM_SUBSCRIBE_STATE newState, int elapseSinceLastState)
Definition: IAgoraRtcEngine.h:2886
agora::rtc::IRtcEngineEventHandler::onVideoStopped
virtual void onVideoStopped() __deprecated
Definition: IAgoraRtcEngine.h:2240
agora::rtc::EncryptionConfig
Definition: AgoraBase.h:6811
agora::rtc::IRtcEngine::destroyMediaPlayer
virtual int destroyMediaPlayer(agora_refptr< IMediaPlayer > media_player)=0
agora::rtc::LocalVideoStats::simulcastDimensions
VideoDimensions simulcastDimensions[SimulcastConfig::STREAM_LAYER_COUNT_MAX]
Definition: IAgoraRtcEngine.h:358
agora::rtc::IRtcEngine::setAudioMixingPosition
virtual int setAudioMixingPosition(int pos)=0
agora::rtc::ChannelMediaOptions::publishTranscodedVideoTrack
Optional< bool > publishTranscodedVideoTrack
Definition: IAgoraRtcEngine.h:1191
agora::rtc::ChannelMediaOptions::enableAudioRecordingOrPlayout
Optional< bool > enableAudioRecordingOrPlayout
Definition: IAgoraRtcEngine.h:1221
agora::rtc::IRtcEngineEventHandler::onVideoPublishStateChanged
virtual void onVideoPublishStateChanged(VIDEO_SOURCE_TYPE source, const char *channel, STREAM_PUBLISH_STATE oldState, STREAM_PUBLISH_STATE newState, int elapseSinceLastState)
Definition: IAgoraRtcEngine.h:2935
agora::rtc::RemoteVideoStats::receivedBitrate
int receivedBitrate
Definition: IAgoraRtcEngine.h:540
agora::rtc::IRtcEngineEventHandler::onRdtMessage
virtual void onRdtMessage(uid_t userId, RdtStreamType type, const char *data, size_t length)
Occurs when the local user receives data via Reliable Data Transmission (RDT) from a remote user.
Definition: IAgoraRtcEngine.h:2347
agora::rtc::RemoteAudioStats
Definition: IAgoraRtcEngine.h:372
agora::rtc::TranscodingVideoStream
Definition: AgoraBase.h:4480
agora::rtc::IMetadataObserver::MAX_METADATA_SIZE_TYPE
MAX_METADATA_SIZE_TYPE
Definition: IAgoraRtcEngine.h:3523
agora::rtc::IRtcEngine::enableVideoImageSource
virtual int enableVideoImageSource(bool enable, const ImageTrackOptions &options)=0
enable or disable video image source to replace the current video source published or resume it
agora::rtc::LocalVideoStats::encoderOutputFrameRate
int encoderOutputFrameRate
Definition: IAgoraRtcEngine.h:310
agora::rtc::IRtcEngine::unregisterAudioSpectrumObserver
virtual int unregisterAudioSpectrumObserver(agora::media::IAudioSpectrumObserver *observer)=0
agora::rtc::IVideoEffectObject::performVideoEffectAction
virtual int performVideoEffectAction(uint32_t nodeId, VIDEO_EFFECT_ACTION actionId)=0
Performs an action on a specified video effect node.
agora::rtc::IRtcEngine::setupRemoteVideo
virtual int setupRemoteVideo(const VideoCanvas &canvas)=0
agora::rtc::IRtcEngineEventHandler::onLastmileProbeResult
virtual void onLastmileProbeResult(const LastmileProbeResult &result)
Definition: IAgoraRtcEngine.h:1669
agora::rtc::IVideoDeviceManager::startDeviceTest
virtual int startDeviceTest(view_t hwnd)=0
agora::rtc::IRtcEngine::addVideoWatermark
virtual int addVideoWatermark(const RtcImage &watermark) __deprecated=0
agora::rtc::IVideoEffectObject::getVideoEffectBoolParam
virtual bool getVideoEffectBoolParam(const char *option, const char *key)=0
Gets a boolean parameter from the video effect.
agora::rtc::IRtcEngineEventHandler::onConnectionLost
virtual void onConnectionLost()
Definition: IAgoraRtcEngine.h:2275
agora::rtc::IRtcEngineEventHandler::onUserMuteVideo
virtual void onUserMuteVideo(uid_t uid, bool muted)
Definition: IAgoraRtcEngine.h:2056
agora::rtc::PublisherConfiguration::owner
bool owner
Definition: IAgoraRtcEngine.h:766
agora::rtc::IRtcEngine::setInEarMonitoringVolume
virtual int setInEarMonitoringVolume(int volume)=0
agora::rtc::IRtcEngine::enableSoundPositionIndication
virtual int enableSoundPositionIndication(bool enabled)=0
agora::rtc::VideoCompositingLayout::regions
const Region * regions
Definition: IAgoraRtcEngine.h:654
agora::rtc::IRtcEngine::stopCameraCapture
virtual int stopCameraCapture(VIDEO_SOURCE_TYPE sourceType)=0
agora::rtc::ChannelMediaOptions::publishMediaPlayerVideoTrack
Optional< bool > publishMediaPlayerVideoTrack
Definition: IAgoraRtcEngine.h:1185
agora::rtc::IRtcEngine::stopPreview
virtual int stopPreview()=0
agora::rtc::RemoteVideoStats::mosValue
int mosValue
Definition: IAgoraRtcEngine.h:591
agora::rtc::IVideoEffectObject::setVideoEffectIntParam
virtual int setVideoEffectIntParam(const char *option, const char *key, int param)=0
Sets an integer parameter for the video effect.
agora::rtc::WatermarkConfig
Defines the configuration for a watermark.
Definition: AgoraBase.h:2515
agora::rtc::IRtcEngine::destroyCustomEncodedVideoTrack
virtual int destroyCustomEncodedVideoTrack(video_track_id_t video_track_id)=0
agora::rtc::DirectCdnStreamingMediaOptions::customVideoTrackId
Optional< video_track_id_t > customVideoTrackId
Definition: IAgoraRtcEngine.h:3733
agora::rtc::IRtcEngineEventHandler::onVideoSizeChanged
virtual void onVideoSizeChanged(VIDEO_SOURCE_TYPE sourceType, uid_t uid, int width, int height, int rotation)
Definition: IAgoraRtcEngine.h:1911
agora::rtc::IRtcEngine::muteRecordingSignal
virtual int muteRecordingSignal(bool mute)=0
agora::rtc::IRtcEngineEventHandler::onLocalUserRegistered
virtual void onLocalUserRegistered(uid_t uid, const char *userAccount)
Definition: IAgoraRtcEngine.h:2812
agora::rtc::LocalVideoStats::encodedFrameWidth
int encodedFrameWidth
Definition: IAgoraRtcEngine.h:313
agora::rtc::RtcStats
Definition: AgoraBase.h:2672
agora::rtc::LowlightEnhanceOptions
Definition: AgoraBase.h:5455
agora::rtc::IRtcEngine::setVoiceBeautifierParameters
virtual int setVoiceBeautifierParameters(VOICE_BEAUTIFIER_PRESET preset, int param1, int param2)=0
agora::rtc::IRtcEngine::muteRemoteAudioStream
virtual int muteRemoteAudioStream(uid_t uid, bool mute)=0
agora::rtc::IRtcEngine::setVideoDenoiserOptions
virtual int setVideoDenoiserOptions(bool enabled, const VideoDenoiserOptions &options, agora::media::MEDIA_SOURCE_TYPE type=agora::media::PRIMARY_CAMERA_SOURCE)=0
agora::rtc::IRtcEngineEventHandler::onSnapshotTaken
virtual void onSnapshotTaken(uid_t uid, const char *filePath, int width, int height, int errCode)
Definition: IAgoraRtcEngine.h:2548
agora::rtc::IRtcEngine::destroyCustomVideoTrack
virtual int destroyCustomVideoTrack(video_track_id_t video_track_id)=0
agora::rtc::IRtcEngine::setVoiceConversionParameters
virtual int setVoiceConversionParameters(VOICE_CONVERSION_PRESET preset, int param1, int param2)=0
agora::rtc::SimulcastConfig::STREAM_LAYER_COUNT_MAX
@ STREAM_LAYER_COUNT_MAX
Definition: AgoraBase.h:2236
agora::rtc::ChannelMediaOptions::publishLipSyncTrack
Optional< bool > publishLipSyncTrack
Definition: IAgoraRtcEngine.h:1203
agora::rtc::IRtcEngineEventHandler::onFirstRemoteVideoFrame
virtual void onFirstRemoteVideoFrame(uid_t uid, int width, int height, int elapsed)
Definition: IAgoraRtcEngine.h:1975
agora::rtc::IRtcEngine::adjustAudioMixingVolume
virtual int adjustAudioMixingVolume(int volume)=0
agora::rtc::WatermarkOptions
Definition: AgoraBase.h:2341
agora::rtc::LocalAudioStats
Definition: AgoraBase.h:3949
agora::rtc::IRtcEngine::setLocalRenderTargetFps
virtual int setLocalRenderTargetFps(VIDEO_SOURCE_TYPE sourceType, int targetFps)=0
agora::rtc::RecorderStreamInfo
Definition: AgoraBase.h:7393
agora::rtc::ChannelMediaOptions::publishThirdScreenTrack
Optional< bool > publishThirdScreenTrack
Definition: IAgoraRtcEngine.h:1143
agora::rtc::IRtcEngineEventHandler::onAudioDeviceVolumeChanged
virtual void onAudioDeviceVolumeChanged(MEDIA_DEVICE_TYPE deviceType, int volume, bool muted)
Definition: IAgoraRtcEngine.h:2588
agora::rtc::SimulcastConfig
Definition: AgoraBase.h:2200
agora::rtc::IRtcEngine::leaveChannel
virtual int leaveChannel()=0
agora::rtc::IRtcEngine::setAudioScenario
virtual int setAudioScenario(AUDIO_SCENARIO_TYPE scenario)=0
agora::rtc::IRtcEngine::setClientRole
virtual int setClientRole(CLIENT_ROLE_TYPE role)=0
agora::rtc::IRtcEngine::preloadChannel
virtual int preloadChannel(const char *token, const char *channelId, uid_t uid)=0
agora::rtc::IRtcEngineEventHandler::onClientRoleChanged
virtual void onClientRoleChanged(CLIENT_ROLE_TYPE oldRole, CLIENT_ROLE_TYPE newRole, const ClientRoleOptions &newRoleOptions)
Definition: IAgoraRtcEngine.h:2563
agora::rtc::RemoteVideoStats::width
int width
Definition: IAgoraRtcEngine.h:532
agora::rtc::RtcEngineContext::audioScenario
AUDIO_SCENARIO_TYPE audioScenario
Definition: IAgoraRtcEngine.h:3438
agora::rtc::RemoteVideoStats::rendererOutputFrameRate
int rendererOutputFrameRate
Definition: IAgoraRtcEngine.h:549
agora::rtc::IRtcEngine::setVoiceBeautifierPreset
virtual int setVoiceBeautifierPreset(VOICE_BEAUTIFIER_PRESET preset)=0
agora::rtc::RemoteVideoStats::decoderInputFrameRate
int decoderInputFrameRate
Definition: IAgoraRtcEngine.h:543
agora::rtc::IRtcEngine::rate
virtual int rate(const char *callId, int rating, const char *description)=0
agora::rtc::LocalVideoStats::targetBitrate
int targetBitrate
Definition: IAgoraRtcEngine.h:322
agora::rtc::ChannelMediaOptions::publishSecondaryScreenTrack
Optional< bool > publishSecondaryScreenTrack
Definition: IAgoraRtcEngine.h:1137
agora::RefCountInterface
Definition: AgoraRefPtr.h:31
agora::rtc::RemoteAudioStats::qualityChangedReason
int qualityChangedReason
Definition: IAgoraRtcEngine.h:475
agora::rtc::IRtcEngine::getCallId
virtual int getCallId(agora::util::AString &callId)=0
agora::rtc::InjectStreamConfig
Definition: IAgoraRtcEngine.h:677
agora::rtc::IRtcEngine::uploadLogFile
virtual int uploadLogFile(agora::util::AString &requestId)=0
agora::rtc::IRtcEngine::startMediaRenderingTracing
virtual int startMediaRenderingTracing()=0
Start tracing media rendering events.
agora::rtc::CameraCapturerConfiguration::format
VideoFormat format
Definition: IAgoraRtcEngine.h:863
agora::rtc::LocalVideoStats::encodedFrameCount
int encodedFrameCount
Definition: IAgoraRtcEngine.h:336
agora::rtc::PublisherConfiguration::bitrate
int bitrate
Definition: IAgoraRtcEngine.h:752
agora::rtc::ChannelMediaOptions::downlinkMultipathMode
Optional< MultipathMode > downlinkMultipathMode
Definition: IAgoraRtcEngine.h:1337
agora::rtc::LocalVideoStats::regulatedCaptureFrameRate
int regulatedCaptureFrameRate
Definition: IAgoraRtcEngine.h:299
agora::rtc::IRtcEngine::createCustomEncodedVideoTrack
virtual video_track_id_t createCustomEncodedVideoTrack(const SenderOptions &sender_option)=0
agora::rtc::RtcEngineContext
Definition: IAgoraRtcEngine.h:3403
agora::rtc::IRtcEngine::unloadAllEffects
virtual int unloadAllEffects()=0
agora::rtc::ChannelMediaOptions
Definition: IAgoraRtcEngine.h:1080
agora::rtc::IVideoEffectObject
Provides methods to manage and configure video effects, such as beauty, style makeup,...
Definition: IAgoraRtcEngine.h:3226
agora::rtc::IRtcEngine
Definition: IAgoraRtcEngine.h:3841
agora::rtc::IRtcEngine::setClientRole
virtual int setClientRole(CLIENT_ROLE_TYPE role, const ClientRoleOptions &options)=0
agora::rtc::IRtcEngine::enableLoopbackRecording
virtual int enableLoopbackRecording(bool enabled, const char *deviceName=NULL)=0
agora::rtc::IRtcEngine::sendAudioMetadata
virtual int sendAudioMetadata(const char *metadata, size_t length)=0
send audio metadata
agora::rtc::IRtcEngine::createMediaRecorder
virtual agora_refptr< IMediaRecorder > createMediaRecorder(const RecorderStreamInfo &info)=0
agora::rtc::IRtcEngine::addVideoWatermark
virtual int addVideoWatermark(const WatermarkConfig &configs)=0
Add a watermark image to the local video.
agora::rtc::ScreenCaptureConfiguration
Definition: IAgoraRtcEngine.h:869
agora::rtc::IRtcEngine::setAudioMixingDualMonoMode
virtual int setAudioMixingDualMonoMode(media::AUDIO_MIXING_DUAL_MONO_MODE mode)=0
agora::rtc::ChannelMediaOptions::autoSubscribeVideo
Optional< bool > autoSubscribeVideo
Definition: IAgoraRtcEngine.h:1215
agora::rtc::AudioRecordingConfiguration
Definition: AgoraBase.h:6295
agora::rtc::IRtcEngine::getEffectCurrentPosition
virtual int getEffectCurrentPosition(int soundId)=0
agora::rtc::ChannelMediaOptions::publishMicrophoneTrack
Optional< bool > publishMicrophoneTrack
Definition: IAgoraRtcEngine.h:1110
agora::rtc::IRtcEngine::updatePreloadChannelToken
virtual int updatePreloadChannelToken(const char *token)=0
agora::rtc::IRtcEngine::resumeAudio
virtual int resumeAudio() __deprecated=0
agora::rtc::IRtcEngine::muteLocalAudioStream
virtual int muteLocalAudioStream(bool mute)=0
agora::rtc::IRtcEngine::joinChannelWithUserAccount
virtual int joinChannelWithUserAccount(const char *token, const char *channelId, const char *userAccount)=0
agora::rtc::IRtcEngine::setChannelProfile
virtual int setChannelProfile(CHANNEL_PROFILE_TYPE profile)=0
agora::rtc::RemoteVideoStats::frameLossRate
int frameLossRate
Definition: IAgoraRtcEngine.h:552
agora::rtc::VideoDimensions
Definition: AgoraBase.h:1139
agora::rtc::IRtcEngine::updateDirectCdnStreamingMediaOptions
virtual int updateDirectCdnStreamingMediaOptions(const DirectCdnStreamingMediaOptions &options)=0
agora::rtc::IRtcEngine::setLocalVoicePitch
virtual int setLocalVoicePitch(double pitch)=0
agora::rtc::IRtcEngineEventHandler::onTranscodedStreamLayoutInfo
virtual void onTranscodedStreamLayoutInfo(uid_t uid, int width, int height, int layoutCount, const VideoLayout *layoutlist)
Definition: IAgoraRtcEngine.h:2952
agora::rtc::RemoteVideoStats::height
int height
Definition: IAgoraRtcEngine.h:536
agora::rtc::LocalVideoStats::captureFrameWidth
int captureFrameWidth
Definition: IAgoraRtcEngine.h:292
agora::rtc::IRtcEngine::setAudioEffectPreset
virtual int setAudioEffectPreset(AUDIO_EFFECT_PRESET preset)=0
agora::rtc::IRtcEngine::release
static AGORA_CPP_API void release(RtcEngineReleaseCallback callback=nullptr)
agora::rtc::RtcEngineContext::useExternalEglContext
bool useExternalEglContext
Definition: IAgoraRtcEngine.h:3478
agora::rtc::IRtcEngine::preloadEffect
virtual int preloadEffect(int soundId, const char *filePath, int startPos=0)=0
agora::rtc::RemoteAudioStats::frozenRate
int frozenRate
Definition: IAgoraRtcEngine.h:419
agora::rtc::IRtcEngine::setVideoScenario
virtual int setVideoScenario(VIDEO_APPLICATION_SCENARIO_TYPE scenarioType)=0
agora::rtc::RemoteAudioStats::plcCount
uint32_t plcCount
Definition: IAgoraRtcEngine.h:445
agora::rtc::IRtcEngine::stopEchoTest
virtual int stopEchoTest()=0
agora::rtc::IRtcEngine::startAudioRecording
virtual int startAudioRecording(const char *filePath, AUDIO_RECORDING_QUALITY_TYPE quality)=0
agora::rtc::IRtcEngine::setLocalVoiceEqualization
virtual int setLocalVoiceEqualization(AUDIO_EQUALIZATION_BAND_FREQUENCY bandFrequency, int bandGain)=0
agora::rtc::DirectCdnStreamingMediaOptions::publishMediaPlayerAudioTrack
Optional< bool > publishMediaPlayerAudioTrack
Definition: IAgoraRtcEngine.h:3723
agora::util::CopyableAutoPtr
Definition: AgoraBase.h:156
agora::rtc::IRtcEngine::getNetworkType
virtual int getNetworkType()=0
agora::rtc::InjectStreamConfig::audioSampleRate
AUDIO_SAMPLE_RATE_TYPE audioSampleRate
Definition: IAgoraRtcEngine.h:701
agora::rtc::IRtcEngine::enableExtension
virtual int enableExtension(const char *provider, const char *extension, const ExtensionInfo &extensionInfo, bool enable=true)=0
agora::rtc::PublisherConfiguration::framerate
int framerate
Definition: IAgoraRtcEngine.h:748
agora::rtc::IRtcEngine::resumeEffect
virtual int resumeEffect(int soundId)=0
agora::rtc::PublisherConfiguration::injectStreamUrl
const char * injectStreamUrl
Definition: IAgoraRtcEngine.h:775
agora::rtc::ChannelMediaOptions::publishScreenTrack
Optional< bool > publishScreenTrack
Definition: IAgoraRtcEngine.h:1131
agora::rtc::IRtcEngineEventHandler::onAudioRoutingChanged
virtual void onAudioRoutingChanged(int routing)
Definition: IAgoraRtcEngine.h:2647
agora::rtc::IRtcEngine::playEffect
virtual int playEffect(int soundId, const char *filePath, int loopCount, double pitch, double pan, int gain, bool publish=false, int startPos=0)=0
agora::rtc::InjectStreamConfig::videoBitrate
int videoBitrate
Definition: IAgoraRtcEngine.h:697
agora::rtc::LocalVideoStats::captureBrightnessLevel
CAPTURE_BRIGHTNESS_LEVEL_TYPE captureBrightnessLevel
Definition: IAgoraRtcEngine.h:346
agora::rtc::IRtcEngine::enableVideo
virtual int enableVideo()=0
agora::rtc::IRtcEngineEventHandler::onExtensionStoppedWithContext
virtual void onExtensionStoppedWithContext(const ExtensionContext &context)
Definition: IAgoraRtcEngine.h:3007
agora::rtc::IRtcEngine::setRemoteUserSpatialAudioParams
virtual int setRemoteUserSpatialAudioParams(uid_t uid, const agora::SpatialAudioParams &params)=0
agora::rtc::IVideoEffectObject::VIDEO_EFFECT_NODE_ID::BEAUTY
@ BEAUTY
agora::rtc::IRtcEngine::setHeadphoneEQParameters
virtual int setHeadphoneEQParameters(int lowGain, int highGain)=0
agora::rtc::IVideoEffectObject::removeVideoEffect
virtual int removeVideoEffect(uint32_t nodeId)=0
Removes a video effect with specified node ID.
agora::rtc::IRtcEngine::getFaceShapeAreaOptions
virtual int getFaceShapeAreaOptions(agora::rtc::FaceShapeAreaOptions::FACE_SHAPE_AREA shapeArea, FaceShapeAreaOptions &options, agora::media::MEDIA_SOURCE_TYPE type=agora::media::PRIMARY_CAMERA_SOURCE)=0
agora::rtc::IMetadataObserver::UNKNOWN_METADATA
@ UNKNOWN_METADATA
Definition: IAgoraRtcEngine.h:3514
agora::rtc::IRtcEngineEventHandler::onFirstLocalVideoFramePublished
virtual void onFirstLocalVideoFramePublished(VIDEO_SOURCE_TYPE source, int elapsed)
Definition: IAgoraRtcEngine.h:1875
agora::rtc::ChannelMediaOptions::preferMultipathType
Optional< MultipathType > preferMultipathType
Definition: IAgoraRtcEngine.h:1348
agora::rtc::IRtcEngine::stopScreenCapture
virtual int stopScreenCapture(VIDEO_SOURCE_TYPE sourceType)=0
agora::rtc::IRtcEngine::updateChannelMediaOptions
virtual int updateChannelMediaOptions(const ChannelMediaOptions &options)=0
agora::rtc::RemoteAudioStats::numChannels
int numChannels
Definition: IAgoraRtcEngine.h:398
agora::rtc::IRtcEngineEventHandler::onSetRtmFlagResult
virtual void onSetRtmFlagResult(int code)
Definition: IAgoraRtcEngine.h:3033
agora::rtc::ChannelMediaOptions::audioDelayMs
Optional< int > audioDelayMs
Definition: IAgoraRtcEngine.h:1249
agora::rtc::IRtcEngine::createDataStream
virtual int createDataStream(int *streamId, const DataStreamConfig &config)=0
agora::rtc::IRtcEngine::initialize
virtual int initialize(const RtcEngineContext &context)=0
agora::rtc::IRtcEngineEventHandler::onNetworkQuality
virtual void onNetworkQuality(uid_t uid, int txQuality, int rxQuality)
Definition: IAgoraRtcEngine.h:1806
agora::rtc::IRtcEngine::resumeAudioMixing
virtual int resumeAudioMixing()=0
agora::rtc::ImageTrackOptions
Definition: IAgoraRtcEngine.h:1065
agora::rtc::IRtcEngine::unloadEffect
virtual int unloadEffect(int soundId)=0
agora::rtc::VideoCompositingLayout::Region
Definition: IAgoraRtcEngine.h:599
agora::rtc::IRtcEngine::stopRhythmPlayer
virtual int stopRhythmPlayer()=0
agora::rtc::IRtcEngine::getAudioMixingPlayoutVolume
virtual int getAudioMixingPlayoutVolume()=0
agora::rtc::IRtcEngine::startLastmileProbeTest
virtual int startLastmileProbeTest(const LastmileProbeConfig &config)=0
agora::rtc::IRtcEngineEventHandler::onVideoSubscribeStateChanged
virtual void onVideoSubscribeStateChanged(const char *channel, uid_t uid, STREAM_SUBSCRIBE_STATE oldState, STREAM_SUBSCRIBE_STATE newState, int elapseSinceLastState)
Definition: IAgoraRtcEngine.h:2903
agora::rtc::IRtcEngine::getExtensionProperty
virtual int getExtensionProperty(const char *provider, const char *extension, const char *key, char *value, int buf_len, agora::media::MEDIA_SOURCE_TYPE type=agora::media::UNKNOWN_MEDIA_SOURCE)=0
agora::rtc::ChannelMediaOptions::publishFourthScreenTrack
Optional< bool > publishFourthScreenTrack
Definition: IAgoraRtcEngine.h:1149
agora::rtc::RemoteAudioStats::jitterBufferDelay
int jitterBufferDelay
Definition: IAgoraRtcEngine.h:390
agora::rtc::IRtcEngine::adjustPlaybackSignalVolume
virtual int adjustPlaybackSignalVolume(int volume)=0
agora::rtc::IRtcEngineEventHandler::onRemoteVideoStateChanged
virtual void onRemoteVideoStateChanged(uid_t uid, REMOTE_VIDEO_STATE state, REMOTE_VIDEO_STATE_REASON reason, int elapsed)
Definition: IAgoraRtcEngine.h:1961
agora::rtc::IRtcEngine::setExtensionProviderProperty
virtual int setExtensionProviderProperty(const char *provider, const char *key, const char *value)=0
agora::rtc::PublisherConfiguration::injectStreamWidth
int injectStreamWidth
Definition: IAgoraRtcEngine.h:769
agora::rtc::ChannelMediaOptions::publishMixedAudioTrack
Optional< bool > publishMixedAudioTrack
Definition: IAgoraRtcEngine.h:1197
agora::rtc::IRtcEngine::startLocalAudioMixer
virtual int startLocalAudioMixer(const LocalAudioMixerConfiguration &config)=0
agora::rtc::RemoteVideoStats::rxStreamType
VIDEO_STREAM_TYPE rxStreamType
Definition: IAgoraRtcEngine.h:559
agora::rtc::IRtcEngine::enableAudio
virtual int enableAudio()=0
agora::rtc::IVideoDeviceManager::stopDeviceTest
virtual int stopDeviceTest()=0
agora::rtc::IMetadataObserver::Metadata::uid
unsigned int uid
Definition: IAgoraRtcEngine.h:3540
agora::rtc::RemoteAudioStats::uid
uid_t uid
Definition: IAgoraRtcEngine.h:376
agora::rtc::IRtcEngine::disableVideo
virtual int disableVideo()=0
agora::rtc::IRtcEngine::enableDualStreamMode
virtual int enableDualStreamMode(bool enabled) __deprecated=0
agora::rtc::InjectStreamConfig::videoGop
int videoGop
Definition: IAgoraRtcEngine.h:689
agora::rtc::IRtcEngine::setVideoQoEPreference
virtual int setVideoQoEPreference(VIDEO_QOE_PREFERENCE_TYPE qoePreference)=0
agora::rtc::ChannelMediaOptions::isInteractiveAudience
Optional< bool > isInteractiveAudience
Definition: IAgoraRtcEngine.h:1285
agora::rtc::FaceShapeAreaOptions
Face shape area options. This structure defines options for facial adjustments on different facial ar...
Definition: AgoraBase.h:5168
agora::SpatialAudioParams
Definition: AgoraBase.h:7507
agora::rtc::LocalVideoStats::encodedFrameDepth
int encodedFrameDepth
Definition: IAgoraRtcEngine.h:365
agora::rtc::IRtcEngine::setLogFilter
virtual int setLogFilter(unsigned int filter)=0
agora::rtc::IRtcEngine::getLoopbackRecordingVolume
virtual int getLoopbackRecordingVolume()=0
agora::rtc::IRtcEngineEventHandler::onPermissionError
virtual void onPermissionError(PERMISSION_TYPE permissionType)
Definition: IAgoraRtcEngine.h:2799
agora::rtc::IRtcEngineEventHandler::onUploadLogResult
virtual void onUploadLogResult(const char *requestId, bool success, UPLOAD_ERROR_REASON reason)
Definition: IAgoraRtcEngine.h:2871
agora::rtc::RemoteAudioStats::qoeQuality
int qoeQuality
Definition: IAgoraRtcEngine.h:471
agora::rtc::IRtcEngine::setFaceShapeAreaOptions
virtual int setFaceShapeAreaOptions(const FaceShapeAreaOptions &options, agora::media::MEDIA_SOURCE_TYPE type=agora::media::PRIMARY_CAMERA_SOURCE)=0
agora::rtc::IRtcEngine::setHeadphoneEQPreset
virtual int setHeadphoneEQPreset(HEADPHONE_EQUALIZER_PRESET preset)=0
agora::rtc::IRtcEngine::startCameraCapture
virtual int startCameraCapture(VIDEO_SOURCE_TYPE sourceType, const CameraCapturerConfiguration &config)=0
agora::rtc::IRtcEngine::setLocalAccessPoint
virtual int setLocalAccessPoint(const LocalAccessPointConfiguration &config)=0
agora::rtc::IRtcEngineEventHandler::onRdtStateChanged
virtual void onRdtStateChanged(uid_t userId, RdtState state)
Occurs when the RDT tunnel state changed.
Definition: IAgoraRtcEngine.h:2362
agora::rtc::IRtcEngine::createCustomVideoTrack
virtual video_track_id_t createCustomVideoTrack()=0
agora::rtc::IRtcEngine::disableAudio
virtual int disableAudio()=0
agora::rtc::IRtcEngine::muteAllRemoteAudioStreams
virtual int muteAllRemoteAudioStreams(bool mute)=0
agora::rtc::IRtcEngineEventHandler::onRtcStats
virtual void onRtcStats(const RtcStats &stats)
Definition: IAgoraRtcEngine.h:1723
agora::rtc::IRtcEngineEventHandler::onUserJoined
virtual void onUserJoined(uid_t uid, int elapsed)
Definition: IAgoraRtcEngine.h:2001
agora::rtc::AAudioDeviceManager
Definition: IAgoraRtcEngine.h:9050
agora::rtc::IMetadataObserver::Metadata
Definition: IAgoraRtcEngine.h:3532
agora::rtc::IRtcEngine::sendCustomReportMessage
virtual int sendCustomReportMessage(const char *id, const char *category, const char *event, const char *label, int value)=0
agora::rtc::FocalLengthInfo
Definition: AgoraBase.h:1950
agora::rtc::RemoteVideoStats::packetLossRate
int packetLossRate
Definition: IAgoraRtcEngine.h:555
agora::rtc::LocalVideoStats::hwEncoderAccelerating
int hwEncoderAccelerating
Definition: IAgoraRtcEngine.h:355
agora::rtc::DeviceInfo
Definition: AgoraBase.h:3810
agora::rtc::IRtcEngineEventHandler::onMediaControlMessage
virtual void onMediaControlMessage(uid_t userId, const char *data, size_t length)
Occurs when the local user receives media control message sent by a remote user.
Definition: IAgoraRtcEngine.h:2378
agora::base::IEngineBase
Definition: AgoraBase.h:7473
agora::rtc::LocalVideoStats::rendererOutputFrameRate
int rendererOutputFrameRate
Definition: IAgoraRtcEngine.h:319
agora::rtc::DirectCdnStreamingMediaOptions::publishCustomAudioTrack
Optional< bool > publishCustomAudioTrack
Definition: IAgoraRtcEngine.h:3711
agora::rtc::VideoRenderingTracingInfo
Definition: AgoraBase.h:7244
agora::rtc::IRtcEngineEventHandler::onAudioMixingStateChanged
virtual void onAudioMixingStateChanged(AUDIO_MIXING_STATE_TYPE state, AUDIO_MIXING_REASON_TYPE reason)
Definition: IAgoraRtcEngine.h:2249
agora::rtc::IRtcEngine::setLocalRenderMode
virtual int setLocalRenderMode(media::base::RENDER_MODE_TYPE renderMode, VIDEO_MIRROR_MODE_TYPE mirrorMode)=0
agora::rtc::IRtcEngine::startAudioFrameDump
virtual int startAudioFrameDump(const char *channel_id, uid_t uid, const char *location, const char *uuid, const char *passwd, long duration_ms, bool auto_upload)=0
agora::rtc::IRtcEngine::setAudioProfile
virtual int setAudioProfile(AUDIO_PROFILE_TYPE profile, AUDIO_SCENARIO_TYPE scenario) __deprecated=0
agora::rtc::RtcEngineContext::areaCode
unsigned int areaCode
Definition: IAgoraRtcEngine.h:3447
agora::rtc::IRtcEngine::setSimulcastConfig
virtual int setSimulcastConfig(const SimulcastConfig &simulcastConfig)=0
agora::rtc::IRtcEngineEventHandler::onLicenseValidationFailure
virtual void onLicenseValidationFailure(LICENSE_ERROR_TYPE error)
Definition: IAgoraRtcEngine.h:2415
agora::rtc::CameraCapturerConfiguration
Definition: IAgoraRtcEngine.h:833
agora::rtc::IMetadataObserver::VIDEO_METADATA
@ VIDEO_METADATA
Definition: IAgoraRtcEngine.h:3517
agora::rtc::IRtcEngine::selectAudioTrack
virtual int selectAudioTrack(int index)=0
agora::rtc::RemoteVideoStats
Definition: IAgoraRtcEngine.h:512
agora::rtc::IRtcEngine::startAudioRecording
virtual int startAudioRecording(const char *filePath, int sampleRate, AUDIO_RECORDING_QUALITY_TYPE quality)=0
agora::rtc::PublisherConfiguration::injectStreamHeight
int injectStreamHeight
Definition: IAgoraRtcEngine.h:772
agora::Optional
Definition: AgoraOptional.h:52
agora::rtc::IRtcEngine::joinChannel
virtual int joinChannel(const char *token, const char *channelId, const char *info, uid_t uid)=0
agora::rtc::IMetadataObserver::Metadata::size
unsigned int size
Definition: IAgoraRtcEngine.h:3543
agora::rtc::ClientRoleOptions
Definition: AgoraBase.h:2927
agora::rtc::IRtcEngine::setRecordingAudioFrameParameters
virtual int setRecordingAudioFrameParameters(int sampleRate, int channel, RAW_AUDIO_FRAME_OP_MODE_TYPE mode, int samplesPerCall)=0
agora::rtc::ScreenCaptureConfiguration::screenRect
Rectangle screenRect
Definition: IAgoraRtcEngine.h:884
agora::rtc::IRtcEngineEventHandler::onUserEnableLocalVideo
virtual void onUserEnableLocalVideo(uid_t uid, bool enabled) __deprecated
Definition: IAgoraRtcEngine.h:2098
agora::rtc::IVideoDeviceManager::setDevice
virtual int setDevice(const char deviceIdUTF8[MAX_DEVICE_ID_LENGTH])=0
agora::rtc::IRtcEngineEventHandler::onChannelMediaRelayStateChanged
virtual void onChannelMediaRelayStateChanged(int state, int code)
Definition: IAgoraRtcEngine.h:2680
agora::rtc::IRtcEngine::complain
virtual int complain(const char *callId, const char *description)=0
agora::rtc::IRtcEngine::clearVideoWatermarks
virtual int clearVideoWatermarks()=0
agora::rtc::IRtcEngine::stopAudioRecording
virtual int stopAudioRecording()=0
agora::rtc::IRtcEngineEventHandler::onAudioPublishStateChanged
virtual void onAudioPublishStateChanged(const char *channel, STREAM_PUBLISH_STATE oldState, STREAM_PUBLISH_STATE newState, int elapseSinceLastState)
Definition: IAgoraRtcEngine.h:2919
agora::rtc::IRtcEngine::setHighPriorityUserList
virtual int setHighPriorityUserList(uid_t *uidList, int uidNum, STREAM_FALLBACK_OPTIONS option)=0
agora::rtc::IRtcEngine::setScreenCaptureOrientation
virtual int setScreenCaptureOrientation(VIDEO_SOURCE_TYPE type, VIDEO_ORIENTATION orientation)=0
agora::rtc::RemoteAudioStats::receivedSampleRate
int receivedSampleRate
Definition: IAgoraRtcEngine.h:402
agora::rtc::IRtcEngine::startPreview
virtual int startPreview(VIDEO_SOURCE_TYPE sourceType)=0
agora::rtc::VideoCanvas
Definition: AgoraBase.h:4983
agora::rtc::VideoCompositingLayout::Region::uid
uid_t uid
Definition: IAgoraRtcEngine.h:602
agora::rtc::IRtcEngineEventHandler::onConnectionStateChanged
virtual void onConnectionStateChanged(CONNECTION_STATE_TYPE state, CONNECTION_CHANGED_REASON_TYPE reason)
Definition: IAgoraRtcEngine.h:2760
agora::rtc::IVideoEffectObject::getVideoEffectIntParam
virtual int getVideoEffectIntParam(const char *option, const char *key)=0
Gets an integer parameter from the video effect.
agora::rtc::SegmentationProperty
Definition: AgoraBase.h:5658
agora::rtc::VideoCompositingLayout::Region::x
double x
Definition: IAgoraRtcEngine.h:605