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 {
82 AUDIO_MIXING_STATE_PLAYING = 710,
86 AUDIO_MIXING_STATE_PAUSED = 711,
93 AUDIO_MIXING_STATE_STOPPED = 713,
101 AUDIO_MIXING_STATE_FAILED = 714,
102 };
103
108 enum AUDIO_MIXING_REASON_TYPE {
113 AUDIO_MIXING_REASON_CAN_NOT_OPEN = 701,
118 AUDIO_MIXING_REASON_TOO_FREQUENT_CALL = 702,
122 AUDIO_MIXING_REASON_INTERRUPTED_EOF = 703,
126 AUDIO_MIXING_REASON_ONE_LOOP_COMPLETED = 721,
130 AUDIO_MIXING_REASON_ALL_LOOPS_COMPLETED = 723,
134 AUDIO_MIXING_REASON_STOPPED_BY_USER = 724,
136 AUDIO_MIXING_REASON_RESUMED_BY_USER = 726,
140 AUDIO_MIXING_REASON_OK = 0,
141 };
142
146 enum INJECT_STREAM_STATUS {
150 INJECT_STREAM_STATUS_START_SUCCESS = 0,
154 INJECT_STREAM_STATUS_START_ALREADY_EXISTS = 1,
158 INJECT_STREAM_STATUS_START_UNAUTHORIZED = 2,
162 INJECT_STREAM_STATUS_START_TIMEDOUT = 3,
166 INJECT_STREAM_STATUS_START_FAILED = 4,
170 INJECT_STREAM_STATUS_STOP_SUCCESS = 5,
174 INJECT_STREAM_STATUS_STOP_NOT_FOUND = 6,
178 INJECT_STREAM_STATUS_STOP_UNAUTHORIZED = 7,
182 INJECT_STREAM_STATUS_STOP_TIMEDOUT = 8,
186 INJECT_STREAM_STATUS_STOP_FAILED = 9,
190 INJECT_STREAM_STATUS_BROKEN = 10,
191 };
192
196 enum AUDIO_EQUALIZATION_BAND_FREQUENCY {
200 AUDIO_EQUALIZATION_BAND_31 = 0,
204 AUDIO_EQUALIZATION_BAND_62 = 1,
208 AUDIO_EQUALIZATION_BAND_125 = 2,
212 AUDIO_EQUALIZATION_BAND_250 = 3,
216 AUDIO_EQUALIZATION_BAND_500 = 4,
220 AUDIO_EQUALIZATION_BAND_1K = 5,
224 AUDIO_EQUALIZATION_BAND_2K = 6,
228 AUDIO_EQUALIZATION_BAND_4K = 7,
232 AUDIO_EQUALIZATION_BAND_8K = 8,
236 AUDIO_EQUALIZATION_BAND_16K = 9,
237 };
238
242 enum AUDIO_REVERB_TYPE {
246 AUDIO_REVERB_DRY_LEVEL = 0,
250 AUDIO_REVERB_WET_LEVEL = 1,
254 AUDIO_REVERB_ROOM_SIZE = 2,
258 AUDIO_REVERB_WET_DELAY = 3,
262 AUDIO_REVERB_STRENGTH = 4,
263 };
264
268 enum STREAM_FALLBACK_OPTIONS {
273 STREAM_FALLBACK_OPTION_DISABLED = 0,
277 STREAM_FALLBACK_OPTION_VIDEO_STREAM_LOW = 1,
283 STREAM_FALLBACK_OPTION_AUDIO_ONLY = 2,
288 STREAM_FALLBACK_OPTION_VIDEO_STREAM_LAYER_1 = 3,
289 STREAM_FALLBACK_OPTION_VIDEO_STREAM_LAYER_2 = 4,
290 STREAM_FALLBACK_OPTION_VIDEO_STREAM_LAYER_3 = 5,
291 STREAM_FALLBACK_OPTION_VIDEO_STREAM_LAYER_4 = 6,
292 STREAM_FALLBACK_OPTION_VIDEO_STREAM_LAYER_5 = 7,
293 STREAM_FALLBACK_OPTION_VIDEO_STREAM_LAYER_6 = 8,
294 };
295
296 enum PRIORITY_TYPE {
299 PRIORITY_HIGH = 50,
302 PRIORITY_NORMAL = 100,
303 };
304
305 struct RtcConnection;
306
310 struct LocalVideoStats
311 {
315 uid_t uid;
320 int sentBitrate;
325 int sentFrameRate;
329 int captureFrameRate;
333 int captureFrameWidth;
337 int captureFrameHeight;
343 int regulatedCaptureFrameRate;
349 int regulatedCaptureFrameWidth;
355 int regulatedCaptureFrameHeight;
359 int encoderOutputFrameRate;
363 int encodedFrameWidth;
367 int encodedFrameHeight;
371 int rendererOutputFrameRate;
376 int targetBitrate;
380 int targetFrameRate;
385 QUALITY_ADAPT_INDICATION qualityAdaptIndication;
390 int encodedBitrate;
394 int encodedFrameCount;
398 VIDEO_CODEC_TYPE codecType;
403 unsigned short txPacketLossRate;
408 CAPTURE_BRIGHTNESS_LEVEL_TYPE captureBrightnessLevel;
412 bool dualStreamEnabled;
418 int hwEncoderAccelerating;
421 VideoDimensions simulcastDimensions[SimulcastConfig::STREAM_LAYER_COUNT_MAX];
428 int encodedFrameDepth;
429 };
430
434 struct RemoteAudioStats
435 {
439 uid_t uid;
443 int quality;
447 int networkTransportDelay;
453 int jitterBufferDelay;
457 int audioLossRate;
461 int numChannels;
465 int receivedSampleRate;
469 int receivedBitrate;
474 int totalFrozenTime;
480 int frozenRate;
496 int mosValue;
501 uint32_t frozenRateByCustomPlcCount;
505 uint32_t plcCount;
506
511 uint32_t frozenCntByCustom;
512
517 uint32_t frozenTimeByCustom;
518
524 int totalActiveTime;
528 int publishDuration;
533 int qoeQuality;
538 int qualityChangedReason;
542 unsigned int rxAudioBytes;
547 int e2eDelay;
548
549 RemoteAudioStats()
550 : uid(0),
551 quality(0),
552 networkTransportDelay(0),
553 jitterBufferDelay(0),
554 audioLossRate(0),
555 numChannels(0),
556 receivedSampleRate(0),
557 receivedBitrate(0),
558 totalFrozenTime(0),
559 frozenRate(0),
560 mosValue(0),
561 frozenRateByCustomPlcCount(0),
562 plcCount(0),
563 frozenCntByCustom(0),
564 frozenTimeByCustom(0),
565 totalActiveTime(0),
566 publishDuration(0),
567 qoeQuality(0),
568 qualityChangedReason(0),
569 rxAudioBytes(0),
570 e2eDelay(0) {}
571 };
572
576 struct RemoteVideoStats {
580 uid_t uid;
588 int delay __deprecated;
593 int e2eDelay;
597 int width;
601 int height;
605 int receivedBitrate;
608 int decoderInputFrameRate;
612 int decoderOutputFrameRate;
616 int rendererOutputFrameRate;
620 int frameLossRate;
624 int packetLossRate;
628 VIDEO_STREAM_TYPE rxStreamType;
634 int totalFrozenTime;
640 int frozenRate;
645 int avSyncTimeMs;
651 int totalActiveTime;
655 int publishDuration;
663 int mosValue;
667 unsigned int rxVideoBytes;
668 };
669
670 struct VideoCompositingLayout {
671 struct Region {
674 uid_t uid;
677 double x; // [0,1]
680 double y; // [0,1]
684 double width; // [0,1]
686 double height; // [0,1]
690 int zOrder; // optional, [0, 100] //0 (default): bottom most, 100: top most
691
695 double alpha;
696
697 media::base::RENDER_MODE_TYPE renderMode; // RENDER_MODE_HIDDEN: Crop, RENDER_MODE_FIT: Zoom to fit
698
699 Region()
700 : uid(0),
701 x(0),
702 y(0),
703 width(0),
704 height(0),
705 zOrder(0),
706 alpha(1.0),
707 renderMode(media::base::RENDER_MODE_HIDDEN) {}
708 };
709
714 int canvasWidth;
719 int canvasHeight;
722 const char* backgroundColor; // e.g. "#C0C0C0" in RGB
726 const Region* regions;
729 int regionCount;
732 const char* appData;
735 int appDataLength;
736
737 VideoCompositingLayout()
738 : canvasWidth(0),
739 canvasHeight(0),
740 backgroundColor(OPTIONAL_NULLPTR),
741 regions(NULL),
742 regionCount(0),
743 appData(OPTIONAL_NULLPTR),
744 appDataLength(0) {}
745 };
746
749 struct InjectStreamConfig {
753 int width;
757 int height;
761 int videoGop;
765 int videoFramerate;
769 int videoBitrate;
773 AUDIO_SAMPLE_RATE_TYPE audioSampleRate;
777 int audioBitrate;
780 int audioChannels;
781
782 // width / height default set to 0 means pull the stream with its original
783 // resolution
784 InjectStreamConfig()
785 : width(0),
786 height(0),
787 videoGop(30),
788 videoFramerate(15),
789 videoBitrate(400),
790 audioSampleRate(AUDIO_SAMPLE_RATE_48000),
791 audioBitrate(48),
792 audioChannels(1) {}
793 };
794
798 enum RTMP_STREAM_LIFE_CYCLE_TYPE {
803 RTMP_STREAM_LIFE_CYCLE_BIND2CHANNEL = 1,
808 RTMP_STREAM_LIFE_CYCLE_BIND2OWNER = 2,
809 };
810
813 struct PublisherConfiguration {
817 int width;
821 int height;
825 int framerate;
829 int bitrate;
835 int defaultLayout;
838 int lifecycle;
843 bool owner;
846 int injectStreamWidth;
849 int injectStreamHeight;
852 const char* injectStreamUrl;
856 const char* publishUrl;
860 const char* rawStreamUrl;
863 const char* extraInfo;
864
865 PublisherConfiguration()
866 : width(640),
867 height(360),
868 framerate(15),
869 bitrate(500),
870 defaultLayout(1),
871 lifecycle(RTMP_STREAM_LIFE_CYCLE_BIND2CHANNEL),
872 owner(true),
873 injectStreamWidth(0),
874 injectStreamHeight(0),
875 injectStreamUrl(NULL),
876 publishUrl(NULL),
877 rawStreamUrl(NULL),
878 extraInfo(NULL) {}
879 };
880
884 enum CAMERA_DIRECTION {
888 CAMERA_REAR = 0,
892 CAMERA_FRONT = 1,
893 };
894
900 enum CLOUD_PROXY_TYPE {
905 NONE_PROXY = 0,
910 UDP_PROXY = 1,
912
916 TCP_PROXY = 2,
918 };
919
923 struct CameraCapturerConfiguration {
925 #if defined(__ANDROID__) || (defined(__APPLE__) && TARGET_OS_IOS) || defined(__OHOS__)
926
930 Optional<CAMERA_DIRECTION> cameraDirection;
931
948 Optional<CAMERA_FOCAL_LENGTH_TYPE> cameraFocalLengthType;
949 #else
950
954 Optional<const char *> deviceId;
955 #endif
956
957 #if defined(__ANDROID__)
958
973 Optional<const char *> cameraId;
974 #endif
975
983 Optional<bool> followEncodeDimensionRatio;
987 VideoFormat format;
988 CameraCapturerConfiguration() : format(VideoFormat(0, 0, 0)) {}
989 };
993 struct ScreenCaptureConfiguration {
999 bool isCaptureWindow; // true - capture window, false - capture display
1004 int64_t displayId;
1009 Rectangle screenRect; //Windows only
1014 int64_t windowId;
1018 ScreenCaptureParameters params;
1025 Rectangle regionRect;
1026
1027 ScreenCaptureConfiguration() : isCaptureWindow(false), displayId(0), windowId(0) {}
1028 };
1029
1030 #if (defined(__APPLE__) && TARGET_OS_MAC && !TARGET_OS_IPHONE)|| (defined(__linux__) && !defined(__ANDROID__) && !defined(__OHOS__))
1031
1033 struct SIZE {
1036 int width;
1039 int height;
1040
1041 SIZE() : width(0), height(0) {}
1042 SIZE(int ww, int hh) : width(ww), height(hh) {}
1043 };
1044 #endif
1045
1046 #if defined(_WIN32) || (defined(__APPLE__) && TARGET_OS_MAC && !TARGET_OS_IPHONE) || (defined(__linux__) && !defined(__ANDROID__) && !defined(__OHOS__))
1047
1054 struct ThumbImageBuffer {
1058 const char* buffer;
1062 unsigned int length;
1066 unsigned int width;
1070 unsigned int height;
1071 ThumbImageBuffer() : buffer(nullptr), length(0), width(0), height(0) {}
1072 };
1076 enum ScreenCaptureSourceType {
1080 ScreenCaptureSourceType_Unknown = -1,
1084 ScreenCaptureSourceType_Window = 0,
1088 ScreenCaptureSourceType_Screen = 1,
1092 ScreenCaptureSourceType_Custom = 2,
1093 };
1098 struct ScreenCaptureSourceInfo {
1102 ScreenCaptureSourceType type;
1106 int64_t sourceId;
1110 const char* sourceName;
1114 ThumbImageBuffer thumbImage;
1118 ThumbImageBuffer iconImage;
1122 const char* processPath;
1126 const char* sourceTitle;
1132 bool primaryMonitor;
1133 bool isOccluded;
1138 Rectangle position;
1139 #if defined(_WIN32)
1140
1145 bool minimizeWindow;
1152 int64_t sourceDisplayId;
1153 ScreenCaptureSourceInfo() : type(ScreenCaptureSourceType_Unknown), sourceId(0), sourceName(nullptr),
1154 processPath(nullptr), sourceTitle(nullptr), primaryMonitor(false), isOccluded(false), minimizeWindow(false), sourceDisplayId(-2) {}
1155 #else
1156 ScreenCaptureSourceInfo() : type(ScreenCaptureSourceType_Unknown), sourceId(0), sourceName(nullptr), processPath(nullptr), sourceTitle(nullptr), primaryMonitor(false), isOccluded(false) {}
1157 #endif
1158 };
1162 class IScreenCaptureSourceList {
1163 protected:
1164 virtual ~IScreenCaptureSourceList(){};
1165
1166 public:
1175 virtual unsigned int getCount() = 0;
1192 virtual ScreenCaptureSourceInfo getSourceInfo(unsigned int index) = 0;
1203 virtual void release() = 0;
1204 };
1205 #endif // _WIN32 || (__APPLE__ && !TARGET_OS_IPHONE && TARGET_OS_MAC)
1206
1209 struct AdvancedAudioOptions {
1215 Optional<int> audioProcessingChannels;
1216
1217 AdvancedAudioOptions() {}
1218 ~AdvancedAudioOptions() {}
1219 };
1220
1224 struct ImageTrackOptions {
1230 const char* imageUrl;
1235 int fps;
1236 VIDEO_MIRROR_MODE_TYPE mirrorMode;
1237 ImageTrackOptions() : imageUrl(NULL), fps(1), mirrorMode(VIDEO_MIRROR_MODE_DISABLED) {}
1238 };
1239
1254 struct ChannelMediaOptions {
1260 Optional<bool> publishCameraTrack;
1266 Optional<bool> publishSecondaryCameraTrack;
1273 Optional<bool> publishThirdCameraTrack;
1280 Optional<bool> publishFourthCameraTrack;
1286 Optional<bool> publishMicrophoneTrack;
1287 #if defined(__ANDROID__) || (defined(TARGET_OS_IPHONE) && TARGET_OS_IPHONE) || defined(TARGET_OS_MAC) || defined(__OHOS__)
1288
1293 Optional<bool> publishScreenCaptureAudio;
1294 #endif
1295 #if defined(__ANDROID__) || (defined(TARGET_OS_IPHONE) && TARGET_OS_IPHONE) || defined(__OHOS__)
1296
1302 Optional<bool> publishScreenCaptureVideo;
1303
1304 #else
1305
1311 Optional<bool> publishScreenTrack;
1317 Optional<bool> publishSecondaryScreenTrack;
1324 Optional<bool> publishThirdScreenTrack;
1331 Optional<bool> publishFourthScreenTrack;
1332 #endif
1333
1339 Optional<bool> publishCustomAudioTrack;
1344 Optional<int> publishCustomAudioTrackId;
1350 Optional<bool> publishCustomVideoTrack;
1356 Optional<bool> publishEncodedVideoTrack;
1362 Optional<bool> publishMediaPlayerAudioTrack;
1368 Optional<bool> publishMediaPlayerVideoTrack;
1376 Optional<bool> publishTranscodedVideoTrack;
1382 Optional<bool> publishMixedAudioTrack;
1388 Optional<bool> publishLipSyncTrack;
1394 Optional<bool> autoSubscribeAudio;
1400 Optional<bool> autoSubscribeVideo;
1408 Optional<bool> enableAudioRecordingOrPlayout;
1412 Optional<int> publishMediaPlayerId;
1419 Optional<CLIENT_ROLE_TYPE> clientRoleType;
1424 Optional<AUDIENCE_LATENCY_LEVEL_TYPE> audienceLatencyLevel;
1428 Optional<VIDEO_STREAM_TYPE> defaultVideoStreamType;
1432 Optional<CHANNEL_PROFILE_TYPE> channelProfile;
1438 Optional<int> audioDelayMs;
1443 Optional<int> mediaPlayerAudioDelayMs;
1454 Optional<const char*> token;
1462 Optional<bool> enableBuiltInMediaEncryption;
1469 Optional<bool> publishRhythmPlayerTrack;
1482 Optional<bool> isInteractiveAudience;
1487 Optional<video_track_id_t> customVideoTrackId;
1495 Optional<bool> isAudioFilterable;
1496
1501 Optional<const char*> parameters;
1502
1512 Optional<bool> enableMultipath;
1513
1519 Optional<MultipathMode> uplinkMultipathMode;
1520
1526 Optional<MultipathMode> downlinkMultipathMode;
1527
1533 Optional<MultipathType> preferMultipathType;
1534
1535 ChannelMediaOptions() {}
1536 ~ChannelMediaOptions() {}
1537
1538 void SetAll(const ChannelMediaOptions& change) {
1539 #define SET_FROM(X) SetFrom(&X, change.X)
1540
1541 SET_FROM(publishCameraTrack);
1542 SET_FROM(publishSecondaryCameraTrack);
1543 SET_FROM(publishThirdCameraTrack);
1544 SET_FROM(publishFourthCameraTrack);
1545 SET_FROM(publishMicrophoneTrack);
1546 #if defined(__ANDROID__) || (defined(TARGET_OS_IPHONE) && TARGET_OS_IPHONE) || defined(TARGET_OS_MAC) || defined(__OHOS__)
1547 SET_FROM(publishScreenCaptureAudio);
1548 #endif
1549 #if defined(__ANDROID__) || (defined(TARGET_OS_IPHONE) && TARGET_OS_IPHONE) || defined(__OHOS__)
1550 SET_FROM(publishScreenCaptureVideo);
1551 #else
1552 SET_FROM(publishScreenTrack);
1553 SET_FROM(publishSecondaryScreenTrack);
1554 SET_FROM(publishThirdScreenTrack);
1555 SET_FROM(publishFourthScreenTrack);
1556 #endif
1557 SET_FROM(publishTranscodedVideoTrack);
1558 SET_FROM(publishMixedAudioTrack);
1559 SET_FROM(publishLipSyncTrack);
1560 SET_FROM(publishCustomAudioTrack);
1561 SET_FROM(publishCustomAudioTrackId);
1562 SET_FROM(publishCustomVideoTrack);
1563 SET_FROM(publishEncodedVideoTrack);
1564 SET_FROM(publishMediaPlayerAudioTrack);
1565 SET_FROM(publishMediaPlayerVideoTrack);
1566 SET_FROM(autoSubscribeAudio);
1567 SET_FROM(autoSubscribeVideo);
1568 SET_FROM(publishMediaPlayerId);
1569 SET_FROM(enableAudioRecordingOrPlayout);
1570 SET_FROM(clientRoleType);
1571 SET_FROM(audienceLatencyLevel);
1572 SET_FROM(defaultVideoStreamType);
1573 SET_FROM(channelProfile);
1574 SET_FROM(audioDelayMs);
1575 SET_FROM(mediaPlayerAudioDelayMs);
1576 SET_FROM(token);
1577 SET_FROM(enableBuiltInMediaEncryption);
1578 SET_FROM(publishRhythmPlayerTrack);
1579 SET_FROM(customVideoTrackId);
1580 SET_FROM(isAudioFilterable);
1581 SET_FROM(isInteractiveAudience);
1582 SET_FROM(parameters);
1583 SET_FROM(enableMultipath);
1584 SET_FROM(uplinkMultipathMode);
1585 SET_FROM(downlinkMultipathMode);
1586 SET_FROM(preferMultipathType);
1587 #undef SET_FROM
1588 }
1589
1590 bool operator==(const ChannelMediaOptions& o) const {
1591 #define BEGIN_COMPARE() bool b = true
1592 #define ADD_COMPARE(X) b = (b && (X == o.X))
1593 #define END_COMPARE()
1594
1595 BEGIN_COMPARE();
1596 ADD_COMPARE(publishCameraTrack);
1597 ADD_COMPARE(publishSecondaryCameraTrack);
1598 ADD_COMPARE(publishThirdCameraTrack);
1599 ADD_COMPARE(publishFourthCameraTrack);
1600 ADD_COMPARE(publishMicrophoneTrack);
1601 #if defined(__ANDROID__) || (defined(TARGET_OS_IPHONE) && TARGET_OS_IPHONE) || defined(TARGET_OS_MAC) || defined(__OHOS__)
1602 ADD_COMPARE(publishScreenCaptureAudio);
1603 #endif
1604 #if defined(__ANDROID__) || (defined(TARGET_OS_IPHONE) && TARGET_OS_IPHONE) || defined(__OHOS__)
1605 ADD_COMPARE(publishScreenCaptureVideo);
1606 #else
1607 ADD_COMPARE(publishScreenTrack);
1608 ADD_COMPARE(publishSecondaryScreenTrack);
1609 ADD_COMPARE(publishThirdScreenTrack);
1610 ADD_COMPARE(publishFourthScreenTrack);
1611 #endif
1612 ADD_COMPARE(publishTranscodedVideoTrack);
1613 ADD_COMPARE(publishMixedAudioTrack);
1614 ADD_COMPARE(publishLipSyncTrack);
1615 ADD_COMPARE(publishCustomAudioTrack);
1616 ADD_COMPARE(publishCustomAudioTrackId);
1617 ADD_COMPARE(publishCustomVideoTrack);
1618 ADD_COMPARE(publishEncodedVideoTrack);
1619 ADD_COMPARE(publishMediaPlayerAudioTrack);
1620 ADD_COMPARE(publishMediaPlayerVideoTrack);
1621 ADD_COMPARE(autoSubscribeAudio);
1622 ADD_COMPARE(autoSubscribeVideo);
1623 ADD_COMPARE(publishMediaPlayerId);
1624 ADD_COMPARE(enableAudioRecordingOrPlayout);
1625 ADD_COMPARE(clientRoleType);
1626 ADD_COMPARE(audienceLatencyLevel);
1627 ADD_COMPARE(defaultVideoStreamType);
1628 ADD_COMPARE(channelProfile);
1629 ADD_COMPARE(audioDelayMs);
1630 ADD_COMPARE(mediaPlayerAudioDelayMs);
1631 ADD_COMPARE(token);
1632 ADD_COMPARE(enableBuiltInMediaEncryption);
1633 ADD_COMPARE(publishRhythmPlayerTrack);
1634 ADD_COMPARE(customVideoTrackId);
1635 ADD_COMPARE(isAudioFilterable);
1636 ADD_COMPARE(isInteractiveAudience);
1637 ADD_COMPARE(parameters);
1638 ADD_COMPARE(enableMultipath);
1639 ADD_COMPARE(uplinkMultipathMode);
1640 ADD_COMPARE(downlinkMultipathMode);
1641 ADD_COMPARE(preferMultipathType);
1642 END_COMPARE();
1643
1644 #undef BEGIN_COMPARE
1645 #undef ADD_COMPARE
1646 #undef END_COMPARE
1647 return b;
1648 }
1649
1650 ChannelMediaOptions& operator=(const ChannelMediaOptions& replace) {
1651 if (this != &replace) {
1652 #define REPLACE_BY(X) ReplaceBy(&X, replace.X)
1653
1654 REPLACE_BY(publishCameraTrack);
1655 REPLACE_BY(publishSecondaryCameraTrack);
1656 REPLACE_BY(publishThirdCameraTrack);
1657 REPLACE_BY(publishFourthCameraTrack);
1658 REPLACE_BY(publishMicrophoneTrack);
1659 #if defined(__ANDROID__) || (defined(TARGET_OS_IPHONE) && TARGET_OS_IPHONE) || defined(TARGET_OS_MAC) || defined(__OHOS__)
1660 REPLACE_BY(publishScreenCaptureAudio);
1661 #endif
1662 #if defined(__ANDROID__) || (defined(TARGET_OS_IPHONE) && TARGET_OS_IPHONE) || defined(__OHOS__)
1663 REPLACE_BY(publishScreenCaptureVideo);
1664 #else
1665 REPLACE_BY(publishScreenTrack);
1666 REPLACE_BY(publishSecondaryScreenTrack);
1667 REPLACE_BY(publishThirdScreenTrack);
1668 REPLACE_BY(publishFourthScreenTrack);
1669 #endif
1670 REPLACE_BY(publishTranscodedVideoTrack);
1671 REPLACE_BY(publishMixedAudioTrack);
1672 REPLACE_BY(publishLipSyncTrack);
1673 REPLACE_BY(publishCustomAudioTrack);
1674 REPLACE_BY(publishCustomAudioTrackId);
1675 REPLACE_BY(publishCustomVideoTrack);
1676 REPLACE_BY(publishEncodedVideoTrack);
1677 REPLACE_BY(publishMediaPlayerAudioTrack);
1678 REPLACE_BY(publishMediaPlayerVideoTrack);
1679 REPLACE_BY(autoSubscribeAudio);
1680 REPLACE_BY(autoSubscribeVideo);
1681 REPLACE_BY(publishMediaPlayerId);
1682 REPLACE_BY(enableAudioRecordingOrPlayout);
1683 REPLACE_BY(clientRoleType);
1684 REPLACE_BY(audienceLatencyLevel);
1685 REPLACE_BY(defaultVideoStreamType);
1686 REPLACE_BY(channelProfile);
1687 REPLACE_BY(audioDelayMs);
1688 REPLACE_BY(mediaPlayerAudioDelayMs);
1689 REPLACE_BY(token);
1690 REPLACE_BY(enableBuiltInMediaEncryption);
1691 REPLACE_BY(publishRhythmPlayerTrack);
1692 REPLACE_BY(customVideoTrackId);
1693 REPLACE_BY(isAudioFilterable);
1694 REPLACE_BY(isInteractiveAudience);
1695 REPLACE_BY(parameters);
1696 REPLACE_BY(enableMultipath);
1697 REPLACE_BY(uplinkMultipathMode);
1698 REPLACE_BY(downlinkMultipathMode);
1699 REPLACE_BY(preferMultipathType);
1700 #undef REPLACE_BY
1701 }
1702 return *this;
1703 }
1704 };
1705
1709 enum PROXY_TYPE {
1713 NONE_PROXY_TYPE = 0,
1718 UDP_PROXY_TYPE = 1,
1723 TCP_PROXY_TYPE = 2,
1727 LOCAL_PROXY_TYPE = 3,
1732 TCP_PROXY_AUTO_FALLBACK_TYPE = 4,
1735 HTTP_PROXY_TYPE = 5,
1738 HTTPS_PROXY_TYPE = 6,
1739 };
1740
1744 enum FeatureType {
1748 VIDEO_VIRTUAL_BACKGROUND = 1,
1752 VIDEO_BEAUTY_EFFECT = 2,
1753 };
1754
1758 struct LeaveChannelOptions {
1764 bool stopAudioMixing;
1770 bool stopAllEffect;
1776 bool stopMicrophoneRecording;
1777
1778 LeaveChannelOptions() : stopAudioMixing(true), stopAllEffect(true), stopMicrophoneRecording(true) {}
1779 };
1780
1791 class IRtcEngineEventHandler {
1792 public:
1793 virtual ~IRtcEngineEventHandler() {}
1794
1795 virtual const char* eventHandlerType() const { return "event_handler"; }
1796
1817 virtual void onJoinChannelSuccess(const char* channel, uid_t uid, int elapsed) {
1818 (void)channel;
1819 (void)uid;
1820 (void)elapsed;
1821 }
1822
1837 virtual void onRejoinChannelSuccess(const char* channel, uid_t uid, int elapsed) {
1838 (void)channel;
1839 (void)uid;
1840 (void)elapsed;
1841 }
1842
1862 virtual void onProxyConnected(const char* channel, uid_t uid, PROXY_TYPE proxyType, const char* localProxyIp, int elapsed) {
1863 (void)channel;
1864 (void)uid;
1865 (void)proxyType;
1866 (void)localProxyIp;
1867 (void)elapsed;
1868 }
1869
1882 virtual void onError(int err, const char* msg) {
1883 (void)err;
1884 (void)msg;
1885 }
1886
1905 virtual void onAudioQuality(uid_t uid, int quality, unsigned short delay, unsigned short lost) __deprecated {
1906 (void)uid;
1907 (void)quality;
1908 (void)delay;
1909 (void)lost;
1910 }
1911
1922 virtual void onLastmileProbeResult(const LastmileProbeResult& result) {
1923 (void)result;
1924 }
1925
1962 virtual void onAudioVolumeIndication(const AudioVolumeInfo* speakers, unsigned int speakerNumber,
1963 int totalVolume) {
1964 (void)speakers;
1965 (void)speakerNumber;
1966 (void)totalVolume;
1967 }
1968
1983 virtual void onLeaveChannel(const RtcStats& stats) { (void)stats; }
1984
1995 virtual void onRtcStats(const RtcStats& stats) { (void)stats; }
1996
2011 virtual void onAudioDeviceStateChanged(const char* deviceId, int deviceType, int deviceState) {
2012 (void)deviceId;
2013 (void)deviceType;
2014 (void)deviceState;
2015 }
2016
2031 virtual void onAudioMixingPositionChanged(int64_t position) {}
2032
2046 virtual void onAudioMixingFinished() __deprecated {}
2047
2057 virtual void onAudioEffectFinished(int soundId) {}
2058
2074 virtual void onVideoDeviceStateChanged(const char* deviceId, int deviceType, int deviceState) {
2075 (void)deviceId;
2076 (void)deviceType;
2077 (void)deviceState;
2078 }
2079
2110 virtual void onNetworkQuality(uid_t uid, int txQuality, int rxQuality) {
2111 (void)uid;
2112 (void)txQuality;
2113 (void)rxQuality;
2114 }
2115
2122 virtual void onIntraRequestReceived() {}
2123
2136 virtual void onUplinkNetworkInfoUpdated(const UplinkNetworkInfo& info) {
2137 (void)info;
2138 }
2139
2153 virtual void onLastmileQuality(int quality) { (void)quality; }
2154
2176 virtual void onFirstLocalVideoFrame(VIDEO_SOURCE_TYPE source, int width, int height, int elapsed) {
2177 (void)source;
2178 (void)width;
2179 (void)height;
2180 (void)elapsed;
2181 }
2182
2204 virtual void onFirstLocalVideoFramePublished(VIDEO_SOURCE_TYPE source, int elapsed) {
2205 (void)source;
2206 (void)elapsed;
2207 }
2208
2230 virtual void onFirstRemoteVideoDecoded(uid_t uid, int width, int height, int elapsed) __deprecated {
2231 (void)uid;
2232 (void)width;
2233 (void)height;
2234 (void)elapsed;
2235 }
2236
2249 virtual void onVideoSizeChanged(VIDEO_SOURCE_TYPE sourceType, uid_t uid, int width, int height, int rotation) {
2250 (void)uid;
2251 (void)width;
2252 (void)height;
2253 (void)rotation;
2254 }
2255
2268 virtual void onLocalVideoEvent(VIDEO_SOURCE_TYPE source, LOCAL_VIDEO_EVENT_TYPE event) {
2269 (void)source;
2270 (void)event;
2271 }
2272
2324 virtual void onLocalVideoStateChanged(VIDEO_SOURCE_TYPE source, LOCAL_VIDEO_STREAM_STATE state, LOCAL_VIDEO_STREAM_REASON reason) {
2325 (void)source;
2326 (void)state;
2327 (void)reason;
2328 }
2329
2344 virtual void onRemoteVideoStateChanged(uid_t uid, REMOTE_VIDEO_STATE state, REMOTE_VIDEO_STATE_REASON reason, int elapsed) {
2345 (void)uid;
2346 (void)state;
2347 (void)reason;
2348 (void)elapsed;
2349 }
2350
2367 virtual void onFirstRemoteVideoFrame(uid_t uid, int width, int height, int elapsed) {
2368 (void)uid;
2369 (void)width;
2370 (void)height;
2371 (void)elapsed;
2372 }
2373
2398 virtual void onUserJoined(uid_t uid, int elapsed) {
2399 (void)uid;
2400 (void)elapsed;
2401 }
2402
2422 virtual void onUserOffline(uid_t uid, USER_OFFLINE_REASON_TYPE reason) {
2423 (void)uid;
2424 (void)reason;
2425 }
2426
2444 virtual void onUserMuteAudio(uid_t uid, bool muted) {
2445 (void)uid;
2446 (void)muted;
2447 }
2448
2466 virtual void onUserMuteVideo(uid_t uid, bool muted) {
2467 (void)uid;
2468 (void)muted;
2469 }
2470
2486 virtual void onUserEnableVideo(uid_t uid, bool enabled) {
2487 (void)uid;
2488 (void)enabled;
2489 }
2490
2496 virtual void onUserStateChanged(uid_t uid, REMOTE_USER_STATE state) {
2497 (void)uid;
2498 (void)state;
2499 }
2500
2517 virtual void onUserEnableLocalVideo(uid_t uid, bool enabled) __deprecated {
2518 (void)uid;
2519 (void)enabled;
2520 }
2521
2533 virtual void onRemoteAudioStats(const RemoteAudioStats& stats) {
2534 (void)stats;
2535 }
2536
2546 virtual void onLocalAudioStats(const LocalAudioStats& stats) {
2547 (void)stats;
2548 }
2549
2561 virtual void onLocalVideoStats(VIDEO_SOURCE_TYPE source, const LocalVideoStats& stats) {
2562 (void)source;
2563 (void)stats;
2564 }
2565
2577 virtual void onRemoteVideoStats(const RemoteVideoStats& stats) {
2578 (void)stats;
2579 }
2580
2591 virtual void onCameraReady() __deprecated {}
2592
2604 virtual void onCameraFocusAreaChanged(int x, int y, int width, int height) {
2605 (void)x;
2606 (void)y;
2607 (void)width;
2608 (void)height;
2609 }
2625 virtual void onCameraExposureAreaChanged(int x, int y, int width, int height) {
2626 (void)x;
2627 (void)y;
2628 (void)width;
2629 (void)height;
2630 }
2631 #if defined(__ANDROID__) || (defined(__APPLE__) && TARGET_OS_IOS) || defined(__OHOS__)
2632
2670 virtual void onFacePositionChanged(int imageWidth, int imageHeight,
2671 const Rectangle* vecRectangle, const int* vecDistance,
2672 int numFaces) {
2673 (void) imageWidth;
2674 (void) imageHeight;
2675 (void) vecRectangle;
2676 (void) vecDistance;
2677 (void) numFaces;
2678 }
2679 #endif
2680
2691 virtual void onVideoStopped() __deprecated {}
2692
2704 virtual void onAudioMixingStateChanged(AUDIO_MIXING_STATE_TYPE state, AUDIO_MIXING_REASON_TYPE reason) {
2705 (void)state;
2706 (void)reason;
2707 }
2708
2724 virtual void onRhythmPlayerStateChanged(RHYTHM_PLAYER_STATE_TYPE state, RHYTHM_PLAYER_REASON reason) {
2725 (void)state;
2726 (void)reason;
2727 }
2728
2741 virtual void onConnectionLost() {}
2742
2761 virtual void onConnectionInterrupted() __deprecated {}
2762
2768 virtual void onConnectionBanned() __deprecated {}
2769
2787 virtual void onStreamMessage(uid_t uid, int streamId, const char* data, size_t length, uint64_t sentTs) {
2788 (void)uid;
2789 (void)streamId;
2790 (void)data;
2791 (void)length;
2792 (void)sentTs;
2793 }
2794
2812 virtual void onStreamMessageError(uid_t uid, int streamId, int code, int missed, int cached) {
2813 (void)uid;
2814 (void)streamId;
2815 (void)code;
2816 (void)missed;
2817 (void)cached;
2818 }
2819
2833 virtual void onRdtMessage(uid_t userId, RdtStreamType type, const char *data, size_t length) {
2834 (void)userId;
2835 (void)type;
2836 (void)data;
2837 (void)length;
2838 };
2839
2848 virtual void onRdtStateChanged(uid_t userId, RdtState state) {
2849 (void)userId;
2850 (void)state;
2851 }
2852
2864 virtual void onMediaControlMessage(uid_t userId, const char* data, size_t length) {
2865 (void)userId;
2866 (void)data;
2867 (void)length;
2868 }
2869
2887 virtual void onRequestToken() {}
2888
2909 virtual void onTokenPrivilegeWillExpire(const char* token) {
2910 (void)token;
2911 }
2912
2918 virtual void onLicenseValidationFailure(LICENSE_ERROR_TYPE error) {
2919 (void)error;
2920 }
2921
2939 virtual void onFirstLocalAudioFramePublished(int elapsed) {
2940 (void)elapsed;
2941 }
2942
2964 virtual void onFirstRemoteAudioDecoded(uid_t uid, int elapsed) __deprecated {
2965 (void)uid;
2966 (void)elapsed;
2967 }
2968
2980 virtual void onFirstRemoteAudioFrame(uid_t uid, int elapsed) __deprecated {
2981 (void)uid;
2982 (void)elapsed;
2983 }
2984
3001 virtual void onLocalAudioStateChanged(LOCAL_AUDIO_STREAM_STATE state, LOCAL_AUDIO_STREAM_REASON reason) {
3002 (void)state;
3003 (void)reason;
3004 }
3005
3025 virtual void onRemoteAudioStateChanged(uid_t uid, REMOTE_AUDIO_STATE state, REMOTE_AUDIO_STATE_REASON reason, int elapsed) {
3026 (void)uid;
3027 (void)state;
3028 (void)reason;
3029 (void)elapsed;
3030 }
3031
3049 virtual void onActiveSpeaker(uid_t uid) {
3050 (void)uid;
3051 }
3052
3057 virtual void onContentInspectResult(media::CONTENT_INSPECT_RESULT result) { (void)result; }
3058
3083 virtual void onSnapshotTaken(uid_t uid, const char* filePath, int width, int height, int errCode) {
3084 (void)uid;
3085 (void)filePath;
3086 (void)width;
3087 (void)height;
3088 (void)errCode;
3089 }
3090
3114 virtual void onClientRoleChanged(CLIENT_ROLE_TYPE oldRole, CLIENT_ROLE_TYPE newRole, const ClientRoleOptions& newRoleOptions) {
3115 (void)oldRole;
3116 (void)newRole;
3117 (void)newRoleOptions;
3118 }
3119
3134 virtual void onClientRoleChangeFailed(CLIENT_ROLE_CHANGE_FAILED_REASON reason, CLIENT_ROLE_TYPE currentRole) {
3135 (void)reason;
3136 (void)currentRole;
3137 }
3138
3155 virtual void onAudioDeviceVolumeChanged(MEDIA_DEVICE_TYPE deviceType, int volume, bool muted) {
3156 (void)deviceType;
3157 (void)volume;
3158 (void)muted;
3159 }
3160
3175 virtual void onRtmpStreamingStateChanged(const char* url, RTMP_STREAM_PUBLISH_STATE state,
3176 RTMP_STREAM_PUBLISH_REASON reason) {
3177 (void)url;
3178 (void)state;
3179 (void)reason;
3180 }
3181
3189 virtual void onRtmpStreamingEvent(const char* url, RTMP_STREAMING_EVENT eventCode) {
3190 (void)url;
3191 (void)eventCode;
3192 }
3193
3205 virtual void onTranscodingUpdated() {}
3206
3215 virtual void onAudioRoutingChanged(int routing) { (void)routing; }
3216
3227 virtual void onChannelMediaRelayStateChanged(int state, int code) {
3228 (void)state;
3229 (void)code;
3230 }
3231
3255 virtual void onRemoteSubscribeFallbackToAudioOnly(uid_t uid, bool isFallbackOrRecover) {
3256 (void)uid;
3257 (void)isFallbackOrRecover;
3258 }
3259
3278 virtual void onRemoteAudioTransportStats(uid_t uid, unsigned short delay, unsigned short lost, unsigned short rxKBitRate) __deprecated {
3279 (void)uid;
3280 (void)delay;
3281 (void)lost;
3282 (void)rxKBitRate;
3283 }
3284
3302 virtual void onRemoteVideoTransportStats(uid_t uid, unsigned short delay, unsigned short lost, unsigned short rxKBitRate) __deprecated {
3303 (void)uid;
3304 (void)delay;
3305 (void)lost;
3306 (void)rxKBitRate;
3307 }
3308
3320 virtual void onConnectionStateChanged(
3321 CONNECTION_STATE_TYPE state, CONNECTION_CHANGED_REASON_TYPE reason) {
3322 (void)state;
3323 (void)reason;
3324 }
3325
3338 virtual void onNetworkTypeChanged(NETWORK_TYPE type) {
3339 (void)type;
3340 }
3341
3352 virtual void onEncryptionError(ENCRYPTION_ERROR_TYPE errorType) {
3353 (void)errorType;
3354 }
3355
3366 virtual void onPermissionError(PERMISSION_TYPE permissionType) {
3367 (void)permissionType;
3368 }
3369
3370 #if defined(__ANDROID__)
3371
3375 virtual void onPermissionGranted(agora::rtc::PERMISSION_TYPE permissionType) {}
3376 #endif
3377
3392 virtual void onLocalUserRegistered(uid_t uid, const char* userAccount) {
3393 (void)uid;
3394 (void)userAccount;
3395 }
3396
3409 virtual void onUserInfoUpdated(uid_t uid, const UserInfo& info) {
3410 (void)uid;
3411 (void)info;
3412 }
3413
3420 virtual void onUserAccountUpdated(uid_t uid, const char* userAccount){
3421 (void)uid;
3422 (void)userAccount;
3423 }
3424
3441 virtual void onVideoRenderingTracingResult(uid_t uid, MEDIA_TRACE_EVENT currentEvent, VideoRenderingTracingInfo tracingInfo) {
3442 (void)uid;
3443 (void)currentEvent;
3444 (void)tracingInfo;
3445 }
3446
3459 virtual void onLocalVideoTranscoderError(const TranscodingVideoStream& stream, VIDEO_TRANSCODER_ERROR error){
3460 (void)stream;
3461 (void)error;
3462 }
3463
3470 virtual void onUploadLogResult(const char* requestId, bool success, UPLOAD_ERROR_REASON reason) {
3471 (void)requestId;
3472 (void)success;
3473 (void)reason;
3474 }
3475
3486 virtual void onAudioSubscribeStateChanged(const char* channel, uid_t uid, STREAM_SUBSCRIBE_STATE oldState, STREAM_SUBSCRIBE_STATE newState, int elapseSinceLastState) {
3487 (void)channel;
3488 (void)uid;
3489 (void)oldState;
3490 (void)newState;
3491 (void)elapseSinceLastState;
3492 }
3493
3504 virtual void onVideoSubscribeStateChanged(const char* channel, uid_t uid, STREAM_SUBSCRIBE_STATE oldState, STREAM_SUBSCRIBE_STATE newState, int elapseSinceLastState) {
3505 (void)channel;
3506 (void)uid;
3507 (void)oldState;
3508 (void)newState;
3509 (void)elapseSinceLastState;
3510 }
3511
3521 virtual void onAudioPublishStateChanged(const char* channel, STREAM_PUBLISH_STATE oldState, STREAM_PUBLISH_STATE newState, int elapseSinceLastState) {
3522 (void)channel;
3523 (void)oldState;
3524 (void)newState;
3525 (void)elapseSinceLastState;
3526 }
3527
3538 virtual void onVideoPublishStateChanged(VIDEO_SOURCE_TYPE source, const char* channel, STREAM_PUBLISH_STATE oldState, STREAM_PUBLISH_STATE newState, int elapseSinceLastState) {
3539 (void)source;
3540 (void)channel;
3541 (void)oldState;
3542 (void)newState;
3543 (void)elapseSinceLastState;
3544 }
3545
3565 virtual void onTranscodedStreamLayoutInfo(uid_t uid, int width, int height, int layoutCount,const VideoLayout* layoutlist) {
3566 (void)uid;
3567 (void)width;
3568 (void)height;
3569 (void)layoutCount;
3570 (void)layoutlist;
3571 }
3572
3581 virtual void onAudioMetadataReceived(uid_t uid, const char* metadata, size_t length) {
3582 (void)uid;
3583 (void)metadata;
3584 (void)length;
3585 }
3586
3598 virtual void onExtensionEventWithContext(const ExtensionContext &context, const char* key, const char* value) {
3599 (void)context;
3600 (void)key;
3601 (void)value;
3602 }
3603
3613 virtual void onExtensionStartedWithContext(const ExtensionContext &context) {
3614 (void)context;
3615 }
3616
3626 virtual void onExtensionStoppedWithContext(const ExtensionContext &context) {
3627 (void)context;
3628 }
3629
3644 virtual void onExtensionErrorWithContext(const ExtensionContext &context, int error, const char* message) {
3645 (void)context;
3646 (void)error;
3647 (void)message;
3648 }
3649
3656 virtual void onSetRtmFlagResult(int code) {
3657 (void)code;
3658 }
3659 virtual void onMultipathStats(const MultipathStats& stats) {
3669 (void)stats;
3670 }
3671
3685 virtual void onRenewTokenResult(const char* token, RENEW_TOKEN_ERROR_CODE code) {
3686 (void)token;
3687 (void)code;
3688 }
3689 };
3690
3694 class IVideoDeviceCollection {
3695 public:
3696 virtual ~IVideoDeviceCollection() {}
3697
3704 virtual int getCount() = 0;
3705
3715 virtual int setDevice(const char deviceIdUTF8[MAX_DEVICE_ID_LENGTH]) = 0;
3716
3727 virtual int getDevice(int index, char deviceNameUTF8[MAX_DEVICE_ID_LENGTH],
3728 char deviceIdUTF8[MAX_DEVICE_ID_LENGTH]) = 0;
3729
3733 virtual void release() = 0;
3734 };
3735
3739 class IVideoDeviceManager {
3740 public:
3741 virtual ~IVideoDeviceManager() {}
3755 virtual IVideoDeviceCollection* enumerateVideoDevices() = 0;
3756
3767 virtual int setDevice(const char deviceIdUTF8[MAX_DEVICE_ID_LENGTH]) = 0;
3768
3781 virtual int getDevice(char deviceIdUTF8[MAX_DEVICE_ID_LENGTH]) = 0;
3782
3783 #if defined(_WIN32) || (defined(__linux__) && !defined(__ANDROID__) && !defined(__OHOS__)) || \
3784 (defined(__APPLE__) && TARGET_OS_MAC && !TARGET_OS_IPHONE)
3785
3804 virtual int numberOfCapabilities(const char* deviceIdUTF8) = 0;
3805
3827 virtual int getCapability(const char* deviceIdUTF8, const uint32_t deviceCapabilityNumber, VideoFormat& capability) = 0;
3828 #endif
3829
3842 virtual int startDeviceTest(view_t hwnd) = 0;
3843
3850 virtual int stopDeviceTest() = 0;
3851
3858 virtual void release() = 0;
3859 };
3860
3866 class IVideoEffectObject : public RefCountInterface {
3867 public:
3868 virtual ~IVideoEffectObject() {}
3869
3875 enum class VIDEO_EFFECT_NODE_ID : uint32_t {
3879 BEAUTY = 1U << 0,
3883 STYLE_MAKEUP = 1U << 1,
3887 FILTER = 1U << 2,
3888 };
3889
3895 enum VIDEO_EFFECT_ACTION {
3899 SAVE = 1,
3903 RESET = 2,
3904 };
3905
3934 virtual int addOrUpdateVideoEffect(uint32_t nodeId, const char* templateName) = 0;
3935
3948 virtual int removeVideoEffect(uint32_t nodeId) = 0;
3949
3962 virtual int performVideoEffectAction(uint32_t nodeId, VIDEO_EFFECT_ACTION actionId) = 0;
3963
3977 virtual int setVideoEffectFloatParam(const char* option, const char* key, float param) = 0;
3978
3992 virtual int setVideoEffectIntParam(const char* option, const char* key, int param) = 0;
3993
4009 virtual int setVideoEffectBoolParam(const char* option, const char* key, bool param) = 0;
4010
4027 virtual float getVideoEffectFloatParam(const char* option, const char* key) = 0;
4028
4044 virtual int getVideoEffectIntParam(const char* option, const char* key) = 0;
4045
4058 virtual bool getVideoEffectBoolParam(const char* option, const char* key) = 0;
4059
4060 };
4061
4065 struct RtcEngineContext {
4069 IRtcEngineEventHandler* eventHandler;
4076 const char* appId;
4082 void* context;
4086 CHANNEL_PROFILE_TYPE channelProfile;
4087
4091 const char* license;
4092
4097 AUDIO_SCENARIO_TYPE audioScenario;
4103 unsigned int areaCode;
4104
4124 commons::LogConfig logConfig;
4125
4129 Optional<THREAD_PRIORITY_TYPE> threadPriority;
4130
4138 bool useExternalEglContext;
4139
4148 bool domainLimit;
4149
4156 bool autoRegisterAgoraExtensions;
4157
4158 RtcEngineContext()
4159 : eventHandler(NULL), appId(NULL), context(NULL), channelProfile(CHANNEL_PROFILE_LIVE_BROADCASTING),
4160 license(NULL), audioScenario(AUDIO_SCENARIO_DEFAULT), areaCode(AREA_CODE_GLOB),
4161 logConfig(), useExternalEglContext(false), domainLimit(false), autoRegisterAgoraExtensions(true) {}
4162 };
4163
4166 class IMetadataObserver {
4167 public:
4168 virtual ~IMetadataObserver() {}
4169
4173 enum METADATA_TYPE
4174 {
4178 UNKNOWN_METADATA = -1,
4182 VIDEO_METADATA = 0,
4183 };
4187 enum MAX_METADATA_SIZE_TYPE
4188 {
4189 INVALID_METADATA_SIZE_IN_BYTE = -1,
4190 DEFAULT_METADATA_SIZE_IN_BYTE = 512,
4191 MAX_METADATA_SIZE_IN_BYTE = 1024
4192 };
4193
4197 struct Metadata
4198 {
4202 const char* channelId;
4208 unsigned int uid;
4212 unsigned int size;
4216 unsigned char *buffer;
4220 long long timeStampMs;
4221
4222 Metadata() : channelId(NULL), uid(0), size(0), buffer(NULL), timeStampMs(0) {}
4223 };
4224
4237 virtual int getMaxMetadataSize() { return DEFAULT_METADATA_SIZE_IN_BYTE; }
4238
4255 virtual bool onReadyToSendMetadata(Metadata &metadata, VIDEO_SOURCE_TYPE source_type) = 0;
4256
4263 virtual void onMetadataReceived(const Metadata& metadata) = 0;
4264 };
4265
4271 enum DIRECT_CDN_STREAMING_REASON {
4272 // No error occurs.
4276 DIRECT_CDN_STREAMING_REASON_OK = 0,
4277 // A general error occurs (no specified reason).
4281 DIRECT_CDN_STREAMING_REASON_FAILED = 1,
4282 // Audio publication error.
4287 DIRECT_CDN_STREAMING_REASON_AUDIO_PUBLICATION = 2,
4288 // Video publication error.
4293 DIRECT_CDN_STREAMING_REASON_VIDEO_PUBLICATION = 3,
4294
4298 DIRECT_CDN_STREAMING_REASON_NET_CONNECT = 4,
4299 // Already exist stream name.
4303 DIRECT_CDN_STREAMING_REASON_BAD_NAME = 5,
4304 };
4305
4311 enum DIRECT_CDN_STREAMING_STATE {
4312
4316 DIRECT_CDN_STREAMING_STATE_IDLE = 0,
4317
4322 DIRECT_CDN_STREAMING_STATE_RUNNING = 1,
4323
4328 DIRECT_CDN_STREAMING_STATE_STOPPED = 2,
4329
4334 DIRECT_CDN_STREAMING_STATE_FAILED = 3,
4335
4341 DIRECT_CDN_STREAMING_STATE_RECOVERING = 4,
4342 };
4343
4349 struct DirectCdnStreamingStats {
4353 int videoWidth;
4354
4358 int videoHeight;
4359
4363 int fps;
4364
4368 int videoBitrate;
4369
4373 int audioBitrate;
4374 };
4375
4382 class IDirectCdnStreamingEventHandler {
4383 public:
4384 virtual ~IDirectCdnStreamingEventHandler() {}
4385
4400 virtual void onDirectCdnStreamingStateChanged(DIRECT_CDN_STREAMING_STATE state, DIRECT_CDN_STREAMING_REASON reason, const char* message) {
4401 (void)state;
4402 (void)reason;
4403 (void)message;
4404 };
4405
4416 virtual void onDirectCdnStreamingStats(const DirectCdnStreamingStats& stats) {
4417 (void)stats;
4418 };
4419 };
4420
4426 struct DirectCdnStreamingMediaOptions {
4432 Optional<bool> publishCameraTrack;
4438 Optional<bool> publishMicrophoneTrack;
4444 Optional<bool> publishCustomAudioTrack;
4450 Optional<bool> publishCustomVideoTrack;
4456 Optional<bool> publishMediaPlayerAudioTrack;
4461 Optional<int> publishMediaPlayerId;
4466 Optional<video_track_id_t> customVideoTrackId;
4467
4468 DirectCdnStreamingMediaOptions() {}
4469 ~DirectCdnStreamingMediaOptions() {}
4470
4471 void SetAll(const DirectCdnStreamingMediaOptions& change) {
4472 #define SET_FROM(X) SetFrom(&X, change.X)
4473 SET_FROM(publishCameraTrack);
4474 SET_FROM(publishMicrophoneTrack);
4475 SET_FROM(publishCustomAudioTrack);
4476 SET_FROM(publishCustomVideoTrack);
4477 SET_FROM(publishMediaPlayerAudioTrack);
4478 SET_FROM(publishMediaPlayerId);
4479 SET_FROM(customVideoTrackId);
4480 #undef SET_FROM
4481 }
4482
4483 bool operator==(const DirectCdnStreamingMediaOptions& o) const {
4484 #define BEGIN_COMPARE() bool b = true
4485 #define ADD_COMPARE(X) b = (b && (X == o.X))
4486 #define END_COMPARE()
4487
4488 BEGIN_COMPARE();
4489 ADD_COMPARE(publishCameraTrack);
4490 ADD_COMPARE(publishMicrophoneTrack);
4491 ADD_COMPARE(publishCustomAudioTrack);
4492 ADD_COMPARE(publishCustomVideoTrack);
4493 ADD_COMPARE(publishMediaPlayerAudioTrack);
4494 ADD_COMPARE(customVideoTrackId);
4495 ADD_COMPARE(publishMediaPlayerId);
4496 END_COMPARE();
4497
4498 #undef BEGIN_COMPARE
4499 #undef ADD_COMPARE
4500 #undef END_COMPARE
4501 return b;
4502 }
4503
4504 DirectCdnStreamingMediaOptions& operator=(const DirectCdnStreamingMediaOptions& replace) {
4505 if (this != &replace) {
4506 #define REPLACE_BY(X) ReplaceBy(&X, replace.X)
4507
4508 REPLACE_BY(publishCameraTrack);
4509 REPLACE_BY(publishMicrophoneTrack);
4510 REPLACE_BY(publishCustomAudioTrack);
4511 REPLACE_BY(publishCustomVideoTrack);
4512 REPLACE_BY(publishMediaPlayerAudioTrack);
4513 REPLACE_BY(customVideoTrackId);
4514 REPLACE_BY(publishMediaPlayerId);
4515 #undef REPLACE_BY
4516 }
4517 return *this;
4518 }
4519 };
4520
4524 struct ExtensionInfo {
4528 agora::media::MEDIA_SOURCE_TYPE mediaSourceType;
4529
4535 uid_t remoteUid;
4536
4548 const char* channelId;
4549
4553 uid_t localUid;
4554
4555 ExtensionInfo() : mediaSourceType(agora::media::UNKNOWN_MEDIA_SOURCE), remoteUid(0), channelId(NULL), localUid(0) {}
4556 };
4557
4558 class IMediaPlayer;
4559 class IMediaRecorder;
4560
4573 using RtcEngineReleaseCallback = void(*)();
4574
4581 class IRtcEngine : public agora::base::IEngineBase {
4582 public:
4607 AGORA_CPP_API static void release(RtcEngineReleaseCallback callback = nullptr);
4608
4633 virtual int initialize(const RtcEngineContext& context) = 0;
4634
4645 virtual int queryInterface(INTERFACE_ID_TYPE iid, void** inter) = 0;
4646
4647
4656 virtual const char* getVersion(int* build) = 0;
4657
4666 virtual const char* getErrorDescription(int code) = 0;
4667
4685 virtual int queryCodecCapability(CodecCapInfo* codecInfo, int& size) = 0;
4686
4703 virtual int queryDeviceScore() = 0;
4704
4763 virtual int preloadChannel(const char* token, const char* channelId, uid_t uid) = 0;
4764
4830 virtual int preloadChannelWithUserAccount(const char* token, const char* channelId, const char* userAccount) = 0;
4831
4853 virtual int updatePreloadChannelToken(const char* token) = 0;
4854
4926 virtual int joinChannel(const char* token, const char* channelId, const char* info, uid_t uid) = 0;
4927
5003 virtual int joinChannel(const char* token, const char* channelId, uid_t uid, const ChannelMediaOptions& options) = 0;
5004
5024 virtual int updateChannelMediaOptions(const ChannelMediaOptions& options) = 0;
5025
5055 virtual int leaveChannel() = 0;
5056
5084 virtual int leaveChannel(const LeaveChannelOptions& options) = 0;
5085
5113 virtual int renewToken(const char* token) = 0;
5114
5139 virtual int setChannelProfile(CHANNEL_PROFILE_TYPE profile) = 0;
5140
5182 virtual int setClientRole(CLIENT_ROLE_TYPE role) = 0;
5183
5234 virtual int setClientRole(CLIENT_ROLE_TYPE role, const ClientRoleOptions& options) = 0;
5235
5262 virtual int startEchoTest(const EchoTestConfiguration& config) = 0;
5263
5276 virtual int stopEchoTest() = 0;
5277
5278 #if defined(__APPLE__) && TARGET_OS_IOS
5279
5321 virtual int enableMultiCamera(bool enabled, const CameraCapturerConfiguration& config) = 0;
5322 #endif
5323
5351 virtual int enableVideo() = 0;
5352
5379 virtual int disableVideo() = 0;
5380
5397 virtual int startPreview() = 0;
5398
5418 virtual int startPreview(VIDEO_SOURCE_TYPE sourceType) = 0;
5419
5432 virtual int stopPreview() = 0;
5433
5449 virtual int stopPreview(VIDEO_SOURCE_TYPE sourceType) = 0;
5450
5475 virtual int startLastmileProbeTest(const LastmileProbeConfig& config) = 0;
5476
5484 virtual int stopLastmileProbeTest() = 0;
5485
5511 virtual int setVideoEncoderConfiguration(const VideoEncoderConfiguration& config) = 0;
5512
5545 virtual int setBeautyEffectOptions(bool enabled, const BeautyOptions& options, agora::media::MEDIA_SOURCE_TYPE type = agora::media::PRIMARY_CAMERA_SOURCE) = 0;
5582 virtual int setFaceShapeBeautyOptions(bool enabled, const FaceShapeBeautyOptions& options, agora::media::MEDIA_SOURCE_TYPE type = agora::media::PRIMARY_CAMERA_SOURCE) = 0;
5616 virtual int setFaceShapeAreaOptions(const FaceShapeAreaOptions& options, agora::media::MEDIA_SOURCE_TYPE type = agora::media::PRIMARY_CAMERA_SOURCE) = 0;
5617
5639 virtual int getFaceShapeBeautyOptions(FaceShapeBeautyOptions& options, agora::media::MEDIA_SOURCE_TYPE type = agora::media::PRIMARY_CAMERA_SOURCE) = 0;
5640
5663 virtual int getFaceShapeAreaOptions(agora::rtc::FaceShapeAreaOptions::FACE_SHAPE_AREA shapeArea, FaceShapeAreaOptions& options, agora::media::MEDIA_SOURCE_TYPE type = agora::media::PRIMARY_CAMERA_SOURCE) = 0;
5664
5694 virtual int setFilterEffectOptions(bool enabled, const FilterEffectOptions& options, agora::media::MEDIA_SOURCE_TYPE type = agora::media::PRIMARY_CAMERA_SOURCE) = 0;
5695
5696
5712 virtual agora_refptr<IVideoEffectObject> createVideoEffectObject(const char* bundlePath, agora::media::MEDIA_SOURCE_TYPE type = agora::media::PRIMARY_CAMERA_SOURCE) = 0;
5713
5714
5726 virtual int destroyVideoEffectObject(agora_refptr<IVideoEffectObject> videoEffectObject) = 0;
5727
5774 virtual int setLowlightEnhanceOptions(bool enabled, const LowlightEnhanceOptions& options, agora::media::MEDIA_SOURCE_TYPE type = agora::media::PRIMARY_CAMERA_SOURCE) = 0;
5820 virtual int setVideoDenoiserOptions(bool enabled, const VideoDenoiserOptions& options, agora::media::MEDIA_SOURCE_TYPE type = agora::media::PRIMARY_CAMERA_SOURCE) = 0;
5857 virtual int setColorEnhanceOptions(bool enabled, const ColorEnhanceOptions& options, agora::media::MEDIA_SOURCE_TYPE type = agora::media::PRIMARY_CAMERA_SOURCE) = 0;
5858
5919 virtual int enableVirtualBackground(bool enabled, VirtualBackgroundSource backgroundSource, SegmentationProperty segproperty, agora::media::MEDIA_SOURCE_TYPE type = agora::media::PRIMARY_CAMERA_SOURCE) = 0;
5920
5948 virtual int setupRemoteVideo(const VideoCanvas& canvas) = 0;
5949
5982 virtual int setupLocalVideo(const VideoCanvas& canvas) = 0;
5983
6051 virtual int setVideoScenario(VIDEO_APPLICATION_SCENARIO_TYPE scenarioType) = 0;
6052
6071 virtual int setVideoQoEPreference(VIDEO_QOE_PREFERENCE_TYPE qoePreference) = 0;
6072
6097 virtual int enableAudio() = 0;
6098
6120 virtual int disableAudio() = 0;
6121
6150 virtual int setAudioProfile(AUDIO_PROFILE_TYPE profile, AUDIO_SCENARIO_TYPE scenario) __deprecated = 0;
6151
6170 virtual int setAudioProfile(AUDIO_PROFILE_TYPE profile) = 0;
6192 virtual int setAudioScenario(AUDIO_SCENARIO_TYPE scenario) = 0;
6224 virtual int enableLocalAudio(bool enabled) = 0;
6225
6246 virtual int muteLocalAudioStream(bool mute) = 0;
6247
6315 virtual int muteAllRemoteAudioStreams(bool mute) = 0;
6316
6334 virtual int muteRemoteAudioStream(uid_t uid, bool mute) = 0;
6335
6358 virtual int muteLocalVideoStream(bool mute) = 0;
6359
6389 virtual int enableLocalVideo(bool enabled) = 0;
6390
6456 virtual int muteAllRemoteVideoStreams(bool mute) = 0;
6457
6495 virtual int setRemoteDefaultVideoStreamType(VIDEO_STREAM_TYPE streamType) = 0;
6496
6514 virtual int muteRemoteVideoStream(uid_t uid, bool mute) = 0;
6515
6554 virtual int setRemoteVideoStreamType(uid_t uid, VIDEO_STREAM_TYPE streamType) = 0;
6555
6580 virtual int setRemoteVideoSubscriptionOptions(uid_t uid, const VideoSubscriptionOptions &options) = 0;
6581
6609 virtual int setSubscribeAudioBlocklist(uid_t* uidList, int uidNumber) = 0;
6610
6637 virtual int setSubscribeAudioAllowlist(uid_t* uidList, int uidNumber) = 0;
6638
6666 virtual int setSubscribeVideoBlocklist(uid_t* uidList, int uidNumber) = 0;
6667
6694 virtual int setSubscribeVideoAllowlist(uid_t* uidList, int uidNumber) = 0;
6695
6728 virtual int enableAudioVolumeIndication(int interval, int smooth, bool reportVad) = 0;
6729
6750 virtual int startAudioRecording(const char* filePath,
6751 AUDIO_RECORDING_QUALITY_TYPE quality) = 0;
6786 virtual int startAudioRecording(const char* filePath,
6787 int sampleRate,
6788 AUDIO_RECORDING_QUALITY_TYPE quality) = 0;
6789
6808 virtual int startAudioRecording(const AudioRecordingConfiguration& config) = 0;
6809
6826 virtual int registerAudioEncodedFrameObserver(const AudioEncodedFrameObserverConfig& config, IAudioEncodedFrameObserver *observer) = 0;
6827
6835 virtual int stopAudioRecording() = 0;
6836
6850 virtual agora_refptr<IMediaPlayer> createMediaPlayer() = 0;
6851
6861 virtual int destroyMediaPlayer(agora_refptr<IMediaPlayer> media_player) = 0;
6862
6883 virtual agora_refptr<IMediaRecorder> createMediaRecorder(const RecorderStreamInfo& info) = 0;
6884
6899 virtual int destroyMediaRecorder(agora_refptr<IMediaRecorder> mediaRecorder) = 0;
6900
6993 virtual int startAudioMixing(const char* filePath, bool loopback, int cycle) = 0;
6994
7093 virtual int startAudioMixing(const char* filePath, bool loopback, int cycle, int startPos) = 0;
7094
7108 virtual int stopAudioMixing() = 0;
7109
7123 virtual int pauseAudioMixing() = 0;
7124
7137 virtual int resumeAudioMixing() = 0;
7138
7161 virtual int selectAudioTrack(int index) = 0;
7173 virtual int getAudioTrackCount() = 0;
7174
7192 virtual int adjustAudioMixingVolume(int volume) = 0;
7193
7210 virtual int adjustAudioMixingPublishVolume(int volume) = 0;
7211
7226 virtual int getAudioMixingPublishVolume() = 0;
7227
7243 virtual int adjustAudioMixingPlayoutVolume(int volume) = 0;
7244
7259 virtual int getAudioMixingPlayoutVolume() = 0;
7260
7274 virtual int getAudioMixingDuration() = 0;
7275
7294 virtual int getAudioMixingCurrentPosition() = 0;
7295
7312 virtual int setAudioMixingPosition(int pos /*in ms*/) = 0;
7313
7340 virtual int setAudioMixingDualMonoMode(media::AUDIO_MIXING_DUAL_MONO_MODE mode) = 0;
7341
7361 virtual int setAudioMixingPitch(int pitch) = 0;
7362
7381 virtual int setAudioMixingPlaybackSpeed(int speed) = 0;
7382
7396 virtual int getEffectsVolume() = 0;
7410 virtual int setEffectsVolume(int volume) = 0;
7442 virtual int preloadEffect(int soundId, const char* filePath, int startPos = 0) = 0;
7495 virtual int playEffect(int soundId, const char* filePath, int loopCount, double pitch, double pan, int gain, bool publish = false, int startPos = 0) = 0;
7526 virtual int playAllEffects(int loopCount, double pitch, double pan, int gain, bool publish = false) = 0;
7527
7538 virtual int getVolumeOfEffect(int soundId) = 0;
7539
7554 virtual int setVolumeOfEffect(int soundId, int volume) = 0;
7564 virtual int pauseEffect(int soundId) = 0;
7572 virtual int pauseAllEffects() = 0;
7582 virtual int resumeEffect(int soundId) = 0;
7595 virtual int resumeAllEffects() = 0;
7610 virtual int stopEffect(int soundId) = 0;
7623 virtual int stopAllEffects() = 0;
7638 virtual int unloadEffect(int soundId) = 0;
7646 virtual int unloadAllEffects() = 0;
7666 virtual int getEffectDuration(const char* filePath) = 0;
7682 virtual int setEffectPosition(int soundId, int pos) = 0;
7694 virtual int getEffectCurrentPosition(int soundId) = 0;
7711 virtual int enableSoundPositionIndication(bool enabled) = 0;
7712
7742 virtual int setRemoteVoicePosition(uid_t uid, double pan, double gain) = 0;
7743
7764 virtual int enableSpatialAudio(bool enabled) = 0;
7765
7781 virtual int setRemoteUserSpatialAudioParams(uid_t uid, const agora::SpatialAudioParams& params) = 0;
7782
7823 virtual int setVoiceBeautifierPreset(VOICE_BEAUTIFIER_PRESET preset) = 0;
7824
7865 virtual int setAudioEffectPreset(AUDIO_EFFECT_PRESET preset) = 0;
7866
7909 virtual int setVoiceConversionPreset(VOICE_CONVERSION_PRESET preset) = 0;
7910
7985 virtual int setAudioEffectParameters(AUDIO_EFFECT_PRESET preset, int param1, int param2) = 0;
7986
8035 virtual int setVoiceBeautifierParameters(VOICE_BEAUTIFIER_PRESET preset,
8036 int param1, int param2) = 0;
8037
8050 virtual int setVoiceConversionParameters(VOICE_CONVERSION_PRESET preset,
8051 int param1, int param2) = 0;
8052
8066 virtual int setLocalVoicePitch(double pitch) = 0;
8067
8088 virtual int setLocalVoiceFormant(double formantRatio) = 0;
8089
8106 virtual int setLocalVoiceEqualization(AUDIO_EQUALIZATION_BAND_FREQUENCY bandFrequency, int bandGain) = 0;
8107
8125 virtual int setLocalVoiceReverb(AUDIO_REVERB_TYPE reverbKey, int value) = 0;
8143 virtual int setHeadphoneEQPreset(HEADPHONE_EQUALIZER_PRESET preset) = 0;
8144
8163 virtual int setHeadphoneEQParameters(int lowGain, int highGain) = 0;
8164
8183 virtual int enableVoiceAITuner(bool enabled, VOICE_AI_TUNER_TYPE type) = 0;
8184
8201 virtual int setLogFile(const char* filePath) = 0;
8202
8220 virtual int setLogFilter(unsigned int filter) = 0;
8221
8234 virtual int setLogLevel(commons::LOG_LEVEL level) = 0;
8235
8269 virtual int setLogFileSize(unsigned int fileSizeInKBytes) = 0;
8270
8279 virtual int uploadLogFile(agora::util::AString& requestId) = 0;
8280
8296 virtual int writeLog(commons::LOG_LEVEL level, const char* fmt, ...) = 0;
8297
8323 virtual int setLocalRenderMode(media::base::RENDER_MODE_TYPE renderMode, VIDEO_MIRROR_MODE_TYPE mirrorMode) = 0;
8324
8346 virtual int setRemoteRenderMode(uid_t uid, media::base::RENDER_MODE_TYPE renderMode,
8347 VIDEO_MIRROR_MODE_TYPE mirrorMode) = 0;
8368 virtual int setLocalRenderTargetFps(VIDEO_SOURCE_TYPE sourceType, int targetFps) = 0;
8388 virtual int setRemoteRenderTargetFps(int targetFps) = 0;
8389 // The following APIs are either deprecated and going to deleted.
8390
8408 virtual int setLocalRenderMode(media::base::RENDER_MODE_TYPE renderMode) __deprecated = 0;
8409
8419 virtual int setLocalVideoMirrorMode(VIDEO_MIRROR_MODE_TYPE mirrorMode) __deprecated = 0;
8420
8446 virtual int enableDualStreamMode(bool enabled) __deprecated = 0;
8447
8477 virtual int enableDualStreamMode(bool enabled, const SimulcastStreamConfig& streamConfig) __deprecated = 0;
8478
8479
8511 virtual int setDualStreamMode(SIMULCAST_STREAM_MODE mode) = 0;
8512
8531 virtual int setSimulcastConfig(const SimulcastConfig& simulcastConfig) = 0;
8532
8573 virtual int setDualStreamMode(SIMULCAST_STREAM_MODE mode, const SimulcastStreamConfig& streamConfig) = 0;
8574
8597 virtual int enableCustomAudioLocalPlayback(track_id_t trackId, bool enabled) = 0;
8598
8621 virtual int setRecordingAudioFrameParameters(int sampleRate, int channel,
8622 RAW_AUDIO_FRAME_OP_MODE_TYPE mode,
8623 int samplesPerCall) = 0;
8624
8647 virtual int setPlaybackAudioFrameParameters(int sampleRate, int channel,
8648 RAW_AUDIO_FRAME_OP_MODE_TYPE mode,
8649 int samplesPerCall) = 0;
8650
8672 virtual int setMixedAudioFrameParameters(int sampleRate, int channel, int samplesPerCall) = 0;
8673
8703 virtual int setEarMonitoringAudioFrameParameters(int sampleRate, int channel,
8704 RAW_AUDIO_FRAME_OP_MODE_TYPE mode,
8705 int samplesPerCall) = 0;
8706
8725 virtual int setPlaybackAudioFrameBeforeMixingParameters(int sampleRate, int channel) = 0;
8726
8748 virtual int setPlaybackAudioFrameBeforeMixingParameters(int sampleRate, int channel, int samplesPerCall) = 0;
8749
8768 virtual int enableAudioSpectrumMonitor(int intervalInMS = 100) = 0;
8782 virtual int disableAudioSpectrumMonitor() = 0;
8783
8801 virtual int registerAudioSpectrumObserver(agora::media::IAudioSpectrumObserver * observer) = 0;
8817 virtual int unregisterAudioSpectrumObserver(agora::media::IAudioSpectrumObserver * observer) = 0;
8818
8836 virtual int adjustRecordingSignalVolume(int volume) = 0;
8837
8857 virtual int muteRecordingSignal(bool mute) = 0;
8858
8877 virtual int adjustPlaybackSignalVolume(int volume) = 0;
8878
8898 virtual int adjustUserPlaybackSignalVolume(uid_t uid, int volume) = 0;
8899
8921 virtual int setRemoteSubscribeFallbackOption(STREAM_FALLBACK_OPTIONS option) = 0;
8922
8936 virtual int setHighPriorityUserList(uid_t* uidList, int uidNum, STREAM_FALLBACK_OPTIONS option) = 0;
8937
8958 virtual int enableExtension(const char* provider, const char* extension, const ExtensionInfo& extensionInfo, bool enable = true) = 0;
8959
8973 virtual int setExtensionProperty(const char* provider, const char* extension, const ExtensionInfo& extensionInfo, const char* key, const char* value) = 0;
8974
8989 virtual int getExtensionProperty(const char* provider, const char* extension, const ExtensionInfo& extensionInfo, const char* key, char* value, int buf_len) = 0;
8990
9019 virtual int enableLoopbackRecording(bool enabled, const char* deviceName = NULL) = 0;
9020
9021
9036 virtual int adjustLoopbackSignalVolume(int volume) = 0;
9037
9044 virtual int getLoopbackRecordingVolume() = 0;
9045
9066 virtual int enableInEarMonitoring(bool enabled, int includeAudioFilters) = 0;
9067
9085 virtual int setInEarMonitoringVolume(int volume) = 0;
9086
9087 #if defined(_WIN32) || defined(__linux__) || defined(__ANDROID__)
9088
9111 virtual int loadExtensionProvider(const char* path, bool unload_after_use = false) = 0;
9112 #endif
9113
9133 virtual int setExtensionProviderProperty(const char* provider, const char* key, const char* value) = 0;
9134
9166 virtual int registerExtension(const char* provider, const char* extension, agora::media::MEDIA_SOURCE_TYPE type = agora::media::UNKNOWN_MEDIA_SOURCE) = 0;
9167
9193 virtual int enableExtension(const char* provider, const char* extension, bool enable=true, agora::media::MEDIA_SOURCE_TYPE type = agora::media::UNKNOWN_MEDIA_SOURCE) = 0;
9194
9217 virtual int setExtensionProperty(
9218 const char* provider, const char* extension,
9219 const char* key, const char* value, agora::media::MEDIA_SOURCE_TYPE type = agora::media::UNKNOWN_MEDIA_SOURCE) = 0;
9220
9239 virtual int getExtensionProperty(
9240 const char* provider, const char* extension,
9241 const char* key, char* value, int buf_len, agora::media::MEDIA_SOURCE_TYPE type = agora::media::UNKNOWN_MEDIA_SOURCE) = 0;
9242
9265 virtual int setCameraCapturerConfiguration(const CameraCapturerConfiguration& config) = 0;
9266
9285 virtual video_track_id_t createCustomVideoTrack() = 0;
9286
9294 virtual video_track_id_t createCustomEncodedVideoTrack(const SenderOptions& sender_option) = 0;
9295
9305 virtual int destroyCustomVideoTrack(video_track_id_t video_track_id) = 0;
9306
9315 virtual int destroyCustomEncodedVideoTrack(video_track_id_t video_track_id) = 0;
9316
9317 #if defined(__ANDROID__) || (defined(__APPLE__) && TARGET_OS_IOS) || defined(__OHOS__)
9318
9338 virtual int switchCamera() = 0;
9339
9353 virtual bool isCameraZoomSupported() = 0;
9354
9367 virtual bool isCameraFaceDetectSupported() = 0;
9368
9386 virtual bool isCameraTorchSupported() = 0;
9387
9400 virtual bool isCameraFocusSupported() = 0;
9401
9414 virtual bool isCameraAutoFocusFaceModeSupported() = 0;
9415
9442 virtual int setCameraZoomFactor(float factor) = 0;
9443
9466 virtual int enableFaceDetection(bool enabled) = 0;
9467
9479 virtual float getCameraMaxZoomFactor() = 0;
9480
9498 virtual int setCameraFocusPositionInPreview(float positionX, float positionY) = 0;
9499
9517 virtual int setCameraTorchOn(bool isOn) = 0;
9518
9538 virtual int setCameraAutoFocusFaceModeEnabled(bool enabled) = 0;
9539
9554 virtual bool isCameraExposurePositionSupported() = 0;
9555
9575 virtual int setCameraExposurePosition(float positionXinView, float positionYinView) = 0;
9576
9595 virtual bool isCameraExposureSupported() = 0;
9596
9629 virtual int setCameraExposureFactor(float factor) = 0;
9630
9631 #if defined(__APPLE__)
9632
9644 virtual bool isCameraAutoExposureFaceModeSupported() = 0;
9645
9646
9664 virtual int setCameraAutoExposureFaceModeEnabled(bool enabled) = 0;
9665
9692 virtual int setCameraStabilizationMode(CAMERA_STABILIZATION_MODE mode) = 0;
9693 #endif
9694
9725 virtual int setDefaultAudioRouteToSpeakerphone(bool defaultToSpeaker) = 0;
9726
9755 virtual int setEnableSpeakerphone(bool speakerOn) = 0;
9756
9770 virtual bool isSpeakerphoneEnabled() = 0;
9771
9800 virtual int setRouteInCommunicationMode(int route) = 0;
9801 #endif // __ANDROID__ || (__APPLE__ && TARGET_OS_IOS) || __OHOS__
9802
9803 #if defined(__APPLE__)
9804
9820 virtual bool isCameraCenterStageSupported() = 0;
9821
9859 virtual int enableCameraCenterStage(bool enabled) = 0;
9860 #endif
9861
9862 #if defined(_WIN32) || (defined(__APPLE__) && TARGET_OS_MAC && !TARGET_OS_IPHONE)|| (defined(__linux__) && !defined(__ANDROID__) && !defined(__OHOS__))
9863
9895 virtual IScreenCaptureSourceList* getScreenCaptureSources(const SIZE& thumbSize, const SIZE& iconSize, const bool includeScreen) = 0;
9896 #endif // _WIN32 || (__APPLE__ && !TARGET_OS_IPHONE && TARGET_OS_MAC)
9897 #if (defined(__APPLE__) && TARGET_OS_IOS)
9898
9921 virtual int setAudioSessionOperationRestriction(AUDIO_SESSION_OPERATION_RESTRICTION restriction) = 0;
9922 #endif // __APPLE__ && TARGET_OS_IOS
9923
9924 #if defined(_WIN32) || (defined(__APPLE__) && !TARGET_OS_IPHONE && TARGET_OS_MAC) || (defined(__linux__) && !defined(__ANDROID__) && !defined(__OHOS__))
9925
9962 virtual int startScreenCaptureByDisplayId(int64_t displayId, const Rectangle& regionRect,
9963 const ScreenCaptureParameters& captureParams) = 0;
9964
9965 #endif // __APPLE__ && TARGET_OS_MAC && !TARGET_OS_IPHONE
9966
9967 #if defined(_WIN32)
9968
10007 virtual int startScreenCaptureByScreenRect(const Rectangle& screenRect,
10008 const Rectangle& regionRect,
10009 const ScreenCaptureParameters& captureParams) __deprecated = 0;
10010 #endif
10011
10012 #if defined(__ANDROID__)
10013
10033 virtual int getAudioDeviceInfo(DeviceInfo& deviceInfo) = 0;
10034 #endif // __ANDROID__
10035
10036 #if defined(_WIN32) || (defined(__APPLE__) && TARGET_OS_MAC && !TARGET_OS_IPHONE) || (defined(__linux__) && !defined(__ANDROID__) && !defined(__OHOS__))
10037
10108 virtual int startScreenCaptureByWindowId(int64_t windowId, const Rectangle& regionRect,
10109 const ScreenCaptureParameters& captureParams) = 0;
10110
10131 virtual int setScreenCaptureContentHint(VIDEO_CONTENT_HINT contentHint) = 0;
10132
10151 virtual int updateScreenCaptureRegion(const Rectangle& regionRect) = 0;
10152
10172 virtual int updateScreenCaptureParameters(const ScreenCaptureParameters& captureParams) = 0;
10173 #endif // _WIN32 || (__APPLE__ && !TARGET_OS_IPHONE && TARGET_OS_MAC)
10174
10175 #if defined(__ANDROID__) || (defined(__APPLE__) && TARGET_OS_IOS) || defined(__OHOS__)
10176
10231 virtual int startScreenCapture(const ScreenCaptureParameters2& captureParams) = 0;
10232
10257 virtual int updateScreenCapture(const ScreenCaptureParameters2& captureParams) = 0;
10258
10279 virtual int queryScreenCaptureCapability() = 0;
10280
10308 virtual int queryCameraFocalLengthCapability(agora::rtc::FocalLengthInfo* focalLengthInfos, int& size) = 0;
10309
10310 #if defined(__ANDROID__)
10311
10342 virtual int setExternalMediaProjection(void* mediaProjection) = 0;
10343 #endif
10344 #endif
10345
10346 #if defined(_WIN32) || defined(__APPLE__) || defined(__ANDROID__) || (defined(__linux__) && !defined(__ANDROID__) && !defined (__OHOS__))
10347
10363 virtual int setScreenCaptureScenario(SCREEN_SCENARIO_TYPE screenScenario) = 0;
10364
10379 virtual int stopScreenCapture() = 0;
10380 #endif // _WIN32 || (__APPLE__ && !TARGET_OS_IPHONE && TARGET_OS_MAC) || __ANDROID__
10381
10397 virtual int getCallId(agora::util::AString& callId) = 0;
10398
10415 virtual int rate(const char* callId, int rating, const char* description) = 0; // 0~10
10416
10435 virtual int complain(const char* callId, const char* description) = 0;
10436
10467 virtual int startRtmpStreamWithoutTranscoding(const char* url) = 0;
10468
10502 virtual int startRtmpStreamWithTranscoding(const char* url, const LiveTranscoding& transcoding) = 0;
10503
10520 virtual int updateRtmpTranscoding(const LiveTranscoding& transcoding) = 0;
10521
10578 virtual int startLocalVideoTranscoder(const LocalTranscoderConfiguration& config) = 0;
10596 virtual int updateLocalTranscoderConfiguration(const LocalTranscoderConfiguration& config) = 0;
10597
10617 virtual int stopRtmpStream(const char* url) = 0;
10618
10630 virtual int stopLocalVideoTranscoder() = 0;
10631
10664 virtual int startLocalAudioMixer(const LocalAudioMixerConfiguration& config) = 0;
10665
10685 virtual int updateLocalAudioMixerConfiguration(const LocalAudioMixerConfiguration& config) = 0;
10686
10701 virtual int stopLocalAudioMixer() = 0;
10702
10728 virtual int startCameraCapture(VIDEO_SOURCE_TYPE sourceType, const CameraCapturerConfiguration& config) = 0;
10729
10750 virtual int stopCameraCapture(VIDEO_SOURCE_TYPE sourceType) = 0;
10769 virtual int setCameraDeviceOrientation(VIDEO_SOURCE_TYPE type, VIDEO_ORIENTATION orientation) = 0;
10781 virtual int setScreenCaptureOrientation(VIDEO_SOURCE_TYPE type, VIDEO_ORIENTATION orientation) = 0;
10782
10822 virtual int startScreenCapture(VIDEO_SOURCE_TYPE sourceType, const ScreenCaptureConfiguration& config) = 0;
10823
10842 virtual int stopScreenCapture(VIDEO_SOURCE_TYPE sourceType) = 0;
10843
10853 virtual CONNECTION_STATE_TYPE getConnectionState() = 0;
10854
10855 // The following APIs are not implemented yet.
10856 virtual bool registerEventHandler(IRtcEngineEventHandler* eventHandler) = 0;
10857 virtual bool unregisterEventHandler(IRtcEngineEventHandler* eventHandler) = 0;
10858 virtual int setRemoteUserPriority(uid_t uid, PRIORITY_TYPE userPriority) = 0;
10859
10883 virtual int registerPacketObserver(IPacketObserver* observer) = 0;
10884
10885
10914 virtual int enableEncryption(bool enabled, const EncryptionConfig& config) = 0;
10915
10952 virtual int createDataStream(int* streamId, bool reliable, bool ordered) = 0;
10953
10978 virtual int createDataStream(int* streamId, const DataStreamConfig& config) = 0;
10979
11013 virtual int sendStreamMessage(int streamId, const char* data, size_t length) = 0;
11014
11028 virtual int sendRdtMessage(uid_t uid, RdtStreamType type, const char *data, size_t length) = 0;
11029
11042 virtual int sendMediaControlMessage(uid_t uid, const char* data, size_t length) = 0;
11043
11070 virtual int addVideoWatermark(const RtcImage& watermark) __deprecated = 0;
11071
11119 virtual int addVideoWatermark(const char* watermarkUrl, const WatermarkOptions& options) = 0;
11120
11136 virtual int addVideoWatermark(const WatermarkConfig& configs) = 0;
11137
11154 virtual int removeVideoWatermark(const char* id) = 0;
11155
11163 virtual int clearVideoWatermarks() = 0;
11164
11165 // The following APIs are either deprecated and going to deleted.
11166
11175 virtual int pauseAudio() __deprecated = 0;
11184 virtual int resumeAudio() __deprecated = 0;
11185
11207 virtual int enableWebSdkInteroperability(bool enabled) __deprecated = 0;
11208
11220 virtual int sendCustomReportMessage(const char* id, const char* category, const char* event, const char* label, int value) = 0;
11221
11242 virtual int registerMediaMetadataObserver(IMetadataObserver *observer, IMetadataObserver::METADATA_TYPE type) = 0;
11243
11255 virtual int unregisterMediaMetadataObserver(IMetadataObserver* observer, IMetadataObserver::METADATA_TYPE type) = 0;
11256
11265 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;
11266
11270 virtual int stopAudioFrameDump(const char* channel_id, uid_t uid, const char* location) = 0;
11271
11309 virtual int setAINSMode(bool enabled, AUDIO_AINS_MODE mode) = 0;
11310
11364 virtual int registerLocalUserAccount(const char* appId, const char* userAccount) = 0;
11365
11449 virtual int joinChannelWithUserAccount(const char* token, const char* channelId, const char* userAccount) = 0;
11450
11538 virtual int joinChannelWithUserAccount(const char* token, const char* channelId, const char* userAccount, const ChannelMediaOptions& options) = 0;
11539
11628 virtual int joinChannelWithUserAccountEx(const char* token, const char* channelId,
11629 const char* userAccount, const ChannelMediaOptions& options,
11630 IRtcEngineEventHandler* eventHandler) = 0;
11631
11653 virtual int getUserInfoByUserAccount(const char* userAccount, rtc::UserInfo* userInfo) = 0;
11654
11676 virtual int getUserInfoByUid(uid_t uid, rtc::UserInfo* userInfo) = 0;
11677
11713 virtual int startOrUpdateChannelMediaRelay(const ChannelMediaRelayConfiguration &configuration) = 0;
11714
11735 virtual int stopChannelMediaRelay() = 0;
11736
11752 virtual int pauseAllChannelMediaRelay() = 0;
11753
11768 virtual int resumeAllChannelMediaRelay() = 0;
11769
11787 virtual int setDirectCdnStreamingAudioConfiguration(AUDIO_PROFILE_TYPE profile) = 0;
11788
11812 virtual int setDirectCdnStreamingVideoConfiguration(const VideoEncoderConfiguration& config) = 0;
11813
11846 virtual int startDirectCdnStreaming(IDirectCdnStreamingEventHandler* eventHandler,
11847 const char* publishUrl, const DirectCdnStreamingMediaOptions& options) = 0;
11848
11858 virtual int stopDirectCdnStreaming() = 0;
11859
11873 virtual int updateDirectCdnStreamingMediaOptions(const DirectCdnStreamingMediaOptions& options) = 0;
11874
11908 virtual int startRhythmPlayer(const char* sound1, const char* sound2, const AgoraRhythmPlayerConfig& config) = 0;
11909
11922 virtual int stopRhythmPlayer() = 0;
11923
11948 virtual int configRhythmPlayer(const AgoraRhythmPlayerConfig& config) = 0;
11949
11981 virtual int takeSnapshot(uid_t uid, const char* filePath) = 0;
11982
12007 virtual int takeSnapshot(uid_t uid, const media::SnapshotConfig& config) = 0;
12008
12037 virtual int enableContentInspect(bool enabled, const media::ContentInspectConfig &config) = 0;
12057 virtual int adjustCustomAudioPublishVolume(track_id_t trackId, int volume) = 0;
12058
12078 virtual int adjustCustomAudioPlayoutVolume(track_id_t trackId, int volume) = 0;
12079
12113 virtual int setCloudProxy(CLOUD_PROXY_TYPE proxyType) = 0;
12132 virtual int setLocalAccessPoint(const LocalAccessPointConfiguration& config) = 0;
12133
12150 virtual int setAdvancedAudioOptions(AdvancedAudioOptions& options, int sourceType = 0) = 0;
12151
12172 virtual int setAVSyncSource(const char* channelId, uid_t uid) = 0;
12173
12194 virtual int enableVideoImageSource(bool enable, const ImageTrackOptions& options) = 0;
12195
12213 virtual int64_t getCurrentMonotonicTimeInMs() = 0;
12214
12235 virtual int getNetworkType() = 0;
12236
12250 virtual int setParameters(const char* parameters) = 0;
12251
12281 virtual int startMediaRenderingTracing() = 0;
12282
12306 virtual int enableInstantMediaRendering() = 0;
12307
12320 virtual uint64_t getNtpWallTimeInMs() = 0;
12321
12342 virtual bool isFeatureAvailableOnDevice(FeatureType type) = 0;
12343
12354 virtual int sendAudioMetadata(const char* metadata, size_t length) = 0;
12355
12366 virtual int queryHDRCapability(VIDEO_MODULE_TYPE videoModule, HDR_CAPABILITY& capability) = 0;
12367 };
12368
12369 // The following types are either deprecated or not implmented yet.
12370 enum QUALITY_REPORT_FORMAT_TYPE {
12373 QUALITY_REPORT_JSON = 0,
12376 QUALITY_REPORT_HTML = 1,
12377 };
12378
12382 enum MEDIA_DEVICE_STATE_TYPE {
12386 MEDIA_DEVICE_STATE_IDLE = 0,
12390 MEDIA_DEVICE_STATE_ACTIVE = 1,
12394 MEDIA_DEVICE_STATE_DISABLED = 2,
12395
12399 MEDIA_DEVICE_STATE_PLUGGED_IN = 3,
12400
12404 MEDIA_DEVICE_STATE_NOT_PRESENT = 4,
12408 MEDIA_DEVICE_STATE_UNPLUGGED = 8
12409 };
12410
12411 enum VIDEO_PROFILE_TYPE { // res fps
12413 VIDEO_PROFILE_LANDSCAPE_120P = 0, // 160x120 15
12415 VIDEO_PROFILE_LANDSCAPE_120P_3 = 2, // 120x120 15
12417 VIDEO_PROFILE_LANDSCAPE_180P = 10, // 320x180 15
12419 VIDEO_PROFILE_LANDSCAPE_180P_3 = 12, // 180x180 15
12421 VIDEO_PROFILE_LANDSCAPE_180P_4 = 13, // 240x180 15
12423 VIDEO_PROFILE_LANDSCAPE_240P = 20, // 320x240 15
12425 VIDEO_PROFILE_LANDSCAPE_240P_3 = 22, // 240x240 15
12427 VIDEO_PROFILE_LANDSCAPE_240P_4 = 23, // 424x240 15
12429 VIDEO_PROFILE_LANDSCAPE_360P = 30, // 640x360 15
12431 VIDEO_PROFILE_LANDSCAPE_360P_3 = 32, // 360x360 15
12433 VIDEO_PROFILE_LANDSCAPE_360P_4 = 33, // 640x360 30
12435 VIDEO_PROFILE_LANDSCAPE_360P_6 = 35, // 360x360 30
12437 VIDEO_PROFILE_LANDSCAPE_360P_7 = 36, // 480x360 15
12439 VIDEO_PROFILE_LANDSCAPE_360P_8 = 37, // 480x360 30
12441 VIDEO_PROFILE_LANDSCAPE_360P_9 = 38, // 640x360 15
12443 VIDEO_PROFILE_LANDSCAPE_360P_10 = 39, // 640x360 24
12445 VIDEO_PROFILE_LANDSCAPE_360P_11 = 100, // 640x360 24
12447 VIDEO_PROFILE_LANDSCAPE_480P = 40, // 640x480 15
12449 VIDEO_PROFILE_LANDSCAPE_480P_3 = 42, // 480x480 15
12451 VIDEO_PROFILE_LANDSCAPE_480P_4 = 43, // 640x480 30
12453 VIDEO_PROFILE_LANDSCAPE_480P_6 = 45, // 480x480 30
12455 VIDEO_PROFILE_LANDSCAPE_480P_8 = 47, // 848x480 15
12457 VIDEO_PROFILE_LANDSCAPE_480P_9 = 48, // 848x480 30
12459 VIDEO_PROFILE_LANDSCAPE_480P_10 = 49, // 640x480 10
12461 VIDEO_PROFILE_LANDSCAPE_720P = 50, // 1280x720 15
12463 VIDEO_PROFILE_LANDSCAPE_720P_3 = 52, // 1280x720 30
12465 VIDEO_PROFILE_LANDSCAPE_720P_5 = 54, // 960x720 15
12467 VIDEO_PROFILE_LANDSCAPE_720P_6 = 55, // 960x720 30
12469 VIDEO_PROFILE_LANDSCAPE_1080P = 60, // 1920x1080 15
12471 VIDEO_PROFILE_LANDSCAPE_1080P_3 = 62, // 1920x1080 30
12473 VIDEO_PROFILE_LANDSCAPE_1080P_5 = 64, // 1920x1080 60
12475 VIDEO_PROFILE_LANDSCAPE_1440P = 66, // 2560x1440 30
12477 VIDEO_PROFILE_LANDSCAPE_1440P_2 = 67, // 2560x1440 60
12479 VIDEO_PROFILE_LANDSCAPE_4K = 70, // 3840x2160 30
12481 VIDEO_PROFILE_LANDSCAPE_4K_3 = 72, // 3840x2160 60
12483 VIDEO_PROFILE_PORTRAIT_120P = 1000, // 120x160 15
12485 VIDEO_PROFILE_PORTRAIT_120P_3 = 1002, // 120x120 15
12487 VIDEO_PROFILE_PORTRAIT_180P = 1010, // 180x320 15
12489 VIDEO_PROFILE_PORTRAIT_180P_3 = 1012, // 180x180 15
12491 VIDEO_PROFILE_PORTRAIT_180P_4 = 1013, // 180x240 15
12493 VIDEO_PROFILE_PORTRAIT_240P = 1020, // 240x320 15
12495 VIDEO_PROFILE_PORTRAIT_240P_3 = 1022, // 240x240 15
12497 VIDEO_PROFILE_PORTRAIT_240P_4 = 1023, // 240x424 15
12499 VIDEO_PROFILE_PORTRAIT_360P = 1030, // 360x640 15
12501 VIDEO_PROFILE_PORTRAIT_360P_3 = 1032, // 360x360 15
12503 VIDEO_PROFILE_PORTRAIT_360P_4 = 1033, // 360x640 30
12505 VIDEO_PROFILE_PORTRAIT_360P_6 = 1035, // 360x360 30
12507 VIDEO_PROFILE_PORTRAIT_360P_7 = 1036, // 360x480 15
12509 VIDEO_PROFILE_PORTRAIT_360P_8 = 1037, // 360x480 30
12511 VIDEO_PROFILE_PORTRAIT_360P_9 = 1038, // 360x640 15
12513 VIDEO_PROFILE_PORTRAIT_360P_10 = 1039, // 360x640 24
12515 VIDEO_PROFILE_PORTRAIT_360P_11 = 1100, // 360x640 24
12517 VIDEO_PROFILE_PORTRAIT_480P = 1040, // 480x640 15
12519 VIDEO_PROFILE_PORTRAIT_480P_3 = 1042, // 480x480 15
12521 VIDEO_PROFILE_PORTRAIT_480P_4 = 1043, // 480x640 30
12523 VIDEO_PROFILE_PORTRAIT_480P_6 = 1045, // 480x480 30
12525 VIDEO_PROFILE_PORTRAIT_480P_8 = 1047, // 480x848 15
12527 VIDEO_PROFILE_PORTRAIT_480P_9 = 1048, // 480x848 30
12529 VIDEO_PROFILE_PORTRAIT_480P_10 = 1049, // 480x640 10
12531 VIDEO_PROFILE_PORTRAIT_720P = 1050, // 720x1280 15
12533 VIDEO_PROFILE_PORTRAIT_720P_3 = 1052, // 720x1280 30
12535 VIDEO_PROFILE_PORTRAIT_720P_5 = 1054, // 720x960 15
12537 VIDEO_PROFILE_PORTRAIT_720P_6 = 1055, // 720x960 30
12539 VIDEO_PROFILE_PORTRAIT_1080P = 1060, // 1080x1920 15
12541 VIDEO_PROFILE_PORTRAIT_1080P_3 = 1062, // 1080x1920 30
12543 VIDEO_PROFILE_PORTRAIT_1080P_5 = 1064, // 1080x1920 60
12545 VIDEO_PROFILE_PORTRAIT_1440P = 1066, // 1440x2560 30
12547 VIDEO_PROFILE_PORTRAIT_1440P_2 = 1067, // 1440x2560 60
12549 VIDEO_PROFILE_PORTRAIT_4K = 1070, // 2160x3840 30
12551 VIDEO_PROFILE_PORTRAIT_4K_3 = 1072, // 2160x3840 60
12553 VIDEO_PROFILE_DEFAULT = VIDEO_PROFILE_LANDSCAPE_360P,
12554 };
12555
12556 class AAudioDeviceManager : public agora::util::AutoPtr<IAudioDeviceManager> {
12557 public:
12558 AAudioDeviceManager(IRtcEngine* engine) {
12559 queryInterface(engine, AGORA_IID_AUDIO_DEVICE_MANAGER);
12560 }
12561 };
12562
12563 class AVideoDeviceManager : public agora::util::AutoPtr<IVideoDeviceManager> {
12564 public:
12565 AVideoDeviceManager(IRtcEngine* engine) {
12566 queryInterface(engine, AGORA_IID_VIDEO_DEVICE_MANAGER);
12567 }
12568 };
12569
12570 } // namespace rtc
12571 } // namespace agora
12572
12578 #define getAgoraRtcEngineVersion getAgoraSdkVersion
12579
12581
12584
12595 AGORA_API agora::rtc::IRtcEngine* AGORA_CALL createAgoraRtcEngine();
12596
12598
12599
12606 #define getAgoraRtcEngineErrorDescription getAgoraSdkErrorDescription
12607 #define setAgoraRtcEngineExternalSymbolLoader setAgoraSdkExternalSymbolLoader
agora::rtc::IRtcEngine::setDirectCdnStreamingAudioConfiguration
virtual int setDirectCdnStreamingAudioConfiguration(AUDIO_PROFILE_TYPE profile)=0
Sets the audio profile of the audio streams directly pushed to the CDN by the host.
agora::rtc::IRtcEngine::getErrorDescription
virtual const char * getErrorDescription(int code)=0
Gets the warning or error description.
agora::rtc::IRtcEngine::enableAudioSpectrumMonitor
virtual int enableAudioSpectrumMonitor(int intervalInMS=100)=0
Turns on audio spectrum monitoring.
agora::rtc::IRtcEngine::setSubscribeVideoAllowlist
virtual int setSubscribeVideoAllowlist(uid_t *uidList, int uidNumber)=0
Sets the allowlist of subscriptions for video streams.
agora::rtc::IRtcEngine::adjustRecordingSignalVolume
virtual int adjustRecordingSignalVolume(int volume)=0
Adjusts the capturing signal volume.
agora::rtc::IRtcEngine::enableWebSdkInteroperability
virtual int enableWebSdkInteroperability(bool enabled) __deprecated=0
Enables interoperability with the Agora Web SDK (applicable only in the live streaming.
agora::rtc::IRtcEngine::enableSpatialAudio
virtual int enableSpatialAudio(bool enabled)=0
Enables or disables the spatial audio effect.
agora::rtc::ChannelMediaOptions::publishMediaPlayerAudioTrack
Optional< bool > publishMediaPlayerAudioTrack
Definition: IAgoraRtcEngine.h:1362
agora::rtc::PublisherConfiguration::extraInfo
const char * extraInfo
Definition: IAgoraRtcEngine.h:863
agora::rtc::IRtcEngine::setAVSyncSource
virtual int setAVSyncSource(const char *channelId, uid_t uid)=0
Sets audio-video synchronization for the sender.
agora::VideoLayout
Layout information of a specific sub-video stream within the mixed stream.
Definition: AgoraBase.h:8137
agora::rtc::RtcEngineContext::appId
const char * appId
Definition: IAgoraRtcEngine.h:4076
agora::rtc::IRtcEngine::setSubscribeAudioBlocklist
virtual int setSubscribeAudioBlocklist(uid_t *uidList, int uidNumber)=0
Sets the blocklist of subscriptions for audio streams.
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:3420
agora::rtc::IRtcEngine::enableInEarMonitoring
virtual int enableInEarMonitoring(bool enabled, int includeAudioFilters)=0
Enables in-ear monitoring.
agora::rtc::IRtcEngineEventHandler::onRtmpStreamingEvent
virtual void onRtmpStreamingEvent(const char *url, RTMP_STREAMING_EVENT eventCode)
Reports events during the Media Push.
Definition: IAgoraRtcEngine.h:3189
agora::rtc::IRtcEngineEventHandler::onExtensionErrorWithContext
virtual void onExtensionErrorWithContext(const ExtensionContext &context, int error, const char *message)
Occurs when the extension runs incorrectly.
Definition: IAgoraRtcEngine.h:3644
agora::rtc::LocalVideoStats::regulatedCaptureFrameHeight
int regulatedCaptureFrameHeight
Definition: IAgoraRtcEngine.h:355
agora::rtc::IRtcEngine::setEffectPosition
virtual int setEffectPosition(int soundId, int pos)=0
Sets the playback position of an audio effect file.
agora::rtc::UserInfo
The information of the user.
Definition: AgoraBase.h:7570
agora::rtc::RemoteVideoStats::publishDuration
int publishDuration
Definition: IAgoraRtcEngine.h:655
agora::rtc::FilterEffectOptions
Filter effect options.
Definition: AgoraBase.h:5719
agora::rtc::IRtcEngine::stopDirectCdnStreaming
virtual int stopDirectCdnStreaming()=0
Stops pushing media streams to the CDN directly.
agora::rtc::LastmileProbeResult
Results of the uplink and downlink last-mile network tests.
Definition: AgoraBase.h:5017
agora::rtc::AudioEncodedFrameObserverConfig
Observer settings for the encoded audio.
Definition: AgoraBase.h:6809
agora::rtc::ScreenCaptureParameters
Screen sharing configurations.
Definition: AgoraBase.h:6475
agora::rtc::IRtcEngine::muteAllRemoteVideoStreams
virtual int muteAllRemoteVideoStreams(bool mute)=0
Stops or resumes subscribing to the video streams of all remote users.
agora::rtc::IRtcEngine::setRemoteVideoSubscriptionOptions
virtual int setRemoteVideoSubscriptionOptions(uid_t uid, const VideoSubscriptionOptions &options)=0
Options for subscribing to remote video streams.
agora::rtc::AudioVolumeInfo
The volume information of users.
Definition: AgoraBase.h:3974
agora::rtc::RemoteVideoStats::e2eDelay
int e2eDelay
Definition: IAgoraRtcEngine.h:593
agora::rtc::InjectStreamConfig::audioChannels
int audioChannels
Definition: IAgoraRtcEngine.h:780
agora::rtc::IVideoEffectObject::SAVE
@ SAVE
Definition: IAgoraRtcEngine.h:3899
agora::rtc::LocalVideoStats::regulatedCaptureFrameWidth
int regulatedCaptureFrameWidth
Definition: IAgoraRtcEngine.h:349
agora::rtc::IRtcEngine::pauseEffect
virtual int pauseEffect(int soundId)=0
Pauses a specified audio effect file.
agora::rtc::BeautyOptions
Image enhancement options.
Definition: AgoraBase.h:5396
agora::rtc::ChannelMediaOptions::publishSecondaryCameraTrack
Optional< bool > publishSecondaryCameraTrack
Definition: IAgoraRtcEngine.h:1266
agora::rtc::SenderOptions
Definition: AgoraBase.h:1342
agora::rtc::IRtcEngine::muteLocalVideoStream
virtual int muteLocalVideoStream(bool mute)=0
Stops or resumes publishing the local video stream.
agora::rtc::RtcEngineContext::eventHandler
IRtcEngineEventHandler * eventHandler
Definition: IAgoraRtcEngine.h:4069
agora::rtc::ChannelMediaOptions::enableMultipath
Optional< bool > enableMultipath
Definition: IAgoraRtcEngine.h:1512
agora::rtc::IRtcEngine::stopPreview
virtual int stopPreview(VIDEO_SOURCE_TYPE sourceType)=0
Stops the local video preview.
agora::rtc::IRtcEngine::startScreenCapture
virtual int startScreenCapture(VIDEO_SOURCE_TYPE sourceType, const ScreenCaptureConfiguration &config)=0
Starts screen capture from the specified video source.
agora::rtc::IRtcEngineEventHandler::onIntraRequestReceived
virtual void onIntraRequestReceived()
Definition: IAgoraRtcEngine.h:2122
agora::rtc::VideoCompositingLayout
Definition: IAgoraRtcEngine.h:670
agora::rtc::VideoCompositingLayout::canvasHeight
int canvasHeight
Definition: IAgoraRtcEngine.h:719
agora::rtc::IRtcEngine::setVoiceConversionPreset
virtual int setVoiceConversionPreset(VOICE_CONVERSION_PRESET preset)=0
Sets a preset voice beautifier effect.
agora::rtc::DirectCdnStreamingStats::videoHeight
int videoHeight
Definition: IAgoraRtcEngine.h:4358
agora::rtc::LastmileProbeConfig
Configurations of the last-mile network test.
Definition: AgoraBase.h:4948
agora::rtc::IRtcEngine::enableLocalVideo
virtual int enableLocalVideo(bool enabled)=0
Enables/Disables the local video capture.
agora::rtc::IRtcEngineEventHandler::onLeaveChannel
virtual void onLeaveChannel(const RtcStats &stats)
Occurs when a user leaves a channel.
Definition: IAgoraRtcEngine.h:1983
agora::rtc::IRtcEngine::joinChannel
virtual int joinChannel(const char *token, const char *channelId, uid_t uid, const ChannelMediaOptions &options)=0
Joins a channel with media options.
agora::rtc::IRtcEngineEventHandler::onRhythmPlayerStateChanged
virtual void onRhythmPlayerStateChanged(RHYTHM_PLAYER_STATE_TYPE state, RHYTHM_PLAYER_REASON reason)
Occurs when the state of virtual metronome changes.
Definition: IAgoraRtcEngine.h:2724
agora::rtc::IDirectCdnStreamingEventHandler::onDirectCdnStreamingStateChanged
virtual void onDirectCdnStreamingStateChanged(DIRECT_CDN_STREAMING_STATE state, DIRECT_CDN_STREAMING_REASON reason, const char *message)
Occurs when the CDN streaming state changes.
Definition: IAgoraRtcEngine.h:4400
agora::rtc::IRtcEngine::getAudioTrackCount
virtual int getAudioTrackCount()=0
Gets the index of audio tracks of the current music file.
agora::rtc::IRtcEngineEventHandler::onStreamMessage
virtual void onStreamMessage(uid_t uid, int streamId, const char *data, size_t length, uint64_t sentTs)
Occurs when the local user receives the data stream from the remote user.
Definition: IAgoraRtcEngine.h:2787
agora::rtc::IRtcEngineEventHandler::onFirstRemoteVideoDecoded
virtual void onFirstRemoteVideoDecoded(uid_t uid, int width, int height, int elapsed) __deprecated
Occurs when the first remote video frame is received and decoded.
Definition: IAgoraRtcEngine.h:2230
agora::rtc::LocalVideoStats::uid
uid_t uid
Definition: IAgoraRtcEngine.h:315
agora::rtc::IRtcEngine::stopChannelMediaRelay
virtual int stopChannelMediaRelay()=0
Stops the media stream relay. Once the relay stops, the host quits all the target channels.
agora::rtc::IRtcEngineEventHandler::onAudioEffectFinished
virtual void onAudioEffectFinished(int soundId)
Occurs when the playback of the local music file finishes.
Definition: IAgoraRtcEngine.h:2057
agora::rtc::IVideoEffectObject::getVideoEffectFloatParam
virtual float getVideoEffectFloatParam(const char *option, const char *key)=0
Retrieves float type parameters in video effects.
agora::rtc::RtcEngineContext::threadPriority
Optional< THREAD_PRIORITY_TYPE > threadPriority
Definition: IAgoraRtcEngine.h:4129
agora::rtc::IRtcEngine::registerAudioEncodedFrameObserver
virtual int registerAudioEncodedFrameObserver(const AudioEncodedFrameObserverConfig &config, IAudioEncodedFrameObserver *observer)=0
Registers an encoded audio observer.
agora::rtc::RemoteAudioStats::frozenTimeByCustom
uint32_t frozenTimeByCustom
Definition: IAgoraRtcEngine.h:517
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
Sets the face shape options and specifies the media source.
agora::rtc::ChannelMediaOptions::enableBuiltInMediaEncryption
Optional< bool > enableBuiltInMediaEncryption
Definition: IAgoraRtcEngine.h:1462
agora::rtc::IRtcEngine::resumeAllEffects
virtual int resumeAllEffects()=0
Resumes playing all audio effect files.
agora::rtc::IRtcEngine::joinChannelWithUserAccountEx
virtual int joinChannelWithUserAccountEx(const char *token, const char *channelId, const char *userAccount, const ChannelMediaOptions &options, IRtcEngineEventHandler *eventHandler)=0
Join a channel using a user account and token, and set the media options.
agora::rtc::InjectStreamConfig::width
int width
Definition: IAgoraRtcEngine.h:753
agora::rtc::IRtcEngine::pauseAudioMixing
virtual int pauseAudioMixing()=0
Pauses playing and mixing the music file.
agora::rtc::IRtcEngine::setPlaybackAudioFrameBeforeMixingParameters
virtual int setPlaybackAudioFrameBeforeMixingParameters(int sampleRate, int channel)=0
Sets the format of the raw audio playback data before mixing.
agora::rtc::IRtcEngineEventHandler::onRemoteAudioTransportStats
virtual void onRemoteAudioTransportStats(uid_t uid, unsigned short delay, unsigned short lost, unsigned short rxKBitRate) __deprecated
Reports the transport-layer statistics of each remote audio stream.
Definition: IAgoraRtcEngine.h:3278
agora::rtc::RemoteAudioStats::totalActiveTime
int totalActiveTime
Definition: IAgoraRtcEngine.h:524
agora::agora_refptr
Definition: AgoraRefPtr.h:44
agora::rtc::IRtcEngineEventHandler::onFirstRemoteAudioFrame
virtual void onFirstRemoteAudioFrame(uid_t uid, int elapsed) __deprecated
Occurs when the SDK receives the first audio frame from a specific remote user.
Definition: IAgoraRtcEngine.h:2980
agora::rtc::IVideoDeviceCollection::release
virtual void release()=0
Releases all the resources occupied by the IVideoDeviceCollection object.
agora::rtc::IVideoDeviceManager::enumerateVideoDevices
virtual IVideoDeviceCollection * enumerateVideoDevices()=0
Enumerates the video devices.
agora::rtc::LeaveChannelOptions::stopAudioMixing
bool stopAudioMixing
Definition: IAgoraRtcEngine.h:1764
agora::rtc::IRtcEngine::getVersion
virtual const char * getVersion(int *build)=0
Gets the SDK version.
agora::rtc::RemoteVideoStats::totalActiveTime
int totalActiveTime
Definition: IAgoraRtcEngine.h:651
agora::rtc::IRtcEngine::setAudioMixingPitch
virtual int setAudioMixingPitch(int pitch)=0
Sets the pitch of the local music file.
agora::rtc::ChannelMediaOptions::publishRhythmPlayerTrack
Optional< bool > publishRhythmPlayerTrack
Definition: IAgoraRtcEngine.h:1469
agora::rtc::ChannelMediaOptions::publishCustomVideoTrack
Optional< bool > publishCustomVideoTrack
Definition: IAgoraRtcEngine.h:1350
agora::rtc::IRtcEngineEventHandler::onLocalVideoStateChanged
virtual void onLocalVideoStateChanged(VIDEO_SOURCE_TYPE source, LOCAL_VIDEO_STREAM_STATE state, LOCAL_VIDEO_STREAM_REASON reason)
Occurs when the local video stream state changes.
Definition: IAgoraRtcEngine.h:2324
agora::media::IAudioSpectrumObserver
Definition: AgoraMediaBase.h:1873
agora::rtc::DirectCdnStreamingStats::videoWidth
int videoWidth
Definition: IAgoraRtcEngine.h:4353
agora::rtc::IMetadataObserver::Metadata::buffer
unsigned char * buffer
Definition: IAgoraRtcEngine.h:4216
agora::rtc::PublisherConfiguration::publishUrl
const char * publishUrl
Definition: IAgoraRtcEngine.h:856
agora::rtc::IRtcEngine::enableVoiceAITuner
virtual int enableVoiceAITuner(bool enabled, VOICE_AI_TUNER_TYPE type)=0
Enables or disables the voice AI tuner.
agora::rtc::ExtensionInfo
Definition: IAgoraRtcEngine.h:4524
agora::rtc::IRtcEngineEventHandler::onVideoRenderingTracingResult
virtual void onVideoRenderingTracingResult(uid_t uid, MEDIA_TRACE_EVENT currentEvent, VideoRenderingTracingInfo tracingInfo)
Video frame rendering event callback.
Definition: IAgoraRtcEngine.h:3441
agora::rtc::ExtensionInfo::remoteUid
uid_t remoteUid
Definition: IAgoraRtcEngine.h:4535
agora::rtc::PublisherConfiguration::lifecycle
int lifecycle
Definition: IAgoraRtcEngine.h:838
agora::rtc::IRtcEngine::startPreview
virtual int startPreview()=0
Enables the local video preview.
agora::rtc::IMetadataObserver::Metadata::timeStampMs
long long timeStampMs
Definition: IAgoraRtcEngine.h:4220
agora::rtc::IRtcEngineEventHandler::onLocalAudioStats
virtual void onLocalAudioStats(const LocalAudioStats &stats)
Reports the statistics of the local audio stream.
Definition: IAgoraRtcEngine.h:2546
agora::rtc::IRtcEngine::setAINSMode
virtual int setAINSMode(bool enabled, AUDIO_AINS_MODE mode)=0
Sets whether to enable the AI ​​noise suppression function and set the noise suppression mode.
agora::rtc::IRtcEngine::updateLocalAudioMixerConfiguration
virtual int updateLocalAudioMixerConfiguration(const LocalAudioMixerConfiguration &config)=0
Updates the configurations for mixing audio streams locally.
agora::rtc::ChannelMediaOptions::autoSubscribeAudio
Optional< bool > autoSubscribeAudio
Definition: IAgoraRtcEngine.h:1394
agora::rtc::IRtcEngineEventHandler::onCameraExposureAreaChanged
virtual void onCameraExposureAreaChanged(int x, int y, int width, int height)
Occurs when the camera exposure area changes.
Definition: IAgoraRtcEngine.h:2625
agora::rtc::LocalAccessPointConfiguration
Configuration for the Local Access Point.
Definition: AgoraBase.h:7872
agora::rtc::IRtcEngineEventHandler::onClientRoleChangeFailed
virtual void onClientRoleChangeFailed(CLIENT_ROLE_CHANGE_FAILED_REASON reason, CLIENT_ROLE_TYPE currentRole)
Occurs when switching a user role fails.
Definition: IAgoraRtcEngine.h:3134
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:1519
agora::rtc::DirectCdnStreamingStats::videoBitrate
int videoBitrate
Definition: IAgoraRtcEngine.h:4368
agora::rtc::IRtcEngineEventHandler::onLastmileQuality
virtual void onLastmileQuality(int quality)
Reports the last-mile network quality of the local user.
Definition: IAgoraRtcEngine.h:2153
agora::rtc::IRtcEngine::enableInstantMediaRendering
virtual int enableInstantMediaRendering()=0
Enables audio and video frame instant rendering.
agora::rtc::IRtcEngine::setRemoteRenderMode
virtual int setRemoteRenderMode(uid_t uid, media::base::RENDER_MODE_TYPE renderMode, VIDEO_MIRROR_MODE_TYPE mirrorMode)=0
Updates the display mode of the video view of a remote user.
agora::rtc::ChannelMediaOptions::isAudioFilterable
Optional< bool > isAudioFilterable
Definition: IAgoraRtcEngine.h:1495
agora::rtc::LiveTranscoding
Transcoding configurations for Media Push.
Definition: AgoraBase.h:4553
agora::rtc::ChannelMediaOptions::audienceLatencyLevel
Optional< AUDIENCE_LATENCY_LEVEL_TYPE > audienceLatencyLevel
Definition: IAgoraRtcEngine.h:1424
agora::rtc::IRtcEngineEventHandler::onRemoteVideoTransportStats
virtual void onRemoteVideoTransportStats(uid_t uid, unsigned short delay, unsigned short lost, unsigned short rxKBitRate) __deprecated
Reports the transport-layer statistics of each remote video stream.
Definition: IAgoraRtcEngine.h:3302
agora::rtc::IVideoEffectObject::VIDEO_EFFECT_ACTION
VIDEO_EFFECT_ACTION
Actions that can be performed on video effect nodes.
Definition: IAgoraRtcEngine.h:3895
agora::rtc::LocalVideoStats::sentFrameRate
int sentFrameRate
Definition: IAgoraRtcEngine.h:325
agora::rtc::Rectangle
The location of the target area relative to the screen or window. If you do not set this parameter,...
Definition: AgoraBase.h:2342
agora::rtc::IRtcEngine::setDirectCdnStreamingVideoConfiguration
virtual int setDirectCdnStreamingVideoConfiguration(const VideoEncoderConfiguration &config)=0
Sets the video profile of the media streams directly pushed to the CDN by the host.
agora::rtc::IRtcEngine::createDataStream
virtual int createDataStream(int *streamId, bool reliable, bool ordered)=0
Creates a data stream.
agora::rtc::IVideoDeviceManager::release
virtual void release()=0
Releases all the resources occupied by the IVideoDeviceManager object.
agora::rtc::IRtcEngine::setVolumeOfEffect
virtual int setVolumeOfEffect(int soundId, int volume)=0
Gets the volume of a specified audio effect file.
agora::rtc::IRtcEngineEventHandler::onUserInfoUpdated
virtual void onUserInfoUpdated(uid_t uid, const UserInfo &info)
Occurs when the SDK gets the user ID and user account of the remote user.
Definition: IAgoraRtcEngine.h:3409
agora::rtc::IRtcEngineEventHandler::onNetworkTypeChanged
virtual void onNetworkTypeChanged(NETWORK_TYPE type)
Occurs when the local network type changes.
Definition: IAgoraRtcEngine.h:3338
agora::rtc::IRtcEngineEventHandler::onFirstRemoteAudioDecoded
virtual void onFirstRemoteAudioDecoded(uid_t uid, int elapsed) __deprecated
Occurs when the SDK decodes the first remote audio frame for playback.
Definition: IAgoraRtcEngine.h:2964
agora::rtc::InjectStreamConfig::videoFramerate
int videoFramerate
Definition: IAgoraRtcEngine.h:765
agora::rtc::IRtcEngine::setDualStreamMode
virtual int setDualStreamMode(SIMULCAST_STREAM_MODE mode, const SimulcastStreamConfig &streamConfig)=0
Sets dual-stream mode configuration on the sender side.
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
Enables the reporting of users' volume indication.
agora::rtc::ChannelMediaOptions::mediaPlayerAudioDelayMs
Optional< int > mediaPlayerAudioDelayMs
Definition: IAgoraRtcEngine.h:1443
agora::rtc::IRtcEngine::updateLocalTranscoderConfiguration
virtual int updateLocalTranscoderConfiguration(const LocalTranscoderConfiguration &config)=0
Updates the local video mixing configuration.
agora::rtc::IMetadataObserver::onReadyToSendMetadata
virtual bool onReadyToSendMetadata(Metadata &metadata, VIDEO_SOURCE_TYPE source_type)=0
Occurs when the SDK is ready to send metadata.
agora::rtc::IRtcEngine::registerPacketObserver
virtual int registerPacketObserver(IPacketObserver *observer)=0
Registers a packet observer.
agora::rtc::RemoteAudioStats::networkTransportDelay
int networkTransportDelay
Definition: IAgoraRtcEngine.h:447
agora::rtc::IRtcEngine::unregisterMediaMetadataObserver
virtual int unregisterMediaMetadataObserver(IMetadataObserver *observer, IMetadataObserver::METADATA_TYPE type)=0
Unregisters the specified metadata observer.
agora::rtc::IRtcEngineEventHandler::onLocalVideoTranscoderError
virtual void onLocalVideoTranscoderError(const TranscodingVideoStream &stream, VIDEO_TRANSCODER_ERROR error)
Occurs when there's an error during the local video mixing.
Definition: IAgoraRtcEngine.h:3459
agora::rtc::IRtcEngine::getUserInfoByUid
virtual int getUserInfoByUid(uid_t uid, rtc::UserInfo *userInfo)=0
Gets the user information by passing in the user ID.
agora::rtc::IRtcEngine::pauseAllEffects
virtual int pauseAllEffects()=0
Pauses all audio effects.
agora::rtc::IRtcEngine::disableAudioSpectrumMonitor
virtual int disableAudioSpectrumMonitor()=0
Disables audio spectrum monitoring.
agora::rtc::IVideoEffectObject::VIDEO_EFFECT_NODE_ID::STYLE_MAKEUP
@ STYLE_MAKEUP
agora::rtc::IRtcEngineEventHandler::onFirstLocalAudioFramePublished
virtual void onFirstLocalAudioFramePublished(int elapsed)
Occurs when the first audio frame is published.
Definition: IAgoraRtcEngine.h:2939
agora::util::AutoPtr
Definition: AgoraBase.h:100
agora::rtc::LocalVideoStats::sentBitrate
int sentBitrate
Definition: IAgoraRtcEngine.h:320
agora::rtc::IRtcEngine::getAudioMixingPublishVolume
virtual int getAudioMixingPublishVolume()=0
Retrieves the audio mixing volume for publishing.
agora::rtc::IRtcEngine::addVideoWatermark
virtual int addVideoWatermark(const char *watermarkUrl, const WatermarkOptions &options)=0
Adds a watermark image to the local video.
agora::rtc::IRtcEngineEventHandler::onRejoinChannelSuccess
virtual void onRejoinChannelSuccess(const char *channel, uid_t uid, int elapsed)
Occurs when a user rejoins the channel.
Definition: IAgoraRtcEngine.h:1837
agora::rtc::ImageTrackOptions::fps
int fps
Definition: IAgoraRtcEngine.h:1235
agora::rtc::RemoteVideoStats::totalFrozenTime
int totalFrozenTime
Definition: IAgoraRtcEngine.h:634
agora::rtc::IRtcEngineEventHandler::onMultipathStats
virtual void onMultipathStats(const MultipathStats &stats)
Report the multipath transmission statistics.
Definition: IAgoraRtcEngine.h:3668
agora::rtc::IMetadataObserver::METADATA_TYPE
METADATA_TYPE
Metadata type of the observer. We only support video metadata for now.
Definition: IAgoraRtcEngine.h:4174
agora::rtc::IRtcEngine::stopLocalVideoTranscoder
virtual int stopLocalVideoTranscoder()=0
Stops the local video mixing.
agora::rtc::IRtcEngine::setCloudProxy
virtual int setCloudProxy(CLOUD_PROXY_TYPE proxyType)=0
Sets up cloud proxy service.
agora::rtc::RemoteAudioStats::receivedBitrate
int receivedBitrate
Definition: IAgoraRtcEngine.h:469
agora::rtc::VideoEncoderConfiguration
Video encoder configurations.
Definition: AgoraBase.h:2057
agora::rtc::IMetadataObserver::Metadata::channelId
const char * channelId
Definition: IAgoraRtcEngine.h:4202
agora::rtc::IRtcEngineEventHandler
Definition: IAgoraRtcEngine.h:1791
agora::rtc::VideoCompositingLayout::Region::height
double height
Definition: IAgoraRtcEngine.h:686
agora::rtc::IRtcEngine::leaveChannel
virtual int leaveChannel(const LeaveChannelOptions &options)=0
Sets channel options and leaves the channel.
agora::rtc::IVideoDeviceManager::getDevice
virtual int getDevice(char deviceIdUTF8[MAX_DEVICE_ID_LENGTH])=0
Retrieves the current video capture device.
agora::rtc::IRtcEngine::startAudioMixing
virtual int startAudioMixing(const char *filePath, bool loopback, int cycle, int startPos)=0
Starts playing the music file.
agora::rtc::IRtcEngineEventHandler::onUserMuteAudio
virtual void onUserMuteAudio(uid_t uid, bool muted)
Occurs when a remote user (in the communication profile) or a host (in the live streaming profile) st...
Definition: IAgoraRtcEngine.h:2444
agora::rtc::ChannelMediaOptions::publishCustomAudioTrackId
Optional< int > publishCustomAudioTrackId
Definition: IAgoraRtcEngine.h:1344
agora::rtc::VideoSubscriptionOptions
Video subscription options.
Definition: AgoraBase.h:1705
agora::rtc::IRtcEngine::registerLocalUserAccount
virtual int registerLocalUserAccount(const char *appId, const char *userAccount)=0
Registers a user account.
agora::rtc::IRtcEngineEventHandler::onUplinkNetworkInfoUpdated
virtual void onUplinkNetworkInfoUpdated(const UplinkNetworkInfo &info)
Occurs when the uplink network information changes.
Definition: IAgoraRtcEngine.h:2136
agora::rtc::DirectCdnStreamingMediaOptions::publishMicrophoneTrack
Optional< bool > publishMicrophoneTrack
Definition: IAgoraRtcEngine.h:4438
agora::rtc::EchoTestConfiguration
The configuration of the audio and video call loop test.
Definition: AgoraBase.h:7512
agora::rtc::RtcImage
Image properties.
Definition: AgoraBase.h:4358
agora::rtc::VideoCompositingLayout::backgroundColor
const char * backgroundColor
Definition: IAgoraRtcEngine.h:722
agora::rtc::IRtcEngine::getAudioMixingCurrentPosition
virtual int getAudioMixingCurrentPosition()=0
Retrieves the playback position (ms) of the music file.
agora::rtc::IRtcEngine::startDirectCdnStreaming
virtual int startDirectCdnStreaming(IDirectCdnStreamingEventHandler *eventHandler, const char *publishUrl, const DirectCdnStreamingMediaOptions &options)=0
Starts pushing media streams to the CDN directly.
agora::rtc::IRtcEngine::registerAudioSpectrumObserver
virtual int registerAudioSpectrumObserver(agora::media::IAudioSpectrumObserver *observer)=0
Registers an audio spectrum observer.
agora::rtc::LocalVideoStats::encodedBitrate
int encodedBitrate
Definition: IAgoraRtcEngine.h:390
agora::rtc::LocalVideoStats::qualityAdaptIndication
QUALITY_ADAPT_INDICATION qualityAdaptIndication
Definition: IAgoraRtcEngine.h:385
agora::rtc::IRtcEngine::enableDualStreamMode
virtual int enableDualStreamMode(bool enabled, const SimulcastStreamConfig &streamConfig) __deprecated=0
Sets the dual-stream mode on the sender side and the low-quality video stream.
agora::rtc::ChannelMediaOptions::customVideoTrackId
Optional< video_track_id_t > customVideoTrackId
Definition: IAgoraRtcEngine.h:1487
agora::rtc::SimulcastStreamConfig
The configuration of the low-quality video stream.
Definition: AgoraBase.h:2230
agora::rtc::IRtcEngineEventHandler::onConnectionInterrupted
virtual void onConnectionInterrupted() __deprecated
Occurs when the connection between the SDK and the server is interrupted.
Definition: IAgoraRtcEngine.h:2761
agora::rtc::IRtcEngine::setMixedAudioFrameParameters
virtual int setMixedAudioFrameParameters(int sampleRate, int channel, int samplesPerCall)=0
Sets the format of the raw audio data after mixing for audio capture and playback.
agora::rtc::IRtcEngine::getVolumeOfEffect
virtual int getVolumeOfEffect(int soundId)=0
Gets the volume of a specified audio effect file.
agora::rtc::IMetadataObserver::getMaxMetadataSize
virtual int getMaxMetadataSize()
Occurs when the SDK requests the maximum size of the metadata.
Definition: IAgoraRtcEngine.h:4237
agora::rtc::FaceShapeBeautyOptions
The facial enhancement style options.
Definition: AgoraBase.h:5675
agora::rtc::IRtcEngine::setSubscribeAudioAllowlist
virtual int setSubscribeAudioAllowlist(uid_t *uidList, int uidNumber)=0
Sets the allowlist of subscriptions for audio streams.
agora::rtc::IRtcEngine::getConnectionState
virtual CONNECTION_STATE_TYPE getConnectionState()=0
Gets the current connection state of the SDK.
agora::rtc::ExtensionInfo::channelId
const char * channelId
Definition: IAgoraRtcEngine.h:4548
agora::rtc::IRtcEngine::adjustUserPlaybackSignalVolume
virtual int adjustUserPlaybackSignalVolume(uid_t uid, int volume)=0
Adjusts the playback signal volume of a specified remote user.
agora::rtc::IRtcEngine::isFeatureAvailableOnDevice
virtual bool isFeatureAvailableOnDevice(FeatureType type)=0
Checks whether the device supports the specified advanced feature.
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
Sets the properties of the extension.
agora::rtc::IRtcEngine::enableEncryption
virtual int enableEncryption(bool enabled, const EncryptionConfig &config)=0
Enables or disables the built-in encryption.
agora::rtc::IRtcEngine::getFaceShapeBeautyOptions
virtual int getFaceShapeBeautyOptions(FaceShapeBeautyOptions &options, agora::media::MEDIA_SOURCE_TYPE type=agora::media::PRIMARY_CAMERA_SOURCE)=0
Gets the beauty effect options.
agora::rtc::IRtcEngine::enableContentInspect
virtual int enableContentInspect(bool enabled, const media::ContentInspectConfig &config)=0
Enables or disables video screenshot and upload.
agora::rtc::IRtcEngineEventHandler::onRemoteAudioStateChanged
virtual void onRemoteAudioStateChanged(uid_t uid, REMOTE_AUDIO_STATE state, REMOTE_AUDIO_STATE_REASON reason, int elapsed)
Occurs when the remote audio state changes.
Definition: IAgoraRtcEngine.h:3025
agora::rtc::IRtcEngine::startRhythmPlayer
virtual int startRhythmPlayer(const char *sound1, const char *sound2, const AgoraRhythmPlayerConfig &config)=0
Enables the virtual metronome.
agora::rtc::IRtcEngine::configRhythmPlayer
virtual int configRhythmPlayer(const AgoraRhythmPlayerConfig &config)=0
Configures the virtual metronome.
agora::rtc::IRtcEngine::setPlaybackAudioFrameBeforeMixingParameters
virtual int setPlaybackAudioFrameBeforeMixingParameters(int sampleRate, int channel, int samplesPerCall)=0
Sets the format of audio data in the onPlaybackAudioFrameBeforeMixing callback.
agora::rtc::ExtensionContext
The context information of the extension.
Definition: AgoraMediaBase.h:41
agora::rtc::IVideoEffectObject::VIDEO_EFFECT_NODE_ID
VIDEO_EFFECT_NODE_ID
Types of applicable video effect nodes.
Definition: IAgoraRtcEngine.h:3875
agora::rtc::IRtcEngine::adjustAudioMixingPublishVolume
virtual int adjustAudioMixingPublishVolume(int volume)=0
Adjusts the volume of audio mixing for publishing.
agora::rtc::DirectCdnStreamingMediaOptions::publishCameraTrack
Optional< bool > publishCameraTrack
Definition: IAgoraRtcEngine.h:4432
agora::rtc::IVideoDeviceCollection::getCount
virtual int getCount()=0
Gets the total number of the indexed video devices in the system.
agora::rtc::IVideoEffectObject::VIDEO_EFFECT_NODE_ID::FILTER
@ FILTER
agora::rtc::IRtcEngine::getAudioMixingDuration
virtual int getAudioMixingDuration()=0
Retrieves the duration (ms) of the music file.
agora::rtc::IRtcEngine::adjustCustomAudioPlayoutVolume
virtual int adjustCustomAudioPlayoutVolume(track_id_t trackId, int volume)=0
Adjusts the volume of the custom audio track played locally.
agora::rtc::IRtcEngine::destroyMediaRecorder
virtual int destroyMediaRecorder(agora_refptr< IMediaRecorder > mediaRecorder)=0
Destroys an audio and video recording object.
agora::rtc::RemoteAudioStats::frozenRateByCustomPlcCount
uint32_t frozenRateByCustomPlcCount
Definition: IAgoraRtcEngine.h:501
agora::rtc::ScreenCaptureConfiguration::params
ScreenCaptureParameters params
Definition: IAgoraRtcEngine.h:1018
agora::rtc::IRtcEngineEventHandler::onVideoDeviceStateChanged
virtual void onVideoDeviceStateChanged(const char *deviceId, int deviceType, int deviceState)
Occurs when the video device state changes.
Definition: IAgoraRtcEngine.h:2074
agora::rtc::IMetadataObserver
Definition: IAgoraRtcEngine.h:4166
agora::rtc::VideoCompositingLayout::appData
const char * appData
Definition: IAgoraRtcEngine.h:732
agora::rtc::IRtcEngineEventHandler::onLocalVideoEvent
virtual void onLocalVideoEvent(VIDEO_SOURCE_TYPE source, LOCAL_VIDEO_EVENT_TYPE event)
Occurs when the local video event occurs.
Definition: IAgoraRtcEngine.h:2268
agora::rtc::IVideoEffectObject::setVideoEffectBoolParam
virtual int setVideoEffectBoolParam(const char *option, const char *key, bool param)=0
Sets the boolean parameter for video effects.
agora::rtc::RemoteAudioStats::totalFrozenTime
int totalFrozenTime
Definition: IAgoraRtcEngine.h:474
agora::rtc::IVideoEffectObject::setVideoEffectFloatParam
virtual int setVideoEffectFloatParam(const char *option, const char *key, float param)=0
Sets the float parameter for video effects.
agora::rtc::IRtcEngineEventHandler::onAudioMixingPositionChanged
virtual void onAudioMixingPositionChanged(int64_t position)
Reports the playback progress of a music file.
Definition: IAgoraRtcEngine.h:2031
agora::rtc::IRtcEngine::setRemoteVoicePosition
virtual int setRemoteVoicePosition(uid_t uid, double pan, double gain)=0
Sets the 2D position (the position on the horizontal plane) of the remote user's voice.
agora::rtc::IRtcEngine::registerMediaMetadataObserver
virtual int registerMediaMetadataObserver(IMetadataObserver *observer, IMetadataObserver::METADATA_TYPE type)=0
Registers the metadata observer.
agora::rtc::ColorEnhanceOptions
The color enhancement options.
Definition: AgoraBase.h:5862
agora::rtc::PublisherConfiguration::defaultLayout
int defaultLayout
Definition: IAgoraRtcEngine.h:835
agora::rtc::IRtcEngineEventHandler::onTranscodingUpdated
virtual void onTranscodingUpdated()
Occurs when the publisher's transcoding is updated.
Definition: IAgoraRtcEngine.h:3205
agora::rtc::IRtcEngine::updateRtmpTranscoding
virtual int updateRtmpTranscoding(const LiveTranscoding &transcoding)=0
Updates the transcoding configuration.
agora::rtc::ScreenCaptureConfiguration::displayId
int64_t displayId
Definition: IAgoraRtcEngine.h:1004
agora::rtc::RemoteAudioStats::publishDuration
int publishDuration
Definition: IAgoraRtcEngine.h:528
agora::rtc::IRtcEngineEventHandler::onRequestToken
virtual void onRequestToken()
Occurs when the token expires.
Definition: IAgoraRtcEngine.h:2887
agora::rtc::IRtcEngineEventHandler::onError
virtual void onError(int err, const char *msg)
Reports an error during SDK runtime.
Definition: IAgoraRtcEngine.h:1882
agora::rtc::UplinkNetworkInfo
The uplink network information.
Definition: AgoraBase.h:7106
agora::rtc::IRtcEngine::getNtpWallTimeInMs
virtual uint64_t getNtpWallTimeInMs()=0
Gets the current NTP (Network Time Protocol) time.
agora::rtc::IRtcEngine::startRtmpStreamWithoutTranscoding
virtual int startRtmpStreamWithoutTranscoding(const char *url)=0
Starts pushing media streams to a CDN without transcoding.
agora::rtc::VideoCompositingLayout::regionCount
int regionCount
Definition: IAgoraRtcEngine.h:729
agora::rtc::ExtensionInfo::mediaSourceType
agora::media::MEDIA_SOURCE_TYPE mediaSourceType
Definition: IAgoraRtcEngine.h:4528
agora::rtc::IRtcEngineEventHandler::onProxyConnected
virtual void onProxyConnected(const char *channel, uid_t uid, PROXY_TYPE proxyType, const char *localProxyIp, int elapsed)
Reports the proxy connection state.
Definition: IAgoraRtcEngine.h:1862
agora::rtc::IRtcEngineEventHandler::onExtensionEventWithContext
virtual void onExtensionEventWithContext(const ExtensionContext &context, const char *key, const char *value)
The event callback of the extension.
Definition: IAgoraRtcEngine.h:3598
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
Enables or disables extensions.
agora::rtc::IRtcEngineEventHandler::onUserStateChanged
virtual void onUserStateChanged(uid_t uid, REMOTE_USER_STATE state)
Definition: IAgoraRtcEngine.h:2496
agora::rtc::PublisherConfiguration::height
int height
Definition: IAgoraRtcEngine.h:821
agora::rtc::IRtcEngineEventHandler::onAudioMixingFinished
virtual void onAudioMixingFinished() __deprecated
Occurs when the playback of the local music file finishes.
Definition: IAgoraRtcEngine.h:2046
agora::rtc::AVideoDeviceManager
Definition: IAgoraRtcEngine.h:12563
agora::rtc::LocalVideoStats::codecType
VIDEO_CODEC_TYPE codecType
Definition: IAgoraRtcEngine.h:398
agora::rtc::ExtensionInfo::localUid
uid_t localUid
Definition: IAgoraRtcEngine.h:4553
agora::rtc::IRtcEngine::setSubscribeVideoBlocklist
virtual int setSubscribeVideoBlocklist(uid_t *uidList, int uidNumber)=0
Sets the blocklist of subscriptions for video streams.
agora::rtc::LocalTranscoderConfiguration
The configuration of the video mixing on the local client.
Definition: AgoraBase.h:4798
agora::rtc::IRtcEngine::adjustAudioMixingPlayoutVolume
virtual int adjustAudioMixingPlayoutVolume(int volume)=0
Adjusts the volume of audio mixing for local playback.
agora::rtc::IRtcEngine::removeVideoWatermark
virtual int removeVideoWatermark(const char *id)=0
Removes the watermark image from the local video.
agora::rtc::InjectStreamConfig::audioBitrate
int audioBitrate
Definition: IAgoraRtcEngine.h:777
agora::rtc::IRtcEngine::setCameraDeviceOrientation
virtual int setCameraDeviceOrientation(VIDEO_SOURCE_TYPE type, VIDEO_ORIENTATION orientation)=0
Sets the rotation angle of the captured video.
agora::rtc::IRtcEngineEventHandler::onAudioVolumeIndication
virtual void onAudioVolumeIndication(const AudioVolumeInfo *speakers, unsigned int speakerNumber, int totalVolume)
Reports the volume information of users.
Definition: IAgoraRtcEngine.h:1962
agora::rtc::IRtcEngineEventHandler::onStreamMessageError
virtual void onStreamMessageError(uid_t uid, int streamId, int code, int missed, int cached)
Occurs when the local user does not receive the data stream from the remote user.
Definition: IAgoraRtcEngine.h:2812
agora::rtc::IPacketObserver
Definition: AgoraBase.h:4032
agora::rtc::LocalVideoStats::dualStreamEnabled
bool dualStreamEnabled
Definition: IAgoraRtcEngine.h:412
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:542
agora::rtc::ChannelMediaOptions::publishEncodedVideoTrack
Optional< bool > publishEncodedVideoTrack
Definition: IAgoraRtcEngine.h:1356
agora::rtc::IRtcEngine::setDualStreamMode
virtual int setDualStreamMode(SIMULCAST_STREAM_MODE mode)=0
Sets the dual-stream mode on the sender side.
agora::rtc::DirectCdnStreamingStats
The statistics of the current CDN streaming.
Definition: IAgoraRtcEngine.h:4349
agora::rtc::VideoFormat
The format of the video frame.
Definition: AgoraBase.h:3167
agora::rtc::RemoteVideoStats::uid
uid_t uid
Definition: IAgoraRtcEngine.h:580
agora::rtc::IRtcEngineEventHandler::onUserOffline
virtual void onUserOffline(uid_t uid, USER_OFFLINE_REASON_TYPE reason)
Occurs when a remote user (in the communication profile)/ host (in the live streaming profile) leaves...
Definition: IAgoraRtcEngine.h:2422
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
Registers an extension.
agora::rtc::IRtcEngine::stopRtmpStream
virtual int stopRtmpStream(const char *url)=0
Stops pushing media streams to a CDN.
agora::rtc::DataStreamConfig
The configurations for the data stream.
Definition: AgoraBase.h:2185
agora::rtc::IRtcEngineEventHandler::onCameraFocusAreaChanged
virtual void onCameraFocusAreaChanged(int x, int y, int width, int height)
Occurs when the camera focus area changes.
Definition: IAgoraRtcEngine.h:2604
agora::rtc::VideoCompositingLayout::Region::y
double y
Definition: IAgoraRtcEngine.h:680
agora::rtc::IRtcEngine::stopAudioMixing
virtual int stopAudioMixing()=0
Stops playing the music file.
agora::rtc::IVideoEffectObject::RESET
@ RESET
Definition: IAgoraRtcEngine.h:3903
agora::rtc::PublisherConfiguration
Definition: IAgoraRtcEngine.h:813
agora::rtc::IRtcEngineEventHandler::onExtensionStartedWithContext
virtual void onExtensionStartedWithContext(const ExtensionContext &context)
Occurrs when the extension is enabled.
Definition: IAgoraRtcEngine.h:3613
agora::rtc::IRtcEngine::setLogLevel
virtual int setLogLevel(commons::LOG_LEVEL level)=0
Sets the output log level of the SDK.
agora::rtc::RtcEngineContext::logConfig
commons::LogConfig logConfig
Definition: IAgoraRtcEngine.h:4124
agora::rtc::IRtcEngine::setRemoteDefaultVideoStreamType
virtual int setRemoteDefaultVideoStreamType(VIDEO_STREAM_TYPE streamType)=0
Sets the default video stream type to subscribe to.
agora::rtc::LocalAudioMixerConfiguration
The configurations for mixing the lcoal audio.
Definition: AgoraBase.h:4923
agora::rtc::IRtcEngine::setRemoteVideoStreamType
virtual int setRemoteVideoStreamType(uid_t uid, VIDEO_STREAM_TYPE streamType)=0
Sets the video stream type to subscribe to.
agora::rtc::IRtcEngineEventHandler::onUserEnableVideo
virtual void onUserEnableVideo(uid_t uid, bool enabled)
Occurs when a remote user enables or disables the video module.
Definition: IAgoraRtcEngine.h:2486
agora::rtc::IRtcEngineEventHandler::onRtmpStreamingStateChanged
virtual void onRtmpStreamingStateChanged(const char *url, RTMP_STREAM_PUBLISH_STATE state, RTMP_STREAM_PUBLISH_REASON reason)
Occurs when the state of Media Push changes.
Definition: IAgoraRtcEngine.h:3175
agora::rtc::InjectStreamConfig::height
int height
Definition: IAgoraRtcEngine.h:757
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:1280
agora::rtc::IRtcEngine::startRtmpStreamWithTranscoding
virtual int startRtmpStreamWithTranscoding(const char *url, const LiveTranscoding &transcoding)=0
Starts Media Push and sets the transcoding configuration.
agora::rtc::DirectCdnStreamingMediaOptions
The media setting options for the host.
Definition: IAgoraRtcEngine.h:4426
agora::rtc::IRtcEngine::setVideoEncoderConfiguration
virtual int setVideoEncoderConfiguration(const VideoEncoderConfiguration &config)=0
Sets the video encoder configuration.
agora::rtc::AdvancedAudioOptions
The advanced options for audio.
Definition: IAgoraRtcEngine.h:1209
agora::rtc::IRtcEngine::queryCodecCapability
virtual int queryCodecCapability(CodecCapInfo *codecInfo, int &size)=0
Queries the video codec capabilities of the SDK.
agora::rtc::IRtcEngine::stopAllEffects
virtual int stopAllEffects()=0
Stops playing all audio effects.
agora::rtc::IRtcEngine::setLocalRenderMode
virtual int setLocalRenderMode(media::base::RENDER_MODE_TYPE renderMode) __deprecated=0
agora::rtc::IRtcEngine::pauseAllChannelMediaRelay
virtual int pauseAllChannelMediaRelay()=0
Pauses the media stream relay to all target channels.
agora::rtc::LocalVideoStats::captureFrameHeight
int captureFrameHeight
Definition: IAgoraRtcEngine.h:337
agora::rtc::IRtcEngineEventHandler::onAudioQuality
virtual void onAudioQuality(uid_t uid, int quality, unsigned short delay, unsigned short lost) __deprecated
Reports the statistics of the audio stream sent by each remote user.
Definition: IAgoraRtcEngine.h:1905
agora::rtc::IRtcEngine::startAudioMixing
virtual int startAudioMixing(const char *filePath, bool loopback, int cycle)=0
Starts playing the music file.
agora::rtc::IRtcEngine::adjustLoopbackSignalVolume
virtual int adjustLoopbackSignalVolume(int volume)=0
Adjusts the volume of the signal captured by the sound card.
agora::rtc::IRtcEngine::takeSnapshot
virtual int takeSnapshot(uid_t uid, const char *filePath)=0
Takes a snapshot of a video stream.
agora::rtc::RtcEngineContext::license
const char * license
Definition: IAgoraRtcEngine.h:4091
agora::rtc::ScreenCaptureConfiguration::regionRect
Rectangle regionRect
Definition: IAgoraRtcEngine.h:1025
agora::rtc::VideoCompositingLayout::canvasWidth
int canvasWidth
Definition: IAgoraRtcEngine.h:714
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:1776
agora::rtc::PublisherConfiguration::rawStreamUrl
const char * rawStreamUrl
Definition: IAgoraRtcEngine.h:860
agora::rtc::RemoteAudioStats::mosValue
int mosValue
Definition: IAgoraRtcEngine.h:496
agora::rtc::IRtcEngineEventHandler::onRemoteVideoStats
virtual void onRemoteVideoStats(const RemoteVideoStats &stats)
Reports the statistics of the video stream sent by each remote users.
Definition: IAgoraRtcEngine.h:2577
agora::rtc::IRtcEngine::setAudioEffectParameters
virtual int setAudioEffectParameters(AUDIO_EFFECT_PRESET preset, int param1, int param2)=0
Sets parameters for SDK preset audio effects.
agora::rtc::IRtcEngine::setColorEnhanceOptions
virtual int setColorEnhanceOptions(bool enabled, const ColorEnhanceOptions &options, agora::media::MEDIA_SOURCE_TYPE type=agora::media::PRIMARY_CAMERA_SOURCE)=0
Sets color enhancement.
agora::rtc::IRtcEngineEventHandler::onTokenPrivilegeWillExpire
virtual void onTokenPrivilegeWillExpire(const char *token)
Occurs when the token expires in 30 seconds.
Definition: IAgoraRtcEngine.h:2909
agora::rtc::LocalVideoStats::targetFrameRate
int targetFrameRate
Definition: IAgoraRtcEngine.h:380
agora::rtc::DirectCdnStreamingStats::audioBitrate
int audioBitrate
Definition: IAgoraRtcEngine.h:4373
agora::rtc::IRtcEngine::setRemoteSubscribeFallbackOption
virtual int setRemoteSubscribeFallbackOption(STREAM_FALLBACK_OPTIONS option)=0
Sets the fallback option for the subscribed video stream based on the network conditions.
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:4086
agora::rtc::IRtcEngineEventHandler::onRemoteSubscribeFallbackToAudioOnly
virtual void onRemoteSubscribeFallbackToAudioOnly(uid_t uid, bool isFallbackOrRecover)
Occurs when the remote media stream falls back to the audio-only stream due to poor network condition...
Definition: IAgoraRtcEngine.h:3255
agora::rtc::IRtcEngine::setEarMonitoringAudioFrameParameters
virtual int setEarMonitoringAudioFrameParameters(int sampleRate, int channel, RAW_AUDIO_FRAME_OP_MODE_TYPE mode, int samplesPerCall)=0
Sets the format of the in-ear monitoring raw audio data.
agora::rtc::IRtcEngineEventHandler::onContentInspectResult
virtual void onContentInspectResult(media::CONTENT_INSPECT_RESULT result)
Definition: IAgoraRtcEngine.h:3057
agora::rtc::IRtcEngineEventHandler::onAudioDeviceStateChanged
virtual void onAudioDeviceStateChanged(const char *deviceId, int deviceType, int deviceState)
Occurs when the audio device state changes.
Definition: IAgoraRtcEngine.h:2011
agora::rtc::IAudioEncodedFrameObserver
Definition: AgoraBase.h:6826
agora::rtc::ChannelMediaOptions::token
Optional< const char * > token
Definition: IAgoraRtcEngine.h:1454
agora::rtc::ChannelMediaOptions::parameters
Optional< const char * > parameters
Definition: IAgoraRtcEngine.h:1501
agora::rtc::LeaveChannelOptions
The options for leaving a channel.
Definition: IAgoraRtcEngine.h:1758
agora::rtc::IRtcEngineEventHandler::onRemoteAudioStats
virtual void onRemoteAudioStats(const RemoteAudioStats &stats)
Reports the transport-layer statistics of each remote audio stream.
Definition: IAgoraRtcEngine.h:2533
agora::rtc::IRtcEngine::setEffectsVolume
virtual int setEffectsVolume(int volume)=0
Sets the volume of the audio effects.
agora::rtc::IRtcEngine::playAllEffects
virtual int playAllEffects(int loopCount, double pitch, double pan, int gain, bool publish=false)=0
Plays all audio effect files.
agora::rtc::DirectCdnStreamingStats::fps
int fps
Definition: IAgoraRtcEngine.h:4363
agora::rtc::IRtcEngine::stopLastmileProbeTest
virtual int stopLastmileProbeTest()=0
Stops the last mile network probe test.
agora::rtc::ChannelMediaRelayConfiguration
Configuration of cross channel media relay.
Definition: AgoraBase.h:7060
agora::rtc::IRtcEngine::setAdvancedAudioOptions
virtual int setAdvancedAudioOptions(AdvancedAudioOptions &options, int sourceType=0)=0
Sets audio advanced options.
agora::rtc::IRtcEngine::createMediaPlayer
virtual agora_refptr< IMediaPlayer > createMediaPlayer()=0
Creates a media player object.
agora::rtc::IRtcEngine::queryInterface
virtual int queryInterface(INTERFACE_ID_TYPE iid, void **inter)=0
Gets the pointer to the specified interface.
agora::rtc::IVideoDeviceCollection
Definition: IAgoraRtcEngine.h:3694
agora::rtc::IRtcEngine::renewToken
virtual int renewToken(const char *token)=0
Renews the token.
agora::rtc::IRtcEngine::pauseAudio
virtual int pauseAudio() __deprecated=0
agora::rtc::IRtcEngine::setAudioProfile
virtual int setAudioProfile(AUDIO_PROFILE_TYPE profile)=0
Sets audio profiles.
agora::rtc::IRtcEngine::sendStreamMessage
virtual int sendStreamMessage(int streamId, const char *data, size_t length)=0
Sends data stream messages.
agora::rtc::LocalVideoStats::txPacketLossRate
unsigned short txPacketLossRate
Definition: IAgoraRtcEngine.h:403
agora::rtc::IRtcEngineEventHandler::onLocalVideoStats
virtual void onLocalVideoStats(VIDEO_SOURCE_TYPE source, const LocalVideoStats &stats)
Reports the statistics of the local video stream.
Definition: IAgoraRtcEngine.h:2561
agora::rtc::ChannelMediaOptions::publishCustomAudioTrack
Optional< bool > publishCustomAudioTrack
Definition: IAgoraRtcEngine.h:1339
agora::rtc::RemoteVideoStats::avSyncTimeMs
int avSyncTimeMs
Definition: IAgoraRtcEngine.h:645
agora::rtc::IRtcEngine::setFilterEffectOptions
virtual int setFilterEffectOptions(bool enabled, const FilterEffectOptions &options, agora::media::MEDIA_SOURCE_TYPE type=agora::media::PRIMARY_CAMERA_SOURCE)=0
Sets the filter effect options and specifies the media source.
agora::rtc::RtcEngineContext::domainLimit
bool domainLimit
Definition: IAgoraRtcEngine.h:4148
agora::rtc::VideoDenoiserOptions
Video noise reduction options.
Definition: AgoraBase.h:5807
agora::rtc::IRtcEngine::setLocalVideoMirrorMode
virtual int setLocalVideoMirrorMode(VIDEO_MIRROR_MODE_TYPE mirrorMode) __deprecated=0
Sets the local video mirror mode.
agora::rtc::RemoteVideoStats::decoderOutputFrameRate
int decoderOutputFrameRate
Definition: IAgoraRtcEngine.h:612
agora::rtc::RtcEngineContext::context
void * context
Definition: IAgoraRtcEngine.h:4082
agora::rtc::IRtcEngine::stopLocalAudioMixer
virtual int stopLocalAudioMixer()=0
Stops the local audio mixing.
agora::rtc::IRtcEngineEventHandler::onActiveSpeaker
virtual void onActiveSpeaker(uid_t uid)
Occurs when the most active remote speaker is detected.
Definition: IAgoraRtcEngine.h:3049
agora::rtc::RemoteAudioStats::frozenCntByCustom
uint32_t frozenCntByCustom
Definition: IAgoraRtcEngine.h:511
agora::rtc::ChannelMediaOptions::publishCameraTrack
Optional< bool > publishCameraTrack
Definition: IAgoraRtcEngine.h:1260
agora::rtc::RemoteAudioStats::e2eDelay
int e2eDelay
Definition: IAgoraRtcEngine.h:547
agora::rtc::IRtcEngineEventHandler::onFirstLocalVideoFrame
virtual void onFirstLocalVideoFrame(VIDEO_SOURCE_TYPE source, int width, int height, int elapsed)
Occurs when the first local video frame is displayed on the local video view.
Definition: IAgoraRtcEngine.h:2176
agora::rtc::ChannelMediaOptions::clientRoleType
Optional< CLIENT_ROLE_TYPE > clientRoleType
Definition: IAgoraRtcEngine.h:1419
agora::rtc::ChannelMediaOptions::publishThirdCameraTrack
Optional< bool > publishThirdCameraTrack
Definition: IAgoraRtcEngine.h:1273
agora::rtc::IRtcEngineEventHandler::onJoinChannelSuccess
virtual void onJoinChannelSuccess(const char *channel, uid_t uid, int elapsed)
Occurs when a user joins a channel.
Definition: IAgoraRtcEngine.h:1817
agora::rtc::IRtcEngine::startLocalVideoTranscoder
virtual int startLocalVideoTranscoder(const LocalTranscoderConfiguration &config)=0
Starts the local video mixing.
agora::rtc::DirectCdnStreamingMediaOptions::publishMediaPlayerId
Optional< int > publishMediaPlayerId
Definition: IAgoraRtcEngine.h:4461
agora::rtc::ChannelMediaOptions::channelProfile
Optional< CHANNEL_PROFILE_TYPE > channelProfile
Definition: IAgoraRtcEngine.h:1432
agora::rtc::RemoteAudioStats::audioLossRate
int audioLossRate
Definition: IAgoraRtcEngine.h:457
agora::rtc::VideoCompositingLayout::Region::zOrder
int zOrder
Definition: IAgoraRtcEngine.h:690
agora::rtc::IRtcEngine::queryDeviceScore
virtual int queryDeviceScore()=0
Queries device score.
agora::rtc::LocalVideoStats::captureFrameRate
int captureFrameRate
Definition: IAgoraRtcEngine.h:329
agora::rtc::VirtualBackgroundSource
The custom background.
Definition: AgoraBase.h:5892
agora::rtc::IRtcEngine::setParameters
virtual int setParameters(const char *parameters)=0
Provides technical preview functionalities or special customizations by configuring the SDK with JSON...
agora::rtc::IRtcEngine::muteRemoteVideoStream
virtual int muteRemoteVideoStream(uid_t uid, bool mute)=0
Stops or resumes subscribing to the video stream of a specified user.
agora::rtc::IRtcEngine::setLowlightEnhanceOptions
virtual int setLowlightEnhanceOptions(bool enabled, const LowlightEnhanceOptions &options, agora::media::MEDIA_SOURCE_TYPE type=agora::media::PRIMARY_CAMERA_SOURCE)=0
Sets low-light enhancement.
agora::rtc::IVideoDeviceManager
Definition: IAgoraRtcEngine.h:3739
agora::rtc::RemoteVideoStats::frozenRate
int frozenRate
Definition: IAgoraRtcEngine.h:640
agora::rtc::IRtcEngine::getCurrentMonotonicTimeInMs
virtual int64_t getCurrentMonotonicTimeInMs()=0
Gets the current Monotonic Time of the SDK.
agora::rtc::ScreenCaptureConfiguration::windowId
int64_t windowId
Definition: IAgoraRtcEngine.h:1014
agora::rtc::IRtcEngine::enableLocalAudio
virtual int enableLocalAudio(bool enabled)=0
Enables or disables the local audio capture.
agora::rtc::IRtcEngine::setupLocalVideo
virtual int setupLocalVideo(const VideoCanvas &canvas)=0
Initializes the local video view.
agora::rtc::VideoCompositingLayout::appDataLength
int appDataLength
Definition: IAgoraRtcEngine.h:735
agora::rtc::IRtcEngine::setLocalVoiceReverb
virtual int setLocalVoiceReverb(AUDIO_REVERB_TYPE reverbKey, int value)=0
Sets the local voice reverberation.
agora::rtc::IRtcEngine::stopEffect
virtual int stopEffect(int soundId)=0
Stops playing a specified audio effect.
agora::rtc::VideoCompositingLayout::Region::alpha
double alpha
Definition: IAgoraRtcEngine.h:695
agora::rtc::IRtcEngine::enableCustomAudioLocalPlayback
virtual int enableCustomAudioLocalPlayback(track_id_t trackId, bool enabled)=0
Sets whether to enable the local playback of external audio source.
agora::rtc::IVideoEffectObject::addOrUpdateVideoEffect
virtual int addOrUpdateVideoEffect(uint32_t nodeId, const char *templateName)=0
Adds or updates the video effect for the specified node ID and template.
agora::rtc::DirectCdnStreamingMediaOptions::publishCustomVideoTrack
Optional< bool > publishCustomVideoTrack
Definition: IAgoraRtcEngine.h:4450
agora::rtc::ScreenCaptureConfiguration::isCaptureWindow
bool isCaptureWindow
Definition: IAgoraRtcEngine.h:999
agora::rtc::LocalVideoStats::encodedFrameHeight
int encodedFrameHeight
Definition: IAgoraRtcEngine.h:367
agora::rtc::IRtcEngineEventHandler::onAudioMetadataReceived
virtual void onAudioMetadataReceived(uid_t uid, const char *metadata, size_t length)
Definition: IAgoraRtcEngine.h:3581
agora::rtc::IRtcEngine::setLocalVoiceFormant
virtual int setLocalVoiceFormant(double formantRatio)=0
Sets the formant ratio to change the timbre of human voice.
agora::rtc::AdvancedAudioOptions::audioProcessingChannels
Optional< int > audioProcessingChannels
Definition: IAgoraRtcEngine.h:1215
agora::rtc::ImageTrackOptions::imageUrl
const char * imageUrl
Definition: IAgoraRtcEngine.h:1230
agora::rtc::IRtcEngine::getUserInfoByUserAccount
virtual int getUserInfoByUserAccount(const char *userAccount, rtc::UserInfo *userInfo)=0
Gets the user information by passing in the user account.
agora::rtc::IRtcEngine::setLogFile
virtual int setLogFile(const char *filePath)=0
Sets the log file.
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
Enables/Disables the virtual background.
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
Sets the camera capture configuration.
agora::rtc::FaceShapeAreaOptions::FACE_SHAPE_AREA
FACE_SHAPE_AREA
Chooses the specific facial areas that need to be adjusted.
Definition: AgoraBase.h:5472
agora::rtc::RemoteVideoStats::__deprecated
int delay __deprecated
Definition: IAgoraRtcEngine.h:588
agora::rtc::CameraCapturerConfiguration::deviceId
Optional< const char * > deviceId
Definition: IAgoraRtcEngine.h:954
agora::rtc::RemoteAudioStats::quality
int quality
Definition: IAgoraRtcEngine.h:443
agora::rtc::PublisherConfiguration::width
int width
Definition: IAgoraRtcEngine.h:817
agora::rtc::VideoCompositingLayout::Region::width
double width
Definition: IAgoraRtcEngine.h:684
agora::rtc::IRtcEngine::startEchoTest
virtual int startEchoTest(const EchoTestConfiguration &config)=0
Starts an audio device loopback test.
agora::rtc::IRtcEngine::startOrUpdateChannelMediaRelay
virtual int startOrUpdateChannelMediaRelay(const ChannelMediaRelayConfiguration &configuration)=0
Starts relaying media streams across channels or updates channels for media relay.
agora::rtc::IRtcEngineEventHandler::onConnectionBanned
virtual void onConnectionBanned() __deprecated
Occurs when the connection is banned by the Agora server.
Definition: IAgoraRtcEngine.h:2768
agora::rtc::IRtcEngine::getEffectsVolume
virtual int getEffectsVolume()=0
Retrieves the volume of the audio effects.
agora::rtc::IRtcEngineEventHandler::onEncryptionError
virtual void onEncryptionError(ENCRYPTION_ERROR_TYPE errorType)
Reports the built-in encryption errors.
Definition: IAgoraRtcEngine.h:3352
agora::rtc::IRtcEngineEventHandler::onCameraReady
virtual void onCameraReady() __deprecated
Occurs when the camera turns on and is ready to capture the video.
Definition: IAgoraRtcEngine.h:2591
agora::rtc::IRtcEngine::getEffectDuration
virtual int getEffectDuration(const char *filePath)=0
Retrieves the duration of the audio effect file.
agora::rtc::CodecCapInfo
The codec capability of the SDK.
Definition: AgoraBase.h:2019
agora::commons::LogConfig
Configuration of Agora SDK log files.
Definition: IAgoraLog.h:124
agora::rtc::IRtcEngine::setPlaybackAudioFrameParameters
virtual int setPlaybackAudioFrameParameters(int sampleRate, int channel, RAW_AUDIO_FRAME_OP_MODE_TYPE mode, int samplesPerCall)=0
Sets the format of the raw audio playback data.
agora::rtc::IRtcEngine::setLogFileSize
virtual int setLogFileSize(unsigned int fileSizeInKBytes)=0
Sets the log file size.
agora::rtc::IRtcEngineEventHandler::onRenewTokenResult
virtual void onRenewTokenResult(const char *token, RENEW_TOKEN_ERROR_CODE code)
Callback for renewToken call result.
Definition: IAgoraRtcEngine.h:3685
agora::rtc::LeaveChannelOptions::stopAllEffect
bool stopAllEffect
Definition: IAgoraRtcEngine.h:1770
agora::rtc::ChannelMediaOptions::defaultVideoStreamType
Optional< VIDEO_STREAM_TYPE > defaultVideoStreamType
Definition: IAgoraRtcEngine.h:1428
agora::rtc::IRtcEngine::preloadChannelWithUserAccount
virtual int preloadChannelWithUserAccount(const char *token, const char *channelId, const char *userAccount)=0
Preloads a channel with token, channelId, and userAccount.
agora::rtc::RemoteVideoStats::rxVideoBytes
unsigned int rxVideoBytes
Definition: IAgoraRtcEngine.h:667
createAgoraRtcEngine
AGORA_API agora::rtc::IRtcEngine *AGORA_CALL createAgoraRtcEngine()
Creates one IRtcEngine object.
agora::rtc::IRtcEngine::setBeautyEffectOptions
virtual int setBeautyEffectOptions(bool enabled, const BeautyOptions &options, agora::media::MEDIA_SOURCE_TYPE type=agora::media::PRIMARY_CAMERA_SOURCE)=0
Sets the image enhancement options.
agora::rtc::IRtcEngine::startAudioRecording
virtual int startAudioRecording(const AudioRecordingConfiguration &config)=0
agora::rtc::RtcEngineContext::autoRegisterAgoraExtensions
bool autoRegisterAgoraExtensions
Definition: IAgoraRtcEngine.h:4156
agora::rtc::LocalVideoStats
The statistics of the local video stream.
Definition: IAgoraRtcEngine.h:311
agora::rtc::IMetadataObserver::onMetadataReceived
virtual void onMetadataReceived(const Metadata &metadata)=0
Occurs when the local user receives the metadata.
agora::rtc::IRtcEngine::setAudioMixingPlaybackSpeed
virtual int setAudioMixingPlaybackSpeed(int speed)=0
Sets the playback speed of the current audio file.
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.
agora::rtc::MultipathStats
Aggregates statistics of each network path in multipath transmission.
Definition: AgoraBase.h:2695
agora::rtc::IRtcEngine::resumeAllChannelMediaRelay
virtual int resumeAllChannelMediaRelay()=0
Resumes the media stream relay to all target channels.
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:1412
agora::rtc::IDirectCdnStreamingEventHandler
Definition: IAgoraRtcEngine.h:4382
agora::rtc::IRtcEngineEventHandler::onLocalAudioStateChanged
virtual void onLocalAudioStateChanged(LOCAL_AUDIO_STREAM_STATE state, LOCAL_AUDIO_STREAM_REASON reason)
Occurs when the local audio stream state changes.
Definition: IAgoraRtcEngine.h:3001
agora::rtc::IRtcEngine::setRemoteRenderTargetFps
virtual int setRemoteRenderTargetFps(int targetFps)=0
Sets the maximum frame rate for rendering remote video.
agora::rtc::IRtcEngineEventHandler::onAudioSubscribeStateChanged
virtual void onAudioSubscribeStateChanged(const char *channel, uid_t uid, STREAM_SUBSCRIBE_STATE oldState, STREAM_SUBSCRIBE_STATE newState, int elapseSinceLastState)
Occurs when the audio subscribing state changes.
Definition: IAgoraRtcEngine.h:3486
agora::rtc::IRtcEngineEventHandler::onVideoStopped
virtual void onVideoStopped() __deprecated
Occurs when the video stops playing.
Definition: IAgoraRtcEngine.h:2691
agora::rtc::EncryptionConfig
Built-in encryption configurations.
Definition: AgoraBase.h:7286
agora::rtc::IRtcEngine::destroyMediaPlayer
virtual int destroyMediaPlayer(agora_refptr< IMediaPlayer > media_player)=0
Destroys the media player instance.
agora::rtc::LocalVideoStats::simulcastDimensions
VideoDimensions simulcastDimensions[SimulcastConfig::STREAM_LAYER_COUNT_MAX]
Definition: IAgoraRtcEngine.h:421
agora::rtc::IRtcEngine::setAudioMixingPosition
virtual int setAudioMixingPosition(int pos)=0
Sets the audio mixing position.
agora::rtc::ChannelMediaOptions::publishTranscodedVideoTrack
Optional< bool > publishTranscodedVideoTrack
Definition: IAgoraRtcEngine.h:1376
agora::rtc::ChannelMediaOptions::enableAudioRecordingOrPlayout
Optional< bool > enableAudioRecordingOrPlayout
Definition: IAgoraRtcEngine.h:1408
agora::rtc::IRtcEngineEventHandler::onVideoPublishStateChanged
virtual void onVideoPublishStateChanged(VIDEO_SOURCE_TYPE source, const char *channel, STREAM_PUBLISH_STATE oldState, STREAM_PUBLISH_STATE newState, int elapseSinceLastState)
Occurs when the video publishing state changes.
Definition: IAgoraRtcEngine.h:3538
agora::rtc::RemoteVideoStats::receivedBitrate
int receivedBitrate
Definition: IAgoraRtcEngine.h:605
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:2833
agora::rtc::RemoteAudioStats
Audio statistics of the remote user.
Definition: IAgoraRtcEngine.h:435
agora::rtc::TranscodingVideoStream
The video streams for local video mixing.
Definition: AgoraBase.h:4721
agora::rtc::IMetadataObserver::MAX_METADATA_SIZE_TYPE
MAX_METADATA_SIZE_TYPE
Definition: IAgoraRtcEngine.h:4188
agora::rtc::IRtcEngine::enableVideoImageSource
virtual int enableVideoImageSource(bool enable, const ImageTrackOptions &options)=0
Sets whether to replace the current video feeds with images when publishing video streams.
agora::rtc::LocalVideoStats::encoderOutputFrameRate
int encoderOutputFrameRate
Definition: IAgoraRtcEngine.h:359
agora::rtc::IRtcEngine::unregisterAudioSpectrumObserver
virtual int unregisterAudioSpectrumObserver(agora::media::IAudioSpectrumObserver *observer)=0
Unregisters the audio spectrum observer.
agora::rtc::IVideoEffectObject::performVideoEffectAction
virtual int performVideoEffectAction(uint32_t nodeId, VIDEO_EFFECT_ACTION actionId)=0
Performs an action on the specified video effect node.
agora::rtc::IRtcEngine::setupRemoteVideo
virtual int setupRemoteVideo(const VideoCanvas &canvas)=0
Initializes the video view of a remote user.
agora::rtc::IRtcEngineEventHandler::onLastmileProbeResult
virtual void onLastmileProbeResult(const LastmileProbeResult &result)
Reports the last mile network probe result.
Definition: IAgoraRtcEngine.h:1922
agora::rtc::IVideoDeviceManager::startDeviceTest
virtual int startDeviceTest(view_t hwnd)=0
agora::rtc::IRtcEngine::addVideoWatermark
virtual int addVideoWatermark(const RtcImage &watermark) __deprecated=0
Adds a watermark image to the local video.
agora::rtc::IVideoEffectObject::getVideoEffectBoolParam
virtual bool getVideoEffectBoolParam(const char *option, const char *key)=0
Gets the boolean parameter in video effects.
agora::rtc::IRtcEngineEventHandler::onConnectionLost
virtual void onConnectionLost()
Occurs when the SDK cannot reconnect to Agora's edge server 10 seconds after its connection to the se...
Definition: IAgoraRtcEngine.h:2741
agora::rtc::IRtcEngineEventHandler::onUserMuteVideo
virtual void onUserMuteVideo(uid_t uid, bool muted)
Occurs when a remote user stops or resumes publishing the video stream.
Definition: IAgoraRtcEngine.h:2466
agora::rtc::PublisherConfiguration::owner
bool owner
Definition: IAgoraRtcEngine.h:843
agora::rtc::IRtcEngine::setInEarMonitoringVolume
virtual int setInEarMonitoringVolume(int volume)=0
Sets the volume of the in-ear monitor.
agora::rtc::IRtcEngine::enableSoundPositionIndication
virtual int enableSoundPositionIndication(bool enabled)=0
Enables or disables stereo panning for remote users.
agora::rtc::VideoCompositingLayout::regions
const Region * regions
Definition: IAgoraRtcEngine.h:726
agora::rtc::IRtcEngine::stopCameraCapture
virtual int stopCameraCapture(VIDEO_SOURCE_TYPE sourceType)=0
Stops camera capture.
agora::rtc::ChannelMediaOptions::publishMediaPlayerVideoTrack
Optional< bool > publishMediaPlayerVideoTrack
Definition: IAgoraRtcEngine.h:1368
agora::rtc::IRtcEngine::stopPreview
virtual int stopPreview()=0
Stops the local video preview.
agora::rtc::RemoteVideoStats::mosValue
int mosValue
Definition: IAgoraRtcEngine.h:663
agora::rtc::IVideoEffectObject::setVideoEffectIntParam
virtual int setVideoEffectIntParam(const char *option, const char *key, int param)=0
Sets an integer parameter for video effects.
agora::rtc::WatermarkConfig
Used to configure watermark-related information.
Definition: AgoraBase.h:2586
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:4466
agora::rtc::IRtcEngineEventHandler::onVideoSizeChanged
virtual void onVideoSizeChanged(VIDEO_SOURCE_TYPE sourceType, uid_t uid, int width, int height, int rotation)
Occurs when the video size or rotation of a specified user changes.
Definition: IAgoraRtcEngine.h:2249
agora::rtc::IRtcEngine::muteRecordingSignal
virtual int muteRecordingSignal(bool mute)=0
Whether to mute the recording signal.
agora::rtc::IRtcEngineEventHandler::onLocalUserRegistered
virtual void onLocalUserRegistered(uid_t uid, const char *userAccount)
Occurs when the local user registers a user account.
Definition: IAgoraRtcEngine.h:3392
agora::rtc::LocalVideoStats::encodedFrameWidth
int encodedFrameWidth
Definition: IAgoraRtcEngine.h:363
agora::rtc::RtcStats
Statistics of a call session.
Definition: AgoraBase.h:2742
agora::rtc::LowlightEnhanceOptions
The low-light enhancement options.
Definition: AgoraBase.h:5753
agora::rtc::IRtcEngine::setVoiceBeautifierParameters
virtual int setVoiceBeautifierParameters(VOICE_BEAUTIFIER_PRESET preset, int param1, int param2)=0
Sets parameters for the preset voice beautifier effects.
agora::rtc::IRtcEngine::muteRemoteAudioStream
virtual int muteRemoteAudioStream(uid_t uid, bool mute)=0
Stops or resumes subscribing to the audio stream of a specified user.
agora::rtc::IRtcEngine::setVideoDenoiserOptions
virtual int setVideoDenoiserOptions(bool enabled, const VideoDenoiserOptions &options, agora::media::MEDIA_SOURCE_TYPE type=agora::media::PRIMARY_CAMERA_SOURCE)=0
Sets video noise reduction.
agora::rtc::IRtcEngineEventHandler::onSnapshotTaken
virtual void onSnapshotTaken(uid_t uid, const char *filePath, int width, int height, int errCode)
Reports the result of taking a video snapshot.
Definition: IAgoraRtcEngine.h:3083
agora::rtc::IRtcEngine::destroyCustomVideoTrack
virtual int destroyCustomVideoTrack(video_track_id_t video_track_id)=0
Destroys the specified video track.
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:2294
agora::rtc::ChannelMediaOptions::publishLipSyncTrack
Optional< bool > publishLipSyncTrack
Definition: IAgoraRtcEngine.h:1388
agora::rtc::IRtcEngineEventHandler::onFirstRemoteVideoFrame
virtual void onFirstRemoteVideoFrame(uid_t uid, int width, int height, int elapsed)
Occurs when the renderer receives the first frame of the remote video.
Definition: IAgoraRtcEngine.h:2367
agora::rtc::IRtcEngine::adjustAudioMixingVolume
virtual int adjustAudioMixingVolume(int volume)=0
Adjusts the volume during audio mixing.
agora::rtc::WatermarkOptions
Watermark image configurations.
Definition: AgoraBase.h:2408
agora::rtc::LocalAudioStats
Local audio statistics.
Definition: AgoraBase.h:4166
agora::rtc::IRtcEngine::setLocalRenderTargetFps
virtual int setLocalRenderTargetFps(VIDEO_SOURCE_TYPE sourceType, int targetFps)=0
Sets the maximum frame rate for rendering local video.
agora::rtc::RecorderStreamInfo
The information about the media streams to be recorded.
Definition: AgoraBase.h:7942
agora::rtc::ChannelMediaOptions::publishThirdScreenTrack
Optional< bool > publishThirdScreenTrack
Definition: IAgoraRtcEngine.h:1324
agora::rtc::IRtcEngineEventHandler::onAudioDeviceVolumeChanged
virtual void onAudioDeviceVolumeChanged(MEDIA_DEVICE_TYPE deviceType, int volume, bool muted)
Reports the volume change of the audio device or app.
Definition: IAgoraRtcEngine.h:3155
agora::rtc::SimulcastConfig
Configure video streams of different quality levels.
Definition: AgoraBase.h:2258
agora::rtc::IRtcEngine::leaveChannel
virtual int leaveChannel()=0
Leaves a channel.
agora::rtc::IRtcEngine::setAudioScenario
virtual int setAudioScenario(AUDIO_SCENARIO_TYPE scenario)=0
Sets audio scenarios.
agora::rtc::IRtcEngine::setClientRole
virtual int setClientRole(CLIENT_ROLE_TYPE role)=0
Sets the client role.
agora::rtc::IRtcEngine::preloadChannel
virtual int preloadChannel(const char *token, const char *channelId, uid_t uid)=0
Preloads a channel with token, channelId, and uid.
agora::rtc::IRtcEngineEventHandler::onClientRoleChanged
virtual void onClientRoleChanged(CLIENT_ROLE_TYPE oldRole, CLIENT_ROLE_TYPE newRole, const ClientRoleOptions &newRoleOptions)
Occurs when the user role or the audience latency level changes.
Definition: IAgoraRtcEngine.h:3114
agora::rtc::RemoteVideoStats::width
int width
Definition: IAgoraRtcEngine.h:597
agora::rtc::RtcEngineContext::audioScenario
AUDIO_SCENARIO_TYPE audioScenario
Definition: IAgoraRtcEngine.h:4097
agora::rtc::RemoteVideoStats::rendererOutputFrameRate
int rendererOutputFrameRate
Definition: IAgoraRtcEngine.h:616
agora::rtc::IRtcEngine::setVoiceBeautifierPreset
virtual int setVoiceBeautifierPreset(VOICE_BEAUTIFIER_PRESET preset)=0
Sets a preset voice beautifier effect.
agora::rtc::RemoteVideoStats::decoderInputFrameRate
int decoderInputFrameRate
Definition: IAgoraRtcEngine.h:608
agora::rtc::IRtcEngine::rate
virtual int rate(const char *callId, int rating, const char *description)=0
Allows a user to rate a call after the call ends.
agora::rtc::LocalVideoStats::targetBitrate
int targetBitrate
Definition: IAgoraRtcEngine.h:376
agora::rtc::ChannelMediaOptions::publishSecondaryScreenTrack
Optional< bool > publishSecondaryScreenTrack
Definition: IAgoraRtcEngine.h:1317
agora::RefCountInterface
Definition: AgoraRefPtr.h:31
agora::rtc::RemoteAudioStats::qualityChangedReason
int qualityChangedReason
Definition: IAgoraRtcEngine.h:538
agora::rtc::IRtcEngine::getCallId
virtual int getCallId(agora::util::AString &callId)=0
Retrieves the call ID.
agora::rtc::InjectStreamConfig
Definition: IAgoraRtcEngine.h:749
agora::rtc::IRtcEngine::uploadLogFile
virtual int uploadLogFile(agora::util::AString &requestId)=0
agora::rtc::IRtcEngine::startMediaRenderingTracing
virtual int startMediaRenderingTracing()=0
Enables tracing the video frame rendering process.
agora::rtc::CameraCapturerConfiguration::format
VideoFormat format
Definition: IAgoraRtcEngine.h:987
agora::rtc::LocalVideoStats::encodedFrameCount
int encodedFrameCount
Definition: IAgoraRtcEngine.h:394
agora::rtc::PublisherConfiguration::bitrate
int bitrate
Definition: IAgoraRtcEngine.h:829
agora::rtc::ChannelMediaOptions::downlinkMultipathMode
Optional< MultipathMode > downlinkMultipathMode
Definition: IAgoraRtcEngine.h:1526
agora::rtc::LocalVideoStats::regulatedCaptureFrameRate
int regulatedCaptureFrameRate
Definition: IAgoraRtcEngine.h:343
agora::rtc::IRtcEngine::createCustomEncodedVideoTrack
virtual video_track_id_t createCustomEncodedVideoTrack(const SenderOptions &sender_option)=0
agora::rtc::CameraCapturerConfiguration::followEncodeDimensionRatio
Optional< bool > followEncodeDimensionRatio
Definition: IAgoraRtcEngine.h:983
agora::rtc::RtcEngineContext
Configurations for the RtcEngineContext instance.
Definition: IAgoraRtcEngine.h:4065
agora::rtc::IRtcEngine::unloadAllEffects
virtual int unloadAllEffects()=0
Releases a specified preloaded audio effect from the memory.
agora::rtc::ChannelMediaOptions
The channel media options.
Definition: IAgoraRtcEngine.h:1254
agora::rtc::IVideoEffectObject
Provides methods to manage and configure video effects, such as beauty, style makeup,...
Definition: IAgoraRtcEngine.h:3866
agora::rtc::IRtcEngine
Definition: IAgoraRtcEngine.h:4581
agora::rtc::IRtcEngine::setClientRole
virtual int setClientRole(CLIENT_ROLE_TYPE role, const ClientRoleOptions &options)=0
Sets the user role and the audience latency level in a live streaming scenario.
agora::rtc::IRtcEngine::enableLoopbackRecording
virtual int enableLoopbackRecording(bool enabled, const char *deviceName=NULL)=0
Enables loopback audio capturing.
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
Creates an audio and video recording object.
agora::rtc::IRtcEngine::addVideoWatermark
virtual int addVideoWatermark(const WatermarkConfig &configs)=0
Adds a watermark image to the local video.
agora::rtc::ScreenCaptureConfiguration
The configuration of the captured screen.
Definition: IAgoraRtcEngine.h:993
agora::rtc::IRtcEngine::setAudioMixingDualMonoMode
virtual int setAudioMixingDualMonoMode(media::AUDIO_MIXING_DUAL_MONO_MODE mode)=0
Sets the channel mode of the current audio file.
agora::rtc::ChannelMediaOptions::autoSubscribeVideo
Optional< bool > autoSubscribeVideo
Definition: IAgoraRtcEngine.h:1400
agora::rtc::AudioRecordingConfiguration
Recording configurations.
Definition: AgoraBase.h:6721
agora::rtc::IRtcEngine::getEffectCurrentPosition
virtual int getEffectCurrentPosition(int soundId)=0
Retrieves the playback position of the audio effect file.
agora::rtc::ChannelMediaOptions::publishMicrophoneTrack
Optional< bool > publishMicrophoneTrack
Definition: IAgoraRtcEngine.h:1286
agora::rtc::IRtcEngine::updatePreloadChannelToken
virtual int updatePreloadChannelToken(const char *token)=0
Updates the wildcard token for preloading channels.
agora::rtc::IRtcEngine::resumeAudio
virtual int resumeAudio() __deprecated=0
agora::rtc::IRtcEngine::muteLocalAudioStream
virtual int muteLocalAudioStream(bool mute)=0
Stops or resumes publishing the local audio stream.
agora::rtc::IRtcEngine::joinChannelWithUserAccount
virtual int joinChannelWithUserAccount(const char *token, const char *channelId, const char *userAccount)=0
Joins a channel with a User Account and Token.
agora::rtc::IRtcEngine::setChannelProfile
virtual int setChannelProfile(CHANNEL_PROFILE_TYPE profile)=0
Sets the channel profile.
agora::rtc::RemoteVideoStats::frameLossRate
int frameLossRate
Definition: IAgoraRtcEngine.h:620
agora::rtc::VideoDimensions
The video dimension.
Definition: AgoraBase.h:1166
agora::rtc::IRtcEngine::updateDirectCdnStreamingMediaOptions
virtual int updateDirectCdnStreamingMediaOptions(const DirectCdnStreamingMediaOptions &options)=0
agora::rtc::IRtcEngine::setLocalVoicePitch
virtual int setLocalVoicePitch(double pitch)=0
Changes the voice pitch of the local speaker.
agora::rtc::IRtcEngineEventHandler::onTranscodedStreamLayoutInfo
virtual void onTranscodedStreamLayoutInfo(uid_t uid, int width, int height, int layoutCount, const VideoLayout *layoutlist)
Occurs when the local user receives a mixed video stream carrying layout information.
Definition: IAgoraRtcEngine.h:3565
agora::rtc::RemoteVideoStats::height
int height
Definition: IAgoraRtcEngine.h:601
agora::rtc::LocalVideoStats::captureFrameWidth
int captureFrameWidth
Definition: IAgoraRtcEngine.h:333
agora::rtc::IRtcEngine::setAudioEffectPreset
virtual int setAudioEffectPreset(AUDIO_EFFECT_PRESET preset)=0
Sets an SDK preset audio effect.
agora::rtc::IRtcEngine::release
static AGORA_CPP_API void release(RtcEngineReleaseCallback callback=nullptr)
Releases the IRtcEngine instance.
agora::rtc::RtcEngineContext::useExternalEglContext
bool useExternalEglContext
Definition: IAgoraRtcEngine.h:4138
agora::rtc::IRtcEngine::preloadEffect
virtual int preloadEffect(int soundId, const char *filePath, int startPos=0)=0
Preloads a specified audio effect file into the memory.
agora::rtc::RemoteAudioStats::frozenRate
int frozenRate
Definition: IAgoraRtcEngine.h:480
agora::rtc::IRtcEngine::setVideoScenario
virtual int setVideoScenario(VIDEO_APPLICATION_SCENARIO_TYPE scenarioType)=0
Sets video application scenarios.
agora::rtc::RemoteAudioStats::plcCount
uint32_t plcCount
Definition: IAgoraRtcEngine.h:505
agora::rtc::IRtcEngine::stopEchoTest
virtual int stopEchoTest()=0
Stops the audio call test.
agora::rtc::IRtcEngine::startAudioRecording
virtual int startAudioRecording(const char *filePath, AUDIO_RECORDING_QUALITY_TYPE quality)=0
Starts client-side audio recording with recording configuration.
agora::rtc::IRtcEngine::setLocalVoiceEqualization
virtual int setLocalVoiceEqualization(AUDIO_EQUALIZATION_BAND_FREQUENCY bandFrequency, int bandGain)=0
Sets the local voice equalization effect.
agora::rtc::DirectCdnStreamingMediaOptions::publishMediaPlayerAudioTrack
Optional< bool > publishMediaPlayerAudioTrack
Definition: IAgoraRtcEngine.h:4456
agora::util::CopyableAutoPtr
Definition: AgoraBase.h:156
agora::rtc::IRtcEngine::getNetworkType
virtual int getNetworkType()=0
Gets the type of the local network connection.
agora::rtc::InjectStreamConfig::audioSampleRate
AUDIO_SAMPLE_RATE_TYPE audioSampleRate
Definition: IAgoraRtcEngine.h:773
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:825
agora::rtc::IRtcEngine::resumeEffect
virtual int resumeEffect(int soundId)=0
Resumes playing a specified audio effect.
agora::rtc::PublisherConfiguration::injectStreamUrl
const char * injectStreamUrl
Definition: IAgoraRtcEngine.h:852
agora::rtc::ChannelMediaOptions::publishScreenTrack
Optional< bool > publishScreenTrack
Definition: IAgoraRtcEngine.h:1311
agora::rtc::IRtcEngineEventHandler::onAudioRoutingChanged
virtual void onAudioRoutingChanged(int routing)
Occurs when the local audio route changes.
Definition: IAgoraRtcEngine.h:3215
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
Plays the specified local or online audio effect file.
agora::rtc::InjectStreamConfig::videoBitrate
int videoBitrate
Definition: IAgoraRtcEngine.h:769
agora::rtc::LocalVideoStats::captureBrightnessLevel
CAPTURE_BRIGHTNESS_LEVEL_TYPE captureBrightnessLevel
Definition: IAgoraRtcEngine.h:408
agora::rtc::IRtcEngine::enableVideo
virtual int enableVideo()=0
Enables the video module.
agora::rtc::IRtcEngineEventHandler::onExtensionStoppedWithContext
virtual void onExtensionStoppedWithContext(const ExtensionContext &context)
Occurs when the extension is disabled.
Definition: IAgoraRtcEngine.h:3626
agora::rtc::IRtcEngine::setRemoteUserSpatialAudioParams
virtual int setRemoteUserSpatialAudioParams(uid_t uid, const agora::SpatialAudioParams &params)=0
Sets the spatial audio effect parameters of the remote user.
agora::rtc::IVideoEffectObject::VIDEO_EFFECT_NODE_ID::BEAUTY
@ BEAUTY
agora::rtc::IRtcEngine::setHeadphoneEQParameters
virtual int setHeadphoneEQParameters(int lowGain, int highGain)=0
Sets the low- and high-frequency parameters of the headphone equalizer.
agora::rtc::IVideoEffectObject::removeVideoEffect
virtual int removeVideoEffect(uint32_t nodeId)=0
Removes the video effect with the 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
Gets the facial beauty area options.
agora::rtc::IMetadataObserver::UNKNOWN_METADATA
@ UNKNOWN_METADATA
Definition: IAgoraRtcEngine.h:4178
agora::rtc::IRtcEngineEventHandler::onFirstLocalVideoFramePublished
virtual void onFirstLocalVideoFramePublished(VIDEO_SOURCE_TYPE source, int elapsed)
Occurs when the first video frame is published.
Definition: IAgoraRtcEngine.h:2204
agora::rtc::ChannelMediaOptions::preferMultipathType
Optional< MultipathType > preferMultipathType
Definition: IAgoraRtcEngine.h:1533
agora::rtc::IRtcEngine::stopScreenCapture
virtual int stopScreenCapture(VIDEO_SOURCE_TYPE sourceType)=0
Stops screen capture from the specified video source.
agora::rtc::IRtcEngine::updateChannelMediaOptions
virtual int updateChannelMediaOptions(const ChannelMediaOptions &options)=0
Updates the channel media options after joining the channel.
agora::rtc::RemoteAudioStats::numChannels
int numChannels
Definition: IAgoraRtcEngine.h:461
agora::rtc::IRtcEngineEventHandler::onSetRtmFlagResult
virtual void onSetRtmFlagResult(int code)
Definition: IAgoraRtcEngine.h:3656
agora::rtc::IDirectCdnStreamingEventHandler::onDirectCdnStreamingStats
virtual void onDirectCdnStreamingStats(const DirectCdnStreamingStats &stats)
Reports the CDN streaming statistics.
Definition: IAgoraRtcEngine.h:4416
agora::rtc::ChannelMediaOptions::audioDelayMs
Optional< int > audioDelayMs
Definition: IAgoraRtcEngine.h:1438
agora::rtc::IRtcEngine::createDataStream
virtual int createDataStream(int *streamId, const DataStreamConfig &config)=0
Creates a data stream.
agora::rtc::IRtcEngine::initialize
virtual int initialize(const RtcEngineContext &context)=0
Initializes IRtcEngine.
agora::rtc::IRtcEngineEventHandler::onNetworkQuality
virtual void onNetworkQuality(uid_t uid, int txQuality, int rxQuality)
Reports the last mile network quality of each user in the channel.
Definition: IAgoraRtcEngine.h:2110
agora::rtc::IRtcEngine::resumeAudioMixing
virtual int resumeAudioMixing()=0
Resumes playing and mixing the music file.
agora::rtc::ImageTrackOptions
Image configurations.
Definition: IAgoraRtcEngine.h:1224
agora::rtc::IRtcEngine::unloadEffect
virtual int unloadEffect(int soundId)=0
Releases a specified preloaded audio effect from the memory.
agora::rtc::VideoCompositingLayout::Region
Definition: IAgoraRtcEngine.h:671
agora::rtc::IRtcEngine::stopRhythmPlayer
virtual int stopRhythmPlayer()=0
Disables the virtual metronome.
agora::rtc::IRtcEngine::getAudioMixingPlayoutVolume
virtual int getAudioMixingPlayoutVolume()=0
Retrieves the audio mixing volume for local playback.
agora::rtc::IRtcEngine::startLastmileProbeTest
virtual int startLastmileProbeTest(const LastmileProbeConfig &config)=0
Starts the last mile network probe test.
agora::rtc::IRtcEngine::adjustCustomAudioPublishVolume
virtual int adjustCustomAudioPublishVolume(track_id_t trackId, int volume)=0
Adjusts the volume of the custom audio track played remotely.
agora::rtc::IRtcEngineEventHandler::onVideoSubscribeStateChanged
virtual void onVideoSubscribeStateChanged(const char *channel, uid_t uid, STREAM_SUBSCRIBE_STATE oldState, STREAM_SUBSCRIBE_STATE newState, int elapseSinceLastState)
Occurs when the video subscribing state changes.
Definition: IAgoraRtcEngine.h:3504
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
Gets detailed information on the extensions.
agora::rtc::ChannelMediaOptions::publishFourthScreenTrack
Optional< bool > publishFourthScreenTrack
Definition: IAgoraRtcEngine.h:1331
agora::rtc::RemoteAudioStats::jitterBufferDelay
int jitterBufferDelay
Definition: IAgoraRtcEngine.h:453
agora::rtc::IRtcEngine::adjustPlaybackSignalVolume
virtual int adjustPlaybackSignalVolume(int volume)=0
Adjusts the playback signal volume of all remote users.
agora::rtc::IRtcEngineEventHandler::onRemoteVideoStateChanged
virtual void onRemoteVideoStateChanged(uid_t uid, REMOTE_VIDEO_STATE state, REMOTE_VIDEO_STATE_REASON reason, int elapsed)
Occurs when the remote video stream state changes.
Definition: IAgoraRtcEngine.h:2344
agora::rtc::IRtcEngine::setExtensionProviderProperty
virtual int setExtensionProviderProperty(const char *provider, const char *key, const char *value)=0
Sets the properties of the extension provider.
agora::rtc::PublisherConfiguration::injectStreamWidth
int injectStreamWidth
Definition: IAgoraRtcEngine.h:846
agora::rtc::ChannelMediaOptions::publishMixedAudioTrack
Optional< bool > publishMixedAudioTrack
Definition: IAgoraRtcEngine.h:1382
agora::rtc::IRtcEngine::startLocalAudioMixer
virtual int startLocalAudioMixer(const LocalAudioMixerConfiguration &config)=0
Starts local audio mixing.
agora::rtc::RemoteVideoStats::rxStreamType
VIDEO_STREAM_TYPE rxStreamType
Definition: IAgoraRtcEngine.h:628
agora::rtc::IRtcEngine::enableAudio
virtual int enableAudio()=0
Enables the audio module.
agora::rtc::IVideoDeviceManager::stopDeviceTest
virtual int stopDeviceTest()=0
agora::rtc::IMetadataObserver::Metadata::uid
unsigned int uid
Definition: IAgoraRtcEngine.h:4208
agora::rtc::RemoteAudioStats::uid
uid_t uid
Definition: IAgoraRtcEngine.h:439
agora::rtc::IRtcEngine::disableVideo
virtual int disableVideo()=0
Disables the video module.
agora::rtc::IRtcEngine::enableDualStreamMode
virtual int enableDualStreamMode(bool enabled) __deprecated=0
Enables or disables dual-stream mode on the sender side.
agora::rtc::InjectStreamConfig::videoGop
int videoGop
Definition: IAgoraRtcEngine.h:761
agora::rtc::IRtcEngine::setVideoQoEPreference
virtual int setVideoQoEPreference(VIDEO_QOE_PREFERENCE_TYPE qoePreference)=0
agora::rtc::ChannelMediaOptions::isInteractiveAudience
Optional< bool > isInteractiveAudience
Definition: IAgoraRtcEngine.h:1482
agora::rtc::FaceShapeAreaOptions
Filter effect options.
Definition: AgoraBase.h:5466
agora::SpatialAudioParams
The spatial audio parameters.
Definition: AgoraBase.h:8056
agora::rtc::LocalVideoStats::encodedFrameDepth
int encodedFrameDepth
Definition: IAgoraRtcEngine.h:428
agora::rtc::IRtcEngine::setLogFilter
virtual int setLogFilter(unsigned int filter)=0
Sets the log output level of the SDK.
agora::rtc::IRtcEngine::getLoopbackRecordingVolume
virtual int getLoopbackRecordingVolume()=0
agora::rtc::IRtcEngineEventHandler::onPermissionError
virtual void onPermissionError(PERMISSION_TYPE permissionType)
Occurs when the SDK cannot get the device permission.
Definition: IAgoraRtcEngine.h:3366
agora::rtc::IRtcEngineEventHandler::onUploadLogResult
virtual void onUploadLogResult(const char *requestId, bool success, UPLOAD_ERROR_REASON reason)
Definition: IAgoraRtcEngine.h:3470
agora::rtc::RemoteAudioStats::qoeQuality
int qoeQuality
Definition: IAgoraRtcEngine.h:533
agora::rtc::IRtcEngine::setFaceShapeAreaOptions
virtual int setFaceShapeAreaOptions(const FaceShapeAreaOptions &options, agora::media::MEDIA_SOURCE_TYPE type=agora::media::PRIMARY_CAMERA_SOURCE)=0
Sets the image enhancement options for facial areas and specifies the media source.
agora::rtc::IRtcEngine::setHeadphoneEQPreset
virtual int setHeadphoneEQPreset(HEADPHONE_EQUALIZER_PRESET preset)=0
Sets the preset headphone equalization effect.
agora::rtc::IRtcEngine::startCameraCapture
virtual int startCameraCapture(VIDEO_SOURCE_TYPE sourceType, const CameraCapturerConfiguration &config)=0
Starts camera capture.
agora::rtc::IRtcEngine::setLocalAccessPoint
virtual int setLocalAccessPoint(const LocalAccessPointConfiguration &config)=0
Configures the connection to Agora's Private Media Server access module.
agora::rtc::IRtcEngineEventHandler::onRdtStateChanged
virtual void onRdtStateChanged(uid_t userId, RdtState state)
Occurs when the RDT tunnel state changed.
Definition: IAgoraRtcEngine.h:2848
agora::rtc::IRtcEngine::createCustomVideoTrack
virtual video_track_id_t createCustomVideoTrack()=0
Creates a custom video track.
agora::rtc::IRtcEngine::disableAudio
virtual int disableAudio()=0
Disables the audio module.
agora::rtc::IRtcEngine::muteAllRemoteAudioStreams
virtual int muteAllRemoteAudioStreams(bool mute)=0
Stops or resumes subscribing to the audio streams of all remote users.
agora::rtc::IRtcEngineEventHandler::onRtcStats
virtual void onRtcStats(const RtcStats &stats)
Reports the statistics about the current call.
Definition: IAgoraRtcEngine.h:1995
agora::rtc::IRtcEngineEventHandler::onUserJoined
virtual void onUserJoined(uid_t uid, int elapsed)
Occurs when a remote user (in the communication profile)/ host (in the live streaming profile) joins ...
Definition: IAgoraRtcEngine.h:2398
agora::rtc::AAudioDeviceManager
Definition: IAgoraRtcEngine.h:12556
agora::rtc::IMetadataObserver::Metadata
Media metadata.
Definition: IAgoraRtcEngine.h:4198
agora::rtc::IRtcEngine::sendCustomReportMessage
virtual int sendCustomReportMessage(const char *id, const char *category, const char *event, const char *label, int value)=0
Reports customized messages.
agora::rtc::FocalLengthInfo
Focal length information supported by the camera, including the camera direction and focal length typ...
Definition: AgoraBase.h:2043
agora::rtc::RemoteVideoStats::packetLossRate
int packetLossRate
Definition: IAgoraRtcEngine.h:624
agora::rtc::LocalVideoStats::hwEncoderAccelerating
int hwEncoderAccelerating
Definition: IAgoraRtcEngine.h:418
agora::rtc::DeviceInfo
The audio device information.
Definition: AgoraBase.h:4018
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:2864
agora::base::IEngineBase
Definition: AgoraBase.h:8022
agora::rtc::LocalVideoStats::rendererOutputFrameRate
int rendererOutputFrameRate
Definition: IAgoraRtcEngine.h:371
agora::rtc::DirectCdnStreamingMediaOptions::publishCustomAudioTrack
Optional< bool > publishCustomAudioTrack
Definition: IAgoraRtcEngine.h:4444
agora::rtc::VideoRenderingTracingInfo
Indicators during video frame rendering progress.
Definition: AgoraBase.h:7718
agora::rtc::IRtcEngineEventHandler::onAudioMixingStateChanged
virtual void onAudioMixingStateChanged(AUDIO_MIXING_STATE_TYPE state, AUDIO_MIXING_REASON_TYPE reason)
Occurs when the playback state of the music file changes.
Definition: IAgoraRtcEngine.h:2704
agora::rtc::IRtcEngine::setLocalRenderMode
virtual int setLocalRenderMode(media::base::RENDER_MODE_TYPE renderMode, VIDEO_MIRROR_MODE_TYPE mirrorMode)=0
Updates the display mode of the local video view.
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
Sets the audio profile and audio scenario.
agora::rtc::RtcEngineContext::areaCode
unsigned int areaCode
Definition: IAgoraRtcEngine.h:4103
agora::rtc::IRtcEngine::setSimulcastConfig
virtual int setSimulcastConfig(const SimulcastConfig &simulcastConfig)=0
Sets the simulcast video stream configuration.
agora::rtc::IRtcEngineEventHandler::onLicenseValidationFailure
virtual void onLicenseValidationFailure(LICENSE_ERROR_TYPE error)
Definition: IAgoraRtcEngine.h:2918
agora::rtc::CameraCapturerConfiguration
The camera capturer preference.
Definition: IAgoraRtcEngine.h:923
agora::rtc::IMetadataObserver::VIDEO_METADATA
@ VIDEO_METADATA
Definition: IAgoraRtcEngine.h:4182
agora::rtc::IRtcEngine::selectAudioTrack
virtual int selectAudioTrack(int index)=0
Selects the audio track used during playback.
agora::rtc::RemoteVideoStats
Statistics of the remote video stream.
Definition: IAgoraRtcEngine.h:576
agora::rtc::IRtcEngine::startAudioRecording
virtual int startAudioRecording(const char *filePath, int sampleRate, AUDIO_RECORDING_QUALITY_TYPE quality)=0
Starts client-side audio recording and sets the recording sample rate.
agora::rtc::PublisherConfiguration::injectStreamHeight
int injectStreamHeight
Definition: IAgoraRtcEngine.h:849
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
Joins a channel.
agora::rtc::IMetadataObserver::Metadata::size
unsigned int size
Definition: IAgoraRtcEngine.h:4212
agora::rtc::ClientRoleOptions
Setting of user role properties.
Definition: AgoraBase.h:2999
agora::rtc::IRtcEngine::setRecordingAudioFrameParameters
virtual int setRecordingAudioFrameParameters(int sampleRate, int channel, RAW_AUDIO_FRAME_OP_MODE_TYPE mode, int samplesPerCall)=0
Sets the format of the captured raw audio data.
agora::rtc::ScreenCaptureConfiguration::screenRect
Rectangle screenRect
Definition: IAgoraRtcEngine.h:1009
agora::rtc::IRtcEngineEventHandler::onUserEnableLocalVideo
virtual void onUserEnableLocalVideo(uid_t uid, bool enabled) __deprecated
Occurs when a specific remote user enables/disables the local video capturing function.
Definition: IAgoraRtcEngine.h:2517
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)
Occurs when the state of the media stream relay changes.
Definition: IAgoraRtcEngine.h:3227
agora::rtc::IRtcEngine::complain
virtual int complain(const char *callId, const char *description)=0
Allows a user to complain about the call quality after a call ends.
agora::rtc::IRtcEngine::clearVideoWatermarks
virtual int clearVideoWatermarks()=0
Removes the watermark image from the video stream.
agora::rtc::IRtcEngine::stopAudioRecording
virtual int stopAudioRecording()=0
Stops client-side audio recording.
agora::rtc::IRtcEngineEventHandler::onAudioPublishStateChanged
virtual void onAudioPublishStateChanged(const char *channel, STREAM_PUBLISH_STATE oldState, STREAM_PUBLISH_STATE newState, int elapseSinceLastState)
Occurs when the audio publishing state changes.
Definition: IAgoraRtcEngine.h:3521
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:465
agora::rtc::IRtcEngine::startPreview
virtual int startPreview(VIDEO_SOURCE_TYPE sourceType)=0
Enables the local video preview and specifies the video source for the preview.
agora::rtc::VideoCanvas
Attributes of the video canvas object.
Definition: AgoraBase.h:5266
agora::rtc::VideoCompositingLayout::Region::uid
uid_t uid
Definition: IAgoraRtcEngine.h:674
agora::rtc::IRtcEngineEventHandler::onConnectionStateChanged
virtual void onConnectionStateChanged(CONNECTION_STATE_TYPE state, CONNECTION_CHANGED_REASON_TYPE reason)
Occurs when the network connection state changes.
Definition: IAgoraRtcEngine.h:3320
agora::rtc::IVideoEffectObject::getVideoEffectIntParam
virtual int getVideoEffectIntParam(const char *option, const char *key)=0
Retrieves integer parameters in video effects.
agora::rtc::SegmentationProperty
Processing properties for background images.
Definition: AgoraBase.h:5987
agora::rtc::VideoCompositingLayout::Region::x
double x
Definition: IAgoraRtcEngine.h:677