Agora Java API Reference for Android

IAgoraRtcEngine.h
1 //
2 // Agora Rtc Engine SDK
3 //
4 // Copyright (c) 2018 Agora.io. All rights reserved.
5 //
6 #pragma once
7
8 #include "AgoraBase.h"
9 #include "AgoraMediaBase.h"
10 #include "IAgoraLog.h"
11 #include "AgoraOptional.h"
12 #include "IAudioDeviceManager.h"
13 #include "IAgoraRhythmPlayer.h"
14 #include "IAgoraMediaEngine.h"
15 #include "IAgoraH265Transcoder.h"
16
17 namespace agora {
18 namespace rtm {
19 class IStreamChannel;
20 }
21 namespace rtc {
22
23 template <typename T>
24 static void SetFrom(Optional<T>* s, const Optional<T>& o) {
25 if (o) {
26 *s = o;
27 }
28 }
29
30 template <typename T>
31 static void ReplaceBy(Optional<T>* s, const Optional<T>& o) {
32 *s = o;
33 }
34
35 //class IAudioDeviceManager;
36
40 enum MEDIA_DEVICE_TYPE {
44 UNKNOWN_AUDIO_DEVICE = -1,
48 AUDIO_PLAYOUT_DEVICE = 0,
52 AUDIO_RECORDING_DEVICE = 1,
56 VIDEO_RENDER_DEVICE = 2,
60 VIDEO_CAPTURE_DEVICE = 3,
64 AUDIO_APPLICATION_PLAYOUT_DEVICE = 4,
68 AUDIO_VIRTUAL_PLAYOUT_DEVICE = 5,
72 AUDIO_VIRTUAL_RECORDING_DEVICE = 6,
73 };
74
78 enum AUDIO_MIXING_STATE_TYPE {
80 AUDIO_MIXING_STATE_PLAYING = 710,
82 AUDIO_MIXING_STATE_PAUSED = 711,
84 AUDIO_MIXING_STATE_STOPPED = 713,
87 AUDIO_MIXING_STATE_FAILED = 714,
88 };
89
93 enum AUDIO_MIXING_REASON_TYPE {
95 AUDIO_MIXING_REASON_CAN_NOT_OPEN = 701,
97 AUDIO_MIXING_REASON_TOO_FREQUENT_CALL = 702,
99 AUDIO_MIXING_REASON_INTERRUPTED_EOF = 703,
101 AUDIO_MIXING_REASON_ONE_LOOP_COMPLETED = 721,
103 AUDIO_MIXING_REASON_ALL_LOOPS_COMPLETED = 723,
105 AUDIO_MIXING_REASON_STOPPED_BY_USER = 724,
107 AUDIO_MIXING_REASON_RESUMED_BY_USER = 726,
109 AUDIO_MIXING_REASON_OK = 0,
110 };
111
115 enum INJECT_STREAM_STATUS {
119 INJECT_STREAM_STATUS_START_SUCCESS = 0,
123 INJECT_STREAM_STATUS_START_ALREADY_EXISTS = 1,
127 INJECT_STREAM_STATUS_START_UNAUTHORIZED = 2,
131 INJECT_STREAM_STATUS_START_TIMEDOUT = 3,
135 INJECT_STREAM_STATUS_START_FAILED = 4,
139 INJECT_STREAM_STATUS_STOP_SUCCESS = 5,
143 INJECT_STREAM_STATUS_STOP_NOT_FOUND = 6,
147 INJECT_STREAM_STATUS_STOP_UNAUTHORIZED = 7,
151 INJECT_STREAM_STATUS_STOP_TIMEDOUT = 8,
155 INJECT_STREAM_STATUS_STOP_FAILED = 9,
159 INJECT_STREAM_STATUS_BROKEN = 10,
160 };
161
165 enum AUDIO_EQUALIZATION_BAND_FREQUENCY {
169 AUDIO_EQUALIZATION_BAND_31 = 0,
173 AUDIO_EQUALIZATION_BAND_62 = 1,
177 AUDIO_EQUALIZATION_BAND_125 = 2,
181 AUDIO_EQUALIZATION_BAND_250 = 3,
185 AUDIO_EQUALIZATION_BAND_500 = 4,
189 AUDIO_EQUALIZATION_BAND_1K = 5,
193 AUDIO_EQUALIZATION_BAND_2K = 6,
197 AUDIO_EQUALIZATION_BAND_4K = 7,
201 AUDIO_EQUALIZATION_BAND_8K = 8,
205 AUDIO_EQUALIZATION_BAND_16K = 9,
206 };
207
211 enum AUDIO_REVERB_TYPE {
215 AUDIO_REVERB_DRY_LEVEL = 0,
219 AUDIO_REVERB_WET_LEVEL = 1,
223 AUDIO_REVERB_ROOM_SIZE = 2,
227 AUDIO_REVERB_WET_DELAY = 3,
231 AUDIO_REVERB_STRENGTH = 4,
232 };
233
234 enum STREAM_FALLBACK_OPTIONS {
239 STREAM_FALLBACK_OPTION_DISABLED = 0,
244 STREAM_FALLBACK_OPTION_VIDEO_STREAM_LOW = 1,
248 STREAM_FALLBACK_OPTION_AUDIO_ONLY = 2,
253 STREAM_FALLBACK_OPTION_VIDEO_STREAM_LAYER_1 = 3,
254 STREAM_FALLBACK_OPTION_VIDEO_STREAM_LAYER_2 = 4,
255 STREAM_FALLBACK_OPTION_VIDEO_STREAM_LAYER_3 = 5,
256 STREAM_FALLBACK_OPTION_VIDEO_STREAM_LAYER_4 = 6,
257 STREAM_FALLBACK_OPTION_VIDEO_STREAM_LAYER_5 = 7,
258 STREAM_FALLBACK_OPTION_VIDEO_STREAM_LAYER_6 = 8,
259 };
260
261 enum PRIORITY_TYPE {
264 PRIORITY_HIGH = 50,
267 PRIORITY_NORMAL = 100,
268 };
269
270 struct RtcConnection;
271
274 struct LocalVideoStats
275 {
279 uid_t uid;
283 int sentBitrate;
287 int sentFrameRate;
290 int captureFrameRate;
293 int captureFrameWidth;
296 int captureFrameHeight;
300 int regulatedCaptureFrameRate;
304 int regulatedCaptureFrameWidth;
308 int regulatedCaptureFrameHeight;
311 int encoderOutputFrameRate;
314 int encodedFrameWidth;
317 int encodedFrameHeight;
320 int rendererOutputFrameRate;
323 int targetBitrate;
326 int targetFrameRate;
330 QUALITY_ADAPT_INDICATION qualityAdaptIndication;
334 int encodedBitrate;
337 int encodedFrameCount;
340 VIDEO_CODEC_TYPE codecType;
344 unsigned short txPacketLossRate;
347 CAPTURE_BRIGHTNESS_LEVEL_TYPE captureBrightnessLevel;
351 bool dualStreamEnabled;
356 int hwEncoderAccelerating;
359 VideoDimensions simulcastDimensions[SimulcastConfig::STREAM_LAYER_COUNT_MAX];
360 };
361
365 struct RemoteAudioStats
366 {
370 uid_t uid;
374 int quality;
378 int networkTransportDelay;
384 int jitterBufferDelay;
388 int audioLossRate;
392 int numChannels;
396 int receivedSampleRate;
401 int receivedBitrate;
408 int totalFrozenTime;
413 int frozenRate;
430 int mosValue;
435 uint32_t frozenRateByCustomPlcCount;
439 uint32_t plcCount;
440
445 int totalActiveTime;
449 int publishDuration;
453 int qoeQuality;
457 int qualityChangedReason;
461 unsigned int rxAudioBytes;
465 int e2eDelay;
466
467 RemoteAudioStats()
468 : uid(0),
469 quality(0),
470 networkTransportDelay(0),
471 jitterBufferDelay(0),
472 audioLossRate(0),
473 numChannels(0),
474 receivedSampleRate(0),
475 receivedBitrate(0),
476 totalFrozenTime(0),
477 frozenRate(0),
478 mosValue(0),
479 frozenRateByCustomPlcCount(0),
480 plcCount(0),
481 totalActiveTime(0),
482 publishDuration(0),
483 qoeQuality(0),
484 qualityChangedReason(0),
485 rxAudioBytes(0),
486 e2eDelay(0) {}
487 };
488
492 struct RemoteVideoStats {
496 uid_t uid;
504 int delay __deprecated;
508 int e2eDelay;
512 int width;
516 int height;
520 int receivedBitrate;
523 int decoderInputFrameRate;
526 int decoderOutputFrameRate;
529 int rendererOutputFrameRate;
532 int frameLossRate;
535 int packetLossRate;
539 VIDEO_STREAM_TYPE rxStreamType;
545 int totalFrozenTime;
549 int frozenRate;
554 int avSyncTimeMs;
559 int totalActiveTime;
563 int publishDuration;
571 int mosValue;
575 unsigned int rxVideoBytes;
576 };
577
578 struct VideoCompositingLayout {
579 struct Region {
582 uid_t uid;
585 double x; // [0,1]
588 double y; // [0,1]
592 double width; // [0,1]
594 double height; // [0,1]
598 int zOrder; // optional, [0, 100] //0 (default): bottom most, 100: top most
599
603 double alpha;
604
605 media::base::RENDER_MODE_TYPE renderMode; // RENDER_MODE_HIDDEN: Crop, RENDER_MODE_FIT: Zoom to fit
606
607 Region()
608 : uid(0),
609 x(0),
610 y(0),
611 width(0),
612 height(0),
613 zOrder(0),
614 alpha(1.0),
615 renderMode(media::base::RENDER_MODE_HIDDEN) {}
616 };
617
622 int canvasWidth;
627 int canvasHeight;
630 const char* backgroundColor; // e.g. "#C0C0C0" in RGB
634 const Region* regions;
637 int regionCount;
640 const char* appData;
643 int appDataLength;
644
645 VideoCompositingLayout()
646 : canvasWidth(0),
647 canvasHeight(0),
648 backgroundColor(OPTIONAL_NULLPTR),
649 regions(NULL),
650 regionCount(0),
651 appData(OPTIONAL_NULLPTR),
652 appDataLength(0) {}
653 };
654
657 struct InjectStreamConfig {
661 int width;
665 int height;
669 int videoGop;
673 int videoFramerate;
677 int videoBitrate;
681 AUDIO_SAMPLE_RATE_TYPE audioSampleRate;
685 int audioBitrate;
688 int audioChannels;
689
690 // width / height default set to 0 means pull the stream with its original
691 // resolution
692 InjectStreamConfig()
693 : width(0),
694 height(0),
695 videoGop(30),
696 videoFramerate(15),
697 videoBitrate(400),
698 audioSampleRate(AUDIO_SAMPLE_RATE_48000),
699 audioBitrate(48),
700 audioChannels(1) {}
701 };
702
705 enum RTMP_STREAM_LIFE_CYCLE_TYPE {
708 RTMP_STREAM_LIFE_CYCLE_BIND2CHANNEL = 1,
711 RTMP_STREAM_LIFE_CYCLE_BIND2OWNER = 2,
712 };
713
716 struct PublisherConfiguration {
720 int width;
724 int height;
728 int framerate;
732 int bitrate;
738 int defaultLayout;
741 int lifecycle;
746 bool owner;
749 int injectStreamWidth;
752 int injectStreamHeight;
755 const char* injectStreamUrl;
759 const char* publishUrl;
763 const char* rawStreamUrl;
766 const char* extraInfo;
767
768 PublisherConfiguration()
769 : width(640),
770 height(360),
771 framerate(15),
772 bitrate(500),
773 defaultLayout(1),
774 lifecycle(RTMP_STREAM_LIFE_CYCLE_BIND2CHANNEL),
775 owner(true),
776 injectStreamWidth(0),
777 injectStreamHeight(0),
778 injectStreamUrl(NULL),
779 publishUrl(NULL),
780 rawStreamUrl(NULL),
781 extraInfo(NULL) {}
782 };
783
787 enum CAMERA_DIRECTION {
789 CAMERA_REAR = 0,
791 CAMERA_FRONT = 1,
792 };
793
798 enum CLOUD_PROXY_TYPE {
801 NONE_PROXY = 0,
804 UDP_PROXY = 1,
806
808 TCP_PROXY = 2,
810 };
811
813 struct CameraCapturerConfiguration {
815 #if defined(__ANDROID__) || (defined(__APPLE__) && (TARGET_OS_IOS || (defined(TARGET_OS_VISION) && TARGET_OS_VISION)))
816
819 Optional<CAMERA_DIRECTION> cameraDirection;
820
821 /*- CAMERA_FOCAL_LENGTH_TYPE.CAMERA_FOCAL_LENGTH_DEFAULT:
822 For iOS, if iPhone/iPad has 3 or 2 back camera, it means combination of triple (wide + ultra wide + telephoto) camera
823 or dual wide(wide + ultra wide) camera.In this situation, you can apply for ultra wide len by set smaller zoom fator
824 and bigger zoom fator for telephoto len.Otherwise, it always means wide back/front camera.
825
826 - CAMERA_FOCAL_LENGTH_TYPE.CAMERA_FOCAL_LENGTH_WIDE_ANGLE:wide camera
827 - CAMERA_FOCAL_LENGTH_TYPE.CAMERA_FOCAL_LENGTH_ULTRA_WIDE:ultra wide camera
828 - CAMERA_FOCAL_LENGTH_TYPE.CAMERA_FOCAL_LENGTH_TELEPHOTO:telephoto camera*/
829 Optional<CAMERA_FOCAL_LENGTH_TYPE> cameraFocalLengthType;
830 #else
831
832 Optional<const char *> deviceId;
833 #endif
834
835 #if defined(__ANDROID__)
836
839 Optional<const char *> cameraId;
840 #endif
841 Optional<bool> followEncodeDimensionRatio;
843 VideoFormat format;
844 CameraCapturerConfiguration() : format(VideoFormat(0, 0, 0)) {}
845 };
849 struct ScreenCaptureConfiguration {
855 bool isCaptureWindow; // true - capture window, false - capture display
859 int64_t displayId;
864 Rectangle screenRect; //Windows only
869 int64_t windowId;
873 ScreenCaptureParameters params;
881 Rectangle regionRect;
882
883 ScreenCaptureConfiguration() : isCaptureWindow(false), displayId(0), windowId(0) {}
884 };
885
886 #if (defined(__APPLE__) && TARGET_OS_MAC && !TARGET_OS_IPHONE)
887
889 struct SIZE {
892 int width;
895 int height;
896
897 SIZE() : width(0), height(0) {}
898 SIZE(int ww, int hh) : width(ww), height(hh) {}
899 };
900 #endif
901
902 #if defined(_WIN32) || (defined(__APPLE__) && TARGET_OS_MAC && !TARGET_OS_IPHONE)
903
908 struct ThumbImageBuffer {
912 const char* buffer;
916 unsigned int length;
920 unsigned int width;
924 unsigned int height;
925 ThumbImageBuffer() : buffer(nullptr), length(0), width(0), height(0) {}
926 };
930 enum ScreenCaptureSourceType {
932 ScreenCaptureSourceType_Unknown = -1,
934 ScreenCaptureSourceType_Window = 0,
936 ScreenCaptureSourceType_Screen = 1,
938 ScreenCaptureSourceType_Custom = 2,
939 };
941 struct ScreenCaptureSourceInfo {
945 ScreenCaptureSourceType type;
949 int64_t sourceId;
953 const char* sourceName;
957 ThumbImageBuffer thumbImage;
961 ThumbImageBuffer iconImage;
965 const char* processPath;
969 const char* sourceTitle;
975 bool primaryMonitor;
976 bool isOccluded;
980 Rectangle position;
981 #if defined(_WIN32)
982
985 bool minimizeWindow;
992 int64_t sourceDisplayId;
993 ScreenCaptureSourceInfo() : type(ScreenCaptureSourceType_Unknown), sourceId(0), sourceName(nullptr),
994 processPath(nullptr), sourceTitle(nullptr), primaryMonitor(false), isOccluded(false), minimizeWindow(false), sourceDisplayId(-2) {}
995 #else
996 ScreenCaptureSourceInfo() : type(ScreenCaptureSourceType_Unknown), sourceId(0), sourceName(nullptr), processPath(nullptr), sourceTitle(nullptr), primaryMonitor(false), isOccluded(false) {}
997 #endif
998 };
1002 class IScreenCaptureSourceList {
1003 protected:
1004 virtual ~IScreenCaptureSourceList(){};
1005
1006 public:
1012 virtual unsigned int getCount() = 0;
1022 virtual ScreenCaptureSourceInfo getSourceInfo(unsigned int index) = 0;
1029 virtual void release() = 0;
1030 };
1031 #endif // _WIN32 || (__APPLE__ && !TARGET_OS_IPHONE && TARGET_OS_MAC)
1032
1035 struct AdvancedAudioOptions {
1039 Optional<int> audioProcessingChannels;
1040
1041 AdvancedAudioOptions() {}
1042 ~AdvancedAudioOptions() {}
1043 };
1044
1045 struct ImageTrackOptions {
1046 const char* imageUrl;
1047 int fps;
1048 VIDEO_MIRROR_MODE_TYPE mirrorMode;
1049 ImageTrackOptions() : imageUrl(NULL), fps(1), mirrorMode(VIDEO_MIRROR_MODE_DISABLED) {}
1050 };
1051
1060 struct ChannelMediaOptions {
1066 Optional<bool> publishCameraTrack;
1072 Optional<bool> publishSecondaryCameraTrack;
1078 Optional<bool> publishThirdCameraTrack;
1084 Optional<bool> publishFourthCameraTrack;
1090 Optional<bool> publishMicrophoneTrack;
1091
1097 Optional<bool> publishScreenCaptureAudio;
1098
1099 #if defined(__ANDROID__) || (defined(TARGET_OS_IPHONE) && TARGET_OS_IPHONE)
1100
1105 Optional<bool> publishScreenCaptureVideo;
1106 #else
1107
1112 Optional<bool> publishScreenTrack;
1118 Optional<bool> publishSecondaryScreenTrack;
1124 Optional<bool> publishThirdScreenTrack;
1130 Optional<bool> publishFourthScreenTrack;
1131 #endif
1132
1138 Optional<bool> publishCustomAudioTrack;
1142 Optional<int> publishCustomAudioTrackId;
1148 Optional<bool> publishCustomVideoTrack;
1154 Optional<bool> publishEncodedVideoTrack;
1160 Optional<bool> publishMediaPlayerAudioTrack;
1166 Optional<bool> publishMediaPlayerVideoTrack;
1172 Optional<bool> publishTranscodedVideoTrack;
1178 Optional<bool> publishMixedAudioTrack;
1184 Optional<bool> publishLipSyncTrack;
1190 Optional<bool> autoSubscribeAudio;
1196 Optional<bool> autoSubscribeVideo;
1202 Optional<bool> enableAudioRecordingOrPlayout;
1206 Optional<int> publishMediaPlayerId;
1211 Optional<CLIENT_ROLE_TYPE> clientRoleType;
1215 Optional<AUDIENCE_LATENCY_LEVEL_TYPE> audienceLatencyLevel;
1220 Optional<VIDEO_STREAM_TYPE> defaultVideoStreamType;
1225 Optional<CHANNEL_PROFILE_TYPE> channelProfile;
1230 Optional<int> audioDelayMs;
1235 Optional<int> mediaPlayerAudioDelayMs;
1244 Optional<const char*> token;
1252 Optional<bool> enableBuiltInMediaEncryption;
1258 Optional<bool> publishRhythmPlayerTrack;
1266 Optional<bool> isInteractiveAudience;
1271 Optional<video_track_id_t> customVideoTrackId;
1277 Optional<bool> isAudioFilterable;
1278
1283 Optional<const char*> parameters;
1284
1285 ChannelMediaOptions() {}
1286 ~ChannelMediaOptions() {}
1287
1288 void SetAll(const ChannelMediaOptions& change) {
1289 #define SET_FROM(X) SetFrom(&X, change.X)
1290
1291 SET_FROM(publishCameraTrack);
1292 SET_FROM(publishSecondaryCameraTrack);
1293 SET_FROM(publishThirdCameraTrack);
1294 SET_FROM(publishFourthCameraTrack);
1295 SET_FROM(publishMicrophoneTrack);
1296 SET_FROM(publishScreenCaptureAudio);
1297 #if defined(__ANDROID__) || (defined(TARGET_OS_IPHONE) && TARGET_OS_IPHONE)
1298 SET_FROM(publishScreenCaptureVideo);
1299 #else
1300 SET_FROM(publishScreenTrack);
1301 SET_FROM(publishSecondaryScreenTrack);
1302 SET_FROM(publishThirdScreenTrack);
1303 SET_FROM(publishFourthScreenTrack);
1304 #endif
1305 SET_FROM(publishTranscodedVideoTrack);
1306 SET_FROM(publishMixedAudioTrack);
1307 SET_FROM(publishLipSyncTrack);
1308 SET_FROM(publishCustomAudioTrack);
1309 SET_FROM(publishCustomAudioTrackId);
1310 SET_FROM(publishCustomVideoTrack);
1311 SET_FROM(publishEncodedVideoTrack);
1312 SET_FROM(publishMediaPlayerAudioTrack);
1313 SET_FROM(publishMediaPlayerVideoTrack);
1314 SET_FROM(autoSubscribeAudio);
1315 SET_FROM(autoSubscribeVideo);
1316 SET_FROM(publishMediaPlayerId);
1317 SET_FROM(enableAudioRecordingOrPlayout);
1318 SET_FROM(clientRoleType);
1319 SET_FROM(audienceLatencyLevel);
1320 SET_FROM(defaultVideoStreamType);
1321 SET_FROM(channelProfile);
1322 SET_FROM(audioDelayMs);
1323 SET_FROM(mediaPlayerAudioDelayMs);
1324 SET_FROM(token);
1325 SET_FROM(enableBuiltInMediaEncryption);
1326 SET_FROM(publishRhythmPlayerTrack);
1327 SET_FROM(customVideoTrackId);
1328 SET_FROM(isAudioFilterable);
1329 SET_FROM(isInteractiveAudience);
1330 SET_FROM(parameters);
1331 #undef SET_FROM
1332 }
1333
1334 bool operator==(const ChannelMediaOptions& o) const {
1335 #define BEGIN_COMPARE() bool b = true
1336 #define ADD_COMPARE(X) b = (b && (X == o.X))
1337 #define END_COMPARE()
1338
1339 BEGIN_COMPARE();
1340 ADD_COMPARE(publishCameraTrack);
1341 ADD_COMPARE(publishSecondaryCameraTrack);
1342 ADD_COMPARE(publishThirdCameraTrack);
1343 ADD_COMPARE(publishFourthCameraTrack);
1344 ADD_COMPARE(publishMicrophoneTrack);
1345 ADD_COMPARE(publishScreenCaptureAudio);
1346 #if defined(__ANDROID__) || (defined(TARGET_OS_IPHONE) && TARGET_OS_IPHONE)
1347 ADD_COMPARE(publishScreenCaptureVideo);
1348 #else
1349 ADD_COMPARE(publishScreenTrack);
1350 ADD_COMPARE(publishSecondaryScreenTrack);
1351 ADD_COMPARE(publishThirdScreenTrack);
1352 ADD_COMPARE(publishFourthScreenTrack);
1353 #endif
1354 ADD_COMPARE(publishTranscodedVideoTrack);
1355 ADD_COMPARE(publishMixedAudioTrack);
1356 ADD_COMPARE(publishLipSyncTrack);
1357 ADD_COMPARE(publishCustomAudioTrack);
1358 ADD_COMPARE(publishCustomAudioTrackId);
1359 ADD_COMPARE(publishCustomVideoTrack);
1360 ADD_COMPARE(publishEncodedVideoTrack);
1361 ADD_COMPARE(publishMediaPlayerAudioTrack);
1362 ADD_COMPARE(publishMediaPlayerVideoTrack);
1363 ADD_COMPARE(autoSubscribeAudio);
1364 ADD_COMPARE(autoSubscribeVideo);
1365 ADD_COMPARE(publishMediaPlayerId);
1366 ADD_COMPARE(enableAudioRecordingOrPlayout);
1367 ADD_COMPARE(clientRoleType);
1368 ADD_COMPARE(audienceLatencyLevel);
1369 ADD_COMPARE(defaultVideoStreamType);
1370 ADD_COMPARE(channelProfile);
1371 ADD_COMPARE(audioDelayMs);
1372 ADD_COMPARE(mediaPlayerAudioDelayMs);
1373 ADD_COMPARE(token);
1374 ADD_COMPARE(enableBuiltInMediaEncryption);
1375 ADD_COMPARE(publishRhythmPlayerTrack);
1376 ADD_COMPARE(customVideoTrackId);
1377 ADD_COMPARE(isAudioFilterable);
1378 ADD_COMPARE(isInteractiveAudience);
1379 ADD_COMPARE(parameters);
1380 END_COMPARE();
1381
1382 #undef BEGIN_COMPARE
1383 #undef ADD_COMPARE
1384 #undef END_COMPARE
1385 return b;
1386 }
1387
1388 ChannelMediaOptions& operator=(const ChannelMediaOptions& replace) {
1389 if (this != &replace) {
1390 #define REPLACE_BY(X) ReplaceBy(&X, replace.X)
1391
1392 REPLACE_BY(publishCameraTrack);
1393 REPLACE_BY(publishSecondaryCameraTrack);
1394 REPLACE_BY(publishThirdCameraTrack);
1395 REPLACE_BY(publishFourthCameraTrack);
1396 REPLACE_BY(publishMicrophoneTrack);
1397 REPLACE_BY(publishScreenCaptureAudio);
1398 #if defined(__ANDROID__) || (defined(TARGET_OS_IPHONE) && TARGET_OS_IPHONE)
1399 REPLACE_BY(publishScreenCaptureVideo);
1400 #else
1401 REPLACE_BY(publishScreenTrack);
1402 REPLACE_BY(publishSecondaryScreenTrack);
1403 REPLACE_BY(publishThirdScreenTrack);
1404 REPLACE_BY(publishFourthScreenTrack);
1405 #endif
1406 REPLACE_BY(publishTranscodedVideoTrack);
1407 REPLACE_BY(publishMixedAudioTrack);
1408 REPLACE_BY(publishLipSyncTrack);
1409 REPLACE_BY(publishCustomAudioTrack);
1410 REPLACE_BY(publishCustomAudioTrackId);
1411 REPLACE_BY(publishCustomVideoTrack);
1412 REPLACE_BY(publishEncodedVideoTrack);
1413 REPLACE_BY(publishMediaPlayerAudioTrack);
1414 REPLACE_BY(publishMediaPlayerVideoTrack);
1415 REPLACE_BY(autoSubscribeAudio);
1416 REPLACE_BY(autoSubscribeVideo);
1417 REPLACE_BY(publishMediaPlayerId);
1418 REPLACE_BY(enableAudioRecordingOrPlayout);
1419 REPLACE_BY(clientRoleType);
1420 REPLACE_BY(audienceLatencyLevel);
1421 REPLACE_BY(defaultVideoStreamType);
1422 REPLACE_BY(channelProfile);
1423 REPLACE_BY(audioDelayMs);
1424 REPLACE_BY(mediaPlayerAudioDelayMs);
1425 REPLACE_BY(token);
1426 REPLACE_BY(enableBuiltInMediaEncryption);
1427 REPLACE_BY(publishRhythmPlayerTrack);
1428 REPLACE_BY(customVideoTrackId);
1429 REPLACE_BY(isAudioFilterable);
1430 REPLACE_BY(isInteractiveAudience);
1431 REPLACE_BY(parameters);
1432 #undef REPLACE_BY
1433 }
1434 return *this;
1435 }
1436 };
1437
1438 enum PROXY_TYPE {
1441 NONE_PROXY_TYPE = 0,
1444 UDP_PROXY_TYPE = 1,
1447 TCP_PROXY_TYPE = 2,
1450 LOCAL_PROXY_TYPE = 3,
1453 TCP_PROXY_AUTO_FALLBACK_TYPE = 4,
1456 HTTP_PROXY_TYPE = 5,
1459 HTTPS_PROXY_TYPE = 6,
1460 };
1461
1462 enum FeatureType {
1463 VIDEO_VIRTUAL_BACKGROUND = 1,
1464 VIDEO_BEAUTY_EFFECT = 2,
1465 };
1466
1470 struct LeaveChannelOptions {
1476 bool stopAudioMixing;
1482 bool stopAllEffect;
1488 bool stopMicrophoneRecording;
1489
1490 LeaveChannelOptions() : stopAudioMixing(true), stopAllEffect(true), stopMicrophoneRecording(true) {}
1491 };
1492
1503 class IRtcEngineEventHandler {
1504 public:
1505 virtual ~IRtcEngineEventHandler() {}
1506
1507 virtual const char* eventHandlerType() const { return "event_handler"; }
1508
1518 virtual void onJoinChannelSuccess(const char* channel, uid_t uid, int elapsed) {
1519 (void)channel;
1520 (void)uid;
1521 (void)elapsed;
1522 }
1523
1534 virtual void onRejoinChannelSuccess(const char* channel, uid_t uid, int elapsed) {
1535 (void)channel;
1536 (void)uid;
1537 (void)elapsed;
1538 }
1539
1547 virtual void onProxyConnected(const char* channel, uid_t uid, PROXY_TYPE proxyType, const char* localProxyIp, int elapsed) {
1548 (void)channel;
1549 (void)uid;
1550 (void)proxyType;
1551 (void)localProxyIp;
1552 (void)elapsed;
1553 }
1554
1560 virtual void onError(int err, const char* msg) {
1561 (void)err;
1562 (void)msg;
1563 }
1564
1580 virtual void onAudioQuality(uid_t uid, int quality, unsigned short delay, unsigned short lost) __deprecated {
1581 (void)uid;
1582 (void)quality;
1583 (void)delay;
1584 (void)lost;
1585 }
1586
1592 virtual void onLastmileProbeResult(const LastmileProbeResult& result) {
1593 (void)result;
1594 }
1595
1622 virtual void onAudioVolumeIndication(const AudioVolumeInfo* speakers, unsigned int speakerNumber,
1623 int totalVolume) {
1624 (void)speakers;
1625 (void)speakerNumber;
1626 (void)totalVolume;
1627 }
1628
1637 virtual void onLeaveChannel(const RtcStats& stats) { (void)stats; }
1638
1646 virtual void onRtcStats(const RtcStats& stats) { (void)stats; }
1647
1661 virtual void onAudioDeviceStateChanged(const char* deviceId, int deviceType, int deviceState) {
1662 (void)deviceId;
1663 (void)deviceType;
1664 (void)deviceState;
1665 }
1666
1673 virtual void onAudioMixingPositionChanged(int64_t position) {}
1674
1681 virtual void onAudioMixingFinished() __deprecated {}
1682
1690 virtual void onAudioEffectFinished(int soundId) {}
1691
1701 virtual void onVideoDeviceStateChanged(const char* deviceId, int deviceType, int deviceState) {
1702 (void)deviceId;
1703 (void)deviceType;
1704 (void)deviceState;
1705 }
1706
1729 virtual void onNetworkQuality(uid_t uid, int txQuality, int rxQuality) {
1730 (void)uid;
1731 (void)txQuality;
1732 (void)rxQuality;
1733 }
1734
1741 virtual void onIntraRequestReceived() {}
1742
1753 virtual void onUplinkNetworkInfoUpdated(const UplinkNetworkInfo& info) {
1754 (void)info;
1755 }
1756
1764 virtual void onDownlinkNetworkInfoUpdated(const DownlinkNetworkInfo& info) {
1765 (void)info;
1766 }
1767
1780 virtual void onLastmileQuality(int quality) { (void)quality; }
1781
1792 virtual void onFirstLocalVideoFrame(VIDEO_SOURCE_TYPE source, int width, int height, int elapsed) {
1793 (void)source;
1794 (void)width;
1795 (void)height;
1796 (void)elapsed;
1797 }
1798
1809 virtual void onFirstLocalVideoFramePublished(VIDEO_SOURCE_TYPE source, int elapsed) {
1810 (void)source;
1811 (void)elapsed;
1812 }
1813
1830 virtual void onFirstRemoteVideoDecoded(uid_t uid, int width, int height, int elapsed) __deprecated {
1831 (void)uid;
1832 (void)width;
1833 (void)height;
1834 (void)elapsed;
1835 }
1836
1845 virtual void onVideoSizeChanged(VIDEO_SOURCE_TYPE sourceType, uid_t uid, int width, int height, int rotation) {
1846 (void)uid;
1847 (void)width;
1848 (void)height;
1849 (void)rotation;
1850 }
1851
1878 virtual void onLocalVideoStateChanged(VIDEO_SOURCE_TYPE source, LOCAL_VIDEO_STREAM_STATE state, LOCAL_VIDEO_STREAM_REASON reason) {
1879 (void)source;
1880 (void)state;
1881 (void)reason;
1882 }
1883
1895 virtual void onRemoteVideoStateChanged(uid_t uid, REMOTE_VIDEO_STATE state, REMOTE_VIDEO_STATE_REASON reason, int elapsed) {
1896 (void)uid;
1897 (void)state;
1898 (void)reason;
1899 (void)elapsed;
1900 }
1901
1909 virtual void onFirstRemoteVideoFrame(uid_t uid, int width, int height, int elapsed) {
1910 (void)uid;
1911 (void)width;
1912 (void)height;
1913 (void)elapsed;
1914 }
1915
1935 virtual void onUserJoined(uid_t uid, int elapsed) {
1936 (void)uid;
1937 (void)elapsed;
1938 }
1939
1954 virtual void onUserOffline(uid_t uid, USER_OFFLINE_REASON_TYPE reason) {
1955 (void)uid;
1956 (void)reason;
1957 }
1958
1971 virtual void onUserMuteAudio(uid_t uid, bool muted) {
1972 (void)uid;
1973 (void)muted;
1974 }
1975
1990 virtual void onUserMuteVideo(uid_t uid, bool muted) {
1991 (void)uid;
1992 (void)muted;
1993 }
1994
2007 virtual void onUserEnableVideo(uid_t uid, bool enabled) {
2008 (void)uid;
2009 (void)enabled;
2010 }
2011
2017 virtual void onUserStateChanged(uid_t uid, REMOTE_USER_STATE state) {
2018 (void)uid;
2019 (void)state;
2020 }
2021
2032 virtual void onUserEnableLocalVideo(uid_t uid, bool enabled) __deprecated {
2033 (void)uid;
2034 (void)enabled;
2035 }
2036
2044 virtual void onRemoteAudioStats(const RemoteAudioStats& stats) {
2045 (void)stats;
2046 }
2047
2055 virtual void onLocalAudioStats(const LocalAudioStats& stats) {
2056 (void)stats;
2057 }
2058
2072 virtual void onLocalVideoStats(VIDEO_SOURCE_TYPE source, const LocalVideoStats& stats) {
2073 (void)source;
2074 (void)stats;
2075 }
2076
2085 virtual void onRemoteVideoStats(const RemoteVideoStats& stats) {
2086 (void)stats;
2087 }
2088
2094 virtual void onCameraReady() __deprecated {}
2095
2106 virtual void onCameraFocusAreaChanged(int x, int y, int width, int height) {
2107 (void)x;
2108 (void)y;
2109 (void)width;
2110 (void)height;
2111 }
2120 virtual void onCameraExposureAreaChanged(int x, int y, int width, int height) {
2121 (void)x;
2122 (void)y;
2123 (void)width;
2124 (void)height;
2125 }
2126 #if defined(__ANDROID__) || (defined(__APPLE__) && (TARGET_OS_IOS || (defined(TARGET_OS_VISION) && TARGET_OS_VISION)))
2127
2157 virtual void onFacePositionChanged(int imageWidth, int imageHeight,
2158 const Rectangle* vecRectangle, const int* vecDistance,
2159 int numFaces) {
2160 (void) imageWidth;
2161 (void) imageHeight;
2162 (void) vecRectangle;
2163 (void) vecDistance;
2164 (void) numFaces;
2165 }
2166 #endif
2167
2174 virtual void onVideoStopped() __deprecated {}
2175
2183 virtual void onAudioMixingStateChanged(AUDIO_MIXING_STATE_TYPE state, AUDIO_MIXING_REASON_TYPE reason) {
2184 (void)state;
2185 (void)reason;
2186 }
2187
2196 virtual void onRhythmPlayerStateChanged(RHYTHM_PLAYER_STATE_TYPE state, RHYTHM_PLAYER_REASON reason) {
2197 (void)state;
2198 (void)reason;
2199 }
2200
2209 virtual void onConnectionLost() {}
2210
2222 virtual void onConnectionInterrupted() __deprecated {}
2223
2227 virtual void onConnectionBanned() __deprecated {}
2228
2240 virtual void onStreamMessage(uid_t uid, int streamId, const char* data, size_t length, uint64_t sentTs) {
2241 (void)uid;
2242 (void)streamId;
2243 (void)data;
2244 (void)length;
2245 (void)sentTs;
2246 }
2247
2260 virtual void onStreamMessageError(uid_t uid, int streamId, int code, int missed, int cached) {
2261 (void)uid;
2262 (void)streamId;
2263 (void)code;
2264 (void)missed;
2265 (void)cached;
2266 }
2267
2277 virtual void onRequestToken() {}
2278
2290 virtual void onTokenPrivilegeWillExpire(const char* token) {
2291 (void)token;
2292 }
2293
2299 virtual void onLicenseValidationFailure(LICENSE_ERROR_TYPE error) {
2300 (void)error;
2301 }
2302
2313 virtual void onFirstLocalAudioFramePublished(int elapsed) {
2314 (void)elapsed;
2315 }
2316
2333 virtual void onFirstRemoteAudioDecoded(uid_t uid, int elapsed) __deprecated {
2334 (void)uid;
2335 (void)elapsed;
2336 }
2337
2345 virtual void onFirstRemoteAudioFrame(uid_t uid, int elapsed) __deprecated {
2346 (void)uid;
2347 (void)elapsed;
2348 }
2349
2364 virtual void onLocalAudioStateChanged(LOCAL_AUDIO_STREAM_STATE state, LOCAL_AUDIO_STREAM_REASON reason) {
2365 (void)state;
2366 (void)reason;
2367 }
2368
2385 virtual void onRemoteAudioStateChanged(uid_t uid, REMOTE_AUDIO_STATE state, REMOTE_AUDIO_STATE_REASON reason, int elapsed) {
2386 (void)uid;
2387 (void)state;
2388 (void)reason;
2389 (void)elapsed;
2390 }
2391
2405 virtual void onActiveSpeaker(uid_t uid) {
2406 (void)uid;
2407 }
2408
2413 virtual void onContentInspectResult(media::CONTENT_INSPECT_RESULT result) { (void)result; }
2414
2432 virtual void onSnapshotTaken(uid_t uid, const char* filePath, int width, int height, int errCode) {
2433 (void)uid;
2434 (void)filePath;
2435 (void)width;
2436 (void)height;
2437 (void)errCode;
2438 }
2439
2447 virtual void onClientRoleChanged(CLIENT_ROLE_TYPE oldRole, CLIENT_ROLE_TYPE newRole, const ClientRoleOptions& newRoleOptions) {
2448 (void)oldRole;
2449 (void)newRole;
2450 (void)newRoleOptions;
2451 }
2452
2460 virtual void onClientRoleChangeFailed(CLIENT_ROLE_CHANGE_FAILED_REASON reason, CLIENT_ROLE_TYPE currentRole) {
2461 (void)reason;
2462 (void)currentRole;
2463 }
2464
2472 virtual void onAudioDeviceVolumeChanged(MEDIA_DEVICE_TYPE deviceType, int volume, bool muted) {
2473 (void)deviceType;
2474 (void)volume;
2475 (void)muted;
2476 }
2477
2489 virtual void onRtmpStreamingStateChanged(const char* url, RTMP_STREAM_PUBLISH_STATE state,
2490 RTMP_STREAM_PUBLISH_REASON reason) {
2491 (void)url;
2492 (void)state;
2493 (void)reason;
2494 }
2495
2501 virtual void onRtmpStreamingEvent(const char* url, RTMP_STREAMING_EVENT eventCode) {
2502 (void)url;
2503 (void)eventCode;
2504 }
2505
2516 virtual void onTranscodingUpdated() {}
2517
2531 virtual void onAudioRoutingChanged(int routing) { (void)routing; }
2532
2564 virtual void onChannelMediaRelayStateChanged(int state, int code) {
2565 (void)state;
2566 (void)code;
2567 }
2568
2582 virtual void onLocalPublishFallbackToAudioOnly(bool isFallbackOrRecover) {
2583 (void)isFallbackOrRecover;
2584 }
2585
2603 virtual void onRemoteSubscribeFallbackToAudioOnly(uid_t uid, bool isFallbackOrRecover) {
2604 (void)uid;
2605 (void)isFallbackOrRecover;
2606 }
2607
2622 virtual void onRemoteAudioTransportStats(uid_t uid, unsigned short delay, unsigned short lost, unsigned short rxKBitRate) __deprecated {
2623 (void)uid;
2624 (void)delay;
2625 (void)lost;
2626 (void)rxKBitRate;
2627 }
2628
2646 virtual void onRemoteVideoTransportStats(uid_t uid, unsigned short delay, unsigned short lost, unsigned short rxKBitRate) __deprecated {
2647 (void)uid;
2648 (void)delay;
2649 (void)lost;
2650 (void)rxKBitRate;
2651 }
2652
2661 virtual void onConnectionStateChanged(
2662 CONNECTION_STATE_TYPE state, CONNECTION_CHANGED_REASON_TYPE reason) {
2663 (void)state;
2664 (void)reason;
2665 }
2666
2673 virtual void onWlAccMessage(WLACC_MESSAGE_REASON reason, WLACC_SUGGEST_ACTION action, const char* wlAccMsg) {
2674 (void)reason;
2675 (void)action;
2676 (void)wlAccMsg;
2677 }
2678
2684 virtual void onWlAccStats(const WlAccStats& currentStats, const WlAccStats& averageStats) {
2685 (void)currentStats;
2686 (void)averageStats;
2687 }
2688
2698 virtual void onNetworkTypeChanged(NETWORK_TYPE type) {
2699 (void)type;
2700 }
2701
2709 virtual void onEncryptionError(ENCRYPTION_ERROR_TYPE errorType) {
2710 (void)errorType;
2711 }
2712
2722 virtual void onPermissionError(PERMISSION_TYPE permissionType) {
2723 (void)permissionType;
2724 }
2725
2735 virtual void onLocalUserRegistered(uid_t uid, const char* userAccount) {
2736 (void)uid;
2737 (void)userAccount;
2738 }
2739
2748 virtual void onUserInfoUpdated(uid_t uid, const UserInfo& info) {
2749 (void)uid;
2750 (void)info;
2751 }
2752
2759 virtual void onUserAccountUpdated(uid_t uid, const char* userAccount){
2760 (void)uid;
2761 (void)userAccount;
2762 }
2763
2771 virtual void onVideoRenderingTracingResult(uid_t uid, MEDIA_TRACE_EVENT currentEvent, VideoRenderingTracingInfo tracingInfo) {
2772 (void)uid;
2773 (void)currentEvent;
2774 (void)tracingInfo;
2775 }
2776
2783 virtual void onLocalVideoTranscoderError(const TranscodingVideoStream& stream, VIDEO_TRANSCODER_ERROR error){
2784 (void)stream;
2785 (void)error;
2786 }
2787
2794 virtual void onUploadLogResult(const char* requestId, bool success, UPLOAD_ERROR_REASON reason) {
2795 (void)requestId;
2796 (void)success;
2797 (void)reason;
2798 }
2799
2809 virtual void onAudioSubscribeStateChanged(const char* channel, uid_t uid, STREAM_SUBSCRIBE_STATE oldState, STREAM_SUBSCRIBE_STATE newState, int elapseSinceLastState) {
2810 (void)channel;
2811 (void)uid;
2812 (void)oldState;
2813 (void)newState;
2814 (void)elapseSinceLastState;
2815 }
2816
2826 virtual void onVideoSubscribeStateChanged(const char* channel, uid_t uid, STREAM_SUBSCRIBE_STATE oldState, STREAM_SUBSCRIBE_STATE newState, int elapseSinceLastState) {
2827 (void)channel;
2828 (void)uid;
2829 (void)oldState;
2830 (void)newState;
2831 (void)elapseSinceLastState;
2832 }
2833
2842 virtual void onAudioPublishStateChanged(const char* channel, STREAM_PUBLISH_STATE oldState, STREAM_PUBLISH_STATE newState, int elapseSinceLastState) {
2843 (void)channel;
2844 (void)oldState;
2845 (void)newState;
2846 (void)elapseSinceLastState;
2847 }
2848
2858 virtual void onVideoPublishStateChanged(VIDEO_SOURCE_TYPE source, const char* channel, STREAM_PUBLISH_STATE oldState, STREAM_PUBLISH_STATE newState, int elapseSinceLastState) {
2859 (void)source;
2860 (void)channel;
2861 (void)oldState;
2862 (void)newState;
2863 (void)elapseSinceLastState;
2864 }
2865
2875 virtual void onTranscodedStreamLayoutInfo(uid_t uid, int width, int height, int layoutCount,const VideoLayout* layoutlist) {
2876 (void)uid;
2877 (void)width;
2878 (void)height;
2879 (void)layoutCount;
2880 (void)layoutlist;
2881 }
2882
2891 virtual void onAudioMetadataReceived(uid_t uid, const char* metadata, size_t length) {
2892 (void)uid;
2893 (void)metadata;
2894 (void)length;
2895 }
2896
2906 virtual void onExtensionEventWithContext(const ExtensionContext &context, const char* key, const char* value) {
2907 (void)context;
2908 (void)key;
2909 (void)value;
2910 }
2911
2919 virtual void onExtensionStartedWithContext(const ExtensionContext &context) {
2920 (void)context;
2921 }
2922
2930 virtual void onExtensionStoppedWithContext(const ExtensionContext &context) {
2931 (void)context;
2932 }
2933
2944 virtual void onExtensionErrorWithContext(const ExtensionContext &context, int error, const char* message) {
2945 (void)context;
2946 (void)error;
2947 (void)message;
2948 }
2949
2956 virtual void onSetRtmFlagResult(int code) {
2957 (void)code;
2958 }
2959 };
2960
2964 class IVideoDeviceCollection {
2965 public:
2966 virtual ~IVideoDeviceCollection() {}
2967
2973 virtual int getCount() = 0;
2974
2984 virtual int setDevice(const char deviceIdUTF8[MAX_DEVICE_ID_LENGTH]) = 0;
2985
2996 virtual int getDevice(int index, char deviceNameUTF8[MAX_DEVICE_ID_LENGTH],
2997 char deviceIdUTF8[MAX_DEVICE_ID_LENGTH]) = 0;
2998
3002 virtual void release() = 0;
3003 };
3004
3008 class IVideoDeviceManager {
3009 public:
3010 virtual ~IVideoDeviceManager() {}
3022 virtual IVideoDeviceCollection* enumerateVideoDevices() = 0;
3023
3034 virtual int setDevice(const char deviceIdUTF8[MAX_DEVICE_ID_LENGTH]) = 0;
3035
3044 virtual int getDevice(char deviceIdUTF8[MAX_DEVICE_ID_LENGTH]) = 0;
3045
3046 #if defined(_WIN32) || (defined(__linux__) && !defined(__ANDROID__)) || \
3047 (defined(__APPLE__) && TARGET_OS_MAC && !TARGET_OS_IPHONE)
3048
3065 virtual int numberOfCapabilities(const char* deviceIdUTF8) = 0;
3066
3084 virtual int getCapability(const char* deviceIdUTF8, const uint32_t deviceCapabilityNumber, VideoFormat& capability) = 0;
3085 #endif
3086
3099 virtual int startDeviceTest(view_t hwnd) = 0;
3100
3107 virtual int stopDeviceTest() = 0;
3108
3112 virtual void release() = 0;
3113 };
3114
3118 struct RtcEngineContext {
3122 IRtcEngineEventHandler* eventHandler;
3129 const char* appId;
3135 void* context;
3139 CHANNEL_PROFILE_TYPE channelProfile;
3140
3144 const char* license;
3145
3153 AUDIO_SCENARIO_TYPE audioScenario;
3162 unsigned int areaCode;
3163
3179 commons::LogConfig logConfig;
3180
3184 Optional<THREAD_PRIORITY_TYPE> threadPriority;
3185
3193 bool useExternalEglContext;
3194
3200 bool domainLimit;
3201
3207 bool autoRegisterAgoraExtensions;
3208
3209 RtcEngineContext()
3210 : eventHandler(NULL), appId(NULL), context(NULL), channelProfile(CHANNEL_PROFILE_LIVE_BROADCASTING),
3211 license(NULL), audioScenario(AUDIO_SCENARIO_DEFAULT), areaCode(AREA_CODE_GLOB),
3212 logConfig(), useExternalEglContext(false), domainLimit(false), autoRegisterAgoraExtensions(true) {}
3213 };
3214
3217 class IMetadataObserver {
3218 public:
3219 virtual ~IMetadataObserver() {}
3220
3225 enum METADATA_TYPE
3226 {
3229 UNKNOWN_METADATA = -1,
3232 VIDEO_METADATA = 0,
3233 };
3237 enum MAX_METADATA_SIZE_TYPE
3238 {
3239 INVALID_METADATA_SIZE_IN_BYTE = -1,
3240 DEFAULT_METADATA_SIZE_IN_BYTE = 512,
3241 MAX_METADATA_SIZE_IN_BYTE = 1024
3242 };
3243
3246 struct Metadata
3247 {
3250 const char* channelId;
3255 unsigned int uid;
3258 unsigned int size;
3261 unsigned char *buffer;
3265 long long timeStampMs;
3266
3267 Metadata() : channelId(NULL), uid(0), size(0), buffer(NULL), timeStampMs(0) {}
3268 };
3269
3280 virtual int getMaxMetadataSize() { return DEFAULT_METADATA_SIZE_IN_BYTE; }
3281
3292 virtual bool onReadyToSendMetadata(Metadata &metadata, VIDEO_SOURCE_TYPE source_type) = 0;
3293
3301 virtual void onMetadataReceived(const Metadata& metadata) = 0;
3302 };
3303
3304 // The reason codes for media streaming
3305 // GENERATED_JAVA_ENUM_PACKAGE: io.agora.streaming
3306 enum DIRECT_CDN_STREAMING_REASON {
3307 // No error occurs.
3308 DIRECT_CDN_STREAMING_REASON_OK = 0,
3309 // A general error occurs (no specified reason).
3310 DIRECT_CDN_STREAMING_REASON_FAILED = 1,
3311 // Audio publication error.
3312 DIRECT_CDN_STREAMING_REASON_AUDIO_PUBLICATION = 2,
3313 // Video publication error.
3314 DIRECT_CDN_STREAMING_REASON_VIDEO_PUBLICATION = 3,
3315
3316 DIRECT_CDN_STREAMING_REASON_NET_CONNECT = 4,
3317 // Already exist stream name.
3318 DIRECT_CDN_STREAMING_REASON_BAD_NAME = 5,
3319 };
3320
3321 // The connection state of media streaming
3322 // GENERATED_JAVA_ENUM_PACKAGE: io.agora.streaming
3323 enum DIRECT_CDN_STREAMING_STATE {
3324
3325 DIRECT_CDN_STREAMING_STATE_IDLE = 0,
3326
3327 DIRECT_CDN_STREAMING_STATE_RUNNING = 1,
3328
3329 DIRECT_CDN_STREAMING_STATE_STOPPED = 2,
3330
3331 DIRECT_CDN_STREAMING_STATE_FAILED = 3,
3332
3333 DIRECT_CDN_STREAMING_STATE_RECOVERING = 4,
3334 };
3335
3339 struct DirectCdnStreamingStats {
3343 int videoWidth;
3344
3348 int videoHeight;
3349
3353 int fps;
3354
3358 int videoBitrate;
3359
3363 int audioBitrate;
3364 };
3365
3370 class IDirectCdnStreamingEventHandler {
3371 public:
3372 virtual ~IDirectCdnStreamingEventHandler() {}
3373
3380 virtual void onDirectCdnStreamingStateChanged(DIRECT_CDN_STREAMING_STATE state, DIRECT_CDN_STREAMING_REASON reason, const char* message) {
3381 (void)state;
3382 (void)reason;
3383 (void)message;
3384 };
3385
3386 virtual void onDirectCdnStreamingStats(const DirectCdnStreamingStats& stats) {
3387 (void)stats;
3388 };
3389 };
3390
3394 struct DirectCdnStreamingMediaOptions {
3400 Optional<bool> publishCameraTrack;
3406 Optional<bool> publishMicrophoneTrack;
3412 Optional<bool> publishCustomAudioTrack;
3418 Optional<bool> publishCustomVideoTrack;
3424 Optional<bool> publishMediaPlayerAudioTrack;
3429 Optional<int> publishMediaPlayerId;
3434 Optional<video_track_id_t> customVideoTrackId;
3435
3436 DirectCdnStreamingMediaOptions() {}
3437 ~DirectCdnStreamingMediaOptions() {}
3438
3439 void SetAll(const DirectCdnStreamingMediaOptions& change) {
3440 #define SET_FROM(X) SetFrom(&X, change.X)
3441 SET_FROM(publishCameraTrack);
3442 SET_FROM(publishMicrophoneTrack);
3443 SET_FROM(publishCustomAudioTrack);
3444 SET_FROM(publishCustomVideoTrack);
3445 SET_FROM(publishMediaPlayerAudioTrack);
3446 SET_FROM(publishMediaPlayerId);
3447 SET_FROM(customVideoTrackId);
3448 #undef SET_FROM
3449 }
3450
3451 bool operator==(const DirectCdnStreamingMediaOptions& o) const {
3452 #define BEGIN_COMPARE() bool b = true
3453 #define ADD_COMPARE(X) b = (b && (X == o.X))
3454 #define END_COMPARE()
3455
3456 BEGIN_COMPARE();
3457 ADD_COMPARE(publishCameraTrack);
3458 ADD_COMPARE(publishMicrophoneTrack);
3459 ADD_COMPARE(publishCustomAudioTrack);
3460 ADD_COMPARE(publishCustomVideoTrack);
3461 ADD_COMPARE(publishMediaPlayerAudioTrack);
3462 ADD_COMPARE(customVideoTrackId);
3463 ADD_COMPARE(publishMediaPlayerId);
3464 END_COMPARE();
3465
3466 #undef BEGIN_COMPARE
3467 #undef ADD_COMPARE
3468 #undef END_COMPARE
3469 return b;
3470 }
3471
3472 DirectCdnStreamingMediaOptions& operator=(const DirectCdnStreamingMediaOptions& replace) {
3473 if (this != &replace) {
3474 #define REPLACE_BY(X) ReplaceBy(&X, replace.X)
3475
3476 REPLACE_BY(publishCameraTrack);
3477 REPLACE_BY(publishMicrophoneTrack);
3478 REPLACE_BY(publishCustomAudioTrack);
3479 REPLACE_BY(publishCustomVideoTrack);
3480 REPLACE_BY(publishMediaPlayerAudioTrack);
3481 REPLACE_BY(customVideoTrackId);
3482 REPLACE_BY(publishMediaPlayerId);
3483 #undef REPLACE_BY
3484 }
3485 return *this;
3486 }
3487 };
3488
3492 struct ExtensionInfo {
3496 agora::media::MEDIA_SOURCE_TYPE mediaSourceType;
3497
3503 uid_t remoteUid;
3504
3516 const char* channelId;
3517
3521 uid_t localUid;
3522
3523 ExtensionInfo() : mediaSourceType(agora::media::UNKNOWN_MEDIA_SOURCE), remoteUid(0), channelId(NULL), localUid(0) {}
3524 };
3525
3526 class IMediaPlayer;
3527 class IMediaRecorder;
3528
3535 class IRtcEngine : public agora::base::IEngineBase {
3536 public:
3559 AGORA_CPP_API static void release(bool sync = false);
3560
3577 virtual int initialize(const RtcEngineContext& context) = 0;
3578
3588 virtual int queryInterface(INTERFACE_ID_TYPE iid, void** inter) = 0;
3589
3590
3596 virtual const char* getVersion(int* build) = 0;
3597
3603 virtual const char* getErrorDescription(int code) = 0;
3604
3614 virtual int queryCodecCapability(CodecCapInfo* codecInfo, int& size) = 0;
3615
3625 virtual int queryDeviceScore() = 0;
3626
3664 virtual int preloadChannel(const char* token, const char* channelId, uid_t uid) = 0;
3665
3705 virtual int preloadChannelWithUserAccount(const char* token, const char* channelId, const char* userAccount) = 0;
3706
3724 virtual int updatePreloadChannelToken(const char* token) = 0;
3725
3785 virtual int joinChannel(const char* token, const char* channelId, const char* info, uid_t uid) = 0;
3786
3854 virtual int joinChannel(const char* token, const char* channelId, uid_t uid, const ChannelMediaOptions& options) = 0;
3855
3864 virtual int updateChannelMediaOptions(const ChannelMediaOptions& options) = 0;
3865
3883 virtual int leaveChannel() = 0;
3884
3904 virtual int leaveChannel(const LeaveChannelOptions& options) = 0;
3905
3922 virtual int renewToken(const char* token) = 0;
3923
3943 virtual int setChannelProfile(CHANNEL_PROFILE_TYPE profile) = 0;
3944
3968 virtual int setClientRole(CLIENT_ROLE_TYPE role) = 0;
3969
3992 virtual int setClientRole(CLIENT_ROLE_TYPE role, const ClientRoleOptions& options) = 0;
3993
4002 virtual int startEchoTest(const EchoTestConfiguration& config) = 0;
4003
4010 virtual int stopEchoTest() = 0;
4011
4012 #if defined(__APPLE__) && (TARGET_OS_IOS || (defined(TARGET_OS_VISION) && TARGET_OS_VISION))
4013
4022 virtual int enableMultiCamera(bool enabled, const CameraCapturerConfiguration& config) = 0;
4023 #endif
4024
4039 virtual int enableVideo() = 0;
4040
4050 virtual int disableVideo() = 0;
4051
4063 virtual int startPreview() = 0;
4064
4072 virtual int startPreview(VIDEO_SOURCE_TYPE sourceType) = 0;
4073
4081 virtual int stopPreview() = 0;
4082
4090 virtual int stopPreview(VIDEO_SOURCE_TYPE sourceType) = 0;
4091
4125 virtual int startLastmileProbeTest(const LastmileProbeConfig& config) = 0;
4126
4128 virtual int stopLastmileProbeTest() = 0;
4129
4146 virtual int setVideoEncoderConfiguration(const VideoEncoderConfiguration& config) = 0;
4147
4157 virtual int setBeautyEffectOptions(bool enabled, const BeautyOptions& options, agora::media::MEDIA_SOURCE_TYPE type = agora::media::PRIMARY_CAMERA_SOURCE) = 0;
4167 virtual int setFaceShapeBeautyOptions(bool enabled, const FaceShapeBeautyOptions& options, agora::media::MEDIA_SOURCE_TYPE type = agora::media::PRIMARY_CAMERA_SOURCE) = 0;
4174 virtual int setFaceShapeAreaOptions(const FaceShapeAreaOptions& options, agora::media::MEDIA_SOURCE_TYPE type = agora::media::PRIMARY_CAMERA_SOURCE) = 0;
4175
4182 virtual int getFaceShapeBeautyOptions(FaceShapeBeautyOptions& options, agora::media::MEDIA_SOURCE_TYPE type = agora::media::PRIMARY_CAMERA_SOURCE) = 0;
4183
4191 virtual int getFaceShapeAreaOptions(agora::rtc::FaceShapeAreaOptions::FACE_SHAPE_AREA shapeArea, FaceShapeAreaOptions& options, agora::media::MEDIA_SOURCE_TYPE type = agora::media::PRIMARY_CAMERA_SOURCE) = 0;
4192
4217 virtual int setFilterEffectOptions(bool enabled, const FilterEffectOptions& options, agora::media::MEDIA_SOURCE_TYPE type = agora::media::PRIMARY_CAMERA_SOURCE) = 0;
4218
4245 virtual int setLowlightEnhanceOptions(bool enabled, const LowlightEnhanceOptions& options, agora::media::MEDIA_SOURCE_TYPE type = agora::media::PRIMARY_CAMERA_SOURCE) = 0;
4272 virtual int setVideoDenoiserOptions(bool enabled, const VideoDenoiserOptions& options, agora::media::MEDIA_SOURCE_TYPE type = agora::media::PRIMARY_CAMERA_SOURCE) = 0;
4299 virtual int setColorEnhanceOptions(bool enabled, const ColorEnhanceOptions& options, agora::media::MEDIA_SOURCE_TYPE type = agora::media::PRIMARY_CAMERA_SOURCE) = 0;
4300
4333 virtual int enableVirtualBackground(bool enabled, VirtualBackgroundSource backgroundSource, SegmentationProperty segproperty, agora::media::MEDIA_SOURCE_TYPE type = agora::media::PRIMARY_CAMERA_SOURCE) = 0;
4334
4357 virtual int setupRemoteVideo(const VideoCanvas& canvas) = 0;
4358
4375 virtual int setupLocalVideo(const VideoCanvas& canvas) = 0;
4376
4395 virtual int setVideoScenario(VIDEO_APPLICATION_SCENARIO_TYPE scenarioType) = 0;
4396
4415 virtual int setVideoQoEPreference(VIDEO_QOE_PREFERENCE_TYPE qoePreference) = 0;
4416
4430 virtual int enableAudio() = 0;
4431
4443 virtual int disableAudio() = 0;
4444
4466 virtual int setAudioProfile(AUDIO_PROFILE_TYPE profile, AUDIO_SCENARIO_TYPE scenario) __deprecated = 0;
4467
4483 virtual int setAudioProfile(AUDIO_PROFILE_TYPE profile) = 0;
4492 virtual int setAudioScenario(AUDIO_SCENARIO_TYPE scenario) = 0;
4515 virtual int enableLocalAudio(bool enabled) = 0;
4516
4542 virtual int muteLocalAudioStream(bool mute) = 0;
4543
4585 virtual int muteAllRemoteAudioStreams(bool mute) = 0;
4586
4603 virtual int muteRemoteAudioStream(uid_t uid, bool mute) = 0;
4604
4616 virtual int muteLocalVideoStream(bool mute) = 0;
4617
4642 virtual int enableLocalVideo(bool enabled) = 0;
4643
4683 virtual int muteAllRemoteVideoStreams(bool mute) = 0;
4684
4694 virtual int setRemoteDefaultVideoStreamType(VIDEO_STREAM_TYPE streamType) = 0;
4695
4712 virtual int muteRemoteVideoStream(uid_t uid, bool mute) = 0;
4713
4731 virtual int setRemoteVideoStreamType(uid_t uid, VIDEO_STREAM_TYPE streamType) = 0;
4732
4743 virtual int setRemoteVideoSubscriptionOptions(uid_t uid, const VideoSubscriptionOptions &options) = 0;
4744
4759 virtual int setSubscribeAudioBlocklist(uid_t* uidList, int uidNumber) = 0;
4760
4777 virtual int setSubscribeAudioAllowlist(uid_t* uidList, int uidNumber) = 0;
4778
4793 virtual int setSubscribeVideoBlocklist(uid_t* uidList, int uidNumber) = 0;
4794
4811 virtual int setSubscribeVideoAllowlist(uid_t* uidList, int uidNumber) = 0;
4812
4839 virtual int enableAudioVolumeIndication(int interval, int smooth, bool reportVad) = 0;
4840
4861 virtual int startAudioRecording(const char* filePath,
4862 AUDIO_RECORDING_QUALITY_TYPE quality) = 0;
4884 virtual int startAudioRecording(const char* filePath,
4885 int sampleRate,
4886 AUDIO_RECORDING_QUALITY_TYPE quality) = 0;
4887
4906 virtual int startAudioRecording(const AudioRecordingConfiguration& config) = 0;
4907
4913 virtual int registerAudioEncodedFrameObserver(const AudioEncodedFrameObserverConfig& config, IAudioEncodedFrameObserver *observer) = 0;
4914
4923 virtual int stopAudioRecording() = 0;
4924
4935 virtual agora_refptr<IMediaPlayer> createMediaPlayer() = 0;
4936
4948 virtual int destroyMediaPlayer(agora_refptr<IMediaPlayer> media_player) = 0;
4949
4960 virtual agora_refptr<IMediaRecorder> createMediaRecorder(const RecorderStreamInfo& info) = 0;
4961
4971 virtual int destroyMediaRecorder(agora_refptr<IMediaRecorder> mediaRecorder) = 0;
4972
5014 virtual int startAudioMixing(const char* filePath, bool loopback, int cycle) = 0;
5015
5059 virtual int startAudioMixing(const char* filePath, bool loopback, int cycle, int startPos) = 0;
5060
5069 virtual int stopAudioMixing() = 0;
5070
5079 virtual int pauseAudioMixing() = 0;
5080
5089 virtual int resumeAudioMixing() = 0;
5090
5099 virtual int selectAudioTrack(int index) = 0;
5108 virtual int getAudioTrackCount() = 0;
5109
5124 virtual int adjustAudioMixingVolume(int volume) = 0;
5125
5133 virtual int adjustAudioMixingPublishVolume(int volume) = 0;
5134
5142 virtual int getAudioMixingPublishVolume() = 0;
5143
5151 virtual int adjustAudioMixingPlayoutVolume(int volume) = 0;
5152
5160 virtual int getAudioMixingPlayoutVolume() = 0;
5161
5170 virtual int getAudioMixingDuration() = 0;
5171
5181 virtual int getAudioMixingCurrentPosition() = 0;
5182
5192 virtual int setAudioMixingPosition(int pos /*in ms*/) = 0;
5193
5204 virtual int setAudioMixingDualMonoMode(media::AUDIO_MIXING_DUAL_MONO_MODE mode) = 0;
5205
5222 virtual int setAudioMixingPitch(int pitch) = 0;
5223
5239 virtual int setAudioMixingPlaybackSpeed(int speed) = 0;
5240
5248 virtual int getEffectsVolume() = 0;
5258 virtual int setEffectsVolume(int volume) = 0;
5282 virtual int preloadEffect(int soundId, const char* filePath, int startPos = 0) = 0;
5324 virtual int playEffect(int soundId, const char* filePath, int loopCount, double pitch, double pan, int gain, bool publish = false, int startPos = 0) = 0;
5355 virtual int playAllEffects(int loopCount, double pitch, double pan, int gain, bool publish = false) = 0;
5356
5366 virtual int getVolumeOfEffect(int soundId) = 0;
5367
5378 virtual int setVolumeOfEffect(int soundId, int volume) = 0;
5387 virtual int pauseEffect(int soundId) = 0;
5394 virtual int pauseAllEffects() = 0;
5403 virtual int resumeEffect(int soundId) = 0;
5410 virtual int resumeAllEffects() = 0;
5419 virtual int stopEffect(int soundId) = 0;
5426 virtual int stopAllEffects() = 0;
5435 virtual int unloadEffect(int soundId) = 0;
5442 virtual int unloadAllEffects() = 0;
5461 virtual int getEffectDuration(const char* filePath) = 0;
5478 virtual int setEffectPosition(int soundId, int pos) = 0;
5493 virtual int getEffectCurrentPosition(int soundId) = 0;
5506 virtual int enableSoundPositionIndication(bool enabled) = 0;
5507
5528 virtual int setRemoteVoicePosition(uid_t uid, double pan, double gain) = 0;
5529
5539 virtual int enableSpatialAudio(bool enabled) = 0;
5540
5550 virtual int setRemoteUserSpatialAudioParams(uid_t uid, const agora::SpatialAudioParams& params) = 0;
5551
5589 virtual int setVoiceBeautifierPreset(VOICE_BEAUTIFIER_PRESET preset) = 0;
5590
5628 virtual int setAudioEffectPreset(AUDIO_EFFECT_PRESET preset) = 0;
5629
5666 virtual int setVoiceConversionPreset(VOICE_CONVERSION_PRESET preset) = 0;
5667
5743 virtual int setAudioEffectParameters(AUDIO_EFFECT_PRESET preset, int param1, int param2) = 0;
5744
5787 virtual int setVoiceBeautifierParameters(VOICE_BEAUTIFIER_PRESET preset,
5788 int param1, int param2) = 0;
5789
5802 virtual int setVoiceConversionParameters(VOICE_CONVERSION_PRESET preset,
5803 int param1, int param2) = 0;
5804
5815 virtual int setLocalVoicePitch(double pitch) = 0;
5816
5827 virtual int setLocalVoiceFormant(double formantRatio) = 0;
5828
5840 virtual int setLocalVoiceEqualization(AUDIO_EQUALIZATION_BAND_FREQUENCY bandFrequency, int bandGain) = 0;
5841
5850 virtual int setLocalVoiceReverb(AUDIO_REVERB_TYPE reverbKey, int value) = 0;
5862 virtual int setHeadphoneEQPreset(HEADPHONE_EQUALIZER_PRESET preset) = 0;
5863
5873 virtual int setHeadphoneEQParameters(int lowGain, int highGain) = 0;
5874
5886 virtual int enableVoiceAITuner(bool enabled, VOICE_AI_TUNER_TYPE type) = 0;
5887
5903 virtual int setLogFile(const char* filePath) = 0;
5904
5927 virtual int setLogFilter(unsigned int filter) = 0;
5928
5945 virtual int setLogLevel(commons::LOG_LEVEL level) = 0;
5946
5961 virtual int setLogFileSize(unsigned int fileSizeInKBytes) = 0;
5962
5971 virtual int uploadLogFile(agora::util::AString& requestId) = 0;
5972
5988 virtual int writeLog(commons::LOG_LEVEL level, const char* fmt, ...) = 0;
5989
6008 virtual int setLocalRenderMode(media::base::RENDER_MODE_TYPE renderMode, VIDEO_MIRROR_MODE_TYPE mirrorMode) = 0;
6009
6030 virtual int setRemoteRenderMode(uid_t uid, media::base::RENDER_MODE_TYPE renderMode,
6031 VIDEO_MIRROR_MODE_TYPE mirrorMode) = 0;
6042 virtual int setLocalRenderTargetFps(VIDEO_SOURCE_TYPE sourceType, int targetFps) = 0;
6051 virtual int setRemoteRenderTargetFps(int targetFps) = 0;
6052 // The following APIs are either deprecated and going to deleted.
6053
6071 virtual int setLocalRenderMode(media::base::RENDER_MODE_TYPE renderMode) __deprecated = 0;
6072
6084 virtual int setLocalVideoMirrorMode(VIDEO_MIRROR_MODE_TYPE mirrorMode) __deprecated = 0;
6085
6100 virtual int enableDualStreamMode(bool enabled) __deprecated = 0;
6101
6118 virtual int enableDualStreamMode(bool enabled, const SimulcastStreamConfig& streamConfig) __deprecated = 0;
6119
6120
6134 virtual int setDualStreamMode(SIMULCAST_STREAM_MODE mode) = 0;
6135
6151 virtual int setSimulcastConfig(const SimulcastConfig& simulcastConfig) = 0;
6152
6166 virtual int setDualStreamMode(SIMULCAST_STREAM_MODE mode, const SimulcastStreamConfig& streamConfig) = 0;
6167
6182 virtual int enableCustomAudioLocalPlayback(track_id_t trackId, bool enabled) = 0;
6183
6202 virtual int setRecordingAudioFrameParameters(int sampleRate, int channel,
6203 RAW_AUDIO_FRAME_OP_MODE_TYPE mode,
6204 int samplesPerCall) = 0;
6205
6225 virtual int setPlaybackAudioFrameParameters(int sampleRate, int channel,
6226 RAW_AUDIO_FRAME_OP_MODE_TYPE mode,
6227 int samplesPerCall) = 0;
6228
6244 virtual int setMixedAudioFrameParameters(int sampleRate, int channel, int samplesPerCall) = 0;
6245
6265 virtual int setEarMonitoringAudioFrameParameters(int sampleRate, int channel,
6266 RAW_AUDIO_FRAME_OP_MODE_TYPE mode,
6267 int samplesPerCall) = 0;
6268
6284 virtual int setPlaybackAudioFrameBeforeMixingParameters(int sampleRate, int channel) = 0;
6285
6296 virtual int enableAudioSpectrumMonitor(int intervalInMS = 100) = 0;
6304 virtual int disableAudioSpectrumMonitor() = 0;
6305
6320 virtual int registerAudioSpectrumObserver(agora::media::IAudioSpectrumObserver * observer) = 0;
6330 virtual int unregisterAudioSpectrumObserver(agora::media::IAudioSpectrumObserver * observer) = 0;
6331
6345 virtual int adjustRecordingSignalVolume(int volume) = 0;
6346
6358 virtual int muteRecordingSignal(bool mute) = 0;
6359
6373 virtual int adjustPlaybackSignalVolume(int volume) = 0;
6374
6375 /*
6376 * Adjust the playback volume of the user specified by uid.
6377 *
6378 * You can call this method to adjust the playback volume of the user specified by uid
6379 * in call. If you want to adjust playback volume of the multi user, you can call this
6380 * this method multi times.
6381 *
6382 * @note
6383 * Please call this method after join channel.
6384 * This method adjust the playback volume of specified user.
6385 *
6386 * @param uid Remote user ID.
6387 * @param volume The playback volume of the specified remote user. The value ranges between 0 and 400, including the following:
6388 * 0: Mute.
6389 * 100: (Default) Original volume.
6390 * 400: Four times the original volume with signal-clipping protection.
6391 * @return
6392 * - 0: Success.
6393 * - < 0: Failure.
6394 */
6395 virtual int adjustUserPlaybackSignalVolume(uid_t uid, int volume) = 0;
6396
6418 virtual int setLocalPublishFallbackOption(STREAM_FALLBACK_OPTIONS option) = 0;
6419
6435 virtual int setRemoteSubscribeFallbackOption(STREAM_FALLBACK_OPTIONS option) = 0;
6436
6450 virtual int setHighPriorityUserList(uid_t* uidList, int uidNum, STREAM_FALLBACK_OPTIONS option) = 0;
6451
6472 virtual int enableExtension(const char* provider, const char* extension, const ExtensionInfo& extensionInfo, bool enable = true) = 0;
6473
6487 virtual int setExtensionProperty(const char* provider, const char* extension, const ExtensionInfo& extensionInfo, const char* key, const char* value) = 0;
6488
6503 virtual int getExtensionProperty(const char* provider, const char* extension, const ExtensionInfo& extensionInfo, const char* key, char* value, int buf_len) = 0;
6504
6523 virtual int enableLoopbackRecording(bool enabled, const char* deviceName = NULL) = 0;
6524
6525
6538 virtual int adjustLoopbackSignalVolume(int volume) = 0;
6539
6546 virtual int getLoopbackRecordingVolume() = 0;
6547
6559 virtual int enableInEarMonitoring(bool enabled, int includeAudioFilters) = 0;
6560
6571 virtual int setInEarMonitoringVolume(int volume) = 0;
6572
6573 #if defined (_WIN32) || defined(__linux__) || defined(__ANDROID__)
6574 virtual int loadExtensionProvider(const char* path, bool unload_after_use = false) = 0;
6575 #endif
6576
6588 virtual int setExtensionProviderProperty(const char* provider, const char* key, const char* value) = 0;
6589
6602 virtual int registerExtension(const char* provider, const char* extension, agora::media::MEDIA_SOURCE_TYPE type = agora::media::UNKNOWN_MEDIA_SOURCE) = 0;
6603
6624 virtual int enableExtension(const char* provider, const char* extension, bool enable=true, agora::media::MEDIA_SOURCE_TYPE type = agora::media::UNKNOWN_MEDIA_SOURCE) = 0;
6625
6638 virtual int setExtensionProperty(
6639 const char* provider, const char* extension,
6640 const char* key, const char* value, agora::media::MEDIA_SOURCE_TYPE type = agora::media::UNKNOWN_MEDIA_SOURCE) = 0;
6641
6655 virtual int getExtensionProperty(
6656 const char* provider, const char* extension,
6657 const char* key, char* value, int buf_len, agora::media::MEDIA_SOURCE_TYPE type = agora::media::UNKNOWN_MEDIA_SOURCE) = 0;
6658
6670 virtual int setCameraCapturerConfiguration(const CameraCapturerConfiguration& config) = 0;
6671
6679 virtual video_track_id_t createCustomVideoTrack() = 0;
6680
6688 virtual video_track_id_t createCustomEncodedVideoTrack(const SenderOptions& sender_option) = 0;
6689
6698 virtual int destroyCustomVideoTrack(video_track_id_t video_track_id) = 0;
6699
6708 virtual int destroyCustomEncodedVideoTrack(video_track_id_t video_track_id) = 0;
6709
6710
6711 #if defined(__ANDROID__) || (defined(__APPLE__) && (TARGET_OS_IOS || (defined(TARGET_OS_VISION) && TARGET_OS_VISION)))
6712
6721 virtual int switchCamera() = 0;
6722
6730 virtual bool isCameraZoomSupported() = 0;
6731
6739 virtual bool isCameraFaceDetectSupported() = 0;
6740
6748 virtual bool isCameraTorchSupported() = 0;
6749
6757 virtual bool isCameraFocusSupported() = 0;
6758
6766 virtual bool isCameraAutoFocusFaceModeSupported() = 0;
6767
6777 virtual int setCameraZoomFactor(float factor) = 0;
6778
6787 virtual int enableFaceDetection(bool enabled) = 0;
6788
6793 virtual float getCameraMaxZoomFactor() = 0;
6794
6804 virtual int setCameraFocusPositionInPreview(float positionX, float positionY) = 0;
6805
6813 virtual int setCameraTorchOn(bool isOn) = 0;
6814
6822 virtual int setCameraAutoFocusFaceModeEnabled(bool enabled) = 0;
6823
6835 virtual bool isCameraExposurePositionSupported() = 0;
6836
6852 virtual int setCameraExposurePosition(float positionXinView, float positionYinView) = 0;
6853
6866 virtual bool isCameraExposureSupported() = 0;
6867
6878 virtual int setCameraExposureFactor(float factor) = 0;
6879
6880 #if defined(__APPLE__)
6881
6888 virtual bool isCameraAutoExposureFaceModeSupported() = 0;
6889
6890
6898 virtual int setCameraAutoExposureFaceModeEnabled(bool enabled) = 0;
6899
6905 virtual int setCameraStabilizationMode(CAMERA_STABILIZATION_MODE mode) = 0;
6906 #endif
6907
6941 virtual int setDefaultAudioRouteToSpeakerphone(bool defaultToSpeaker) = 0;
6942
6969 virtual int setEnableSpeakerphone(bool speakerOn) = 0;
6970
6978 virtual bool isSpeakerphoneEnabled() = 0;
6979
6986 virtual int setRouteInCommunicationMode(int route) = 0;
6987
6988 #endif // __ANDROID__ || (__APPLE__ && (TARGET_OS_IOS || (defined(TARGET_OS_VISION) && TARGET_OS_VISION)))
6989
6990 #if defined(__APPLE__)
6991
6998 virtual bool isCameraCenterStageSupported() = 0;
6999
7008 virtual int enableCameraCenterStage(bool enabled) = 0;
7009 #endif
7010
7011 #if defined(_WIN32) || (defined(__APPLE__) && TARGET_OS_MAC && !TARGET_OS_IPHONE)
7012
7022 virtual IScreenCaptureSourceList* getScreenCaptureSources(const SIZE& thumbSize, const SIZE& iconSize, const bool includeScreen) = 0;
7023 #endif // _WIN32 || (__APPLE__ && !TARGET_OS_IPHONE && TARGET_OS_MAC)
7024 #if (defined(__APPLE__) && (TARGET_OS_IOS || (defined(TARGET_OS_VISION) && TARGET_OS_VISION)))
7025
7049 virtual int setAudioSessionOperationRestriction(AUDIO_SESSION_OPERATION_RESTRICTION restriction) = 0;
7050 #endif // __APPLE__ && (TARGET_OS_IOS || (defined(TARGET_OS_VISION) && TARGET_OS_VISION))
7051
7052 #if defined(_WIN32) || (defined(__APPLE__) && !TARGET_OS_IPHONE && TARGET_OS_MAC)
7053
7074 virtual int startScreenCaptureByDisplayId(int64_t displayId, const Rectangle& regionRect,
7075 const ScreenCaptureParameters& captureParams) = 0;
7076
7077 #endif // __APPLE__ && TARGET_OS_MAC && !TARGET_OS_IPHONE
7078
7079 #if defined(_WIN32)
7080
7103 virtual int startScreenCaptureByScreenRect(const Rectangle& screenRect,
7104 const Rectangle& regionRect,
7105 const ScreenCaptureParameters& captureParams) __deprecated = 0;
7106 #endif
7107
7108 #if defined(__ANDROID__)
7109
7115 virtual int getAudioDeviceInfo(DeviceInfo& deviceInfo) = 0;
7116 #endif // __ANDROID__
7117
7118 #if defined(_WIN32) || (defined(__APPLE__) && TARGET_OS_MAC && !TARGET_OS_IPHONE)
7119
7137 virtual int startScreenCaptureByWindowId(int64_t windowId, const Rectangle& regionRect,
7138 const ScreenCaptureParameters& captureParams) = 0;
7139
7155 virtual int setScreenCaptureContentHint(VIDEO_CONTENT_HINT contentHint) = 0;
7156
7173 virtual int updateScreenCaptureRegion(const Rectangle& regionRect) = 0;
7174
7188 virtual int updateScreenCaptureParameters(const ScreenCaptureParameters& captureParams) = 0;
7189 #endif // _WIN32 || (__APPLE__ && !TARGET_OS_IPHONE && TARGET_OS_MAC)
7190
7191 #if defined(__ANDROID__) || (defined(__APPLE__) && (TARGET_OS_IOS || (defined(TARGET_OS_VISION) && TARGET_OS_VISION)))
7192
7201 virtual int startScreenCapture(const ScreenCaptureParameters2& captureParams) = 0;
7202
7212 virtual int updateScreenCapture(const ScreenCaptureParameters2& captureParams) = 0;
7213
7225 virtual int queryScreenCaptureCapability() = 0;
7226
7238 virtual int queryCameraFocalLengthCapability(agora::rtc::FocalLengthInfo* focalLengthInfos, int& size) = 0;
7239
7240 #if defined(__ANDROID__)
7241
7257 virtual int setExternalMediaProjection(void* mediaProjection) = 0;
7258 #endif
7259 #endif
7260
7261 #if defined(_WIN32) || defined(__APPLE__) || defined(__ANDROID__)
7262
7278 virtual int setScreenCaptureScenario(SCREEN_SCENARIO_TYPE screenScenario) = 0;
7279
7287 virtual int stopScreenCapture() = 0;
7288 #endif // _WIN32 || (__APPLE__ && !TARGET_OS_IPHONE && TARGET_OS_MAC) || __ANDROID__
7289
7306 virtual int getCallId(agora::util::AString& callId) = 0;
7307
7322 virtual int rate(const char* callId, int rating, const char* description) = 0; // 0~10
7323
7337 virtual int complain(const char* callId, const char* description) = 0;
7338
7359 virtual int startRtmpStreamWithoutTranscoding(const char* url) = 0;
7360
7382 virtual int startRtmpStreamWithTranscoding(const char* url, const LiveTranscoding& transcoding) = 0;
7383
7393 virtual int updateRtmpTranscoding(const LiveTranscoding& transcoding) = 0;
7394
7395 virtual int startLocalVideoTranscoder(const LocalTranscoderConfiguration& config) = 0;
7396 virtual int updateLocalTranscoderConfiguration(const LocalTranscoderConfiguration& config) = 0;
7397
7416 virtual int stopRtmpStream(const char* url) = 0;
7417
7418 virtual int stopLocalVideoTranscoder() = 0;
7419
7429 virtual int startLocalAudioMixer(const LocalAudioMixerConfiguration& config) = 0;
7430
7440 virtual int updateLocalAudioMixerConfiguration(const LocalAudioMixerConfiguration& config) = 0;
7441
7451 virtual int stopLocalAudioMixer() = 0;
7452
7462 virtual int startCameraCapture(VIDEO_SOURCE_TYPE sourceType, const CameraCapturerConfiguration& config) = 0;
7463
7474 virtual int stopCameraCapture(VIDEO_SOURCE_TYPE sourceType) = 0;
7486 virtual int setCameraDeviceOrientation(VIDEO_SOURCE_TYPE type, VIDEO_ORIENTATION orientation) = 0;
7498 virtual int setScreenCaptureOrientation(VIDEO_SOURCE_TYPE type, VIDEO_ORIENTATION orientation) = 0;
7499
7509 virtual int startScreenCapture(VIDEO_SOURCE_TYPE sourceType, const ScreenCaptureConfiguration& config) = 0;
7510
7521 virtual int stopScreenCapture(VIDEO_SOURCE_TYPE sourceType) = 0;
7522
7527 virtual CONNECTION_STATE_TYPE getConnectionState() = 0;
7528
7529 // The following APIs are not implemented yet.
7530 virtual bool registerEventHandler(IRtcEngineEventHandler* eventHandler) = 0;
7531 virtual bool unregisterEventHandler(IRtcEngineEventHandler* eventHandler) = 0;
7532 virtual int setRemoteUserPriority(uid_t uid, PRIORITY_TYPE userPriority) = 0;
7533
7545 virtual int registerPacketObserver(IPacketObserver* observer) = 0;
7546
7547
7569 virtual int enableEncryption(bool enabled, const EncryptionConfig& config) = 0;
7570
7602 virtual int createDataStream(int* streamId, bool reliable, bool ordered) = 0;
7603
7613 virtual int createDataStream(int* streamId, const DataStreamConfig& config) = 0;
7614
7645 virtual int sendStreamMessage(int streamId, const char* data, size_t length) = 0;
7646
7668 virtual int addVideoWatermark(const RtcImage& watermark) __deprecated = 0;
7669
7695 virtual int addVideoWatermark(const char* watermarkUrl, const WatermarkOptions& options) = 0;
7696
7704 virtual int clearVideoWatermarks() = 0;
7705
7706 // The following APIs are either deprecated and going to deleted.
7707
7716 virtual int pauseAudio() __deprecated = 0;
7725 virtual int resumeAudio() __deprecated = 0;
7726
7744 virtual int enableWebSdkInteroperability(bool enabled) __deprecated = 0;
7745
7755 virtual int sendCustomReportMessage(const char* id, const char* category, const char* event, const char* label, int value) = 0;
7756
7778 virtual int registerMediaMetadataObserver(IMetadataObserver *observer, IMetadataObserver::METADATA_TYPE type) = 0;
7779
7788 virtual int unregisterMediaMetadataObserver(IMetadataObserver* observer, IMetadataObserver::METADATA_TYPE type) = 0;
7789
7798 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;
7799
7803 virtual int stopAudioFrameDump(const char* channel_id, uid_t uid, const char* location) = 0;
7804
7820 virtual int setAINSMode(bool enabled, AUDIO_AINS_MODE mode) = 0;
7821
7853 virtual int registerLocalUserAccount(const char* appId, const char* userAccount) = 0;
7854
7885 virtual int joinChannelWithUserAccount(const char* token, const char* channelId, const char* userAccount) = 0;
7886
7918 virtual int joinChannelWithUserAccount(const char* token, const char* channelId, const char* userAccount, const ChannelMediaOptions& options) = 0;
7919
7952 virtual int joinChannelWithUserAccountEx(const char* token, const char* channelId,
7953 const char* userAccount, const ChannelMediaOptions& options,
7954 IRtcEngineEventHandler* eventHandler) = 0;
7955
7973 virtual int getUserInfoByUserAccount(const char* userAccount, rtc::UserInfo* userInfo) = 0;
7974
7992 virtual int getUserInfoByUid(uid_t uid, rtc::UserInfo* userInfo) = 0;
7993
8028 virtual int startOrUpdateChannelMediaRelay(const ChannelMediaRelayConfiguration &configuration) = 0;
8029
8058 virtual int stopChannelMediaRelay() = 0;
8059
8069 virtual int pauseAllChannelMediaRelay() = 0;
8070
8080 virtual int resumeAllChannelMediaRelay() = 0;
8081
8094 virtual int setDirectCdnStreamingAudioConfiguration(AUDIO_PROFILE_TYPE profile) = 0;
8095
8110 virtual int setDirectCdnStreamingVideoConfiguration(const VideoEncoderConfiguration& config) = 0;
8111
8125 virtual int startDirectCdnStreaming(IDirectCdnStreamingEventHandler* eventHandler,
8126 const char* publishUrl, const DirectCdnStreamingMediaOptions& options) = 0;
8127
8137 virtual int stopDirectCdnStreaming() = 0;
8138
8150 virtual int updateDirectCdnStreamingMediaOptions(const DirectCdnStreamingMediaOptions& options) = 0;
8151
8162 virtual int startRhythmPlayer(const char* sound1, const char* sound2, const AgoraRhythmPlayerConfig& config) = 0;
8163
8170 virtual int stopRhythmPlayer() = 0;
8171
8180 virtual int configRhythmPlayer(const AgoraRhythmPlayerConfig& config) = 0;
8181
8211 virtual int takeSnapshot(uid_t uid, const char* filePath) = 0;
8212
8237 virtual int takeSnapshot(uid_t uid, const media::SnapshotConfig& config) = 0;
8238
8248 virtual int enableContentInspect(bool enabled, const media::ContentInspectConfig &config) = 0;
8249 /*
8250 * Adjust the custom audio publish volume by track id.
8251 * @param trackId custom audio track id.
8252 * @param volume The volume, range is [0,100]:
8253 * 0: mute, 100: The original volume
8254 * @return
8255 * - 0: Success.
8256 * - < 0: Failure.
8257 */
8258 virtual int adjustCustomAudioPublishVolume(track_id_t trackId, int volume) = 0;
8259
8260 /*
8261 * Adjust the custom audio playout volume by track id.
8262 * @param trackId custom audio track id.
8263 * @param volume The volume, range is [0,100]:
8264 * 0: mute, 100: The original volume
8265 * @return
8266 * - 0: Success.
8267 * - < 0: Failure.
8268 */
8269 virtual int adjustCustomAudioPlayoutVolume(track_id_t trackId, int volume) = 0;
8270
8300 virtual int setCloudProxy(CLOUD_PROXY_TYPE proxyType) = 0;
8309 virtual int setLocalAccessPoint(const LocalAccessPointConfiguration& config) = 0;
8310
8318 virtual int setAdvancedAudioOptions(AdvancedAudioOptions& options, int sourceType = 0) = 0;
8319
8330 virtual int setAVSyncSource(const char* channelId, uid_t uid) = 0;
8331
8338 virtual int enableVideoImageSource(bool enable, const ImageTrackOptions& options) = 0;
8339
8340 /*
8341 * Get monotonic time in ms which can be used by capture time,
8342 * typical scenario is as follows:
8343 *
8344 * ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
8345 * | // custom audio/video base capture time, e.g. the first audio/video capture time. |
8346 * | int64_t custom_capture_time_base; |
8347 * | |
8348 * | int64_t agora_monotonic_time = getCurrentMonotonicTimeInMs(); |
8349 * | |
8350 * | // offset is fixed once calculated in the begining. |
8351 * | const int64_t offset = agora_monotonic_time - custom_capture_time_base; |
8352 * | |
8353 * | // realtime_custom_audio/video_capture_time is the origin capture time that customer provided.|
8354 * | // actual_audio/video_capture_time is the actual capture time transfered to sdk. |
8355 * | int64_t actual_audio_capture_time = realtime_custom_audio_capture_time + offset; |
8356 * | int64_t actual_video_capture_time = realtime_custom_video_capture_time + offset; |
8357 * ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
8358 *
8359 * @return
8360 * - >= 0: Success.
8361 * - < 0: Failure.
8362 */
8363 virtual int64_t getCurrentMonotonicTimeInMs() = 0;
8364
8380 virtual int enableWirelessAccelerate(bool enabled) = 0;
8381
8396 virtual int getNetworkType() = 0;
8397
8406 virtual int setParameters(const char* parameters) = 0;
8407
8422 virtual int startMediaRenderingTracing() = 0;
8423
8437 virtual int enableInstantMediaRendering() = 0;
8438
8442 virtual uint64_t getNtpWallTimeInMs() = 0;
8443
8452 virtual bool isFeatureAvailableOnDevice(FeatureType type) = 0;
8453
8464 virtual int sendAudioMetadata(const char* metadata, size_t length) = 0;
8465
8475 virtual int queryHDRCapability(VIDEO_MODULE_TYPE videoModule, HDR_CAPABILITY& capability) = 0;
8476 };
8477
8478 // The following types are either deprecated or not implmented yet.
8479 enum QUALITY_REPORT_FORMAT_TYPE {
8482 QUALITY_REPORT_JSON = 0,
8485 QUALITY_REPORT_HTML = 1,
8486 };
8487
8489 enum MEDIA_DEVICE_STATE_TYPE {
8492 MEDIA_DEVICE_STATE_IDLE = 0,
8495 MEDIA_DEVICE_STATE_ACTIVE = 1,
8498 MEDIA_DEVICE_STATE_DISABLED = 2,
8499
8502 MEDIA_DEVICE_STATE_PLUGGED_IN = 3,
8503
8506 MEDIA_DEVICE_STATE_NOT_PRESENT = 4,
8509 MEDIA_DEVICE_STATE_UNPLUGGED = 8
8510 };
8511
8512 enum VIDEO_PROFILE_TYPE { // res fps
8514 VIDEO_PROFILE_LANDSCAPE_120P = 0, // 160x120 15
8516 VIDEO_PROFILE_LANDSCAPE_120P_3 = 2, // 120x120 15
8518 VIDEO_PROFILE_LANDSCAPE_180P = 10, // 320x180 15
8520 VIDEO_PROFILE_LANDSCAPE_180P_3 = 12, // 180x180 15
8522 VIDEO_PROFILE_LANDSCAPE_180P_4 = 13, // 240x180 15
8524 VIDEO_PROFILE_LANDSCAPE_240P = 20, // 320x240 15
8526 VIDEO_PROFILE_LANDSCAPE_240P_3 = 22, // 240x240 15
8528 VIDEO_PROFILE_LANDSCAPE_240P_4 = 23, // 424x240 15
8530 VIDEO_PROFILE_LANDSCAPE_360P = 30, // 640x360 15
8532 VIDEO_PROFILE_LANDSCAPE_360P_3 = 32, // 360x360 15
8534 VIDEO_PROFILE_LANDSCAPE_360P_4 = 33, // 640x360 30
8536 VIDEO_PROFILE_LANDSCAPE_360P_6 = 35, // 360x360 30
8538 VIDEO_PROFILE_LANDSCAPE_360P_7 = 36, // 480x360 15
8540 VIDEO_PROFILE_LANDSCAPE_360P_8 = 37, // 480x360 30
8542 VIDEO_PROFILE_LANDSCAPE_360P_9 = 38, // 640x360 15
8544 VIDEO_PROFILE_LANDSCAPE_360P_10 = 39, // 640x360 24
8546 VIDEO_PROFILE_LANDSCAPE_360P_11 = 100, // 640x360 24
8548 VIDEO_PROFILE_LANDSCAPE_480P = 40, // 640x480 15
8550 VIDEO_PROFILE_LANDSCAPE_480P_3 = 42, // 480x480 15
8552 VIDEO_PROFILE_LANDSCAPE_480P_4 = 43, // 640x480 30
8554 VIDEO_PROFILE_LANDSCAPE_480P_6 = 45, // 480x480 30
8556 VIDEO_PROFILE_LANDSCAPE_480P_8 = 47, // 848x480 15
8558 VIDEO_PROFILE_LANDSCAPE_480P_9 = 48, // 848x480 30
8560 VIDEO_PROFILE_LANDSCAPE_480P_10 = 49, // 640x480 10
8562 VIDEO_PROFILE_LANDSCAPE_720P = 50, // 1280x720 15
8564 VIDEO_PROFILE_LANDSCAPE_720P_3 = 52, // 1280x720 30
8566 VIDEO_PROFILE_LANDSCAPE_720P_5 = 54, // 960x720 15
8568 VIDEO_PROFILE_LANDSCAPE_720P_6 = 55, // 960x720 30
8570 VIDEO_PROFILE_LANDSCAPE_1080P = 60, // 1920x1080 15
8572 VIDEO_PROFILE_LANDSCAPE_1080P_3 = 62, // 1920x1080 30
8574 VIDEO_PROFILE_LANDSCAPE_1080P_5 = 64, // 1920x1080 60
8576 VIDEO_PROFILE_LANDSCAPE_1440P = 66, // 2560x1440 30
8578 VIDEO_PROFILE_LANDSCAPE_1440P_2 = 67, // 2560x1440 60
8580 VIDEO_PROFILE_LANDSCAPE_4K = 70, // 3840x2160 30
8582 VIDEO_PROFILE_LANDSCAPE_4K_3 = 72, // 3840x2160 60
8584 VIDEO_PROFILE_PORTRAIT_120P = 1000, // 120x160 15
8586 VIDEO_PROFILE_PORTRAIT_120P_3 = 1002, // 120x120 15
8588 VIDEO_PROFILE_PORTRAIT_180P = 1010, // 180x320 15
8590 VIDEO_PROFILE_PORTRAIT_180P_3 = 1012, // 180x180 15
8592 VIDEO_PROFILE_PORTRAIT_180P_4 = 1013, // 180x240 15
8594 VIDEO_PROFILE_PORTRAIT_240P = 1020, // 240x320 15
8596 VIDEO_PROFILE_PORTRAIT_240P_3 = 1022, // 240x240 15
8598 VIDEO_PROFILE_PORTRAIT_240P_4 = 1023, // 240x424 15
8600 VIDEO_PROFILE_PORTRAIT_360P = 1030, // 360x640 15
8602 VIDEO_PROFILE_PORTRAIT_360P_3 = 1032, // 360x360 15
8604 VIDEO_PROFILE_PORTRAIT_360P_4 = 1033, // 360x640 30
8606 VIDEO_PROFILE_PORTRAIT_360P_6 = 1035, // 360x360 30
8608 VIDEO_PROFILE_PORTRAIT_360P_7 = 1036, // 360x480 15
8610 VIDEO_PROFILE_PORTRAIT_360P_8 = 1037, // 360x480 30
8612 VIDEO_PROFILE_PORTRAIT_360P_9 = 1038, // 360x640 15
8614 VIDEO_PROFILE_PORTRAIT_360P_10 = 1039, // 360x640 24
8616 VIDEO_PROFILE_PORTRAIT_360P_11 = 1100, // 360x640 24
8618 VIDEO_PROFILE_PORTRAIT_480P = 1040, // 480x640 15
8620 VIDEO_PROFILE_PORTRAIT_480P_3 = 1042, // 480x480 15
8622 VIDEO_PROFILE_PORTRAIT_480P_4 = 1043, // 480x640 30
8624 VIDEO_PROFILE_PORTRAIT_480P_6 = 1045, // 480x480 30
8626 VIDEO_PROFILE_PORTRAIT_480P_8 = 1047, // 480x848 15
8628 VIDEO_PROFILE_PORTRAIT_480P_9 = 1048, // 480x848 30
8630 VIDEO_PROFILE_PORTRAIT_480P_10 = 1049, // 480x640 10
8632 VIDEO_PROFILE_PORTRAIT_720P = 1050, // 720x1280 15
8634 VIDEO_PROFILE_PORTRAIT_720P_3 = 1052, // 720x1280 30
8636 VIDEO_PROFILE_PORTRAIT_720P_5 = 1054, // 720x960 15
8638 VIDEO_PROFILE_PORTRAIT_720P_6 = 1055, // 720x960 30
8640 VIDEO_PROFILE_PORTRAIT_1080P = 1060, // 1080x1920 15
8642 VIDEO_PROFILE_PORTRAIT_1080P_3 = 1062, // 1080x1920 30
8644 VIDEO_PROFILE_PORTRAIT_1080P_5 = 1064, // 1080x1920 60
8646 VIDEO_PROFILE_PORTRAIT_1440P = 1066, // 1440x2560 30
8648 VIDEO_PROFILE_PORTRAIT_1440P_2 = 1067, // 1440x2560 60
8650 VIDEO_PROFILE_PORTRAIT_4K = 1070, // 2160x3840 30
8652 VIDEO_PROFILE_PORTRAIT_4K_3 = 1072, // 2160x3840 60
8654 VIDEO_PROFILE_DEFAULT = VIDEO_PROFILE_LANDSCAPE_360P,
8655 };
8656
8657 class AAudioDeviceManager : public agora::util::AutoPtr<IAudioDeviceManager> {
8658 public:
8659 AAudioDeviceManager(IRtcEngine* engine) {
8660 queryInterface(engine, AGORA_IID_AUDIO_DEVICE_MANAGER);
8661 }
8662 };
8663
8664 class AVideoDeviceManager : public agora::util::AutoPtr<IVideoDeviceManager> {
8665 public:
8666 AVideoDeviceManager(IRtcEngine* engine) {
8667 queryInterface(engine, AGORA_IID_VIDEO_DEVICE_MANAGER);
8668 }
8669 };
8670
8671 } // namespace rtc
8672 } // namespace agora
8673
8679 #define getAgoraRtcEngineVersion getAgoraSdkVersion
8680
8682
8685
8691 AGORA_API agora::rtc::IRtcEngine* AGORA_CALL createAgoraRtcEngine();
8692
8694
8695
8702 #define getAgoraRtcEngineErrorDescription getAgoraSdkErrorDescription
8703 #define setAgoraRtcEngineExternalSymbolLoader setAgoraSdkExternalSymbolLoader
agora::rtc::IRtcEngine::setDirectCdnStreamingAudioConfiguration
virtual int setDirectCdnStreamingAudioConfiguration(AUDIO_PROFILE_TYPE profile)=0
agora::rtc::IRtcEngine::getErrorDescription
virtual const char * getErrorDescription(int code)=0
agora::rtc::IRtcEngine::enableAudioSpectrumMonitor
virtual int enableAudioSpectrumMonitor(int intervalInMS=100)=0
agora::rtc::IRtcEngine::setSubscribeVideoAllowlist
virtual int setSubscribeVideoAllowlist(uid_t *uidList, int uidNumber)=0
agora::rtc::IRtcEngine::adjustRecordingSignalVolume
virtual int adjustRecordingSignalVolume(int volume)=0
agora::rtc::IRtcEngine::enableWebSdkInteroperability
virtual int enableWebSdkInteroperability(bool enabled) __deprecated=0
agora::rtc::IRtcEngine::enableSpatialAudio
virtual int enableSpatialAudio(bool enabled)=0
agora::rtc::ChannelMediaOptions::publishMediaPlayerAudioTrack
Optional< bool > publishMediaPlayerAudioTrack
Definition: IAgoraRtcEngine.h:1160
agora::rtc::PublisherConfiguration::extraInfo
const char * extraInfo
Definition: IAgoraRtcEngine.h:766
agora::rtc::IRtcEngine::setAVSyncSource
virtual int setAVSyncSource(const char *channelId, uid_t uid)=0
agora::VideoLayout
Definition: AgoraBase.h:6935
agora::rtc::RtcEngineContext::appId
const char * appId
Definition: IAgoraRtcEngine.h:3129
agora::rtc::IRtcEngine::setSubscribeAudioBlocklist
virtual int setSubscribeAudioBlocklist(uid_t *uidList, int uidNumber)=0
agora::rtc::IRtcEngineEventHandler::onUserAccountUpdated
virtual void onUserAccountUpdated(uid_t uid, const char *userAccount)
Definition: IAgoraRtcEngine.h:2759
agora::rtc::IRtcEngine::enableInEarMonitoring
virtual int enableInEarMonitoring(bool enabled, int includeAudioFilters)=0
agora::rtc::IRtcEngineEventHandler::onRtmpStreamingEvent
virtual void onRtmpStreamingEvent(const char *url, RTMP_STREAMING_EVENT eventCode)
Definition: IAgoraRtcEngine.h:2501
agora::rtc::IRtcEngineEventHandler::onExtensionErrorWithContext
virtual void onExtensionErrorWithContext(const ExtensionContext &context, int error, const char *message)
Definition: IAgoraRtcEngine.h:2944
agora::rtc::LocalVideoStats::regulatedCaptureFrameHeight
int regulatedCaptureFrameHeight
Definition: IAgoraRtcEngine.h:308
agora::rtc::IRtcEngine::setEffectPosition
virtual int setEffectPosition(int soundId, int pos)=0
agora::rtc::UserInfo
Definition: AgoraBase.h:6520
agora::rtc::RemoteVideoStats::publishDuration
int publishDuration
Definition: IAgoraRtcEngine.h:563
agora::rtc::FilterEffectOptions
Definition: AgoraBase.h:4935
agora::rtc::IRtcEngine::stopDirectCdnStreaming
virtual int stopDirectCdnStreaming()=0
agora::rtc::LastmileProbeResult
Definition: AgoraBase.h:4391
agora::rtc::AudioEncodedFrameObserverConfig
Definition: AgoraBase.h:5891
agora::rtc::ScreenCaptureParameters
Definition: AgoraBase.h:5588
agora::rtc::IRtcEngine::muteAllRemoteVideoStreams
virtual int muteAllRemoteVideoStreams(bool mute)=0
agora::rtc::IRtcEngine::setRemoteVideoSubscriptionOptions
virtual int setRemoteVideoSubscriptionOptions(uid_t uid, const VideoSubscriptionOptions &options)=0
agora::rtc::AudioVolumeInfo
Definition: AgoraBase.h:3405
agora::rtc::RemoteVideoStats::e2eDelay
int e2eDelay
Definition: IAgoraRtcEngine.h:508
agora::rtc::InjectStreamConfig::audioChannels
int audioChannels
Definition: IAgoraRtcEngine.h:688
agora::rtc::LocalVideoStats::regulatedCaptureFrameWidth
int regulatedCaptureFrameWidth
Definition: IAgoraRtcEngine.h:304
agora::rtc::IRtcEngine::pauseEffect
virtual int pauseEffect(int soundId)=0
agora::rtc::BeautyOptions
Definition: AgoraBase.h:4800
agora::rtc::ChannelMediaOptions::publishSecondaryCameraTrack
Optional< bool > publishSecondaryCameraTrack
Definition: IAgoraRtcEngine.h:1072
agora::rtc::SenderOptions
Definition: AgoraBase.h:1254
agora::rtc::IRtcEngine::muteLocalVideoStream
virtual int muteLocalVideoStream(bool mute)=0
agora::rtc::RtcEngineContext::eventHandler
IRtcEngineEventHandler * eventHandler
Definition: IAgoraRtcEngine.h:3122
agora::rtc::IRtcEngine::stopPreview
virtual int stopPreview(VIDEO_SOURCE_TYPE sourceType)=0
agora::rtc::IRtcEngine::startScreenCapture
virtual int startScreenCapture(VIDEO_SOURCE_TYPE sourceType, const ScreenCaptureConfiguration &config)=0
agora::rtc::IRtcEngineEventHandler::onIntraRequestReceived
virtual void onIntraRequestReceived()
Definition: IAgoraRtcEngine.h:1741
agora::rtc::VideoCompositingLayout
Definition: IAgoraRtcEngine.h:578
agora::rtc::VideoCompositingLayout::canvasHeight
int canvasHeight
Definition: IAgoraRtcEngine.h:627
agora::rtc::IRtcEngine::setVoiceConversionPreset
virtual int setVoiceConversionPreset(VOICE_CONVERSION_PRESET preset)=0
agora::rtc::DirectCdnStreamingStats::videoHeight
int videoHeight
Definition: IAgoraRtcEngine.h:3348
agora::rtc::LastmileProbeConfig
Definition: AgoraBase.h:4321
agora::rtc::IRtcEngine::enableLocalVideo
virtual int enableLocalVideo(bool enabled)=0
agora::rtc::IRtcEngineEventHandler::onLeaveChannel
virtual void onLeaveChannel(const RtcStats &stats)
Definition: IAgoraRtcEngine.h:1637
agora::rtc::IRtcEngine::joinChannel
virtual int joinChannel(const char *token, const char *channelId, uid_t uid, const ChannelMediaOptions &options)=0
agora::rtc::IRtcEngineEventHandler::onRhythmPlayerStateChanged
virtual void onRhythmPlayerStateChanged(RHYTHM_PLAYER_STATE_TYPE state, RHYTHM_PLAYER_REASON reason)
Definition: IAgoraRtcEngine.h:2196
agora::rtc::IDirectCdnStreamingEventHandler::onDirectCdnStreamingStateChanged
virtual void onDirectCdnStreamingStateChanged(DIRECT_CDN_STREAMING_STATE state, DIRECT_CDN_STREAMING_REASON reason, const char *message)
Definition: IAgoraRtcEngine.h:3380
agora::rtc::IRtcEngine::getAudioTrackCount
virtual int getAudioTrackCount()=0
agora::rtc::IRtcEngineEventHandler::onStreamMessage
virtual void onStreamMessage(uid_t uid, int streamId, const char *data, size_t length, uint64_t sentTs)
Definition: IAgoraRtcEngine.h:2240
agora::rtc::IRtcEngineEventHandler::onFirstRemoteVideoDecoded
virtual void onFirstRemoteVideoDecoded(uid_t uid, int width, int height, int elapsed) __deprecated
Definition: IAgoraRtcEngine.h:1830
agora::rtc::LocalVideoStats::uid
uid_t uid
Definition: IAgoraRtcEngine.h:279
agora::rtc::IRtcEngine::stopChannelMediaRelay
virtual int stopChannelMediaRelay()=0
agora::rtc::IRtcEngineEventHandler::onAudioEffectFinished
virtual void onAudioEffectFinished(int soundId)
Definition: IAgoraRtcEngine.h:1690
agora::rtc::RtcEngineContext::threadPriority
Optional< THREAD_PRIORITY_TYPE > threadPriority
Definition: IAgoraRtcEngine.h:3184
agora::rtc::IRtcEngine::registerAudioEncodedFrameObserver
virtual int registerAudioEncodedFrameObserver(const AudioEncodedFrameObserverConfig &config, IAudioEncodedFrameObserver *observer)=0
agora::rtc::IRtcEngine::queryHDRCapability
virtual int queryHDRCapability(VIDEO_MODULE_TYPE videoModule, HDR_CAPABILITY &capability)=0
Queries the HDR capability of the video module.
agora::rtc::IRtcEngine::setFaceShapeBeautyOptions
virtual int setFaceShapeBeautyOptions(bool enabled, const FaceShapeBeautyOptions &options, agora::media::MEDIA_SOURCE_TYPE type=agora::media::PRIMARY_CAMERA_SOURCE)=0
agora::rtc::ChannelMediaOptions::enableBuiltInMediaEncryption
Optional< bool > enableBuiltInMediaEncryption
Definition: IAgoraRtcEngine.h:1252
agora::rtc::IRtcEngine::resumeAllEffects
virtual int resumeAllEffects()=0
agora::rtc::IRtcEngine::joinChannelWithUserAccountEx
virtual int joinChannelWithUserAccountEx(const char *token, const char *channelId, const char *userAccount, const ChannelMediaOptions &options, IRtcEngineEventHandler *eventHandler)=0
agora::rtc::InjectStreamConfig::width
int width
Definition: IAgoraRtcEngine.h:661
agora::rtc::IRtcEngine::pauseAudioMixing
virtual int pauseAudioMixing()=0
agora::rtc::IRtcEngine::setPlaybackAudioFrameBeforeMixingParameters
virtual int setPlaybackAudioFrameBeforeMixingParameters(int sampleRate, int channel)=0
agora::rtc::IRtcEngineEventHandler::onRemoteAudioTransportStats
virtual void onRemoteAudioTransportStats(uid_t uid, unsigned short delay, unsigned short lost, unsigned short rxKBitRate) __deprecated
Definition: IAgoraRtcEngine.h:2622
agora::rtc::RemoteAudioStats::totalActiveTime
int totalActiveTime
Definition: IAgoraRtcEngine.h:445
agora::agora_refptr
Definition: AgoraRefPtr.h:44
agora::rtc::IRtcEngineEventHandler::onFirstRemoteAudioFrame
virtual void onFirstRemoteAudioFrame(uid_t uid, int elapsed) __deprecated
Definition: IAgoraRtcEngine.h:2345
agora::rtc::IVideoDeviceCollection::release
virtual void release()=0
agora::rtc::IVideoDeviceManager::enumerateVideoDevices
virtual IVideoDeviceCollection * enumerateVideoDevices()=0
agora::rtc::LeaveChannelOptions::stopAudioMixing
bool stopAudioMixing
Definition: IAgoraRtcEngine.h:1476
agora::rtc::IRtcEngine::getVersion
virtual const char * getVersion(int *build)=0
agora::rtc::RemoteVideoStats::totalActiveTime
int totalActiveTime
Definition: IAgoraRtcEngine.h:559
agora::rtc::IRtcEngine::setAudioMixingPitch
virtual int setAudioMixingPitch(int pitch)=0
agora::rtc::ChannelMediaOptions::publishRhythmPlayerTrack
Optional< bool > publishRhythmPlayerTrack
Definition: IAgoraRtcEngine.h:1258
agora::rtc::ChannelMediaOptions::publishCustomVideoTrack
Optional< bool > publishCustomVideoTrack
Definition: IAgoraRtcEngine.h:1148
agora::rtc::IRtcEngineEventHandler::onLocalVideoStateChanged
virtual void onLocalVideoStateChanged(VIDEO_SOURCE_TYPE source, LOCAL_VIDEO_STREAM_STATE state, LOCAL_VIDEO_STREAM_REASON reason)
Definition: IAgoraRtcEngine.h:1878
agora::media::IAudioSpectrumObserver
Definition: AgoraMediaBase.h:1598
agora::rtc::DirectCdnStreamingStats::videoWidth
int videoWidth
Definition: IAgoraRtcEngine.h:3343
agora::rtc::IMetadataObserver::Metadata::buffer
unsigned char * buffer
Definition: IAgoraRtcEngine.h:3261
agora::rtc::PublisherConfiguration::publishUrl
const char * publishUrl
Definition: IAgoraRtcEngine.h:759
agora::rtc::IRtcEngine::enableVoiceAITuner
virtual int enableVoiceAITuner(bool enabled, VOICE_AI_TUNER_TYPE type)=0
agora::rtc::ExtensionInfo
Definition: IAgoraRtcEngine.h:3492
agora::rtc::IRtcEngineEventHandler::onVideoRenderingTracingResult
virtual void onVideoRenderingTracingResult(uid_t uid, MEDIA_TRACE_EVENT currentEvent, VideoRenderingTracingInfo tracingInfo)
Definition: IAgoraRtcEngine.h:2771
agora::rtc::ExtensionInfo::remoteUid
uid_t remoteUid
Definition: IAgoraRtcEngine.h:3503
agora::rtc::PublisherConfiguration::lifecycle
int lifecycle
Definition: IAgoraRtcEngine.h:741
agora::rtc::IRtcEngine::startPreview
virtual int startPreview()=0
agora::rtc::IMetadataObserver::Metadata::timeStampMs
long long timeStampMs
Definition: IAgoraRtcEngine.h:3265
agora::rtc::IRtcEngineEventHandler::onLocalAudioStats
virtual void onLocalAudioStats(const LocalAudioStats &stats)
Definition: IAgoraRtcEngine.h:2055
agora::rtc::IRtcEngine::setAINSMode
virtual int setAINSMode(bool enabled, AUDIO_AINS_MODE mode)=0
agora::rtc::IRtcEngine::updateLocalAudioMixerConfiguration
virtual int updateLocalAudioMixerConfiguration(const LocalAudioMixerConfiguration &config)=0
agora::rtc::ChannelMediaOptions::autoSubscribeAudio
Optional< bool > autoSubscribeAudio
Definition: IAgoraRtcEngine.h:1190
agora::rtc::IRtcEngineEventHandler::onCameraExposureAreaChanged
virtual void onCameraExposureAreaChanged(int x, int y, int width, int height)
Definition: IAgoraRtcEngine.h:2120
agora::rtc::LocalAccessPointConfiguration
Definition: AgoraBase.h:6793
agora::rtc::IRtcEngineEventHandler::onClientRoleChangeFailed
virtual void onClientRoleChangeFailed(CLIENT_ROLE_CHANGE_FAILED_REASON reason, CLIENT_ROLE_TYPE currentRole)
Definition: IAgoraRtcEngine.h:2460
agora::rtc::IVideoDeviceCollection::getDevice
virtual int getDevice(int index, char deviceNameUTF8[MAX_DEVICE_ID_LENGTH], char deviceIdUTF8[MAX_DEVICE_ID_LENGTH])=0
agora::rtc::DirectCdnStreamingStats::videoBitrate
int videoBitrate
Definition: IAgoraRtcEngine.h:3358
agora::rtc::IRtcEngineEventHandler::onLastmileQuality
virtual void onLastmileQuality(int quality)
Definition: IAgoraRtcEngine.h:1780
agora::rtc::IRtcEngine::enableInstantMediaRendering
virtual int enableInstantMediaRendering()=0
Enable instant media rendering.
agora::rtc::IRtcEngine::setRemoteRenderMode
virtual int setRemoteRenderMode(uid_t uid, media::base::RENDER_MODE_TYPE renderMode, VIDEO_MIRROR_MODE_TYPE mirrorMode)=0
agora::rtc::ChannelMediaOptions::isAudioFilterable
Optional< bool > isAudioFilterable
Definition: IAgoraRtcEngine.h:1277
agora::rtc::LiveTranscoding
Definition: AgoraBase.h:3965
agora::rtc::ChannelMediaOptions::audienceLatencyLevel
Optional< AUDIENCE_LATENCY_LEVEL_TYPE > audienceLatencyLevel
Definition: IAgoraRtcEngine.h:1215
agora::rtc::IRtcEngineEventHandler::onRemoteVideoTransportStats
virtual void onRemoteVideoTransportStats(uid_t uid, unsigned short delay, unsigned short lost, unsigned short rxKBitRate) __deprecated
Definition: IAgoraRtcEngine.h:2646
agora::rtc::LocalVideoStats::sentFrameRate
int sentFrameRate
Definition: IAgoraRtcEngine.h:287
agora::rtc::Rectangle
Definition: AgoraBase.h:2221
agora::rtc::IRtcEngine::setDirectCdnStreamingVideoConfiguration
virtual int setDirectCdnStreamingVideoConfiguration(const VideoEncoderConfiguration &config)=0
agora::rtc::IRtcEngine::createDataStream
virtual int createDataStream(int *streamId, bool reliable, bool ordered)=0
agora::rtc::IVideoDeviceManager::release
virtual void release()=0
agora::rtc::IRtcEngine::setVolumeOfEffect
virtual int setVolumeOfEffect(int soundId, int volume)=0
agora::rtc::IRtcEngineEventHandler::onUserInfoUpdated
virtual void onUserInfoUpdated(uid_t uid, const UserInfo &info)
Definition: IAgoraRtcEngine.h:2748
agora::rtc::IRtcEngineEventHandler::onNetworkTypeChanged
virtual void onNetworkTypeChanged(NETWORK_TYPE type)
Definition: IAgoraRtcEngine.h:2698
agora::rtc::IRtcEngineEventHandler::onFirstRemoteAudioDecoded
virtual void onFirstRemoteAudioDecoded(uid_t uid, int elapsed) __deprecated
Definition: IAgoraRtcEngine.h:2333
agora::rtc::InjectStreamConfig::videoFramerate
int videoFramerate
Definition: IAgoraRtcEngine.h:673
agora::rtc::IRtcEngine::setDualStreamMode
virtual int setDualStreamMode(SIMULCAST_STREAM_MODE mode, const SimulcastStreamConfig &streamConfig)=0
agora::rtc::IRtcEngine::stopAudioFrameDump
virtual int stopAudioFrameDump(const char *channel_id, uid_t uid, const char *location)=0
agora::rtc::IRtcEngine::enableAudioVolumeIndication
virtual int enableAudioVolumeIndication(int interval, int smooth, bool reportVad)=0
agora::rtc::ChannelMediaOptions::mediaPlayerAudioDelayMs
Optional< int > mediaPlayerAudioDelayMs
Definition: IAgoraRtcEngine.h:1235
agora::rtc::IMetadataObserver::onReadyToSendMetadata
virtual bool onReadyToSendMetadata(Metadata &metadata, VIDEO_SOURCE_TYPE source_type)=0
agora::rtc::IRtcEngine::registerPacketObserver
virtual int registerPacketObserver(IPacketObserver *observer)=0
agora::rtc::RemoteAudioStats::networkTransportDelay
int networkTransportDelay
Definition: IAgoraRtcEngine.h:378
agora::rtc::IRtcEngine::unregisterMediaMetadataObserver
virtual int unregisterMediaMetadataObserver(IMetadataObserver *observer, IMetadataObserver::METADATA_TYPE type)=0
agora::rtc::IRtcEngineEventHandler::onLocalVideoTranscoderError
virtual void onLocalVideoTranscoderError(const TranscodingVideoStream &stream, VIDEO_TRANSCODER_ERROR error)
Definition: IAgoraRtcEngine.h:2783
agora::rtc::IRtcEngine::getUserInfoByUid
virtual int getUserInfoByUid(uid_t uid, rtc::UserInfo *userInfo)=0
agora::rtc::IRtcEngine::pauseAllEffects
virtual int pauseAllEffects()=0
agora::rtc::IRtcEngine::disableAudioSpectrumMonitor
virtual int disableAudioSpectrumMonitor()=0
agora::rtc::IRtcEngineEventHandler::onFirstLocalAudioFramePublished
virtual void onFirstLocalAudioFramePublished(int elapsed)
Definition: IAgoraRtcEngine.h:2313
agora::util::AutoPtr
Definition: AgoraBase.h:100
agora::rtc::LocalVideoStats::sentBitrate
int sentBitrate
Definition: IAgoraRtcEngine.h:283
agora::rtc::IRtcEngine::getAudioMixingPublishVolume
virtual int getAudioMixingPublishVolume()=0
agora::rtc::IRtcEngine::addVideoWatermark
virtual int addVideoWatermark(const char *watermarkUrl, const WatermarkOptions &options)=0
agora::rtc::IRtcEngineEventHandler::onRejoinChannelSuccess
virtual void onRejoinChannelSuccess(const char *channel, uid_t uid, int elapsed)
Definition: IAgoraRtcEngine.h:1534
agora::rtc::RemoteVideoStats::totalFrozenTime
int totalFrozenTime
Definition: IAgoraRtcEngine.h:545
agora::rtc::IMetadataObserver::METADATA_TYPE
METADATA_TYPE
Definition: IAgoraRtcEngine.h:3226
agora::rtc::IRtcEngine::setCloudProxy
virtual int setCloudProxy(CLOUD_PROXY_TYPE proxyType)=0
agora::rtc::RemoteAudioStats::receivedBitrate
int receivedBitrate
Definition: IAgoraRtcEngine.h:401
agora::rtc::VideoEncoderConfiguration
Definition: AgoraBase.h:1921
agora::rtc::IMetadataObserver::Metadata::channelId
const char * channelId
Definition: IAgoraRtcEngine.h:3250
agora::rtc::IRtcEngineEventHandler
Definition: IAgoraRtcEngine.h:1503
agora::rtc::VideoCompositingLayout::Region::height
double height
Definition: IAgoraRtcEngine.h:594
agora::rtc::IRtcEngine::leaveChannel
virtual int leaveChannel(const LeaveChannelOptions &options)=0
agora::rtc::IVideoDeviceManager::getDevice
virtual int getDevice(char deviceIdUTF8[MAX_DEVICE_ID_LENGTH])=0
agora::rtc::IRtcEngine::startAudioMixing
virtual int startAudioMixing(const char *filePath, bool loopback, int cycle, int startPos)=0
agora::rtc::IRtcEngineEventHandler::onUserMuteAudio
virtual void onUserMuteAudio(uid_t uid, bool muted)
Definition: IAgoraRtcEngine.h:1971
agora::rtc::ChannelMediaOptions::publishCustomAudioTrackId
Optional< int > publishCustomAudioTrackId
Definition: IAgoraRtcEngine.h:1142
agora::rtc::VideoSubscriptionOptions
Definition: AgoraBase.h:1610
agora::rtc::IRtcEngine::registerLocalUserAccount
virtual int registerLocalUserAccount(const char *appId, const char *userAccount)=0
agora::rtc::IRtcEngineEventHandler::onUplinkNetworkInfoUpdated
virtual void onUplinkNetworkInfoUpdated(const UplinkNetworkInfo &info)
Definition: IAgoraRtcEngine.h:1753
agora::rtc::DirectCdnStreamingMediaOptions::publishMicrophoneTrack
Optional< bool > publishMicrophoneTrack
Definition: IAgoraRtcEngine.h:3406
agora::rtc::EchoTestConfiguration
Definition: AgoraBase.h:6497
agora::rtc::RtcImage
Definition: AgoraBase.h:3775
agora::rtc::VideoCompositingLayout::backgroundColor
const char * backgroundColor
Definition: IAgoraRtcEngine.h:630
agora::rtc::IRtcEngine::getAudioMixingCurrentPosition
virtual int getAudioMixingCurrentPosition()=0
agora::rtc::IRtcEngine::startDirectCdnStreaming
virtual int startDirectCdnStreaming(IDirectCdnStreamingEventHandler *eventHandler, const char *publishUrl, const DirectCdnStreamingMediaOptions &options)=0
agora::rtc::IRtcEngine::registerAudioSpectrumObserver
virtual int registerAudioSpectrumObserver(agora::media::IAudioSpectrumObserver *observer)=0
agora::rtc::LocalVideoStats::encodedBitrate
int encodedBitrate
Definition: IAgoraRtcEngine.h:334
agora::rtc::LocalVideoStats::qualityAdaptIndication
QUALITY_ADAPT_INDICATION qualityAdaptIndication
Definition: IAgoraRtcEngine.h:330
agora::rtc::IRtcEngine::enableDualStreamMode
virtual int enableDualStreamMode(bool enabled, const SimulcastStreamConfig &streamConfig) __deprecated=0
agora::rtc::ChannelMediaOptions::customVideoTrackId
Optional< video_track_id_t > customVideoTrackId
Definition: IAgoraRtcEngine.h:1271
agora::rtc::SimulcastStreamConfig
Definition: AgoraBase.h:2134
agora::rtc::IRtcEngineEventHandler::onConnectionInterrupted
virtual void onConnectionInterrupted() __deprecated
Definition: IAgoraRtcEngine.h:2222
agora::rtc::IRtcEngine::setMixedAudioFrameParameters
virtual int setMixedAudioFrameParameters(int sampleRate, int channel, int samplesPerCall)=0
agora::rtc::IRtcEngine::getVolumeOfEffect
virtual int getVolumeOfEffect(int soundId)=0
agora::rtc::IMetadataObserver::getMaxMetadataSize
virtual int getMaxMetadataSize()
Definition: IAgoraRtcEngine.h:3280
agora::rtc::FaceShapeBeautyOptions
Definition: AgoraBase.h:4908
agora::rtc::IRtcEngine::setSubscribeAudioAllowlist
virtual int setSubscribeAudioAllowlist(uid_t *uidList, int uidNumber)=0
agora::rtc::IRtcEngine::getConnectionState
virtual CONNECTION_STATE_TYPE getConnectionState()=0
agora::rtc::ExtensionInfo::channelId
const char * channelId
Definition: IAgoraRtcEngine.h:3516
agora::rtc::IRtcEngine::isFeatureAvailableOnDevice
virtual bool isFeatureAvailableOnDevice(FeatureType type)=0
Whether the target feature is available for the device.
agora::rtc::IRtcEngine::setExtensionProperty
virtual int setExtensionProperty(const char *provider, const char *extension, const char *key, const char *value, agora::media::MEDIA_SOURCE_TYPE type=agora::media::UNKNOWN_MEDIA_SOURCE)=0
agora::rtc::IRtcEngine::enableEncryption
virtual int enableEncryption(bool enabled, const EncryptionConfig &config)=0
agora::rtc::IRtcEngine::getFaceShapeBeautyOptions
virtual int getFaceShapeBeautyOptions(FaceShapeBeautyOptions &options, agora::media::MEDIA_SOURCE_TYPE type=agora::media::PRIMARY_CAMERA_SOURCE)=0
agora::rtc::IRtcEngine::enableContentInspect
virtual int enableContentInspect(bool enabled, const media::ContentInspectConfig &config)=0
agora::rtc::IRtcEngineEventHandler::onRemoteAudioStateChanged
virtual void onRemoteAudioStateChanged(uid_t uid, REMOTE_AUDIO_STATE state, REMOTE_AUDIO_STATE_REASON reason, int elapsed)
Definition: IAgoraRtcEngine.h:2385
agora::rtc::IRtcEngine::startRhythmPlayer
virtual int startRhythmPlayer(const char *sound1, const char *sound2, const AgoraRhythmPlayerConfig &config)=0
agora::rtc::IRtcEngine::configRhythmPlayer
virtual int configRhythmPlayer(const AgoraRhythmPlayerConfig &config)=0
agora::rtc::ExtensionContext
Definition: AgoraMediaBase.h:41
agora::rtc::IRtcEngine::adjustAudioMixingPublishVolume
virtual int adjustAudioMixingPublishVolume(int volume)=0
agora::rtc::DirectCdnStreamingMediaOptions::publishCameraTrack
Optional< bool > publishCameraTrack
Definition: IAgoraRtcEngine.h:3400
agora::rtc::IVideoDeviceCollection::getCount
virtual int getCount()=0
agora::rtc::IRtcEngine::getAudioMixingDuration
virtual int getAudioMixingDuration()=0
agora::rtc::IRtcEngine::destroyMediaRecorder
virtual int destroyMediaRecorder(agora_refptr< IMediaRecorder > mediaRecorder)=0
agora::rtc::RemoteAudioStats::frozenRateByCustomPlcCount
uint32_t frozenRateByCustomPlcCount
Definition: IAgoraRtcEngine.h:435
agora::rtc::ScreenCaptureConfiguration::params
ScreenCaptureParameters params
Definition: IAgoraRtcEngine.h:873
agora::rtc::IRtcEngineEventHandler::onVideoDeviceStateChanged
virtual void onVideoDeviceStateChanged(const char *deviceId, int deviceType, int deviceState)
Definition: IAgoraRtcEngine.h:1701
agora::rtc::IMetadataObserver
Definition: IAgoraRtcEngine.h:3217
agora::rtc::VideoCompositingLayout::appData
const char * appData
Definition: IAgoraRtcEngine.h:640
agora::rtc::RemoteAudioStats::totalFrozenTime
int totalFrozenTime
Definition: IAgoraRtcEngine.h:408
agora::rtc::IRtcEngineEventHandler::onAudioMixingPositionChanged
virtual void onAudioMixingPositionChanged(int64_t position)
Reports current AudioMixing progress.
Definition: IAgoraRtcEngine.h:1673
agora::rtc::IRtcEngine::setRemoteVoicePosition
virtual int setRemoteVoicePosition(uid_t uid, double pan, double gain)=0
agora::rtc::IRtcEngine::registerMediaMetadataObserver
virtual int registerMediaMetadataObserver(IMetadataObserver *observer, IMetadataObserver::METADATA_TYPE type)=0
agora::rtc::ColorEnhanceOptions
Definition: AgoraBase.h:5058
agora::rtc::PublisherConfiguration::defaultLayout
int defaultLayout
Definition: IAgoraRtcEngine.h:738
agora::rtc::IRtcEngineEventHandler::onTranscodingUpdated
virtual void onTranscodingUpdated()
Definition: IAgoraRtcEngine.h:2516
agora::rtc::IRtcEngine::updateRtmpTranscoding
virtual int updateRtmpTranscoding(const LiveTranscoding &transcoding)=0
agora::rtc::ScreenCaptureConfiguration::displayId
int64_t displayId
Definition: IAgoraRtcEngine.h:859
agora::rtc::RemoteAudioStats::publishDuration
int publishDuration
Definition: IAgoraRtcEngine.h:449
agora::rtc::IRtcEngineEventHandler::onWlAccMessage
virtual void onWlAccMessage(WLACC_MESSAGE_REASON reason, WLACC_SUGGEST_ACTION action, const char *wlAccMsg)
Definition: IAgoraRtcEngine.h:2673
agora::rtc::IRtcEngineEventHandler::onRequestToken
virtual void onRequestToken()
Definition: IAgoraRtcEngine.h:2277
agora::rtc::IRtcEngineEventHandler::onError
virtual void onError(int err, const char *msg)
Definition: IAgoraRtcEngine.h:1560
agora::rtc::UplinkNetworkInfo
Definition: AgoraBase.h:6160
agora::rtc::IRtcEngine::getNtpWallTimeInMs
virtual uint64_t getNtpWallTimeInMs()=0
agora::rtc::IRtcEngine::startRtmpStreamWithoutTranscoding
virtual int startRtmpStreamWithoutTranscoding(const char *url)=0
agora::rtc::VideoCompositingLayout::regionCount
int regionCount
Definition: IAgoraRtcEngine.h:637
agora::rtc::ExtensionInfo::mediaSourceType
agora::media::MEDIA_SOURCE_TYPE mediaSourceType
Definition: IAgoraRtcEngine.h:3496
agora::rtc::IRtcEngineEventHandler::onProxyConnected
virtual void onProxyConnected(const char *channel, uid_t uid, PROXY_TYPE proxyType, const char *localProxyIp, int elapsed)
Definition: IAgoraRtcEngine.h:1547
agora::rtc::IRtcEngineEventHandler::onExtensionEventWithContext
virtual void onExtensionEventWithContext(const ExtensionContext &context, const char *key, const char *value)
Definition: IAgoraRtcEngine.h:2906
agora::rtc::IRtcEngineEventHandler::onLocalPublishFallbackToAudioOnly
virtual void onLocalPublishFallbackToAudioOnly(bool isFallbackOrRecover)
Definition: IAgoraRtcEngine.h:2582
agora::rtc::IRtcEngine::enableExtension
virtual int enableExtension(const char *provider, const char *extension, bool enable=true, agora::media::MEDIA_SOURCE_TYPE type=agora::media::UNKNOWN_MEDIA_SOURCE)=0
agora::rtc::IRtcEngineEventHandler::onUserStateChanged
virtual void onUserStateChanged(uid_t uid, REMOTE_USER_STATE state)
Definition: IAgoraRtcEngine.h:2017
agora::rtc::PublisherConfiguration::height
int height
Definition: IAgoraRtcEngine.h:724
agora::rtc::IRtcEngineEventHandler::onAudioMixingFinished
virtual void onAudioMixingFinished() __deprecated
Definition: IAgoraRtcEngine.h:1681
agora::rtc::AVideoDeviceManager
Definition: IAgoraRtcEngine.h:8664
agora::rtc::LocalVideoStats::codecType
VIDEO_CODEC_TYPE codecType
Definition: IAgoraRtcEngine.h:340
agora::rtc::ExtensionInfo::localUid
uid_t localUid
Definition: IAgoraRtcEngine.h:3521
agora::rtc::IRtcEngine::setSubscribeVideoBlocklist
virtual int setSubscribeVideoBlocklist(uid_t *uidList, int uidNumber)=0
agora::rtc::LocalTranscoderConfiguration
Definition: AgoraBase.h:4189
agora::rtc::IRtcEngine::adjustAudioMixingPlayoutVolume
virtual int adjustAudioMixingPlayoutVolume(int volume)=0
agora::rtc::InjectStreamConfig::audioBitrate
int audioBitrate
Definition: IAgoraRtcEngine.h:685
agora::rtc::IRtcEngine::setCameraDeviceOrientation
virtual int setCameraDeviceOrientation(VIDEO_SOURCE_TYPE type, VIDEO_ORIENTATION orientation)=0
agora::rtc::IRtcEngineEventHandler::onAudioVolumeIndication
virtual void onAudioVolumeIndication(const AudioVolumeInfo *speakers, unsigned int speakerNumber, int totalVolume)
Definition: IAgoraRtcEngine.h:1622
agora::rtc::IRtcEngineEventHandler::onStreamMessageError
virtual void onStreamMessageError(uid_t uid, int streamId, int code, int missed, int cached)
Definition: IAgoraRtcEngine.h:2260
agora::rtc::IPacketObserver
Definition: AgoraBase.h:3457
agora::rtc::IRtcEngine::setLocalPublishFallbackOption
virtual int setLocalPublishFallbackOption(STREAM_FALLBACK_OPTIONS option)=0
agora::rtc::LocalVideoStats::dualStreamEnabled
bool dualStreamEnabled
Definition: IAgoraRtcEngine.h:351
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:461
agora::rtc::ChannelMediaOptions::publishEncodedVideoTrack
Optional< bool > publishEncodedVideoTrack
Definition: IAgoraRtcEngine.h:1154
agora::rtc::IRtcEngine::setDualStreamMode
virtual int setDualStreamMode(SIMULCAST_STREAM_MODE mode)=0
agora::rtc::DirectCdnStreamingStats
Definition: IAgoraRtcEngine.h:3339
agora::rtc::VideoFormat
Definition: AgoraBase.h:2725
agora::rtc::RemoteVideoStats::uid
uid_t uid
Definition: IAgoraRtcEngine.h:496
agora::rtc::IRtcEngineEventHandler::onUserOffline
virtual void onUserOffline(uid_t uid, USER_OFFLINE_REASON_TYPE reason)
Definition: IAgoraRtcEngine.h:1954
agora::rtc::IRtcEngine::registerExtension
virtual int registerExtension(const char *provider, const char *extension, agora::media::MEDIA_SOURCE_TYPE type=agora::media::UNKNOWN_MEDIA_SOURCE)=0
agora::rtc::IRtcEngine::stopRtmpStream
virtual int stopRtmpStream(const char *url)=0
agora::rtc::DataStreamConfig
Definition: AgoraBase.h:2089
agora::rtc::IRtcEngineEventHandler::onCameraFocusAreaChanged
virtual void onCameraFocusAreaChanged(int x, int y, int width, int height)
Definition: IAgoraRtcEngine.h:2106
agora::rtc::VideoCompositingLayout::Region::y
double y
Definition: IAgoraRtcEngine.h:588
agora::rtc::IRtcEngine::stopAudioMixing
virtual int stopAudioMixing()=0
agora::rtc::PublisherConfiguration
Definition: IAgoraRtcEngine.h:716
agora::rtc::IRtcEngineEventHandler::onExtensionStartedWithContext
virtual void onExtensionStartedWithContext(const ExtensionContext &context)
Definition: IAgoraRtcEngine.h:2919
agora::rtc::IRtcEngine::setLogLevel
virtual int setLogLevel(commons::LOG_LEVEL level)=0
agora::rtc::RtcEngineContext::logConfig
commons::LogConfig logConfig
Definition: IAgoraRtcEngine.h:3179
agora::rtc::IRtcEngine::setRemoteDefaultVideoStreamType
virtual int setRemoteDefaultVideoStreamType(VIDEO_STREAM_TYPE streamType)=0
agora::rtc::LocalAudioMixerConfiguration
Definition: AgoraBase.h:4298
agora::rtc::IRtcEngine::setRemoteVideoStreamType
virtual int setRemoteVideoStreamType(uid_t uid, VIDEO_STREAM_TYPE streamType)=0
agora::rtc::DownlinkNetworkInfo
Definition: AgoraBase.h:6173
agora::rtc::IRtcEngineEventHandler::onUserEnableVideo
virtual void onUserEnableVideo(uid_t uid, bool enabled)
Definition: IAgoraRtcEngine.h:2007
agora::rtc::IRtcEngineEventHandler::onRtmpStreamingStateChanged
virtual void onRtmpStreamingStateChanged(const char *url, RTMP_STREAM_PUBLISH_STATE state, RTMP_STREAM_PUBLISH_REASON reason)
Definition: IAgoraRtcEngine.h:2489
agora::rtc::InjectStreamConfig::height
int height
Definition: IAgoraRtcEngine.h:665
agora::rtc::ChannelMediaOptions::publishFourthCameraTrack
Optional< bool > publishFourthCameraTrack
Definition: IAgoraRtcEngine.h:1084
agora::rtc::IRtcEngine::startRtmpStreamWithTranscoding
virtual int startRtmpStreamWithTranscoding(const char *url, const LiveTranscoding &transcoding)=0
agora::rtc::DirectCdnStreamingMediaOptions
Definition: IAgoraRtcEngine.h:3394
agora::rtc::IRtcEngine::setVideoEncoderConfiguration
virtual int setVideoEncoderConfiguration(const VideoEncoderConfiguration &config)=0
agora::rtc::AdvancedAudioOptions
Definition: IAgoraRtcEngine.h:1035
agora::rtc::IRtcEngine::queryCodecCapability
virtual int queryCodecCapability(CodecCapInfo *codecInfo, int &size)=0
agora::rtc::IRtcEngine::stopAllEffects
virtual int stopAllEffects()=0
agora::rtc::IRtcEngine::setLocalRenderMode
virtual int setLocalRenderMode(media::base::RENDER_MODE_TYPE renderMode) __deprecated=0
agora::rtc::IRtcEngine::pauseAllChannelMediaRelay
virtual int pauseAllChannelMediaRelay()=0
agora::rtc::LocalVideoStats::captureFrameHeight
int captureFrameHeight
Definition: IAgoraRtcEngine.h:296
agora::rtc::IRtcEngineEventHandler::onAudioQuality
virtual void onAudioQuality(uid_t uid, int quality, unsigned short delay, unsigned short lost) __deprecated
Definition: IAgoraRtcEngine.h:1580
agora::rtc::IRtcEngine::startAudioMixing
virtual int startAudioMixing(const char *filePath, bool loopback, int cycle)=0
agora::rtc::IRtcEngine::adjustLoopbackSignalVolume
virtual int adjustLoopbackSignalVolume(int volume)=0
agora::rtc::IRtcEngine::takeSnapshot
virtual int takeSnapshot(uid_t uid, const char *filePath)=0
agora::rtc::RtcEngineContext::license
const char * license
Definition: IAgoraRtcEngine.h:3144
agora::rtc::ScreenCaptureConfiguration::regionRect
Rectangle regionRect
Definition: IAgoraRtcEngine.h:881
agora::rtc::VideoCompositingLayout::canvasWidth
int canvasWidth
Definition: IAgoraRtcEngine.h:622
agora::rtc::LeaveChannelOptions::stopMicrophoneRecording
bool stopMicrophoneRecording
Definition: IAgoraRtcEngine.h:1488
agora::rtc::PublisherConfiguration::rawStreamUrl
const char * rawStreamUrl
Definition: IAgoraRtcEngine.h:763
agora::rtc::RemoteAudioStats::mosValue
int mosValue
Definition: IAgoraRtcEngine.h:430
agora::rtc::IRtcEngineEventHandler::onRemoteVideoStats
virtual void onRemoteVideoStats(const RemoteVideoStats &stats)
Definition: IAgoraRtcEngine.h:2085
agora::rtc::IRtcEngine::setAudioEffectParameters
virtual int setAudioEffectParameters(AUDIO_EFFECT_PRESET preset, int param1, int param2)=0
agora::rtc::IRtcEngine::setColorEnhanceOptions
virtual int setColorEnhanceOptions(bool enabled, const ColorEnhanceOptions &options, agora::media::MEDIA_SOURCE_TYPE type=agora::media::PRIMARY_CAMERA_SOURCE)=0
agora::rtc::IRtcEngineEventHandler::onTokenPrivilegeWillExpire
virtual void onTokenPrivilegeWillExpire(const char *token)
Definition: IAgoraRtcEngine.h:2290
agora::rtc::LocalVideoStats::targetFrameRate
int targetFrameRate
Definition: IAgoraRtcEngine.h:326
agora::rtc::DirectCdnStreamingStats::audioBitrate
int audioBitrate
Definition: IAgoraRtcEngine.h:3363
agora::rtc::IRtcEngine::setRemoteSubscribeFallbackOption
virtual int setRemoteSubscribeFallbackOption(STREAM_FALLBACK_OPTIONS option)=0
agora::rtc::IRtcEngine::getExtensionProperty
virtual int getExtensionProperty(const char *provider, const char *extension, const ExtensionInfo &extensionInfo, const char *key, char *value, int buf_len)=0
agora::rtc::RtcEngineContext::channelProfile
CHANNEL_PROFILE_TYPE channelProfile
Definition: IAgoraRtcEngine.h:3139
agora::rtc::IRtcEngineEventHandler::onRemoteSubscribeFallbackToAudioOnly
virtual void onRemoteSubscribeFallbackToAudioOnly(uid_t uid, bool isFallbackOrRecover)
Definition: IAgoraRtcEngine.h:2603
agora::rtc::IRtcEngine::setEarMonitoringAudioFrameParameters
virtual int setEarMonitoringAudioFrameParameters(int sampleRate, int channel, RAW_AUDIO_FRAME_OP_MODE_TYPE mode, int samplesPerCall)=0
agora::rtc::IRtcEngineEventHandler::onContentInspectResult
virtual void onContentInspectResult(media::CONTENT_INSPECT_RESULT result)
Definition: IAgoraRtcEngine.h:2413
agora::rtc::IRtcEngine::release
static AGORA_CPP_API void release(bool sync=false)
agora::rtc::IRtcEngineEventHandler::onAudioDeviceStateChanged
virtual void onAudioDeviceStateChanged(const char *deviceId, int deviceType, int deviceState)
Definition: IAgoraRtcEngine.h:1661
agora::rtc::IAudioEncodedFrameObserver
Definition: AgoraBase.h:5908
agora::rtc::ChannelMediaOptions::token
Optional< const char * > token
Definition: IAgoraRtcEngine.h:1244
agora::rtc::ChannelMediaOptions::parameters
Optional< const char * > parameters
Definition: IAgoraRtcEngine.h:1283
agora::rtc::LeaveChannelOptions
Definition: IAgoraRtcEngine.h:1470
agora::rtc::IRtcEngineEventHandler::onRemoteAudioStats
virtual void onRemoteAudioStats(const RemoteAudioStats &stats)
Definition: IAgoraRtcEngine.h:2044
agora::rtc::IRtcEngine::setEffectsVolume
virtual int setEffectsVolume(int volume)=0
agora::rtc::IRtcEngine::playAllEffects
virtual int playAllEffects(int loopCount, double pitch, double pan, int gain, bool publish=false)=0
agora::rtc::DirectCdnStreamingStats::fps
int fps
Definition: IAgoraRtcEngine.h:3353
agora::rtc::IRtcEngine::stopLastmileProbeTest
virtual int stopLastmileProbeTest()=0
agora::rtc::ChannelMediaRelayConfiguration
Definition: AgoraBase.h:6117
agora::rtc::IRtcEngine::setAdvancedAudioOptions
virtual int setAdvancedAudioOptions(AdvancedAudioOptions &options, int sourceType=0)=0
agora::rtc::IRtcEngine::createMediaPlayer
virtual agora_refptr< IMediaPlayer > createMediaPlayer()=0
agora::rtc::IRtcEngine::queryInterface
virtual int queryInterface(INTERFACE_ID_TYPE iid, void **inter)=0
agora::rtc::IVideoDeviceCollection
Definition: IAgoraRtcEngine.h:2964
agora::rtc::IRtcEngine::renewToken
virtual int renewToken(const char *token)=0
agora::rtc::IRtcEngine::pauseAudio
virtual int pauseAudio() __deprecated=0
agora::rtc::IRtcEngine::setAudioProfile
virtual int setAudioProfile(AUDIO_PROFILE_TYPE profile)=0
agora::rtc::IRtcEngine::sendStreamMessage
virtual int sendStreamMessage(int streamId, const char *data, size_t length)=0
agora::rtc::LocalVideoStats::txPacketLossRate
unsigned short txPacketLossRate
Definition: IAgoraRtcEngine.h:344
agora::rtc::IRtcEngineEventHandler::onLocalVideoStats
virtual void onLocalVideoStats(VIDEO_SOURCE_TYPE source, const LocalVideoStats &stats)
Definition: IAgoraRtcEngine.h:2072
agora::rtc::ChannelMediaOptions::publishCustomAudioTrack
Optional< bool > publishCustomAudioTrack
Definition: IAgoraRtcEngine.h:1138
agora::rtc::RemoteVideoStats::avSyncTimeMs
int avSyncTimeMs
Definition: IAgoraRtcEngine.h:554
agora::rtc::IRtcEngine::setFilterEffectOptions
virtual int setFilterEffectOptions(bool enabled, const FilterEffectOptions &options, agora::media::MEDIA_SOURCE_TYPE type=agora::media::PRIMARY_CAMERA_SOURCE)=0
agora::rtc::RtcEngineContext::domainLimit
bool domainLimit
Definition: IAgoraRtcEngine.h:3200
agora::rtc::VideoDenoiserOptions
Definition: AgoraBase.h:5010
agora::rtc::IRtcEngine::setLocalVideoMirrorMode
virtual int setLocalVideoMirrorMode(VIDEO_MIRROR_MODE_TYPE mirrorMode) __deprecated=0
agora::rtc::RemoteVideoStats::decoderOutputFrameRate
int decoderOutputFrameRate
Definition: IAgoraRtcEngine.h:526
agora::rtc::RtcEngineContext::context
void * context
Definition: IAgoraRtcEngine.h:3135
agora::rtc::IRtcEngine::stopLocalAudioMixer
virtual int stopLocalAudioMixer()=0
agora::rtc::IRtcEngineEventHandler::onActiveSpeaker
virtual void onActiveSpeaker(uid_t uid)
Definition: IAgoraRtcEngine.h:2405
agora::rtc::ChannelMediaOptions::publishCameraTrack
Optional< bool > publishCameraTrack
Definition: IAgoraRtcEngine.h:1066
agora::rtc::RemoteAudioStats::e2eDelay
int e2eDelay
Definition: IAgoraRtcEngine.h:465
agora::rtc::IRtcEngineEventHandler::onFirstLocalVideoFrame
virtual void onFirstLocalVideoFrame(VIDEO_SOURCE_TYPE source, int width, int height, int elapsed)
Definition: IAgoraRtcEngine.h:1792
agora::rtc::ChannelMediaOptions::clientRoleType
Optional< CLIENT_ROLE_TYPE > clientRoleType
Definition: IAgoraRtcEngine.h:1211
agora::rtc::ChannelMediaOptions::publishThirdCameraTrack
Optional< bool > publishThirdCameraTrack
Definition: IAgoraRtcEngine.h:1078
agora::rtc::IRtcEngineEventHandler::onJoinChannelSuccess
virtual void onJoinChannelSuccess(const char *channel, uid_t uid, int elapsed)
Definition: IAgoraRtcEngine.h:1518
agora::rtc::DirectCdnStreamingMediaOptions::publishMediaPlayerId
Optional< int > publishMediaPlayerId
Definition: IAgoraRtcEngine.h:3429
agora::rtc::ChannelMediaOptions::channelProfile
Optional< CHANNEL_PROFILE_TYPE > channelProfile
Definition: IAgoraRtcEngine.h:1225
agora::rtc::RemoteAudioStats::audioLossRate
int audioLossRate
Definition: IAgoraRtcEngine.h:388
agora::rtc::VideoCompositingLayout::Region::zOrder
int zOrder
Definition: IAgoraRtcEngine.h:598
agora::rtc::IRtcEngine::queryDeviceScore
virtual int queryDeviceScore()=0
agora::rtc::LocalVideoStats::captureFrameRate
int captureFrameRate
Definition: IAgoraRtcEngine.h:290
agora::rtc::VirtualBackgroundSource
Definition: AgoraBase.h:5084
agora::rtc::IRtcEngine::setParameters
virtual int setParameters(const char *parameters)=0
agora::rtc::IRtcEngine::muteRemoteVideoStream
virtual int muteRemoteVideoStream(uid_t uid, bool mute)=0
agora::rtc::ChannelMediaOptions::publishScreenCaptureAudio
Optional< bool > publishScreenCaptureAudio
Definition: IAgoraRtcEngine.h:1097
agora::rtc::IRtcEngine::setLowlightEnhanceOptions
virtual int setLowlightEnhanceOptions(bool enabled, const LowlightEnhanceOptions &options, agora::media::MEDIA_SOURCE_TYPE type=agora::media::PRIMARY_CAMERA_SOURCE)=0
agora::rtc::IVideoDeviceManager
Definition: IAgoraRtcEngine.h:3008
agora::rtc::RemoteVideoStats::frozenRate
int frozenRate
Definition: IAgoraRtcEngine.h:549
agora::rtc::ScreenCaptureConfiguration::windowId
int64_t windowId
Definition: IAgoraRtcEngine.h:869
agora::rtc::IRtcEngine::enableLocalAudio
virtual int enableLocalAudio(bool enabled)=0
agora::rtc::IRtcEngine::setupLocalVideo
virtual int setupLocalVideo(const VideoCanvas &canvas)=0
agora::rtc::VideoCompositingLayout::appDataLength
int appDataLength
Definition: IAgoraRtcEngine.h:643
agora::rtc::IRtcEngine::setLocalVoiceReverb
virtual int setLocalVoiceReverb(AUDIO_REVERB_TYPE reverbKey, int value)=0
agora::rtc::IRtcEngine::stopEffect
virtual int stopEffect(int soundId)=0
agora::rtc::VideoCompositingLayout::Region::alpha
double alpha
Definition: IAgoraRtcEngine.h:603
agora::rtc::IRtcEngine::enableCustomAudioLocalPlayback
virtual int enableCustomAudioLocalPlayback(track_id_t trackId, bool enabled)=0
agora::rtc::DirectCdnStreamingMediaOptions::publishCustomVideoTrack
Optional< bool > publishCustomVideoTrack
Definition: IAgoraRtcEngine.h:3418
agora::rtc::ScreenCaptureConfiguration::isCaptureWindow
bool isCaptureWindow
Definition: IAgoraRtcEngine.h:855
agora::rtc::LocalVideoStats::encodedFrameHeight
int encodedFrameHeight
Definition: IAgoraRtcEngine.h:317
agora::rtc::IRtcEngineEventHandler::onAudioMetadataReceived
virtual void onAudioMetadataReceived(uid_t uid, const char *metadata, size_t length)
Definition: IAgoraRtcEngine.h:2891
agora::rtc::IRtcEngine::setLocalVoiceFormant
virtual int setLocalVoiceFormant(double formantRatio)=0
agora::rtc::AdvancedAudioOptions::audioProcessingChannels
Optional< int > audioProcessingChannels
Definition: IAgoraRtcEngine.h:1039
agora::rtc::IRtcEngine::getUserInfoByUserAccount
virtual int getUserInfoByUserAccount(const char *userAccount, rtc::UserInfo *userInfo)=0
agora::rtc::WlAccStats
Definition: AgoraBase.h:4598
agora::rtc::IRtcEngine::setLogFile
virtual int setLogFile(const char *filePath)=0
agora::rtc::IRtcEngine::enableVirtualBackground
virtual int enableVirtualBackground(bool enabled, VirtualBackgroundSource backgroundSource, SegmentationProperty segproperty, agora::media::MEDIA_SOURCE_TYPE type=agora::media::PRIMARY_CAMERA_SOURCE)=0
agora::rtc::IVideoDeviceCollection::setDevice
virtual int setDevice(const char deviceIdUTF8[MAX_DEVICE_ID_LENGTH])=0
agora::rtc::IRtcEngine::setCameraCapturerConfiguration
virtual int setCameraCapturerConfiguration(const CameraCapturerConfiguration &config)=0
agora::rtc::FaceShapeAreaOptions::FACE_SHAPE_AREA
FACE_SHAPE_AREA
Definition: AgoraBase.h:4859
agora::rtc::RemoteVideoStats::__deprecated
int delay __deprecated
Definition: IAgoraRtcEngine.h:504
agora::rtc::CameraCapturerConfiguration::deviceId
Optional< const char * > deviceId
Definition: IAgoraRtcEngine.h:832
agora::rtc::RemoteAudioStats::quality
int quality
Definition: IAgoraRtcEngine.h:374
agora::rtc::PublisherConfiguration::width
int width
Definition: IAgoraRtcEngine.h:720
agora::rtc::VideoCompositingLayout::Region::width
double width
Definition: IAgoraRtcEngine.h:592
agora::rtc::IRtcEngine::startEchoTest
virtual int startEchoTest(const EchoTestConfiguration &config)=0
agora::rtc::IRtcEngine::startOrUpdateChannelMediaRelay
virtual int startOrUpdateChannelMediaRelay(const ChannelMediaRelayConfiguration &configuration)=0
agora::rtc::IRtcEngineEventHandler::onConnectionBanned
virtual void onConnectionBanned() __deprecated
Definition: IAgoraRtcEngine.h:2227
agora::rtc::IRtcEngine::getEffectsVolume
virtual int getEffectsVolume()=0
agora::rtc::IRtcEngineEventHandler::onEncryptionError
virtual void onEncryptionError(ENCRYPTION_ERROR_TYPE errorType)
Definition: IAgoraRtcEngine.h:2709
agora::rtc::IRtcEngineEventHandler::onCameraReady
virtual void onCameraReady() __deprecated
Definition: IAgoraRtcEngine.h:2094
agora::rtc::IRtcEngine::getEffectDuration
virtual int getEffectDuration(const char *filePath)=0
agora::rtc::IRtcEngineEventHandler::onWlAccStats
virtual void onWlAccStats(const WlAccStats &currentStats, const WlAccStats &averageStats)
Definition: IAgoraRtcEngine.h:2684
agora::rtc::CodecCapInfo
Definition: AgoraBase.h:1898
agora::commons::LogConfig
Definition: IAgoraLog.h:83
agora::rtc::IRtcEngine::setPlaybackAudioFrameParameters
virtual int setPlaybackAudioFrameParameters(int sampleRate, int channel, RAW_AUDIO_FRAME_OP_MODE_TYPE mode, int samplesPerCall)=0
agora::rtc::IRtcEngine::setLogFileSize
virtual int setLogFileSize(unsigned int fileSizeInKBytes)=0
agora::rtc::LeaveChannelOptions::stopAllEffect
bool stopAllEffect
Definition: IAgoraRtcEngine.h:1482
agora::rtc::ChannelMediaOptions::defaultVideoStreamType
Optional< VIDEO_STREAM_TYPE > defaultVideoStreamType
Definition: IAgoraRtcEngine.h:1220
agora::rtc::IRtcEngine::preloadChannelWithUserAccount
virtual int preloadChannelWithUserAccount(const char *token, const char *channelId, const char *userAccount)=0
agora::rtc::RemoteVideoStats::rxVideoBytes
unsigned int rxVideoBytes
Definition: IAgoraRtcEngine.h:575
createAgoraRtcEngine
AGORA_API agora::rtc::IRtcEngine *AGORA_CALL createAgoraRtcEngine()
agora::rtc::IRtcEngine::setBeautyEffectOptions
virtual int setBeautyEffectOptions(bool enabled, const BeautyOptions &options, agora::media::MEDIA_SOURCE_TYPE type=agora::media::PRIMARY_CAMERA_SOURCE)=0
agora::rtc::IRtcEngine::startAudioRecording
virtual int startAudioRecording(const AudioRecordingConfiguration &config)=0
agora::rtc::RtcEngineContext::autoRegisterAgoraExtensions
bool autoRegisterAgoraExtensions
Definition: IAgoraRtcEngine.h:3207
agora::rtc::LocalVideoStats
Definition: IAgoraRtcEngine.h:275
agora::rtc::IMetadataObserver::onMetadataReceived
virtual void onMetadataReceived(const Metadata &metadata)=0
agora::rtc::IRtcEngine::setAudioMixingPlaybackSpeed
virtual int setAudioMixingPlaybackSpeed(int speed)=0
agora::rtc::IRtcEngine::resumeAllChannelMediaRelay
virtual int resumeAllChannelMediaRelay()=0
agora::rtc::IRtcEngine::setExtensionProperty
virtual int setExtensionProperty(const char *provider, const char *extension, const ExtensionInfo &extensionInfo, const char *key, const char *value)=0
agora::rtc::ChannelMediaOptions::publishMediaPlayerId
Optional< int > publishMediaPlayerId
Definition: IAgoraRtcEngine.h:1206
agora::rtc::IDirectCdnStreamingEventHandler
Definition: IAgoraRtcEngine.h:3370
agora::rtc::IRtcEngineEventHandler::onLocalAudioStateChanged
virtual void onLocalAudioStateChanged(LOCAL_AUDIO_STREAM_STATE state, LOCAL_AUDIO_STREAM_REASON reason)
Definition: IAgoraRtcEngine.h:2364
agora::rtc::IRtcEngine::setRemoteRenderTargetFps
virtual int setRemoteRenderTargetFps(int targetFps)=0
agora::rtc::IRtcEngineEventHandler::onAudioSubscribeStateChanged
virtual void onAudioSubscribeStateChanged(const char *channel, uid_t uid, STREAM_SUBSCRIBE_STATE oldState, STREAM_SUBSCRIBE_STATE newState, int elapseSinceLastState)
Definition: IAgoraRtcEngine.h:2809
agora::rtc::IRtcEngineEventHandler::onVideoStopped
virtual void onVideoStopped() __deprecated
Definition: IAgoraRtcEngine.h:2174
agora::rtc::EncryptionConfig
Definition: AgoraBase.h:6327
agora::rtc::IRtcEngine::destroyMediaPlayer
virtual int destroyMediaPlayer(agora_refptr< IMediaPlayer > media_player)=0
agora::rtc::LocalVideoStats::simulcastDimensions
VideoDimensions simulcastDimensions[SimulcastConfig::STREAM_LAYER_COUNT_MAX]
Definition: IAgoraRtcEngine.h:359
agora::rtc::IRtcEngine::setAudioMixingPosition
virtual int setAudioMixingPosition(int pos)=0
agora::rtc::ChannelMediaOptions::publishTranscodedVideoTrack
Optional< bool > publishTranscodedVideoTrack
Definition: IAgoraRtcEngine.h:1172
agora::rtc::ChannelMediaOptions::enableAudioRecordingOrPlayout
Optional< bool > enableAudioRecordingOrPlayout
Definition: IAgoraRtcEngine.h:1202
agora::rtc::IRtcEngineEventHandler::onVideoPublishStateChanged
virtual void onVideoPublishStateChanged(VIDEO_SOURCE_TYPE source, const char *channel, STREAM_PUBLISH_STATE oldState, STREAM_PUBLISH_STATE newState, int elapseSinceLastState)
Definition: IAgoraRtcEngine.h:2858
agora::rtc::RemoteVideoStats::receivedBitrate
int receivedBitrate
Definition: IAgoraRtcEngine.h:520
agora::rtc::RemoteAudioStats
Definition: IAgoraRtcEngine.h:366
agora::rtc::TranscodingVideoStream
Definition: AgoraBase.h:4113
agora::rtc::IMetadataObserver::MAX_METADATA_SIZE_TYPE
MAX_METADATA_SIZE_TYPE
Definition: IAgoraRtcEngine.h:3238
agora::rtc::IRtcEngine::enableVideoImageSource
virtual int enableVideoImageSource(bool enable, const ImageTrackOptions &options)=0
enable or disable video image source to replace the current video source published or resume it
agora::rtc::LocalVideoStats::encoderOutputFrameRate
int encoderOutputFrameRate
Definition: IAgoraRtcEngine.h:311
agora::rtc::IRtcEngine::unregisterAudioSpectrumObserver
virtual int unregisterAudioSpectrumObserver(agora::media::IAudioSpectrumObserver *observer)=0
agora::rtc::IRtcEngine::setupRemoteVideo
virtual int setupRemoteVideo(const VideoCanvas &canvas)=0
agora::rtc::IRtcEngineEventHandler::onLastmileProbeResult
virtual void onLastmileProbeResult(const LastmileProbeResult &result)
Definition: IAgoraRtcEngine.h:1592
agora::rtc::IVideoDeviceManager::startDeviceTest
virtual int startDeviceTest(view_t hwnd)=0
agora::rtc::IRtcEngine::addVideoWatermark
virtual int addVideoWatermark(const RtcImage &watermark) __deprecated=0
agora::rtc::IRtcEngineEventHandler::onConnectionLost
virtual void onConnectionLost()
Definition: IAgoraRtcEngine.h:2209
agora::rtc::IRtcEngineEventHandler::onUserMuteVideo
virtual void onUserMuteVideo(uid_t uid, bool muted)
Definition: IAgoraRtcEngine.h:1990
agora::rtc::PublisherConfiguration::owner
bool owner
Definition: IAgoraRtcEngine.h:746
agora::rtc::IRtcEngine::setInEarMonitoringVolume
virtual int setInEarMonitoringVolume(int volume)=0
agora::rtc::IRtcEngine::enableSoundPositionIndication
virtual int enableSoundPositionIndication(bool enabled)=0
agora::rtc::VideoCompositingLayout::regions
const Region * regions
Definition: IAgoraRtcEngine.h:634
agora::rtc::IRtcEngine::stopCameraCapture
virtual int stopCameraCapture(VIDEO_SOURCE_TYPE sourceType)=0
agora::rtc::ChannelMediaOptions::publishMediaPlayerVideoTrack
Optional< bool > publishMediaPlayerVideoTrack
Definition: IAgoraRtcEngine.h:1166
agora::rtc::IRtcEngine::stopPreview
virtual int stopPreview()=0
agora::rtc::RemoteVideoStats::mosValue
int mosValue
Definition: IAgoraRtcEngine.h:571
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:3434
agora::rtc::IRtcEngineEventHandler::onVideoSizeChanged
virtual void onVideoSizeChanged(VIDEO_SOURCE_TYPE sourceType, uid_t uid, int width, int height, int rotation)
Definition: IAgoraRtcEngine.h:1845
agora::rtc::IRtcEngine::muteRecordingSignal
virtual int muteRecordingSignal(bool mute)=0
agora::rtc::IRtcEngineEventHandler::onLocalUserRegistered
virtual void onLocalUserRegistered(uid_t uid, const char *userAccount)
Definition: IAgoraRtcEngine.h:2735
agora::rtc::LocalVideoStats::encodedFrameWidth
int encodedFrameWidth
Definition: IAgoraRtcEngine.h:314
agora::rtc::RtcStats
Definition: AgoraBase.h:2318
agora::rtc::LowlightEnhanceOptions
Definition: AgoraBase.h:4962
agora::rtc::IRtcEngine::setVoiceBeautifierParameters
virtual int setVoiceBeautifierParameters(VOICE_BEAUTIFIER_PRESET preset, int param1, int param2)=0
agora::rtc::IRtcEngine::muteRemoteAudioStream
virtual int muteRemoteAudioStream(uid_t uid, bool mute)=0
agora::rtc::IRtcEngine::setVideoDenoiserOptions
virtual int setVideoDenoiserOptions(bool enabled, const VideoDenoiserOptions &options, agora::media::MEDIA_SOURCE_TYPE type=agora::media::PRIMARY_CAMERA_SOURCE)=0
agora::rtc::IRtcEngineEventHandler::onSnapshotTaken
virtual void onSnapshotTaken(uid_t uid, const char *filePath, int width, int height, int errCode)
Definition: IAgoraRtcEngine.h:2432
agora::rtc::IRtcEngine::destroyCustomVideoTrack
virtual int destroyCustomVideoTrack(video_track_id_t video_track_id)=0
agora::rtc::IRtcEngine::setVoiceConversionParameters
virtual int setVoiceConversionParameters(VOICE_CONVERSION_PRESET preset, int param1, int param2)=0
agora::rtc::SimulcastConfig::STREAM_LAYER_COUNT_MAX
@ STREAM_LAYER_COUNT_MAX
Definition: AgoraBase.h:2194
agora::rtc::ChannelMediaOptions::publishLipSyncTrack
Optional< bool > publishLipSyncTrack
Definition: IAgoraRtcEngine.h:1184
agora::rtc::IRtcEngineEventHandler::onFirstRemoteVideoFrame
virtual void onFirstRemoteVideoFrame(uid_t uid, int width, int height, int elapsed)
Definition: IAgoraRtcEngine.h:1909
agora::rtc::IRtcEngine::adjustAudioMixingVolume
virtual int adjustAudioMixingVolume(int volume)=0
agora::rtc::WatermarkOptions
Definition: AgoraBase.h:2281
agora::rtc::LocalAudioStats
Definition: AgoraBase.h:3582
agora::rtc::IRtcEngine::setLocalRenderTargetFps
virtual int setLocalRenderTargetFps(VIDEO_SOURCE_TYPE sourceType, int targetFps)=0
agora::rtc::RecorderStreamInfo
Definition: AgoraBase.h:6841
agora::rtc::ChannelMediaOptions::publishThirdScreenTrack
Optional< bool > publishThirdScreenTrack
Definition: IAgoraRtcEngine.h:1124
agora::rtc::IRtcEngineEventHandler::onAudioDeviceVolumeChanged
virtual void onAudioDeviceVolumeChanged(MEDIA_DEVICE_TYPE deviceType, int volume, bool muted)
Definition: IAgoraRtcEngine.h:2472
agora::rtc::SimulcastConfig
Definition: AgoraBase.h:2158
agora::rtc::IRtcEngine::leaveChannel
virtual int leaveChannel()=0
agora::rtc::IRtcEngine::setAudioScenario
virtual int setAudioScenario(AUDIO_SCENARIO_TYPE scenario)=0
agora::rtc::IRtcEngine::setClientRole
virtual int setClientRole(CLIENT_ROLE_TYPE role)=0
agora::rtc::IRtcEngine::preloadChannel
virtual int preloadChannel(const char *token, const char *channelId, uid_t uid)=0
agora::rtc::IRtcEngineEventHandler::onClientRoleChanged
virtual void onClientRoleChanged(CLIENT_ROLE_TYPE oldRole, CLIENT_ROLE_TYPE newRole, const ClientRoleOptions &newRoleOptions)
Definition: IAgoraRtcEngine.h:2447
agora::rtc::RemoteVideoStats::width
int width
Definition: IAgoraRtcEngine.h:512
agora::rtc::RtcEngineContext::audioScenario
AUDIO_SCENARIO_TYPE audioScenario
Definition: IAgoraRtcEngine.h:3153
agora::rtc::RemoteVideoStats::rendererOutputFrameRate
int rendererOutputFrameRate
Definition: IAgoraRtcEngine.h:529
agora::rtc::IRtcEngine::setVoiceBeautifierPreset
virtual int setVoiceBeautifierPreset(VOICE_BEAUTIFIER_PRESET preset)=0
agora::rtc::RemoteVideoStats::decoderInputFrameRate
int decoderInputFrameRate
Definition: IAgoraRtcEngine.h:523
agora::rtc::IRtcEngine::rate
virtual int rate(const char *callId, int rating, const char *description)=0
agora::rtc::LocalVideoStats::targetBitrate
int targetBitrate
Definition: IAgoraRtcEngine.h:323
agora::rtc::ChannelMediaOptions::publishSecondaryScreenTrack
Optional< bool > publishSecondaryScreenTrack
Definition: IAgoraRtcEngine.h:1118
agora::rtc::RemoteAudioStats::qualityChangedReason
int qualityChangedReason
Definition: IAgoraRtcEngine.h:457
agora::rtc::IRtcEngine::getCallId
virtual int getCallId(agora::util::AString &callId)=0
agora::rtc::InjectStreamConfig
Definition: IAgoraRtcEngine.h:657
agora::rtc::IRtcEngine::uploadLogFile
virtual int uploadLogFile(agora::util::AString &requestId)=0
agora::rtc::IRtcEngine::startMediaRenderingTracing
virtual int startMediaRenderingTracing()=0
Start tracing media rendering events.
agora::rtc::CameraCapturerConfiguration::format
VideoFormat format
Definition: IAgoraRtcEngine.h:843
agora::rtc::LocalVideoStats::encodedFrameCount
int encodedFrameCount
Definition: IAgoraRtcEngine.h:337
agora::rtc::PublisherConfiguration::bitrate
int bitrate
Definition: IAgoraRtcEngine.h:732
agora::rtc::LocalVideoStats::regulatedCaptureFrameRate
int regulatedCaptureFrameRate
Definition: IAgoraRtcEngine.h:300
agora::rtc::IRtcEngine::enableWirelessAccelerate
virtual int enableWirelessAccelerate(bool enabled)=0
agora::rtc::IRtcEngine::createCustomEncodedVideoTrack
virtual video_track_id_t createCustomEncodedVideoTrack(const SenderOptions &sender_option)=0
agora::rtc::RtcEngineContext
Definition: IAgoraRtcEngine.h:3118
agora::rtc::IRtcEngine::unloadAllEffects
virtual int unloadAllEffects()=0
agora::rtc::ChannelMediaOptions
Definition: IAgoraRtcEngine.h:1060
agora::rtc::IRtcEngine
Definition: IAgoraRtcEngine.h:3535
agora::rtc::IRtcEngine::setClientRole
virtual int setClientRole(CLIENT_ROLE_TYPE role, const ClientRoleOptions &options)=0
agora::rtc::IRtcEngine::enableLoopbackRecording
virtual int enableLoopbackRecording(bool enabled, const char *deviceName=NULL)=0
agora::rtc::IRtcEngine::sendAudioMetadata
virtual int sendAudioMetadata(const char *metadata, size_t length)=0
send audio metadata
agora::rtc::IRtcEngine::createMediaRecorder
virtual agora_refptr< IMediaRecorder > createMediaRecorder(const RecorderStreamInfo &info)=0
agora::rtc::ScreenCaptureConfiguration
Definition: IAgoraRtcEngine.h:849
agora::rtc::IRtcEngine::setAudioMixingDualMonoMode
virtual int setAudioMixingDualMonoMode(media::AUDIO_MIXING_DUAL_MONO_MODE mode)=0
agora::rtc::ChannelMediaOptions::autoSubscribeVideo
Optional< bool > autoSubscribeVideo
Definition: IAgoraRtcEngine.h:1196
agora::rtc::AudioRecordingConfiguration
Definition: AgoraBase.h:5811
agora::rtc::IRtcEngine::getEffectCurrentPosition
virtual int getEffectCurrentPosition(int soundId)=0
agora::rtc::ChannelMediaOptions::publishMicrophoneTrack
Optional< bool > publishMicrophoneTrack
Definition: IAgoraRtcEngine.h:1090
agora::rtc::IRtcEngine::updatePreloadChannelToken
virtual int updatePreloadChannelToken(const char *token)=0
agora::rtc::IRtcEngine::resumeAudio
virtual int resumeAudio() __deprecated=0
agora::rtc::IRtcEngine::muteLocalAudioStream
virtual int muteLocalAudioStream(bool mute)=0
agora::rtc::IRtcEngine::joinChannelWithUserAccount
virtual int joinChannelWithUserAccount(const char *token, const char *channelId, const char *userAccount)=0
agora::rtc::IRtcEngine::setChannelProfile
virtual int setChannelProfile(CHANNEL_PROFILE_TYPE profile)=0
agora::rtc::RemoteVideoStats::frameLossRate
int frameLossRate
Definition: IAgoraRtcEngine.h:532
agora::rtc::VideoDimensions
Definition: AgoraBase.h:1100
agora::rtc::IRtcEngine::updateDirectCdnStreamingMediaOptions
virtual int updateDirectCdnStreamingMediaOptions(const DirectCdnStreamingMediaOptions &options)=0
agora::rtc::IRtcEngine::setLocalVoicePitch
virtual int setLocalVoicePitch(double pitch)=0
agora::rtc::IRtcEngineEventHandler::onTranscodedStreamLayoutInfo
virtual void onTranscodedStreamLayoutInfo(uid_t uid, int width, int height, int layoutCount, const VideoLayout *layoutlist)
Definition: IAgoraRtcEngine.h:2875
agora::rtc::RemoteVideoStats::height
int height
Definition: IAgoraRtcEngine.h:516
agora::rtc::LocalVideoStats::captureFrameWidth
int captureFrameWidth
Definition: IAgoraRtcEngine.h:293
agora::rtc::IRtcEngine::setAudioEffectPreset
virtual int setAudioEffectPreset(AUDIO_EFFECT_PRESET preset)=0
agora::rtc::RtcEngineContext::useExternalEglContext
bool useExternalEglContext
Definition: IAgoraRtcEngine.h:3193
agora::rtc::IRtcEngine::preloadEffect
virtual int preloadEffect(int soundId, const char *filePath, int startPos=0)=0
agora::rtc::RemoteAudioStats::frozenRate
int frozenRate
Definition: IAgoraRtcEngine.h:413
agora::rtc::IRtcEngine::setVideoScenario
virtual int setVideoScenario(VIDEO_APPLICATION_SCENARIO_TYPE scenarioType)=0
agora::rtc::RemoteAudioStats::plcCount
uint32_t plcCount
Definition: IAgoraRtcEngine.h:439
agora::rtc::IRtcEngine::stopEchoTest
virtual int stopEchoTest()=0
agora::rtc::IRtcEngine::startAudioRecording
virtual int startAudioRecording(const char *filePath, AUDIO_RECORDING_QUALITY_TYPE quality)=0
agora::rtc::IRtcEngine::setLocalVoiceEqualization
virtual int setLocalVoiceEqualization(AUDIO_EQUALIZATION_BAND_FREQUENCY bandFrequency, int bandGain)=0
agora::rtc::DirectCdnStreamingMediaOptions::publishMediaPlayerAudioTrack
Optional< bool > publishMediaPlayerAudioTrack
Definition: IAgoraRtcEngine.h:3424
agora::util::CopyableAutoPtr
Definition: AgoraBase.h:156
agora::rtc::IRtcEngine::getNetworkType
virtual int getNetworkType()=0
agora::rtc::InjectStreamConfig::audioSampleRate
AUDIO_SAMPLE_RATE_TYPE audioSampleRate
Definition: IAgoraRtcEngine.h:681
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:728
agora::rtc::IRtcEngine::resumeEffect
virtual int resumeEffect(int soundId)=0
agora::rtc::PublisherConfiguration::injectStreamUrl
const char * injectStreamUrl
Definition: IAgoraRtcEngine.h:755
agora::rtc::ChannelMediaOptions::publishScreenTrack
Optional< bool > publishScreenTrack
Definition: IAgoraRtcEngine.h:1112
agora::rtc::IRtcEngineEventHandler::onAudioRoutingChanged
virtual void onAudioRoutingChanged(int routing)
Definition: IAgoraRtcEngine.h:2531
agora::rtc::IRtcEngine::playEffect
virtual int playEffect(int soundId, const char *filePath, int loopCount, double pitch, double pan, int gain, bool publish=false, int startPos=0)=0
agora::rtc::InjectStreamConfig::videoBitrate
int videoBitrate
Definition: IAgoraRtcEngine.h:677
agora::rtc::LocalVideoStats::captureBrightnessLevel
CAPTURE_BRIGHTNESS_LEVEL_TYPE captureBrightnessLevel
Definition: IAgoraRtcEngine.h:347
agora::rtc::IRtcEngine::enableVideo
virtual int enableVideo()=0
agora::rtc::IRtcEngineEventHandler::onExtensionStoppedWithContext
virtual void onExtensionStoppedWithContext(const ExtensionContext &context)
Definition: IAgoraRtcEngine.h:2930
agora::rtc::IRtcEngine::setRemoteUserSpatialAudioParams
virtual int setRemoteUserSpatialAudioParams(uid_t uid, const agora::SpatialAudioParams &params)=0
agora::rtc::IRtcEngine::setHeadphoneEQParameters
virtual int setHeadphoneEQParameters(int lowGain, int highGain)=0
agora::rtc::IRtcEngine::getFaceShapeAreaOptions
virtual int getFaceShapeAreaOptions(agora::rtc::FaceShapeAreaOptions::FACE_SHAPE_AREA shapeArea, FaceShapeAreaOptions &options, agora::media::MEDIA_SOURCE_TYPE type=agora::media::PRIMARY_CAMERA_SOURCE)=0
agora::rtc::IMetadataObserver::UNKNOWN_METADATA
@ UNKNOWN_METADATA
Definition: IAgoraRtcEngine.h:3229
agora::rtc::IRtcEngineEventHandler::onFirstLocalVideoFramePublished
virtual void onFirstLocalVideoFramePublished(VIDEO_SOURCE_TYPE source, int elapsed)
Definition: IAgoraRtcEngine.h:1809
agora::rtc::IRtcEngine::stopScreenCapture
virtual int stopScreenCapture(VIDEO_SOURCE_TYPE sourceType)=0
agora::rtc::IRtcEngine::updateChannelMediaOptions
virtual int updateChannelMediaOptions(const ChannelMediaOptions &options)=0
agora::rtc::RemoteAudioStats::numChannels
int numChannels
Definition: IAgoraRtcEngine.h:392
agora::rtc::IRtcEngineEventHandler::onSetRtmFlagResult
virtual void onSetRtmFlagResult(int code)
Definition: IAgoraRtcEngine.h:2956
agora::rtc::ChannelMediaOptions::audioDelayMs
Optional< int > audioDelayMs
Definition: IAgoraRtcEngine.h:1230
agora::rtc::IRtcEngine::createDataStream
virtual int createDataStream(int *streamId, const DataStreamConfig &config)=0
agora::rtc::IRtcEngine::initialize
virtual int initialize(const RtcEngineContext &context)=0
agora::rtc::IRtcEngineEventHandler::onNetworkQuality
virtual void onNetworkQuality(uid_t uid, int txQuality, int rxQuality)
Definition: IAgoraRtcEngine.h:1729
agora::rtc::IRtcEngine::resumeAudioMixing
virtual int resumeAudioMixing()=0
agora::rtc::ImageTrackOptions
Definition: IAgoraRtcEngine.h:1045
agora::rtc::IRtcEngine::unloadEffect
virtual int unloadEffect(int soundId)=0
agora::rtc::VideoCompositingLayout::Region
Definition: IAgoraRtcEngine.h:579
agora::rtc::IRtcEngine::stopRhythmPlayer
virtual int stopRhythmPlayer()=0
agora::rtc::IRtcEngine::getAudioMixingPlayoutVolume
virtual int getAudioMixingPlayoutVolume()=0
agora::rtc::IRtcEngine::startLastmileProbeTest
virtual int startLastmileProbeTest(const LastmileProbeConfig &config)=0
agora::rtc::IRtcEngineEventHandler::onVideoSubscribeStateChanged
virtual void onVideoSubscribeStateChanged(const char *channel, uid_t uid, STREAM_SUBSCRIBE_STATE oldState, STREAM_SUBSCRIBE_STATE newState, int elapseSinceLastState)
Definition: IAgoraRtcEngine.h:2826
agora::rtc::IRtcEngine::getExtensionProperty
virtual int getExtensionProperty(const char *provider, const char *extension, const char *key, char *value, int buf_len, agora::media::MEDIA_SOURCE_TYPE type=agora::media::UNKNOWN_MEDIA_SOURCE)=0
agora::rtc::ChannelMediaOptions::publishFourthScreenTrack
Optional< bool > publishFourthScreenTrack
Definition: IAgoraRtcEngine.h:1130
agora::rtc::RemoteAudioStats::jitterBufferDelay
int jitterBufferDelay
Definition: IAgoraRtcEngine.h:384
agora::rtc::IRtcEngine::adjustPlaybackSignalVolume
virtual int adjustPlaybackSignalVolume(int volume)=0
agora::rtc::IRtcEngineEventHandler::onRemoteVideoStateChanged
virtual void onRemoteVideoStateChanged(uid_t uid, REMOTE_VIDEO_STATE state, REMOTE_VIDEO_STATE_REASON reason, int elapsed)
Definition: IAgoraRtcEngine.h:1895
agora::rtc::IRtcEngine::setExtensionProviderProperty
virtual int setExtensionProviderProperty(const char *provider, const char *key, const char *value)=0
agora::rtc::PublisherConfiguration::injectStreamWidth
int injectStreamWidth
Definition: IAgoraRtcEngine.h:749
agora::rtc::ChannelMediaOptions::publishMixedAudioTrack
Optional< bool > publishMixedAudioTrack
Definition: IAgoraRtcEngine.h:1178
agora::rtc::IRtcEngine::startLocalAudioMixer
virtual int startLocalAudioMixer(const LocalAudioMixerConfiguration &config)=0
agora::rtc::RemoteVideoStats::rxStreamType
VIDEO_STREAM_TYPE rxStreamType
Definition: IAgoraRtcEngine.h:539
agora::rtc::IRtcEngine::enableAudio
virtual int enableAudio()=0
agora::rtc::IVideoDeviceManager::stopDeviceTest
virtual int stopDeviceTest()=0
agora::rtc::IMetadataObserver::Metadata::uid
unsigned int uid
Definition: IAgoraRtcEngine.h:3255
agora::rtc::RemoteAudioStats::uid
uid_t uid
Definition: IAgoraRtcEngine.h:370
agora::rtc::IRtcEngine::disableVideo
virtual int disableVideo()=0
agora::rtc::IRtcEngine::enableDualStreamMode
virtual int enableDualStreamMode(bool enabled) __deprecated=0
agora::rtc::InjectStreamConfig::videoGop
int videoGop
Definition: IAgoraRtcEngine.h:669
agora::rtc::IRtcEngine::setVideoQoEPreference
virtual int setVideoQoEPreference(VIDEO_QOE_PREFERENCE_TYPE qoePreference)=0
agora::rtc::ChannelMediaOptions::isInteractiveAudience
Optional< bool > isInteractiveAudience
Definition: IAgoraRtcEngine.h:1266
agora::rtc::FaceShapeAreaOptions
Definition: AgoraBase.h:4856
agora::SpatialAudioParams
Definition: AgoraBase.h:6898
agora::rtc::IRtcEngine::setLogFilter
virtual int setLogFilter(unsigned int filter)=0
agora::rtc::IRtcEngine::getLoopbackRecordingVolume
virtual int getLoopbackRecordingVolume()=0
agora::rtc::IRtcEngineEventHandler::onPermissionError
virtual void onPermissionError(PERMISSION_TYPE permissionType)
Definition: IAgoraRtcEngine.h:2722
agora::rtc::IRtcEngineEventHandler::onUploadLogResult
virtual void onUploadLogResult(const char *requestId, bool success, UPLOAD_ERROR_REASON reason)
Definition: IAgoraRtcEngine.h:2794
agora::rtc::RemoteAudioStats::qoeQuality
int qoeQuality
Definition: IAgoraRtcEngine.h:453
agora::rtc::IRtcEngine::setFaceShapeAreaOptions
virtual int setFaceShapeAreaOptions(const FaceShapeAreaOptions &options, agora::media::MEDIA_SOURCE_TYPE type=agora::media::PRIMARY_CAMERA_SOURCE)=0
agora::rtc::IRtcEngine::setHeadphoneEQPreset
virtual int setHeadphoneEQPreset(HEADPHONE_EQUALIZER_PRESET preset)=0
agora::rtc::IRtcEngine::startCameraCapture
virtual int startCameraCapture(VIDEO_SOURCE_TYPE sourceType, const CameraCapturerConfiguration &config)=0
agora::rtc::IRtcEngine::setLocalAccessPoint
virtual int setLocalAccessPoint(const LocalAccessPointConfiguration &config)=0
agora::rtc::IRtcEngine::createCustomVideoTrack
virtual video_track_id_t createCustomVideoTrack()=0
agora::rtc::IRtcEngine::disableAudio
virtual int disableAudio()=0
agora::rtc::IRtcEngine::muteAllRemoteAudioStreams
virtual int muteAllRemoteAudioStreams(bool mute)=0
agora::rtc::IRtcEngineEventHandler::onRtcStats
virtual void onRtcStats(const RtcStats &stats)
Definition: IAgoraRtcEngine.h:1646
agora::rtc::IRtcEngineEventHandler::onUserJoined
virtual void onUserJoined(uid_t uid, int elapsed)
Definition: IAgoraRtcEngine.h:1935
agora::rtc::AAudioDeviceManager
Definition: IAgoraRtcEngine.h:8657
agora::rtc::IMetadataObserver::Metadata
Definition: IAgoraRtcEngine.h:3247
agora::rtc::IRtcEngine::sendCustomReportMessage
virtual int sendCustomReportMessage(const char *id, const char *category, const char *event, const char *label, int value)=0
agora::rtc::FocalLengthInfo
Definition: AgoraBase.h:1911
agora::rtc::RemoteVideoStats::packetLossRate
int packetLossRate
Definition: IAgoraRtcEngine.h:535
agora::rtc::LocalVideoStats::hwEncoderAccelerating
int hwEncoderAccelerating
Definition: IAgoraRtcEngine.h:356
agora::rtc::DeviceInfo
Definition: AgoraBase.h:3443
agora::base::IEngineBase
Definition: AgoraBase.h:6864
agora::rtc::LocalVideoStats::rendererOutputFrameRate
int rendererOutputFrameRate
Definition: IAgoraRtcEngine.h:320
agora::rtc::IRtcEngineEventHandler::onDownlinkNetworkInfoUpdated
virtual void onDownlinkNetworkInfoUpdated(const DownlinkNetworkInfo &info)
Definition: IAgoraRtcEngine.h:1764
agora::rtc::DirectCdnStreamingMediaOptions::publishCustomAudioTrack
Optional< bool > publishCustomAudioTrack
Definition: IAgoraRtcEngine.h:3412
agora::rtc::VideoRenderingTracingInfo
Definition: AgoraBase.h:6692
agora::rtc::IRtcEngineEventHandler::onAudioMixingStateChanged
virtual void onAudioMixingStateChanged(AUDIO_MIXING_STATE_TYPE state, AUDIO_MIXING_REASON_TYPE reason)
Definition: IAgoraRtcEngine.h:2183
agora::rtc::IRtcEngine::setLocalRenderMode
virtual int setLocalRenderMode(media::base::RENDER_MODE_TYPE renderMode, VIDEO_MIRROR_MODE_TYPE mirrorMode)=0
agora::rtc::IRtcEngine::startAudioFrameDump
virtual int startAudioFrameDump(const char *channel_id, uid_t uid, const char *location, const char *uuid, const char *passwd, long duration_ms, bool auto_upload)=0
agora::rtc::IRtcEngine::setAudioProfile
virtual int setAudioProfile(AUDIO_PROFILE_TYPE profile, AUDIO_SCENARIO_TYPE scenario) __deprecated=0
agora::rtc::RtcEngineContext::areaCode
unsigned int areaCode
Definition: IAgoraRtcEngine.h:3162
agora::rtc::IRtcEngine::setSimulcastConfig
virtual int setSimulcastConfig(const SimulcastConfig &simulcastConfig)=0
agora::rtc::IRtcEngineEventHandler::onLicenseValidationFailure
virtual void onLicenseValidationFailure(LICENSE_ERROR_TYPE error)
Definition: IAgoraRtcEngine.h:2299
agora::rtc::CameraCapturerConfiguration
Definition: IAgoraRtcEngine.h:813
agora::rtc::IMetadataObserver::VIDEO_METADATA
@ VIDEO_METADATA
Definition: IAgoraRtcEngine.h:3232
agora::rtc::IRtcEngine::selectAudioTrack
virtual int selectAudioTrack(int index)=0
agora::rtc::RemoteVideoStats
Definition: IAgoraRtcEngine.h:492
agora::rtc::IRtcEngine::startAudioRecording
virtual int startAudioRecording(const char *filePath, int sampleRate, AUDIO_RECORDING_QUALITY_TYPE quality)=0
agora::rtc::PublisherConfiguration::injectStreamHeight
int injectStreamHeight
Definition: IAgoraRtcEngine.h:752
agora::Optional
Definition: AgoraOptional.h:52
agora::rtc::IRtcEngine::joinChannel
virtual int joinChannel(const char *token, const char *channelId, const char *info, uid_t uid)=0
agora::rtc::IMetadataObserver::Metadata::size
unsigned int size
Definition: IAgoraRtcEngine.h:3258
agora::rtc::ClientRoleOptions
Definition: AgoraBase.h:2565
agora::rtc::IRtcEngine::setRecordingAudioFrameParameters
virtual int setRecordingAudioFrameParameters(int sampleRate, int channel, RAW_AUDIO_FRAME_OP_MODE_TYPE mode, int samplesPerCall)=0
agora::rtc::ScreenCaptureConfiguration::screenRect
Rectangle screenRect
Definition: IAgoraRtcEngine.h:864
agora::rtc::IRtcEngineEventHandler::onUserEnableLocalVideo
virtual void onUserEnableLocalVideo(uid_t uid, bool enabled) __deprecated
Definition: IAgoraRtcEngine.h:2032
agora::rtc::IVideoDeviceManager::setDevice
virtual int setDevice(const char deviceIdUTF8[MAX_DEVICE_ID_LENGTH])=0
agora::rtc::IRtcEngineEventHandler::onChannelMediaRelayStateChanged
virtual void onChannelMediaRelayStateChanged(int state, int code)
Definition: IAgoraRtcEngine.h:2564
agora::rtc::IRtcEngine::complain
virtual int complain(const char *callId, const char *description)=0
agora::rtc::IRtcEngine::clearVideoWatermarks
virtual int clearVideoWatermarks()=0
agora::rtc::IRtcEngine::stopAudioRecording
virtual int stopAudioRecording()=0
agora::rtc::IRtcEngineEventHandler::onAudioPublishStateChanged
virtual void onAudioPublishStateChanged(const char *channel, STREAM_PUBLISH_STATE oldState, STREAM_PUBLISH_STATE newState, int elapseSinceLastState)
Definition: IAgoraRtcEngine.h:2842
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:396
agora::rtc::IRtcEngine::startPreview
virtual int startPreview(VIDEO_SOURCE_TYPE sourceType)=0
agora::rtc::VideoCanvas
Definition: AgoraBase.h:4672
agora::rtc::VideoCompositingLayout::Region::uid
uid_t uid
Definition: IAgoraRtcEngine.h:582
agora::rtc::IRtcEngineEventHandler::onConnectionStateChanged
virtual void onConnectionStateChanged(CONNECTION_STATE_TYPE state, CONNECTION_CHANGED_REASON_TYPE reason)
Definition: IAgoraRtcEngine.h:2661
agora::rtc::SegmentationProperty
Definition: AgoraBase.h:5162
agora::rtc::VideoCompositingLayout::Region::x
double x
Definition: IAgoraRtcEngine.h:585