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 unloadAllEffect;
1494 bool stopMicrophoneRecording;
1495
1496 LeaveChannelOptions() : stopAudioMixing(true), stopAllEffect(true), unloadAllEffect(false), stopMicrophoneRecording(true) {}
1497 };
1498
1509 class IRtcEngineEventHandler {
1510 public:
1511 virtual ~IRtcEngineEventHandler() {}
1512
1513 virtual const char* eventHandlerType() const { return "event_handler"; }
1514
1524 virtual void onJoinChannelSuccess(const char* channel, uid_t uid, int elapsed) {
1525 (void)channel;
1526 (void)uid;
1527 (void)elapsed;
1528 }
1529
1540 virtual void onRejoinChannelSuccess(const char* channel, uid_t uid, int elapsed) {
1541 (void)channel;
1542 (void)uid;
1543 (void)elapsed;
1544 }
1545
1553 virtual void onProxyConnected(const char* channel, uid_t uid, PROXY_TYPE proxyType, const char* localProxyIp, int elapsed) {
1554 (void)channel;
1555 (void)uid;
1556 (void)proxyType;
1557 (void)localProxyIp;
1558 (void)elapsed;
1559 }
1560
1566 virtual void onError(int err, const char* msg) {
1567 (void)err;
1568 (void)msg;
1569 }
1570
1586 virtual void onAudioQuality(uid_t uid, int quality, unsigned short delay, unsigned short lost) __deprecated {
1587 (void)uid;
1588 (void)quality;
1589 (void)delay;
1590 (void)lost;
1591 }
1592
1598 virtual void onLastmileProbeResult(const LastmileProbeResult& result) {
1599 (void)result;
1600 }
1601
1628 virtual void onAudioVolumeIndication(const AudioVolumeInfo* speakers, unsigned int speakerNumber,
1629 int totalVolume) {
1630 (void)speakers;
1631 (void)speakerNumber;
1632 (void)totalVolume;
1633 }
1634
1643 virtual void onLeaveChannel(const RtcStats& stats) { (void)stats; }
1644
1652 virtual void onRtcStats(const RtcStats& stats) { (void)stats; }
1653
1667 virtual void onAudioDeviceStateChanged(const char* deviceId, int deviceType, int deviceState) {
1668 (void)deviceId;
1669 (void)deviceType;
1670 (void)deviceState;
1671 }
1672
1679 virtual void onAudioMixingPositionChanged(int64_t position) {}
1680
1687 virtual void onAudioMixingFinished() __deprecated {}
1688
1696 virtual void onAudioEffectFinished(int soundId) {}
1697
1707 virtual void onVideoDeviceStateChanged(const char* deviceId, int deviceType, int deviceState) {
1708 (void)deviceId;
1709 (void)deviceType;
1710 (void)deviceState;
1711 }
1712
1735 virtual void onNetworkQuality(uid_t uid, int txQuality, int rxQuality) {
1736 (void)uid;
1737 (void)txQuality;
1738 (void)rxQuality;
1739 }
1740
1747 virtual void onIntraRequestReceived() {}
1748
1759 virtual void onUplinkNetworkInfoUpdated(const UplinkNetworkInfo& info) {
1760 (void)info;
1761 }
1762
1770 virtual void onDownlinkNetworkInfoUpdated(const DownlinkNetworkInfo& info) {
1771 (void)info;
1772 }
1773
1786 virtual void onLastmileQuality(int quality) { (void)quality; }
1787
1798 virtual void onFirstLocalVideoFrame(VIDEO_SOURCE_TYPE source, int width, int height, int elapsed) {
1799 (void)source;
1800 (void)width;
1801 (void)height;
1802 (void)elapsed;
1803 }
1804
1815 virtual void onFirstLocalVideoFramePublished(VIDEO_SOURCE_TYPE source, int elapsed) {
1816 (void)source;
1817 (void)elapsed;
1818 }
1819
1836 virtual void onFirstRemoteVideoDecoded(uid_t uid, int width, int height, int elapsed) __deprecated {
1837 (void)uid;
1838 (void)width;
1839 (void)height;
1840 (void)elapsed;
1841 }
1842
1851 virtual void onVideoSizeChanged(VIDEO_SOURCE_TYPE sourceType, uid_t uid, int width, int height, int rotation) {
1852 (void)uid;
1853 (void)width;
1854 (void)height;
1855 (void)rotation;
1856 }
1857
1884 virtual void onLocalVideoStateChanged(VIDEO_SOURCE_TYPE source, LOCAL_VIDEO_STREAM_STATE state, LOCAL_VIDEO_STREAM_REASON reason) {
1885 (void)source;
1886 (void)state;
1887 (void)reason;
1888 }
1889
1901 virtual void onRemoteVideoStateChanged(uid_t uid, REMOTE_VIDEO_STATE state, REMOTE_VIDEO_STATE_REASON reason, int elapsed) {
1902 (void)uid;
1903 (void)state;
1904 (void)reason;
1905 (void)elapsed;
1906 }
1907
1915 virtual void onFirstRemoteVideoFrame(uid_t uid, int width, int height, int elapsed) {
1916 (void)uid;
1917 (void)width;
1918 (void)height;
1919 (void)elapsed;
1920 }
1921
1941 virtual void onUserJoined(uid_t uid, int elapsed) {
1942 (void)uid;
1943 (void)elapsed;
1944 }
1945
1960 virtual void onUserOffline(uid_t uid, USER_OFFLINE_REASON_TYPE reason) {
1961 (void)uid;
1962 (void)reason;
1963 }
1964
1977 virtual void onUserMuteAudio(uid_t uid, bool muted) {
1978 (void)uid;
1979 (void)muted;
1980 }
1981
1996 virtual void onUserMuteVideo(uid_t uid, bool muted) {
1997 (void)uid;
1998 (void)muted;
1999 }
2000
2013 virtual void onUserEnableVideo(uid_t uid, bool enabled) {
2014 (void)uid;
2015 (void)enabled;
2016 }
2017
2023 virtual void onUserStateChanged(uid_t uid, REMOTE_USER_STATE state) {
2024 (void)uid;
2025 (void)state;
2026 }
2027
2038 virtual void onUserEnableLocalVideo(uid_t uid, bool enabled) __deprecated {
2039 (void)uid;
2040 (void)enabled;
2041 }
2042
2050 virtual void onRemoteAudioStats(const RemoteAudioStats& stats) {
2051 (void)stats;
2052 }
2053
2061 virtual void onLocalAudioStats(const LocalAudioStats& stats) {
2062 (void)stats;
2063 }
2064
2078 virtual void onLocalVideoStats(VIDEO_SOURCE_TYPE source, const LocalVideoStats& stats) {
2079 (void)source;
2080 (void)stats;
2081 }
2082
2091 virtual void onRemoteVideoStats(const RemoteVideoStats& stats) {
2092 (void)stats;
2093 }
2094
2100 virtual void onCameraReady() __deprecated {}
2101
2112 virtual void onCameraFocusAreaChanged(int x, int y, int width, int height) {
2113 (void)x;
2114 (void)y;
2115 (void)width;
2116 (void)height;
2117 }
2126 virtual void onCameraExposureAreaChanged(int x, int y, int width, int height) {
2127 (void)x;
2128 (void)y;
2129 (void)width;
2130 (void)height;
2131 }
2132 #if defined(__ANDROID__) || (defined(__APPLE__) && (TARGET_OS_IOS || (defined(TARGET_OS_VISION) && TARGET_OS_VISION)))
2133
2163 virtual void onFacePositionChanged(int imageWidth, int imageHeight,
2164 const Rectangle* vecRectangle, const int* vecDistance,
2165 int numFaces) {
2166 (void) imageWidth;
2167 (void) imageHeight;
2168 (void) vecRectangle;
2169 (void) vecDistance;
2170 (void) numFaces;
2171 }
2172 #endif
2173
2180 virtual void onVideoStopped() __deprecated {}
2181
2189 virtual void onAudioMixingStateChanged(AUDIO_MIXING_STATE_TYPE state, AUDIO_MIXING_REASON_TYPE reason) {
2190 (void)state;
2191 (void)reason;
2192 }
2193
2202 virtual void onRhythmPlayerStateChanged(RHYTHM_PLAYER_STATE_TYPE state, RHYTHM_PLAYER_REASON reason) {
2203 (void)state;
2204 (void)reason;
2205 }
2206
2215 virtual void onConnectionLost() {}
2216
2228 virtual void onConnectionInterrupted() __deprecated {}
2229
2233 virtual void onConnectionBanned() __deprecated {}
2234
2246 virtual void onStreamMessage(uid_t uid, int streamId, const char* data, size_t length, uint64_t sentTs) {
2247 (void)uid;
2248 (void)streamId;
2249 (void)data;
2250 (void)length;
2251 (void)sentTs;
2252 }
2253
2266 virtual void onStreamMessageError(uid_t uid, int streamId, int code, int missed, int cached) {
2267 (void)uid;
2268 (void)streamId;
2269 (void)code;
2270 (void)missed;
2271 (void)cached;
2272 }
2273
2283 virtual void onRequestToken() {}
2284
2296 virtual void onTokenPrivilegeWillExpire(const char* token) {
2297 (void)token;
2298 }
2299
2305 virtual void onLicenseValidationFailure(LICENSE_ERROR_TYPE error) {
2306 (void)error;
2307 }
2308
2319 virtual void onFirstLocalAudioFramePublished(int elapsed) {
2320 (void)elapsed;
2321 }
2322
2339 virtual void onFirstRemoteAudioDecoded(uid_t uid, int elapsed) __deprecated {
2340 (void)uid;
2341 (void)elapsed;
2342 }
2343
2351 virtual void onFirstRemoteAudioFrame(uid_t uid, int elapsed) __deprecated {
2352 (void)uid;
2353 (void)elapsed;
2354 }
2355
2370 virtual void onLocalAudioStateChanged(LOCAL_AUDIO_STREAM_STATE state, LOCAL_AUDIO_STREAM_REASON reason) {
2371 (void)state;
2372 (void)reason;
2373 }
2374
2391 virtual void onRemoteAudioStateChanged(uid_t uid, REMOTE_AUDIO_STATE state, REMOTE_AUDIO_STATE_REASON reason, int elapsed) {
2392 (void)uid;
2393 (void)state;
2394 (void)reason;
2395 (void)elapsed;
2396 }
2397
2411 virtual void onActiveSpeaker(uid_t uid) {
2412 (void)uid;
2413 }
2414
2419 virtual void onContentInspectResult(media::CONTENT_INSPECT_RESULT result) { (void)result; }
2420
2438 virtual void onSnapshotTaken(uid_t uid, const char* filePath, int width, int height, int errCode) {
2439 (void)uid;
2440 (void)filePath;
2441 (void)width;
2442 (void)height;
2443 (void)errCode;
2444 }
2445
2453 virtual void onClientRoleChanged(CLIENT_ROLE_TYPE oldRole, CLIENT_ROLE_TYPE newRole, const ClientRoleOptions& newRoleOptions) {
2454 (void)oldRole;
2455 (void)newRole;
2456 (void)newRoleOptions;
2457 }
2458
2466 virtual void onClientRoleChangeFailed(CLIENT_ROLE_CHANGE_FAILED_REASON reason, CLIENT_ROLE_TYPE currentRole) {
2467 (void)reason;
2468 (void)currentRole;
2469 }
2470
2478 virtual void onAudioDeviceVolumeChanged(MEDIA_DEVICE_TYPE deviceType, int volume, bool muted) {
2479 (void)deviceType;
2480 (void)volume;
2481 (void)muted;
2482 }
2483
2495 virtual void onRtmpStreamingStateChanged(const char* url, RTMP_STREAM_PUBLISH_STATE state,
2496 RTMP_STREAM_PUBLISH_REASON reason) {
2497 (void)url;
2498 (void)state;
2499 (void)reason;
2500 }
2501
2507 virtual void onRtmpStreamingEvent(const char* url, RTMP_STREAMING_EVENT eventCode) {
2508 (void)url;
2509 (void)eventCode;
2510 }
2511
2522 virtual void onTranscodingUpdated() {}
2523
2537 virtual void onAudioRoutingChanged(int routing) { (void)routing; }
2538
2570 virtual void onChannelMediaRelayStateChanged(int state, int code) {
2571 (void)state;
2572 (void)code;
2573 }
2574
2588 virtual void onLocalPublishFallbackToAudioOnly(bool isFallbackOrRecover) {
2589 (void)isFallbackOrRecover;
2590 }
2591
2609 virtual void onRemoteSubscribeFallbackToAudioOnly(uid_t uid, bool isFallbackOrRecover) {
2610 (void)uid;
2611 (void)isFallbackOrRecover;
2612 }
2613
2628 virtual void onRemoteAudioTransportStats(uid_t uid, unsigned short delay, unsigned short lost, unsigned short rxKBitRate) __deprecated {
2629 (void)uid;
2630 (void)delay;
2631 (void)lost;
2632 (void)rxKBitRate;
2633 }
2634
2652 virtual void onRemoteVideoTransportStats(uid_t uid, unsigned short delay, unsigned short lost, unsigned short rxKBitRate) __deprecated {
2653 (void)uid;
2654 (void)delay;
2655 (void)lost;
2656 (void)rxKBitRate;
2657 }
2658
2667 virtual void onConnectionStateChanged(
2668 CONNECTION_STATE_TYPE state, CONNECTION_CHANGED_REASON_TYPE reason) {
2669 (void)state;
2670 (void)reason;
2671 }
2672
2679 virtual void onWlAccMessage(WLACC_MESSAGE_REASON reason, WLACC_SUGGEST_ACTION action, const char* wlAccMsg) {
2680 (void)reason;
2681 (void)action;
2682 (void)wlAccMsg;
2683 }
2684
2690 virtual void onWlAccStats(const WlAccStats& currentStats, const WlAccStats& averageStats) {
2691 (void)currentStats;
2692 (void)averageStats;
2693 }
2694
2704 virtual void onNetworkTypeChanged(NETWORK_TYPE type) {
2705 (void)type;
2706 }
2707
2715 virtual void onEncryptionError(ENCRYPTION_ERROR_TYPE errorType) {
2716 (void)errorType;
2717 }
2718
2728 virtual void onPermissionError(PERMISSION_TYPE permissionType) {
2729 (void)permissionType;
2730 }
2731
2741 virtual void onLocalUserRegistered(uid_t uid, const char* userAccount) {
2742 (void)uid;
2743 (void)userAccount;
2744 }
2745
2754 virtual void onUserInfoUpdated(uid_t uid, const UserInfo& info) {
2755 (void)uid;
2756 (void)info;
2757 }
2758
2765 virtual void onUserAccountUpdated(uid_t uid, const char* userAccount){
2766 (void)uid;
2767 (void)userAccount;
2768 }
2769
2777 virtual void onVideoRenderingTracingResult(uid_t uid, MEDIA_TRACE_EVENT currentEvent, VideoRenderingTracingInfo tracingInfo) {
2778 (void)uid;
2779 (void)currentEvent;
2780 (void)tracingInfo;
2781 }
2782
2789 virtual void onLocalVideoTranscoderError(const TranscodingVideoStream& stream, VIDEO_TRANSCODER_ERROR error){
2790 (void)stream;
2791 (void)error;
2792 }
2793
2800 virtual void onUploadLogResult(const char* requestId, bool success, UPLOAD_ERROR_REASON reason) {
2801 (void)requestId;
2802 (void)success;
2803 (void)reason;
2804 }
2805
2815 virtual void onAudioSubscribeStateChanged(const char* channel, uid_t uid, STREAM_SUBSCRIBE_STATE oldState, STREAM_SUBSCRIBE_STATE newState, int elapseSinceLastState) {
2816 (void)channel;
2817 (void)uid;
2818 (void)oldState;
2819 (void)newState;
2820 (void)elapseSinceLastState;
2821 }
2822
2832 virtual void onVideoSubscribeStateChanged(const char* channel, uid_t uid, STREAM_SUBSCRIBE_STATE oldState, STREAM_SUBSCRIBE_STATE newState, int elapseSinceLastState) {
2833 (void)channel;
2834 (void)uid;
2835 (void)oldState;
2836 (void)newState;
2837 (void)elapseSinceLastState;
2838 }
2839
2848 virtual void onAudioPublishStateChanged(const char* channel, STREAM_PUBLISH_STATE oldState, STREAM_PUBLISH_STATE newState, int elapseSinceLastState) {
2849 (void)channel;
2850 (void)oldState;
2851 (void)newState;
2852 (void)elapseSinceLastState;
2853 }
2854
2864 virtual void onVideoPublishStateChanged(VIDEO_SOURCE_TYPE source, const char* channel, STREAM_PUBLISH_STATE oldState, STREAM_PUBLISH_STATE newState, int elapseSinceLastState) {
2865 (void)source;
2866 (void)channel;
2867 (void)oldState;
2868 (void)newState;
2869 (void)elapseSinceLastState;
2870 }
2871
2881 virtual void onTranscodedStreamLayoutInfo(uid_t uid, int width, int height, int layoutCount,const VideoLayout* layoutlist) {
2882 (void)uid;
2883 (void)width;
2884 (void)height;
2885 (void)layoutCount;
2886 (void)layoutlist;
2887 }
2888
2897 virtual void onAudioMetadataReceived(uid_t uid, const char* metadata, size_t length) {
2898 (void)uid;
2899 (void)metadata;
2900 (void)length;
2901 }
2902
2912 virtual void onExtensionEventWithContext(const ExtensionContext &context, const char* key, const char* value) {
2913 (void)context;
2914 (void)key;
2915 (void)value;
2916 }
2917
2925 virtual void onExtensionStartedWithContext(const ExtensionContext &context) {
2926 (void)context;
2927 }
2928
2936 virtual void onExtensionStoppedWithContext(const ExtensionContext &context) {
2937 (void)context;
2938 }
2939
2950 virtual void onExtensionErrorWithContext(const ExtensionContext &context, int error, const char* message) {
2951 (void)context;
2952 (void)error;
2953 (void)message;
2954 }
2955
2962 virtual void onSetRtmFlagResult(int code) {
2963 (void)code;
2964 }
2965 };
2966
2970 class IVideoDeviceCollection {
2971 public:
2972 virtual ~IVideoDeviceCollection() {}
2973
2979 virtual int getCount() = 0;
2980
2990 virtual int setDevice(const char deviceIdUTF8[MAX_DEVICE_ID_LENGTH]) = 0;
2991
3002 virtual int getDevice(int index, char deviceNameUTF8[MAX_DEVICE_ID_LENGTH],
3003 char deviceIdUTF8[MAX_DEVICE_ID_LENGTH]) = 0;
3004
3008 virtual void release() = 0;
3009 };
3010
3014 class IVideoDeviceManager {
3015 public:
3016 virtual ~IVideoDeviceManager() {}
3028 virtual IVideoDeviceCollection* enumerateVideoDevices() = 0;
3029
3040 virtual int setDevice(const char deviceIdUTF8[MAX_DEVICE_ID_LENGTH]) = 0;
3041
3050 virtual int getDevice(char deviceIdUTF8[MAX_DEVICE_ID_LENGTH]) = 0;
3051
3052 #if defined(_WIN32) || (defined(__linux__) && !defined(__ANDROID__)) || \
3053 (defined(__APPLE__) && TARGET_OS_MAC && !TARGET_OS_IPHONE)
3054
3071 virtual int numberOfCapabilities(const char* deviceIdUTF8) = 0;
3072
3090 virtual int getCapability(const char* deviceIdUTF8, const uint32_t deviceCapabilityNumber, VideoFormat& capability) = 0;
3091 #endif
3092
3105 virtual int startDeviceTest(view_t hwnd) = 0;
3106
3113 virtual int stopDeviceTest() = 0;
3114
3118 virtual void release() = 0;
3119 };
3120
3126 class IVideoEffectObject : public RefCountInterface {
3127 public:
3128 virtual ~IVideoEffectObject() {}
3129
3135 enum class VIDEO_EFFECT_NODE_ID : uint32_t {
3137 BEAUTY = 1U << 0,
3139 STYLE_MAKEUP = 1U << 1,
3141 FILTER = 1U << 2,
3143 STICKER = 1U << 3,
3144 };
3145
3151 enum VIDEO_EFFECT_ACTION {
3153 SAVE = 1,
3155 RESET = 2,
3156 };
3157
3182 virtual int addOrUpdateVideoEffect(uint32_t nodeId, const char* templateName) = 0;
3183
3195 virtual int removeVideoEffect(uint32_t nodeId) = 0;
3196
3209 virtual int performVideoEffectAction(uint32_t nodeId, VIDEO_EFFECT_ACTION actionId) = 0;
3210
3224 virtual int setVideoEffectFloatParam(const char* option, const char* key, float param) = 0;
3225
3239 virtual int setVideoEffectIntParam(const char* option, const char* key, int param) = 0;
3240
3256 virtual int setVideoEffectBoolParam(const char* option, const char* key, bool param) = 0;
3257
3270 virtual float getVideoEffectFloatParam(const char* option, const char* key) = 0;
3271
3284 virtual int getVideoEffectIntParam(const char* option, const char* key) = 0;
3285
3298 virtual bool getVideoEffectBoolParam(const char* option, const char* key) = 0;
3299
3300 };
3301
3305 struct RtcEngineContext {
3309 IRtcEngineEventHandler* eventHandler;
3316 const char* appId;
3322 void* context;
3326 CHANNEL_PROFILE_TYPE channelProfile;
3327
3331 const char* license;
3332
3340 AUDIO_SCENARIO_TYPE audioScenario;
3349 unsigned int areaCode;
3350
3366 commons::LogConfig logConfig;
3367
3371 Optional<THREAD_PRIORITY_TYPE> threadPriority;
3372
3380 bool useExternalEglContext;
3381
3387 bool domainLimit;
3388
3394 bool autoRegisterAgoraExtensions;
3395
3396 RtcEngineContext()
3397 : eventHandler(NULL), appId(NULL), context(NULL), channelProfile(CHANNEL_PROFILE_LIVE_BROADCASTING),
3398 license(NULL), audioScenario(AUDIO_SCENARIO_DEFAULT), areaCode(AREA_CODE_GLOB),
3399 logConfig(), useExternalEglContext(false), domainLimit(false), autoRegisterAgoraExtensions(true) {}
3400 };
3401
3404 class IMetadataObserver {
3405 public:
3406 virtual ~IMetadataObserver() {}
3407
3412 enum METADATA_TYPE
3413 {
3416 UNKNOWN_METADATA = -1,
3419 VIDEO_METADATA = 0,
3420 };
3424 enum MAX_METADATA_SIZE_TYPE
3425 {
3426 INVALID_METADATA_SIZE_IN_BYTE = -1,
3427 DEFAULT_METADATA_SIZE_IN_BYTE = 512,
3428 MAX_METADATA_SIZE_IN_BYTE = 1024
3429 };
3430
3433 struct Metadata
3434 {
3437 const char* channelId;
3442 unsigned int uid;
3445 unsigned int size;
3448 unsigned char *buffer;
3452 long long timeStampMs;
3453
3454 Metadata() : channelId(NULL), uid(0), size(0), buffer(NULL), timeStampMs(0) {}
3455 };
3456
3467 virtual int getMaxMetadataSize() { return DEFAULT_METADATA_SIZE_IN_BYTE; }
3468
3479 virtual bool onReadyToSendMetadata(Metadata &metadata, VIDEO_SOURCE_TYPE source_type) = 0;
3480
3488 virtual void onMetadataReceived(const Metadata& metadata) = 0;
3489 };
3490
3491 // The reason codes for media streaming
3492 // GENERATED_JAVA_ENUM_PACKAGE: io.agora.streaming
3493 enum DIRECT_CDN_STREAMING_REASON {
3494 // No error occurs.
3495 DIRECT_CDN_STREAMING_REASON_OK = 0,
3496 // A general error occurs (no specified reason).
3497 DIRECT_CDN_STREAMING_REASON_FAILED = 1,
3498 // Audio publication error.
3499 DIRECT_CDN_STREAMING_REASON_AUDIO_PUBLICATION = 2,
3500 // Video publication error.
3501 DIRECT_CDN_STREAMING_REASON_VIDEO_PUBLICATION = 3,
3502
3503 DIRECT_CDN_STREAMING_REASON_NET_CONNECT = 4,
3504 // Already exist stream name.
3505 DIRECT_CDN_STREAMING_REASON_BAD_NAME = 5,
3506 };
3507
3508 // The connection state of media streaming
3509 // GENERATED_JAVA_ENUM_PACKAGE: io.agora.streaming
3510 enum DIRECT_CDN_STREAMING_STATE {
3511
3512 DIRECT_CDN_STREAMING_STATE_IDLE = 0,
3513
3514 DIRECT_CDN_STREAMING_STATE_RUNNING = 1,
3515
3516 DIRECT_CDN_STREAMING_STATE_STOPPED = 2,
3517
3518 DIRECT_CDN_STREAMING_STATE_FAILED = 3,
3519
3520 DIRECT_CDN_STREAMING_STATE_RECOVERING = 4,
3521 };
3522
3526 struct DirectCdnStreamingStats {
3530 int videoWidth;
3531
3535 int videoHeight;
3536
3540 int fps;
3541
3545 int videoBitrate;
3546
3550 int audioBitrate;
3551 };
3552
3557 class IDirectCdnStreamingEventHandler {
3558 public:
3559 virtual ~IDirectCdnStreamingEventHandler() {}
3560
3567 virtual void onDirectCdnStreamingStateChanged(DIRECT_CDN_STREAMING_STATE state, DIRECT_CDN_STREAMING_REASON reason, const char* message) {
3568 (void)state;
3569 (void)reason;
3570 (void)message;
3571 };
3572
3573 virtual void onDirectCdnStreamingStats(const DirectCdnStreamingStats& stats) {
3574 (void)stats;
3575 };
3576 };
3577
3581 struct DirectCdnStreamingMediaOptions {
3587 Optional<bool> publishCameraTrack;
3593 Optional<bool> publishMicrophoneTrack;
3599 Optional<bool> publishCustomAudioTrack;
3605 Optional<bool> publishCustomVideoTrack;
3611 Optional<bool> publishMediaPlayerAudioTrack;
3616 Optional<int> publishMediaPlayerId;
3621 Optional<video_track_id_t> customVideoTrackId;
3622
3623 DirectCdnStreamingMediaOptions() {}
3624 ~DirectCdnStreamingMediaOptions() {}
3625
3626 void SetAll(const DirectCdnStreamingMediaOptions& change) {
3627 #define SET_FROM(X) SetFrom(&X, change.X)
3628 SET_FROM(publishCameraTrack);
3629 SET_FROM(publishMicrophoneTrack);
3630 SET_FROM(publishCustomAudioTrack);
3631 SET_FROM(publishCustomVideoTrack);
3632 SET_FROM(publishMediaPlayerAudioTrack);
3633 SET_FROM(publishMediaPlayerId);
3634 SET_FROM(customVideoTrackId);
3635 #undef SET_FROM
3636 }
3637
3638 bool operator==(const DirectCdnStreamingMediaOptions& o) const {
3639 #define BEGIN_COMPARE() bool b = true
3640 #define ADD_COMPARE(X) b = (b && (X == o.X))
3641 #define END_COMPARE()
3642
3643 BEGIN_COMPARE();
3644 ADD_COMPARE(publishCameraTrack);
3645 ADD_COMPARE(publishMicrophoneTrack);
3646 ADD_COMPARE(publishCustomAudioTrack);
3647 ADD_COMPARE(publishCustomVideoTrack);
3648 ADD_COMPARE(publishMediaPlayerAudioTrack);
3649 ADD_COMPARE(customVideoTrackId);
3650 ADD_COMPARE(publishMediaPlayerId);
3651 END_COMPARE();
3652
3653 #undef BEGIN_COMPARE
3654 #undef ADD_COMPARE
3655 #undef END_COMPARE
3656 return b;
3657 }
3658
3659 DirectCdnStreamingMediaOptions& operator=(const DirectCdnStreamingMediaOptions& replace) {
3660 if (this != &replace) {
3661 #define REPLACE_BY(X) ReplaceBy(&X, replace.X)
3662
3663 REPLACE_BY(publishCameraTrack);
3664 REPLACE_BY(publishMicrophoneTrack);
3665 REPLACE_BY(publishCustomAudioTrack);
3666 REPLACE_BY(publishCustomVideoTrack);
3667 REPLACE_BY(publishMediaPlayerAudioTrack);
3668 REPLACE_BY(customVideoTrackId);
3669 REPLACE_BY(publishMediaPlayerId);
3670 #undef REPLACE_BY
3671 }
3672 return *this;
3673 }
3674 };
3675
3679 struct ExtensionInfo {
3683 agora::media::MEDIA_SOURCE_TYPE mediaSourceType;
3684
3690 uid_t remoteUid;
3691
3703 const char* channelId;
3704
3708 uid_t localUid;
3709
3710 ExtensionInfo() : mediaSourceType(agora::media::UNKNOWN_MEDIA_SOURCE), remoteUid(0), channelId(NULL), localUid(0) {}
3711 };
3712
3713 class IMediaPlayer;
3714 class IMediaRecorder;
3715
3721 using RtcEngineReleaseCallback = void(*)();
3722
3729 class IRtcEngine : public agora::base::IEngineBase {
3730 public:
3755 AGORA_CPP_API static void release(RtcEngineReleaseCallback callback = nullptr);
3756
3773 virtual int initialize(const RtcEngineContext& context) = 0;
3774
3784 virtual int queryInterface(INTERFACE_ID_TYPE iid, void** inter) = 0;
3785
3786
3792 virtual const char* getVersion(int* build) = 0;
3793
3799 virtual const char* getErrorDescription(int code) = 0;
3800
3810 virtual int queryCodecCapability(CodecCapInfo* codecInfo, int& size) = 0;
3811
3821 virtual int queryDeviceScore() = 0;
3822
3860 virtual int preloadChannel(const char* token, const char* channelId, uid_t uid) = 0;
3861
3901 virtual int preloadChannelWithUserAccount(const char* token, const char* channelId, const char* userAccount) = 0;
3902
3920 virtual int updatePreloadChannelToken(const char* token) = 0;
3921
3981 virtual int joinChannel(const char* token, const char* channelId, const char* info, uid_t uid) = 0;
3982
4050 virtual int joinChannel(const char* token, const char* channelId, uid_t uid, const ChannelMediaOptions& options) = 0;
4051
4060 virtual int updateChannelMediaOptions(const ChannelMediaOptions& options) = 0;
4061
4079 virtual int leaveChannel() = 0;
4080
4100 virtual int leaveChannel(const LeaveChannelOptions& options) = 0;
4101
4118 virtual int renewToken(const char* token) = 0;
4119
4139 virtual int setChannelProfile(CHANNEL_PROFILE_TYPE profile) = 0;
4140
4164 virtual int setClientRole(CLIENT_ROLE_TYPE role) = 0;
4165
4188 virtual int setClientRole(CLIENT_ROLE_TYPE role, const ClientRoleOptions& options) = 0;
4189
4198 virtual int startEchoTest(const EchoTestConfiguration& config) = 0;
4199
4206 virtual int stopEchoTest() = 0;
4207
4208 #if defined(__APPLE__) && (TARGET_OS_IOS || (defined(TARGET_OS_VISION) && TARGET_OS_VISION))
4209
4218 virtual int enableMultiCamera(bool enabled, const CameraCapturerConfiguration& config) = 0;
4219 #endif
4220
4235 virtual int enableVideo() = 0;
4236
4246 virtual int disableVideo() = 0;
4247
4259 virtual int startPreview() = 0;
4260
4268 virtual int startPreview(VIDEO_SOURCE_TYPE sourceType) = 0;
4269
4277 virtual int stopPreview() = 0;
4278
4286 virtual int stopPreview(VIDEO_SOURCE_TYPE sourceType) = 0;
4287
4321 virtual int startLastmileProbeTest(const LastmileProbeConfig& config) = 0;
4322
4324 virtual int stopLastmileProbeTest() = 0;
4325
4342 virtual int setVideoEncoderConfiguration(const VideoEncoderConfiguration& config) = 0;
4343
4353 virtual int setBeautyEffectOptions(bool enabled, const BeautyOptions& options, agora::media::MEDIA_SOURCE_TYPE type = agora::media::PRIMARY_CAMERA_SOURCE) = 0;
4363 virtual int setFaceShapeBeautyOptions(bool enabled, const FaceShapeBeautyOptions& options, agora::media::MEDIA_SOURCE_TYPE type = agora::media::PRIMARY_CAMERA_SOURCE) = 0;
4370 virtual int setFaceShapeAreaOptions(const FaceShapeAreaOptions& options, agora::media::MEDIA_SOURCE_TYPE type = agora::media::PRIMARY_CAMERA_SOURCE) = 0;
4371
4378 virtual int getFaceShapeBeautyOptions(FaceShapeBeautyOptions& options, agora::media::MEDIA_SOURCE_TYPE type = agora::media::PRIMARY_CAMERA_SOURCE) = 0;
4379
4387 virtual int getFaceShapeAreaOptions(agora::rtc::FaceShapeAreaOptions::FACE_SHAPE_AREA shapeArea, FaceShapeAreaOptions& options, agora::media::MEDIA_SOURCE_TYPE type = agora::media::PRIMARY_CAMERA_SOURCE) = 0;
4388
4413 virtual int setFilterEffectOptions(bool enabled, const FilterEffectOptions& options, agora::media::MEDIA_SOURCE_TYPE type = agora::media::PRIMARY_CAMERA_SOURCE) = 0;
4414
4415
4428 virtual agora_refptr<IVideoEffectObject> createVideoEffectObject(const char* bundlePath, agora::media::MEDIA_SOURCE_TYPE type = agora::media::PRIMARY_CAMERA_SOURCE) = 0;
4429
4430
4442 virtual int destroyVideoEffectObject(agora_refptr<IVideoEffectObject> videoEffectObject) = 0;
4443
4470 virtual int setLowlightEnhanceOptions(bool enabled, const LowlightEnhanceOptions& options, agora::media::MEDIA_SOURCE_TYPE type = agora::media::PRIMARY_CAMERA_SOURCE) = 0;
4497 virtual int setVideoDenoiserOptions(bool enabled, const VideoDenoiserOptions& options, agora::media::MEDIA_SOURCE_TYPE type = agora::media::PRIMARY_CAMERA_SOURCE) = 0;
4524 virtual int setColorEnhanceOptions(bool enabled, const ColorEnhanceOptions& options, agora::media::MEDIA_SOURCE_TYPE type = agora::media::PRIMARY_CAMERA_SOURCE) = 0;
4525
4558 virtual int enableVirtualBackground(bool enabled, VirtualBackgroundSource backgroundSource, SegmentationProperty segproperty, agora::media::MEDIA_SOURCE_TYPE type = agora::media::PRIMARY_CAMERA_SOURCE) = 0;
4559
4582 virtual int setupRemoteVideo(const VideoCanvas& canvas) = 0;
4583
4600 virtual int setupLocalVideo(const VideoCanvas& canvas) = 0;
4601
4620 virtual int setVideoScenario(VIDEO_APPLICATION_SCENARIO_TYPE scenarioType) = 0;
4621
4640 virtual int setVideoQoEPreference(VIDEO_QOE_PREFERENCE_TYPE qoePreference) = 0;
4641
4655 virtual int enableAudio() = 0;
4656
4668 virtual int disableAudio() = 0;
4669
4691 virtual int setAudioProfile(AUDIO_PROFILE_TYPE profile, AUDIO_SCENARIO_TYPE scenario) __deprecated = 0;
4692
4708 virtual int setAudioProfile(AUDIO_PROFILE_TYPE profile) = 0;
4717 virtual int setAudioScenario(AUDIO_SCENARIO_TYPE scenario) = 0;
4740 virtual int enableLocalAudio(bool enabled) = 0;
4741
4767 virtual int muteLocalAudioStream(bool mute) = 0;
4768
4810 virtual int muteAllRemoteAudioStreams(bool mute) = 0;
4811
4828 virtual int muteRemoteAudioStream(uid_t uid, bool mute) = 0;
4829
4841 virtual int muteLocalVideoStream(bool mute) = 0;
4842
4867 virtual int enableLocalVideo(bool enabled) = 0;
4868
4908 virtual int muteAllRemoteVideoStreams(bool mute) = 0;
4909
4919 virtual int setRemoteDefaultVideoStreamType(VIDEO_STREAM_TYPE streamType) = 0;
4920
4937 virtual int muteRemoteVideoStream(uid_t uid, bool mute) = 0;
4938
4956 virtual int setRemoteVideoStreamType(uid_t uid, VIDEO_STREAM_TYPE streamType) = 0;
4957
4968 virtual int setRemoteVideoSubscriptionOptions(uid_t uid, const VideoSubscriptionOptions &options) = 0;
4969
4984 virtual int setSubscribeAudioBlocklist(uid_t* uidList, int uidNumber) = 0;
4985
5002 virtual int setSubscribeAudioAllowlist(uid_t* uidList, int uidNumber) = 0;
5003
5018 virtual int setSubscribeVideoBlocklist(uid_t* uidList, int uidNumber) = 0;
5019
5036 virtual int setSubscribeVideoAllowlist(uid_t* uidList, int uidNumber) = 0;
5037
5064 virtual int enableAudioVolumeIndication(int interval, int smooth, bool reportVad) = 0;
5065
5086 virtual int startAudioRecording(const char* filePath,
5087 AUDIO_RECORDING_QUALITY_TYPE quality) = 0;
5109 virtual int startAudioRecording(const char* filePath,
5110 int sampleRate,
5111 AUDIO_RECORDING_QUALITY_TYPE quality) = 0;
5112
5131 virtual int startAudioRecording(const AudioRecordingConfiguration& config) = 0;
5132
5138 virtual int registerAudioEncodedFrameObserver(const AudioEncodedFrameObserverConfig& config, IAudioEncodedFrameObserver *observer) = 0;
5139
5148 virtual int stopAudioRecording() = 0;
5149
5160 virtual agora_refptr<IMediaPlayer> createMediaPlayer() = 0;
5161
5173 virtual int destroyMediaPlayer(agora_refptr<IMediaPlayer> media_player) = 0;
5174
5185 virtual agora_refptr<IMediaRecorder> createMediaRecorder(const RecorderStreamInfo& info) = 0;
5186
5196 virtual int destroyMediaRecorder(agora_refptr<IMediaRecorder> mediaRecorder) = 0;
5197
5239 virtual int startAudioMixing(const char* filePath, bool loopback, int cycle) = 0;
5240
5284 virtual int startAudioMixing(const char* filePath, bool loopback, int cycle, int startPos) = 0;
5285
5294 virtual int stopAudioMixing() = 0;
5295
5304 virtual int pauseAudioMixing() = 0;
5305
5314 virtual int resumeAudioMixing() = 0;
5315
5324 virtual int selectAudioTrack(int index) = 0;
5333 virtual int getAudioTrackCount() = 0;
5334
5349 virtual int adjustAudioMixingVolume(int volume) = 0;
5350
5358 virtual int adjustAudioMixingPublishVolume(int volume) = 0;
5359
5367 virtual int getAudioMixingPublishVolume() = 0;
5368
5376 virtual int adjustAudioMixingPlayoutVolume(int volume) = 0;
5377
5385 virtual int getAudioMixingPlayoutVolume() = 0;
5386
5395 virtual int getAudioMixingDuration() = 0;
5396
5406 virtual int getAudioMixingCurrentPosition() = 0;
5407
5417 virtual int setAudioMixingPosition(int pos /*in ms*/) = 0;
5418
5429 virtual int setAudioMixingDualMonoMode(media::AUDIO_MIXING_DUAL_MONO_MODE mode) = 0;
5430
5447 virtual int setAudioMixingPitch(int pitch) = 0;
5448
5464 virtual int setAudioMixingPlaybackSpeed(int speed) = 0;
5465
5473 virtual int getEffectsVolume() = 0;
5483 virtual int setEffectsVolume(int volume) = 0;
5511 virtual int preloadEffect(int soundId, const char* filePath, int startPos = 0) = 0;
5557 virtual int playEffect(int soundId, const char* filePath, int loopCount, double pitch, double pan, int gain, bool publish = false, int startPos = 0) = 0;
5588 virtual int playAllEffects(int loopCount, double pitch, double pan, int gain, bool publish = false) = 0;
5589
5599 virtual int getVolumeOfEffect(int soundId) = 0;
5600
5611 virtual int setVolumeOfEffect(int soundId, int volume) = 0;
5620 virtual int pauseEffect(int soundId) = 0;
5627 virtual int pauseAllEffects() = 0;
5636 virtual int resumeEffect(int soundId) = 0;
5643 virtual int resumeAllEffects() = 0;
5652 virtual int stopEffect(int soundId) = 0;
5659 virtual int stopAllEffects() = 0;
5668 virtual int unloadEffect(int soundId) = 0;
5675 virtual int unloadAllEffects() = 0;
5694 virtual int getEffectDuration(const char* filePath) = 0;
5711 virtual int setEffectPosition(int soundId, int pos) = 0;
5726 virtual int getEffectCurrentPosition(int soundId) = 0;
5739 virtual int enableSoundPositionIndication(bool enabled) = 0;
5740
5761 virtual int setRemoteVoicePosition(uid_t uid, double pan, double gain) = 0;
5762
5772 virtual int enableSpatialAudio(bool enabled) = 0;
5773
5783 virtual int setRemoteUserSpatialAudioParams(uid_t uid, const agora::SpatialAudioParams& params) = 0;
5784
5822 virtual int setVoiceBeautifierPreset(VOICE_BEAUTIFIER_PRESET preset) = 0;
5823
5861 virtual int setAudioEffectPreset(AUDIO_EFFECT_PRESET preset) = 0;
5862
5899 virtual int setVoiceConversionPreset(VOICE_CONVERSION_PRESET preset) = 0;
5900
5976 virtual int setAudioEffectParameters(AUDIO_EFFECT_PRESET preset, int param1, int param2) = 0;
5977
6020 virtual int setVoiceBeautifierParameters(VOICE_BEAUTIFIER_PRESET preset,
6021 int param1, int param2) = 0;
6022
6035 virtual int setVoiceConversionParameters(VOICE_CONVERSION_PRESET preset,
6036 int param1, int param2) = 0;
6037
6048 virtual int setLocalVoicePitch(double pitch) = 0;
6049
6060 virtual int setLocalVoiceFormant(double formantRatio) = 0;
6061
6073 virtual int setLocalVoiceEqualization(AUDIO_EQUALIZATION_BAND_FREQUENCY bandFrequency, int bandGain) = 0;
6074
6083 virtual int setLocalVoiceReverb(AUDIO_REVERB_TYPE reverbKey, int value) = 0;
6095 virtual int setHeadphoneEQPreset(HEADPHONE_EQUALIZER_PRESET preset) = 0;
6096
6106 virtual int setHeadphoneEQParameters(int lowGain, int highGain) = 0;
6107
6119 virtual int enableVoiceAITuner(bool enabled, VOICE_AI_TUNER_TYPE type) = 0;
6120
6136 virtual int setLogFile(const char* filePath) = 0;
6137
6160 virtual int setLogFilter(unsigned int filter) = 0;
6161
6178 virtual int setLogLevel(commons::LOG_LEVEL level) = 0;
6179
6194 virtual int setLogFileSize(unsigned int fileSizeInKBytes) = 0;
6195
6204 virtual int uploadLogFile(agora::util::AString& requestId) = 0;
6205
6221 virtual int writeLog(commons::LOG_LEVEL level, const char* fmt, ...) = 0;
6222
6241 virtual int setLocalRenderMode(media::base::RENDER_MODE_TYPE renderMode, VIDEO_MIRROR_MODE_TYPE mirrorMode) = 0;
6242
6263 virtual int setRemoteRenderMode(uid_t uid, media::base::RENDER_MODE_TYPE renderMode,
6264 VIDEO_MIRROR_MODE_TYPE mirrorMode) = 0;
6275 virtual int setLocalRenderTargetFps(VIDEO_SOURCE_TYPE sourceType, int targetFps) = 0;
6284 virtual int setRemoteRenderTargetFps(int targetFps) = 0;
6285 // The following APIs are either deprecated and going to deleted.
6286
6304 virtual int setLocalRenderMode(media::base::RENDER_MODE_TYPE renderMode) __deprecated = 0;
6305
6317 virtual int setLocalVideoMirrorMode(VIDEO_MIRROR_MODE_TYPE mirrorMode) __deprecated = 0;
6318
6333 virtual int enableDualStreamMode(bool enabled) __deprecated = 0;
6334
6351 virtual int enableDualStreamMode(bool enabled, const SimulcastStreamConfig& streamConfig) __deprecated = 0;
6352
6353
6367 virtual int setDualStreamMode(SIMULCAST_STREAM_MODE mode) = 0;
6368
6384 virtual int setSimulcastConfig(const SimulcastConfig& simulcastConfig) = 0;
6385
6399 virtual int setDualStreamMode(SIMULCAST_STREAM_MODE mode, const SimulcastStreamConfig& streamConfig) = 0;
6400
6415 virtual int enableCustomAudioLocalPlayback(track_id_t trackId, bool enabled) = 0;
6416
6435 virtual int setRecordingAudioFrameParameters(int sampleRate, int channel,
6436 RAW_AUDIO_FRAME_OP_MODE_TYPE mode,
6437 int samplesPerCall) = 0;
6438
6458 virtual int setPlaybackAudioFrameParameters(int sampleRate, int channel,
6459 RAW_AUDIO_FRAME_OP_MODE_TYPE mode,
6460 int samplesPerCall) = 0;
6461
6477 virtual int setMixedAudioFrameParameters(int sampleRate, int channel, int samplesPerCall) = 0;
6478
6498 virtual int setEarMonitoringAudioFrameParameters(int sampleRate, int channel,
6499 RAW_AUDIO_FRAME_OP_MODE_TYPE mode,
6500 int samplesPerCall) = 0;
6501
6517 virtual int setPlaybackAudioFrameBeforeMixingParameters(int sampleRate, int channel) = 0;
6518
6529 virtual int enableAudioSpectrumMonitor(int intervalInMS = 100) = 0;
6537 virtual int disableAudioSpectrumMonitor() = 0;
6538
6553 virtual int registerAudioSpectrumObserver(agora::media::IAudioSpectrumObserver * observer) = 0;
6563 virtual int unregisterAudioSpectrumObserver(agora::media::IAudioSpectrumObserver * observer) = 0;
6564
6578 virtual int adjustRecordingSignalVolume(int volume) = 0;
6579
6591 virtual int muteRecordingSignal(bool mute) = 0;
6592
6606 virtual int adjustPlaybackSignalVolume(int volume) = 0;
6607
6608 /*
6609 * Adjust the playback volume of the user specified by uid.
6610 *
6611 * You can call this method to adjust the playback volume of the user specified by uid
6612 * in call. If you want to adjust playback volume of the multi user, you can call this
6613 * this method multi times.
6614 *
6615 * @note
6616 * Please call this method after join channel.
6617 * This method adjust the playback volume of specified user.
6618 *
6619 * @param uid Remote user ID.
6620 * @param volume The playback volume of the specified remote user. The value ranges between 0 and 400, including the following:
6621 * 0: Mute.
6622 * 100: (Default) Original volume.
6623 * 400: Four times the original volume with signal-clipping protection.
6624 * @return
6625 * - 0: Success.
6626 * - < 0: Failure.
6627 */
6628 virtual int adjustUserPlaybackSignalVolume(uid_t uid, int volume) = 0;
6629
6651 virtual int setLocalPublishFallbackOption(STREAM_FALLBACK_OPTIONS option) = 0;
6652
6668 virtual int setRemoteSubscribeFallbackOption(STREAM_FALLBACK_OPTIONS option) = 0;
6669
6683 virtual int setHighPriorityUserList(uid_t* uidList, int uidNum, STREAM_FALLBACK_OPTIONS option) = 0;
6684
6705 virtual int enableExtension(const char* provider, const char* extension, const ExtensionInfo& extensionInfo, bool enable = true) = 0;
6706
6720 virtual int setExtensionProperty(const char* provider, const char* extension, const ExtensionInfo& extensionInfo, const char* key, const char* value) = 0;
6721
6736 virtual int getExtensionProperty(const char* provider, const char* extension, const ExtensionInfo& extensionInfo, const char* key, char* value, int buf_len) = 0;
6737
6756 virtual int enableLoopbackRecording(bool enabled, const char* deviceName = NULL) = 0;
6757
6758
6771 virtual int adjustLoopbackSignalVolume(int volume) = 0;
6772
6779 virtual int getLoopbackRecordingVolume() = 0;
6780
6792 virtual int enableInEarMonitoring(bool enabled, int includeAudioFilters) = 0;
6793
6804 virtual int setInEarMonitoringVolume(int volume) = 0;
6805
6806 #if defined (_WIN32) || defined(__linux__) || defined(__ANDROID__)
6807 virtual int loadExtensionProvider(const char* path, bool unload_after_use = false) = 0;
6808 #endif
6809
6821 virtual int setExtensionProviderProperty(const char* provider, const char* key, const char* value) = 0;
6822
6835 virtual int registerExtension(const char* provider, const char* extension, agora::media::MEDIA_SOURCE_TYPE type = agora::media::UNKNOWN_MEDIA_SOURCE) = 0;
6836
6857 virtual int enableExtension(const char* provider, const char* extension, bool enable=true, agora::media::MEDIA_SOURCE_TYPE type = agora::media::UNKNOWN_MEDIA_SOURCE) = 0;
6858
6871 virtual int setExtensionProperty(
6872 const char* provider, const char* extension,
6873 const char* key, const char* value, agora::media::MEDIA_SOURCE_TYPE type = agora::media::UNKNOWN_MEDIA_SOURCE) = 0;
6874
6888 virtual int getExtensionProperty(
6889 const char* provider, const char* extension,
6890 const char* key, char* value, int buf_len, agora::media::MEDIA_SOURCE_TYPE type = agora::media::UNKNOWN_MEDIA_SOURCE) = 0;
6891
6903 virtual int setCameraCapturerConfiguration(const CameraCapturerConfiguration& config) = 0;
6904
6912 virtual video_track_id_t createCustomVideoTrack() = 0;
6913
6921 virtual video_track_id_t createCustomEncodedVideoTrack(const SenderOptions& sender_option) = 0;
6922
6931 virtual int destroyCustomVideoTrack(video_track_id_t video_track_id) = 0;
6932
6941 virtual int destroyCustomEncodedVideoTrack(video_track_id_t video_track_id) = 0;
6942
6943
6944 #if defined(__ANDROID__) || (defined(__APPLE__) && (TARGET_OS_IOS || (defined(TARGET_OS_VISION) && TARGET_OS_VISION)))
6945
6954 virtual int switchCamera() = 0;
6955
6963 virtual bool isCameraZoomSupported() = 0;
6964
6972 virtual bool isCameraFaceDetectSupported() = 0;
6973
6981 virtual bool isCameraTorchSupported() = 0;
6982
6990 virtual bool isCameraFocusSupported() = 0;
6991
6999 virtual bool isCameraAutoFocusFaceModeSupported() = 0;
7000
7010 virtual int setCameraZoomFactor(float factor) = 0;
7011
7020 virtual int enableFaceDetection(bool enabled) = 0;
7021
7026 virtual float getCameraMaxZoomFactor() = 0;
7027
7037 virtual int setCameraFocusPositionInPreview(float positionX, float positionY) = 0;
7038
7046 virtual int setCameraTorchOn(bool isOn) = 0;
7047
7055 virtual int setCameraAutoFocusFaceModeEnabled(bool enabled) = 0;
7056
7068 virtual bool isCameraExposurePositionSupported() = 0;
7069
7085 virtual int setCameraExposurePosition(float positionXinView, float positionYinView) = 0;
7086
7099 virtual bool isCameraExposureSupported() = 0;
7100
7111 virtual int setCameraExposureFactor(float factor) = 0;
7112
7113 #if defined(__APPLE__)
7114
7121 virtual bool isCameraAutoExposureFaceModeSupported() = 0;
7122
7123
7131 virtual int setCameraAutoExposureFaceModeEnabled(bool enabled) = 0;
7132
7138 virtual int setCameraStabilizationMode(CAMERA_STABILIZATION_MODE mode) = 0;
7139 #endif
7140
7174 virtual int setDefaultAudioRouteToSpeakerphone(bool defaultToSpeaker) = 0;
7175
7202 virtual int setEnableSpeakerphone(bool speakerOn) = 0;
7203
7211 virtual bool isSpeakerphoneEnabled() = 0;
7212
7219 virtual int setRouteInCommunicationMode(int route) = 0;
7220
7221 #endif // __ANDROID__ || (__APPLE__ && (TARGET_OS_IOS || (defined(TARGET_OS_VISION) && TARGET_OS_VISION)))
7222
7223 #if defined(__APPLE__)
7224
7231 virtual bool isCameraCenterStageSupported() = 0;
7232
7241 virtual int enableCameraCenterStage(bool enabled) = 0;
7242 #endif
7243
7244 #if defined(_WIN32) || (defined(__APPLE__) && TARGET_OS_MAC && !TARGET_OS_IPHONE)
7245
7255 virtual IScreenCaptureSourceList* getScreenCaptureSources(const SIZE& thumbSize, const SIZE& iconSize, const bool includeScreen) = 0;
7256 #endif // _WIN32 || (__APPLE__ && !TARGET_OS_IPHONE && TARGET_OS_MAC)
7257 #if (defined(__APPLE__) && (TARGET_OS_IOS || (defined(TARGET_OS_VISION) && TARGET_OS_VISION)))
7258
7282 virtual int setAudioSessionOperationRestriction(AUDIO_SESSION_OPERATION_RESTRICTION restriction) = 0;
7283 #endif // __APPLE__ && (TARGET_OS_IOS || (defined(TARGET_OS_VISION) && TARGET_OS_VISION))
7284
7285 #if defined(_WIN32) || (defined(__APPLE__) && !TARGET_OS_IPHONE && TARGET_OS_MAC)
7286
7307 virtual int startScreenCaptureByDisplayId(int64_t displayId, const Rectangle& regionRect,
7308 const ScreenCaptureParameters& captureParams) = 0;
7309
7310 #endif // __APPLE__ && TARGET_OS_MAC && !TARGET_OS_IPHONE
7311
7312 #if defined(_WIN32)
7313
7336 virtual int startScreenCaptureByScreenRect(const Rectangle& screenRect,
7337 const Rectangle& regionRect,
7338 const ScreenCaptureParameters& captureParams) __deprecated = 0;
7339 #endif
7340
7341 #if defined(__ANDROID__)
7342
7348 virtual int getAudioDeviceInfo(DeviceInfo& deviceInfo) = 0;
7349 #endif // __ANDROID__
7350
7351 #if defined(_WIN32) || (defined(__APPLE__) && TARGET_OS_MAC && !TARGET_OS_IPHONE)
7352
7370 virtual int startScreenCaptureByWindowId(int64_t windowId, const Rectangle& regionRect,
7371 const ScreenCaptureParameters& captureParams) = 0;
7372
7388 virtual int setScreenCaptureContentHint(VIDEO_CONTENT_HINT contentHint) = 0;
7389
7406 virtual int updateScreenCaptureRegion(const Rectangle& regionRect) = 0;
7407
7421 virtual int updateScreenCaptureParameters(const ScreenCaptureParameters& captureParams) = 0;
7422 #endif // _WIN32 || (__APPLE__ && !TARGET_OS_IPHONE && TARGET_OS_MAC)
7423
7424 #if defined(__ANDROID__) || (defined(__APPLE__) && (TARGET_OS_IOS || (defined(TARGET_OS_VISION) && TARGET_OS_VISION)))
7425
7434 virtual int startScreenCapture(const ScreenCaptureParameters2& captureParams) = 0;
7435
7445 virtual int updateScreenCapture(const ScreenCaptureParameters2& captureParams) = 0;
7446
7458 virtual int queryScreenCaptureCapability() = 0;
7459
7471 virtual int queryCameraFocalLengthCapability(agora::rtc::FocalLengthInfo* focalLengthInfos, int& size) = 0;
7472
7473 #if defined(__ANDROID__)
7474
7490 virtual int setExternalMediaProjection(void* mediaProjection) = 0;
7491 #endif
7492 #endif
7493
7494 #if defined(_WIN32) || defined(__APPLE__) || defined(__ANDROID__)
7495
7511 virtual int setScreenCaptureScenario(SCREEN_SCENARIO_TYPE screenScenario) = 0;
7512
7520 virtual int stopScreenCapture() = 0;
7521 #endif // _WIN32 || (__APPLE__ && !TARGET_OS_IPHONE && TARGET_OS_MAC) || __ANDROID__
7522
7539 virtual int getCallId(agora::util::AString& callId) = 0;
7540
7555 virtual int rate(const char* callId, int rating, const char* description) = 0; // 0~10
7556
7570 virtual int complain(const char* callId, const char* description) = 0;
7571
7592 virtual int startRtmpStreamWithoutTranscoding(const char* url) = 0;
7593
7615 virtual int startRtmpStreamWithTranscoding(const char* url, const LiveTranscoding& transcoding) = 0;
7616
7626 virtual int updateRtmpTranscoding(const LiveTranscoding& transcoding) = 0;
7627
7628 virtual int startLocalVideoTranscoder(const LocalTranscoderConfiguration& config) = 0;
7629 virtual int updateLocalTranscoderConfiguration(const LocalTranscoderConfiguration& config) = 0;
7630
7649 virtual int stopRtmpStream(const char* url) = 0;
7650
7651 virtual int stopLocalVideoTranscoder() = 0;
7652
7662 virtual int startLocalAudioMixer(const LocalAudioMixerConfiguration& config) = 0;
7663
7673 virtual int updateLocalAudioMixerConfiguration(const LocalAudioMixerConfiguration& config) = 0;
7674
7684 virtual int stopLocalAudioMixer() = 0;
7685
7695 virtual int startCameraCapture(VIDEO_SOURCE_TYPE sourceType, const CameraCapturerConfiguration& config) = 0;
7696
7707 virtual int stopCameraCapture(VIDEO_SOURCE_TYPE sourceType) = 0;
7719 virtual int setCameraDeviceOrientation(VIDEO_SOURCE_TYPE type, VIDEO_ORIENTATION orientation) = 0;
7731 virtual int setScreenCaptureOrientation(VIDEO_SOURCE_TYPE type, VIDEO_ORIENTATION orientation) = 0;
7732
7742 virtual int startScreenCapture(VIDEO_SOURCE_TYPE sourceType, const ScreenCaptureConfiguration& config) = 0;
7743
7754 virtual int stopScreenCapture(VIDEO_SOURCE_TYPE sourceType) = 0;
7755
7760 virtual CONNECTION_STATE_TYPE getConnectionState() = 0;
7761
7762 // The following APIs are not implemented yet.
7763 virtual bool registerEventHandler(IRtcEngineEventHandler* eventHandler) = 0;
7764 virtual bool unregisterEventHandler(IRtcEngineEventHandler* eventHandler) = 0;
7765 virtual int setRemoteUserPriority(uid_t uid, PRIORITY_TYPE userPriority) = 0;
7766
7778 virtual int registerPacketObserver(IPacketObserver* observer) = 0;
7779
7780
7802 virtual int enableEncryption(bool enabled, const EncryptionConfig& config) = 0;
7803
7835 virtual int createDataStream(int* streamId, bool reliable, bool ordered) = 0;
7836
7846 virtual int createDataStream(int* streamId, const DataStreamConfig& config) = 0;
7847
7878 virtual int sendStreamMessage(int streamId, const char* data, size_t length) = 0;
7879
7901 virtual int addVideoWatermark(const RtcImage& watermark) __deprecated = 0;
7902
7928 virtual int addVideoWatermark(const char* watermarkUrl, const WatermarkOptions& options) = 0;
7929
7937 virtual int clearVideoWatermarks() = 0;
7938
7939 // The following APIs are either deprecated and going to deleted.
7940
7949 virtual int pauseAudio() __deprecated = 0;
7958 virtual int resumeAudio() __deprecated = 0;
7959
7977 virtual int enableWebSdkInteroperability(bool enabled) __deprecated = 0;
7978
7988 virtual int sendCustomReportMessage(const char* id, const char* category, const char* event, const char* label, int value) = 0;
7989
8011 virtual int registerMediaMetadataObserver(IMetadataObserver *observer, IMetadataObserver::METADATA_TYPE type) = 0;
8012
8021 virtual int unregisterMediaMetadataObserver(IMetadataObserver* observer, IMetadataObserver::METADATA_TYPE type) = 0;
8022
8031 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;
8032
8036 virtual int stopAudioFrameDump(const char* channel_id, uid_t uid, const char* location) = 0;
8037
8053 virtual int setAINSMode(bool enabled, AUDIO_AINS_MODE mode) = 0;
8054
8086 virtual int registerLocalUserAccount(const char* appId, const char* userAccount) = 0;
8087
8118 virtual int joinChannelWithUserAccount(const char* token, const char* channelId, const char* userAccount) = 0;
8119
8151 virtual int joinChannelWithUserAccount(const char* token, const char* channelId, const char* userAccount, const ChannelMediaOptions& options) = 0;
8152
8185 virtual int joinChannelWithUserAccountEx(const char* token, const char* channelId,
8186 const char* userAccount, const ChannelMediaOptions& options,
8187 IRtcEngineEventHandler* eventHandler) = 0;
8188
8206 virtual int getUserInfoByUserAccount(const char* userAccount, rtc::UserInfo* userInfo) = 0;
8207
8225 virtual int getUserInfoByUid(uid_t uid, rtc::UserInfo* userInfo) = 0;
8226
8261 virtual int startOrUpdateChannelMediaRelay(const ChannelMediaRelayConfiguration &configuration) = 0;
8262
8291 virtual int stopChannelMediaRelay() = 0;
8292
8302 virtual int pauseAllChannelMediaRelay() = 0;
8303
8313 virtual int resumeAllChannelMediaRelay() = 0;
8314
8327 virtual int setDirectCdnStreamingAudioConfiguration(AUDIO_PROFILE_TYPE profile) = 0;
8328
8343 virtual int setDirectCdnStreamingVideoConfiguration(const VideoEncoderConfiguration& config) = 0;
8344
8358 virtual int startDirectCdnStreaming(IDirectCdnStreamingEventHandler* eventHandler,
8359 const char* publishUrl, const DirectCdnStreamingMediaOptions& options) = 0;
8360
8370 virtual int stopDirectCdnStreaming() = 0;
8371
8383 virtual int updateDirectCdnStreamingMediaOptions(const DirectCdnStreamingMediaOptions& options) = 0;
8384
8395 virtual int startRhythmPlayer(const char* sound1, const char* sound2, const AgoraRhythmPlayerConfig& config) = 0;
8396
8403 virtual int stopRhythmPlayer() = 0;
8404
8413 virtual int configRhythmPlayer(const AgoraRhythmPlayerConfig& config) = 0;
8414
8444 virtual int takeSnapshot(uid_t uid, const char* filePath) = 0;
8445
8470 virtual int takeSnapshot(uid_t uid, const media::SnapshotConfig& config) = 0;
8471
8481 virtual int enableContentInspect(bool enabled, const media::ContentInspectConfig &config) = 0;
8482 /*
8483 * Adjust the custom audio publish volume by track id.
8484 * @param trackId custom audio track id.
8485 * @param volume The volume, range is [0,100]:
8486 * 0: mute, 100: The original volume
8487 * @return
8488 * - 0: Success.
8489 * - < 0: Failure.
8490 */
8491 virtual int adjustCustomAudioPublishVolume(track_id_t trackId, int volume) = 0;
8492
8493 /*
8494 * Adjust the custom audio playout volume by track id.
8495 * @param trackId custom audio track id.
8496 * @param volume The volume, range is [0,100]:
8497 * 0: mute, 100: The original volume
8498 * @return
8499 * - 0: Success.
8500 * - < 0: Failure.
8501 */
8502 virtual int adjustCustomAudioPlayoutVolume(track_id_t trackId, int volume) = 0;
8503
8533 virtual int setCloudProxy(CLOUD_PROXY_TYPE proxyType) = 0;
8542 virtual int setLocalAccessPoint(const LocalAccessPointConfiguration& config) = 0;
8543
8551 virtual int setAdvancedAudioOptions(AdvancedAudioOptions& options, int sourceType = 0) = 0;
8552
8563 virtual int setAVSyncSource(const char* channelId, uid_t uid) = 0;
8564
8571 virtual int enableVideoImageSource(bool enable, const ImageTrackOptions& options) = 0;
8572
8573 /*
8574 * Get monotonic time in ms which can be used by capture time,
8575 * typical scenario is as follows:
8576 *
8577 * ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
8578 * | // custom audio/video base capture time, e.g. the first audio/video capture time. |
8579 * | int64_t custom_capture_time_base; |
8580 * | |
8581 * | int64_t agora_monotonic_time = getCurrentMonotonicTimeInMs(); |
8582 * | |
8583 * | // offset is fixed once calculated in the begining. |
8584 * | const int64_t offset = agora_monotonic_time - custom_capture_time_base; |
8585 * | |
8586 * | // realtime_custom_audio/video_capture_time is the origin capture time that customer provided.|
8587 * | // actual_audio/video_capture_time is the actual capture time transfered to sdk. |
8588 * | int64_t actual_audio_capture_time = realtime_custom_audio_capture_time + offset; |
8589 * | int64_t actual_video_capture_time = realtime_custom_video_capture_time + offset; |
8590 * ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
8591 *
8592 * @return
8593 * - >= 0: Success.
8594 * - < 0: Failure.
8595 */
8596 virtual int64_t getCurrentMonotonicTimeInMs() = 0;
8597
8613 virtual int enableWirelessAccelerate(bool enabled) = 0;
8614
8629 virtual int getNetworkType() = 0;
8630
8639 virtual int setParameters(const char* parameters) = 0;
8640
8655 virtual int startMediaRenderingTracing() = 0;
8656
8670 virtual int enableInstantMediaRendering() = 0;
8671
8675 virtual uint64_t getNtpWallTimeInMs() = 0;
8676
8685 virtual bool isFeatureAvailableOnDevice(FeatureType type) = 0;
8686
8697 virtual int sendAudioMetadata(const char* metadata, size_t length) = 0;
8698
8708 virtual int queryHDRCapability(VIDEO_MODULE_TYPE videoModule, HDR_CAPABILITY& capability) = 0;
8709 };
8710
8711 // The following types are either deprecated or not implmented yet.
8712 enum QUALITY_REPORT_FORMAT_TYPE {
8715 QUALITY_REPORT_JSON = 0,
8718 QUALITY_REPORT_HTML = 1,
8719 };
8720
8722 enum MEDIA_DEVICE_STATE_TYPE {
8725 MEDIA_DEVICE_STATE_IDLE = 0,
8728 MEDIA_DEVICE_STATE_ACTIVE = 1,
8731 MEDIA_DEVICE_STATE_DISABLED = 2,
8732
8735 MEDIA_DEVICE_STATE_PLUGGED_IN = 3,
8736
8739 MEDIA_DEVICE_STATE_NOT_PRESENT = 4,
8742 MEDIA_DEVICE_STATE_UNPLUGGED = 8
8743 };
8744
8745 enum VIDEO_PROFILE_TYPE { // res fps
8747 VIDEO_PROFILE_LANDSCAPE_120P = 0, // 160x120 15
8749 VIDEO_PROFILE_LANDSCAPE_120P_3 = 2, // 120x120 15
8751 VIDEO_PROFILE_LANDSCAPE_180P = 10, // 320x180 15
8753 VIDEO_PROFILE_LANDSCAPE_180P_3 = 12, // 180x180 15
8755 VIDEO_PROFILE_LANDSCAPE_180P_4 = 13, // 240x180 15
8757 VIDEO_PROFILE_LANDSCAPE_240P = 20, // 320x240 15
8759 VIDEO_PROFILE_LANDSCAPE_240P_3 = 22, // 240x240 15
8761 VIDEO_PROFILE_LANDSCAPE_240P_4 = 23, // 424x240 15
8763 VIDEO_PROFILE_LANDSCAPE_360P = 30, // 640x360 15
8765 VIDEO_PROFILE_LANDSCAPE_360P_3 = 32, // 360x360 15
8767 VIDEO_PROFILE_LANDSCAPE_360P_4 = 33, // 640x360 30
8769 VIDEO_PROFILE_LANDSCAPE_360P_6 = 35, // 360x360 30
8771 VIDEO_PROFILE_LANDSCAPE_360P_7 = 36, // 480x360 15
8773 VIDEO_PROFILE_LANDSCAPE_360P_8 = 37, // 480x360 30
8775 VIDEO_PROFILE_LANDSCAPE_360P_9 = 38, // 640x360 15
8777 VIDEO_PROFILE_LANDSCAPE_360P_10 = 39, // 640x360 24
8779 VIDEO_PROFILE_LANDSCAPE_360P_11 = 100, // 640x360 24
8781 VIDEO_PROFILE_LANDSCAPE_480P = 40, // 640x480 15
8783 VIDEO_PROFILE_LANDSCAPE_480P_3 = 42, // 480x480 15
8785 VIDEO_PROFILE_LANDSCAPE_480P_4 = 43, // 640x480 30
8787 VIDEO_PROFILE_LANDSCAPE_480P_6 = 45, // 480x480 30
8789 VIDEO_PROFILE_LANDSCAPE_480P_8 = 47, // 848x480 15
8791 VIDEO_PROFILE_LANDSCAPE_480P_9 = 48, // 848x480 30
8793 VIDEO_PROFILE_LANDSCAPE_480P_10 = 49, // 640x480 10
8795 VIDEO_PROFILE_LANDSCAPE_720P = 50, // 1280x720 15
8797 VIDEO_PROFILE_LANDSCAPE_720P_3 = 52, // 1280x720 30
8799 VIDEO_PROFILE_LANDSCAPE_720P_5 = 54, // 960x720 15
8801 VIDEO_PROFILE_LANDSCAPE_720P_6 = 55, // 960x720 30
8803 VIDEO_PROFILE_LANDSCAPE_1080P = 60, // 1920x1080 15
8805 VIDEO_PROFILE_LANDSCAPE_1080P_3 = 62, // 1920x1080 30
8807 VIDEO_PROFILE_LANDSCAPE_1080P_5 = 64, // 1920x1080 60
8809 VIDEO_PROFILE_LANDSCAPE_1440P = 66, // 2560x1440 30
8811 VIDEO_PROFILE_LANDSCAPE_1440P_2 = 67, // 2560x1440 60
8813 VIDEO_PROFILE_LANDSCAPE_4K = 70, // 3840x2160 30
8815 VIDEO_PROFILE_LANDSCAPE_4K_3 = 72, // 3840x2160 60
8817 VIDEO_PROFILE_PORTRAIT_120P = 1000, // 120x160 15
8819 VIDEO_PROFILE_PORTRAIT_120P_3 = 1002, // 120x120 15
8821 VIDEO_PROFILE_PORTRAIT_180P = 1010, // 180x320 15
8823 VIDEO_PROFILE_PORTRAIT_180P_3 = 1012, // 180x180 15
8825 VIDEO_PROFILE_PORTRAIT_180P_4 = 1013, // 180x240 15
8827 VIDEO_PROFILE_PORTRAIT_240P = 1020, // 240x320 15
8829 VIDEO_PROFILE_PORTRAIT_240P_3 = 1022, // 240x240 15
8831 VIDEO_PROFILE_PORTRAIT_240P_4 = 1023, // 240x424 15
8833 VIDEO_PROFILE_PORTRAIT_360P = 1030, // 360x640 15
8835 VIDEO_PROFILE_PORTRAIT_360P_3 = 1032, // 360x360 15
8837 VIDEO_PROFILE_PORTRAIT_360P_4 = 1033, // 360x640 30
8839 VIDEO_PROFILE_PORTRAIT_360P_6 = 1035, // 360x360 30
8841 VIDEO_PROFILE_PORTRAIT_360P_7 = 1036, // 360x480 15
8843 VIDEO_PROFILE_PORTRAIT_360P_8 = 1037, // 360x480 30
8845 VIDEO_PROFILE_PORTRAIT_360P_9 = 1038, // 360x640 15
8847 VIDEO_PROFILE_PORTRAIT_360P_10 = 1039, // 360x640 24
8849 VIDEO_PROFILE_PORTRAIT_360P_11 = 1100, // 360x640 24
8851 VIDEO_PROFILE_PORTRAIT_480P = 1040, // 480x640 15
8853 VIDEO_PROFILE_PORTRAIT_480P_3 = 1042, // 480x480 15
8855 VIDEO_PROFILE_PORTRAIT_480P_4 = 1043, // 480x640 30
8857 VIDEO_PROFILE_PORTRAIT_480P_6 = 1045, // 480x480 30
8859 VIDEO_PROFILE_PORTRAIT_480P_8 = 1047, // 480x848 15
8861 VIDEO_PROFILE_PORTRAIT_480P_9 = 1048, // 480x848 30
8863 VIDEO_PROFILE_PORTRAIT_480P_10 = 1049, // 480x640 10
8865 VIDEO_PROFILE_PORTRAIT_720P = 1050, // 720x1280 15
8867 VIDEO_PROFILE_PORTRAIT_720P_3 = 1052, // 720x1280 30
8869 VIDEO_PROFILE_PORTRAIT_720P_5 = 1054, // 720x960 15
8871 VIDEO_PROFILE_PORTRAIT_720P_6 = 1055, // 720x960 30
8873 VIDEO_PROFILE_PORTRAIT_1080P = 1060, // 1080x1920 15
8875 VIDEO_PROFILE_PORTRAIT_1080P_3 = 1062, // 1080x1920 30
8877 VIDEO_PROFILE_PORTRAIT_1080P_5 = 1064, // 1080x1920 60
8879 VIDEO_PROFILE_PORTRAIT_1440P = 1066, // 1440x2560 30
8881 VIDEO_PROFILE_PORTRAIT_1440P_2 = 1067, // 1440x2560 60
8883 VIDEO_PROFILE_PORTRAIT_4K = 1070, // 2160x3840 30
8885 VIDEO_PROFILE_PORTRAIT_4K_3 = 1072, // 2160x3840 60
8887 VIDEO_PROFILE_DEFAULT = VIDEO_PROFILE_LANDSCAPE_360P,
8888 };
8889
8890 class AAudioDeviceManager : public agora::util::AutoPtr<IAudioDeviceManager> {
8891 public:
8892 AAudioDeviceManager(IRtcEngine* engine) {
8893 queryInterface(engine, AGORA_IID_AUDIO_DEVICE_MANAGER);
8894 }
8895 };
8896
8897 class AVideoDeviceManager : public agora::util::AutoPtr<IVideoDeviceManager> {
8898 public:
8899 AVideoDeviceManager(IRtcEngine* engine) {
8900 queryInterface(engine, AGORA_IID_VIDEO_DEVICE_MANAGER);
8901 }
8902 };
8903
8904 } // namespace rtc
8905 } // namespace agora
8906
8912 #define getAgoraRtcEngineVersion getAgoraSdkVersion
8913
8915
8918
8924 AGORA_API agora::rtc::IRtcEngine* AGORA_CALL createAgoraRtcEngine();
8925
8927
8928
8935 #define getAgoraRtcEngineErrorDescription getAgoraSdkErrorDescription
8936 #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:7117
agora::rtc::RtcEngineContext::appId
const char * appId
Definition: IAgoraRtcEngine.h:3316
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:2765
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:2507
agora::rtc::IRtcEngineEventHandler::onExtensionErrorWithContext
virtual void onExtensionErrorWithContext(const ExtensionContext &context, int error, const char *message)
Definition: IAgoraRtcEngine.h:2950
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:6702
agora::rtc::RemoteVideoStats::publishDuration
int publishDuration
Definition: IAgoraRtcEngine.h:563
agora::rtc::FilterEffectOptions
Definition: AgoraBase.h:5117
agora::rtc::IRtcEngine::stopDirectCdnStreaming
virtual int stopDirectCdnStreaming()=0
agora::rtc::LastmileProbeResult
Definition: AgoraBase.h:4391
agora::rtc::AudioEncodedFrameObserverConfig
Definition: AgoraBase.h:6073
agora::rtc::ScreenCaptureParameters
Definition: AgoraBase.h:5770
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::IVideoEffectObject::SAVE
@ SAVE
Definition: IAgoraRtcEngine.h:3153
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:3309
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:1747
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:3535
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:1643
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:2202
agora::rtc::IDirectCdnStreamingEventHandler::onDirectCdnStreamingStateChanged
virtual void onDirectCdnStreamingStateChanged(DIRECT_CDN_STREAMING_STATE state, DIRECT_CDN_STREAMING_REASON reason, const char *message)
Definition: IAgoraRtcEngine.h:3567
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:2246
agora::rtc::IRtcEngineEventHandler::onFirstRemoteVideoDecoded
virtual void onFirstRemoteVideoDecoded(uid_t uid, int width, int height, int elapsed) __deprecated
Definition: IAgoraRtcEngine.h:1836
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:1696
agora::rtc::IVideoEffectObject::getVideoEffectFloatParam
virtual float getVideoEffectFloatParam(const char *option, const char *key)=0
Gets a float parameter from the video effect.
agora::rtc::RtcEngineContext::threadPriority
Optional< THREAD_PRIORITY_TYPE > threadPriority
Definition: IAgoraRtcEngine.h:3371
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:2628
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:2351
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:1884
agora::media::IAudioSpectrumObserver
Definition: AgoraMediaBase.h:1598
agora::rtc::DirectCdnStreamingStats::videoWidth
int videoWidth
Definition: IAgoraRtcEngine.h:3530
agora::rtc::IMetadataObserver::Metadata::buffer
unsigned char * buffer
Definition: IAgoraRtcEngine.h:3448
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:3679
agora::rtc::IRtcEngineEventHandler::onVideoRenderingTracingResult
virtual void onVideoRenderingTracingResult(uid_t uid, MEDIA_TRACE_EVENT currentEvent, VideoRenderingTracingInfo tracingInfo)
Definition: IAgoraRtcEngine.h:2777
agora::rtc::ExtensionInfo::remoteUid
uid_t remoteUid
Definition: IAgoraRtcEngine.h:3690
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:3452
agora::rtc::IRtcEngineEventHandler::onLocalAudioStats
virtual void onLocalAudioStats(const LocalAudioStats &stats)
Definition: IAgoraRtcEngine.h:2061
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:2126
agora::rtc::LocalAccessPointConfiguration
Definition: AgoraBase.h:6975
agora::rtc::IRtcEngineEventHandler::onClientRoleChangeFailed
virtual void onClientRoleChangeFailed(CLIENT_ROLE_CHANGE_FAILED_REASON reason, CLIENT_ROLE_TYPE currentRole)
Definition: IAgoraRtcEngine.h:2466
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:3545
agora::rtc::IRtcEngineEventHandler::onLastmileQuality
virtual void onLastmileQuality(int quality)
Definition: IAgoraRtcEngine.h:1786
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:2652
agora::rtc::IVideoEffectObject::VIDEO_EFFECT_ACTION
VIDEO_EFFECT_ACTION
Actions that can be performed on video effect nodes.
Definition: IAgoraRtcEngine.h:3151
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:2754
agora::rtc::IRtcEngineEventHandler::onNetworkTypeChanged
virtual void onNetworkTypeChanged(NETWORK_TYPE type)
Definition: IAgoraRtcEngine.h:2704
agora::rtc::IRtcEngineEventHandler::onFirstRemoteAudioDecoded
virtual void onFirstRemoteAudioDecoded(uid_t uid, int elapsed) __deprecated
Definition: IAgoraRtcEngine.h:2339
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:2789
agora::rtc::IRtcEngine::getUserInfoByUid
virtual int getUserInfoByUid(uid_t uid, rtc::UserInfo *userInfo)=0
agora::rtc::IRtcEngine::pauseAllEffects
virtual int pauseAllEffects()=0
agora::rtc::IRtcEngine::disableAudioSpectrumMonitor
virtual int disableAudioSpectrumMonitor()=0
agora::rtc::IVideoEffectObject::VIDEO_EFFECT_NODE_ID::STYLE_MAKEUP
@ STYLE_MAKEUP
agora::rtc::IRtcEngineEventHandler::onFirstLocalAudioFramePublished
virtual void onFirstLocalAudioFramePublished(int elapsed)
Definition: IAgoraRtcEngine.h:2319
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:1540
agora::rtc::RemoteVideoStats::totalFrozenTime
int totalFrozenTime
Definition: IAgoraRtcEngine.h:545
agora::rtc::IMetadataObserver::METADATA_TYPE
METADATA_TYPE
Definition: IAgoraRtcEngine.h:3413
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:3437
agora::rtc::IRtcEngineEventHandler
Definition: IAgoraRtcEngine.h:1509
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:1977
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:1759
agora::rtc::DirectCdnStreamingMediaOptions::publishMicrophoneTrack
Optional< bool > publishMicrophoneTrack
Definition: IAgoraRtcEngine.h:3593
agora::rtc::EchoTestConfiguration
Definition: AgoraBase.h:6679
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:2228
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:3467
agora::rtc::LeaveChannelOptions::unloadAllEffect
bool unloadAllEffect
Definition: IAgoraRtcEngine.h:1488
agora::rtc::FaceShapeBeautyOptions
Face shape beauty options. This structure defines options for facial adjustments of different facial ...
Definition: AgoraBase.h:5078
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:3703
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:2391
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::IVideoEffectObject::VIDEO_EFFECT_NODE_ID
VIDEO_EFFECT_NODE_ID
Types of video effect nodes that can be applied.
Definition: IAgoraRtcEngine.h:3135
agora::rtc::IRtcEngine::adjustAudioMixingPublishVolume
virtual int adjustAudioMixingPublishVolume(int volume)=0
agora::rtc::DirectCdnStreamingMediaOptions::publishCameraTrack
Optional< bool > publishCameraTrack
Definition: IAgoraRtcEngine.h:3587
agora::rtc::IVideoDeviceCollection::getCount
virtual int getCount()=0
agora::rtc::IVideoEffectObject::VIDEO_EFFECT_NODE_ID::FILTER
@ FILTER
agora::rtc::IRtcEngine::getAudioMixingDuration
virtual int getAudioMixingDuration()=0
agora::rtc::IRtcEngine::destroyMediaRecorder
virtual int destroyMediaRecorder(agora_refptr< IMediaRecorder > mediaRecorder)=0
agora::rtc::RemoteAudioStats::frozenRateByCustomPlcCount
uint32_t frozenRateByCustomPlcCount
Definition: IAgoraRtcEngine.h: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:1707
agora::rtc::IMetadataObserver
Definition: IAgoraRtcEngine.h:3404
agora::rtc::VideoCompositingLayout::appData
const char * appData
Definition: IAgoraRtcEngine.h:640
agora::rtc::IVideoEffectObject::setVideoEffectBoolParam
virtual int setVideoEffectBoolParam(const char *option, const char *key, bool param)=0
Sets a boolean parameter for the video effect.
agora::rtc::RemoteAudioStats::totalFrozenTime
int totalFrozenTime
Definition: IAgoraRtcEngine.h:408
agora::rtc::IVideoEffectObject::setVideoEffectFloatParam
virtual int setVideoEffectFloatParam(const char *option, const char *key, float param)=0
Sets a float parameter for the video effect.
agora::rtc::IRtcEngineEventHandler::onAudioMixingPositionChanged
virtual void onAudioMixingPositionChanged(int64_t position)
Reports current AudioMixing progress.
Definition: IAgoraRtcEngine.h:1679
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:5240
agora::rtc::PublisherConfiguration::defaultLayout
int defaultLayout
Definition: IAgoraRtcEngine.h:738
agora::rtc::IRtcEngineEventHandler::onTranscodingUpdated
virtual void onTranscodingUpdated()
Definition: IAgoraRtcEngine.h:2522
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:2679
agora::rtc::IRtcEngineEventHandler::onRequestToken
virtual void onRequestToken()
Definition: IAgoraRtcEngine.h:2283
agora::rtc::IRtcEngineEventHandler::onError
virtual void onError(int err, const char *msg)
Definition: IAgoraRtcEngine.h:1566
agora::rtc::UplinkNetworkInfo
Definition: AgoraBase.h:6342
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:3683
agora::rtc::IRtcEngineEventHandler::onProxyConnected
virtual void onProxyConnected(const char *channel, uid_t uid, PROXY_TYPE proxyType, const char *localProxyIp, int elapsed)
Definition: IAgoraRtcEngine.h:1553
agora::rtc::IRtcEngineEventHandler::onExtensionEventWithContext
virtual void onExtensionEventWithContext(const ExtensionContext &context, const char *key, const char *value)
Definition: IAgoraRtcEngine.h:2912
agora::rtc::IRtcEngineEventHandler::onLocalPublishFallbackToAudioOnly
virtual void onLocalPublishFallbackToAudioOnly(bool isFallbackOrRecover)
Definition: IAgoraRtcEngine.h:2588
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:2023
agora::rtc::PublisherConfiguration::height
int height
Definition: IAgoraRtcEngine.h:724
agora::rtc::IRtcEngineEventHandler::onAudioMixingFinished
virtual void onAudioMixingFinished() __deprecated
Definition: IAgoraRtcEngine.h:1687
agora::rtc::AVideoDeviceManager
Definition: IAgoraRtcEngine.h:8897
agora::rtc::LocalVideoStats::codecType
VIDEO_CODEC_TYPE codecType
Definition: IAgoraRtcEngine.h:340
agora::rtc::ExtensionInfo::localUid
uid_t localUid
Definition: IAgoraRtcEngine.h:3708
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:1628
agora::rtc::IRtcEngineEventHandler::onStreamMessageError
virtual void onStreamMessageError(uid_t uid, int streamId, int code, int missed, int cached)
Definition: IAgoraRtcEngine.h:2266
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:3526
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:1960
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:2112
agora::rtc::VideoCompositingLayout::Region::y
double y
Definition: IAgoraRtcEngine.h:588
agora::rtc::IRtcEngine::stopAudioMixing
virtual int stopAudioMixing()=0
agora::rtc::IVideoEffectObject::RESET
@ RESET
Definition: IAgoraRtcEngine.h:3155
agora::rtc::PublisherConfiguration
Definition: IAgoraRtcEngine.h:716
agora::rtc::IRtcEngineEventHandler::onExtensionStartedWithContext
virtual void onExtensionStartedWithContext(const ExtensionContext &context)
Definition: IAgoraRtcEngine.h:2925
agora::rtc::IRtcEngine::setLogLevel
virtual int setLogLevel(commons::LOG_LEVEL level)=0
agora::rtc::RtcEngineContext::logConfig
commons::LogConfig logConfig
Definition: IAgoraRtcEngine.h:3366
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:6355
agora::rtc::IRtcEngineEventHandler::onUserEnableVideo
virtual void onUserEnableVideo(uid_t uid, bool enabled)
Definition: IAgoraRtcEngine.h:2013
agora::rtc::IRtcEngineEventHandler::onRtmpStreamingStateChanged
virtual void onRtmpStreamingStateChanged(const char *url, RTMP_STREAM_PUBLISH_STATE state, RTMP_STREAM_PUBLISH_REASON reason)
Definition: IAgoraRtcEngine.h:2495
agora::rtc::InjectStreamConfig::height
int height
Definition: IAgoraRtcEngine.h:665
agora::rtc::IRtcEngine::destroyVideoEffectObject
virtual int destroyVideoEffectObject(agora_refptr< IVideoEffectObject > videoEffectObject)=0
Destroys a video effect object.
agora::rtc::ChannelMediaOptions::publishFourthCameraTrack
Optional< bool > publishFourthCameraTrack
Definition: IAgoraRtcEngine.h:1084
agora::rtc::IRtcEngine::startRtmpStreamWithTranscoding
virtual int startRtmpStreamWithTranscoding(const char *url, const LiveTranscoding &transcoding)=0
agora::rtc::DirectCdnStreamingMediaOptions
Definition: IAgoraRtcEngine.h:3581
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:1586
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:3331
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:1494
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:2091
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:2296
agora::rtc::LocalVideoStats::targetFrameRate
int targetFrameRate
Definition: IAgoraRtcEngine.h:326
agora::rtc::DirectCdnStreamingStats::audioBitrate
int audioBitrate
Definition: IAgoraRtcEngine.h:3550
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:3326
agora::rtc::IRtcEngineEventHandler::onRemoteSubscribeFallbackToAudioOnly
virtual void onRemoteSubscribeFallbackToAudioOnly(uid_t uid, bool isFallbackOrRecover)
Definition: IAgoraRtcEngine.h:2609
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:2419
agora::rtc::IRtcEngineEventHandler::onAudioDeviceStateChanged
virtual void onAudioDeviceStateChanged(const char *deviceId, int deviceType, int deviceState)
Definition: IAgoraRtcEngine.h:1667
agora::rtc::IAudioEncodedFrameObserver
Definition: AgoraBase.h:6090
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:2050
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:3540
agora::rtc::IRtcEngine::stopLastmileProbeTest
virtual int stopLastmileProbeTest()=0
agora::rtc::ChannelMediaRelayConfiguration
Definition: AgoraBase.h:6299
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:2970
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:2078
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:3387
agora::rtc::VideoDenoiserOptions
Definition: AgoraBase.h:5192
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:3322
agora::rtc::IRtcEngine::stopLocalAudioMixer
virtual int stopLocalAudioMixer()=0
agora::rtc::IRtcEngineEventHandler::onActiveSpeaker
virtual void onActiveSpeaker(uid_t uid)
Definition: IAgoraRtcEngine.h:2411
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:1798
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:1524
agora::rtc::DirectCdnStreamingMediaOptions::publishMediaPlayerId
Optional< int > publishMediaPlayerId
Definition: IAgoraRtcEngine.h:3616
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:5266
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:3014
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::IVideoEffectObject::addOrUpdateVideoEffect
virtual int addOrUpdateVideoEffect(uint32_t nodeId, const char *templateName)=0
Adds or updates video effects with specified node ID and template.
agora::rtc::DirectCdnStreamingMediaOptions::publishCustomVideoTrack
Optional< bool > publishCustomVideoTrack
Definition: IAgoraRtcEngine.h:3605
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:2897
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
The specific facial area to be adjusted.
Definition: AgoraBase.h:4863
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:2233
agora::rtc::IRtcEngine::getEffectsVolume
virtual int getEffectsVolume()=0
agora::rtc::IRtcEngineEventHandler::onEncryptionError
virtual void onEncryptionError(ENCRYPTION_ERROR_TYPE errorType)
Definition: IAgoraRtcEngine.h:2715
agora::rtc::IRtcEngineEventHandler::onCameraReady
virtual void onCameraReady() __deprecated
Definition: IAgoraRtcEngine.h:2100
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:2690
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:3394
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::createVideoEffectObject
virtual agora_refptr< IVideoEffectObject > createVideoEffectObject(const char *bundlePath, agora::media::MEDIA_SOURCE_TYPE type=agora::media::PRIMARY_CAMERA_SOURCE)=0
Creates a video effect object and returns its pointer.
agora::rtc::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:3557
agora::rtc::IRtcEngineEventHandler::onLocalAudioStateChanged
virtual void onLocalAudioStateChanged(LOCAL_AUDIO_STREAM_STATE state, LOCAL_AUDIO_STREAM_REASON reason)
Definition: IAgoraRtcEngine.h:2370
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:2815
agora::rtc::IRtcEngineEventHandler::onVideoStopped
virtual void onVideoStopped() __deprecated
Definition: IAgoraRtcEngine.h:2180
agora::rtc::EncryptionConfig
Definition: AgoraBase.h:6509
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:2864
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:3425
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::IVideoEffectObject::performVideoEffectAction
virtual int performVideoEffectAction(uint32_t nodeId, VIDEO_EFFECT_ACTION actionId)=0
Performs an action on a specified video effect node.
agora::rtc::IRtcEngine::setupRemoteVideo
virtual int setupRemoteVideo(const VideoCanvas &canvas)=0
agora::rtc::IRtcEngineEventHandler::onLastmileProbeResult
virtual void onLastmileProbeResult(const LastmileProbeResult &result)
Definition: IAgoraRtcEngine.h:1598
agora::rtc::IVideoDeviceManager::startDeviceTest
virtual int startDeviceTest(view_t hwnd)=0
agora::rtc::IRtcEngine::addVideoWatermark
virtual int addVideoWatermark(const RtcImage &watermark) __deprecated=0
agora::rtc::IVideoEffectObject::getVideoEffectBoolParam
virtual bool getVideoEffectBoolParam(const char *option, const char *key)=0
Gets a boolean parameter from the video effect.
agora::rtc::IRtcEngineEventHandler::onConnectionLost
virtual void onConnectionLost()
Definition: IAgoraRtcEngine.h:2215
agora::rtc::IRtcEngineEventHandler::onUserMuteVideo
virtual void onUserMuteVideo(uid_t uid, bool muted)
Definition: IAgoraRtcEngine.h:1996
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::IVideoEffectObject::setVideoEffectIntParam
virtual int setVideoEffectIntParam(const char *option, const char *key, int param)=0
Sets an integer parameter for the video effect.
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:3621
agora::rtc::IRtcEngineEventHandler::onVideoSizeChanged
virtual void onVideoSizeChanged(VIDEO_SOURCE_TYPE sourceType, uid_t uid, int width, int height, int rotation)
Definition: IAgoraRtcEngine.h:1851
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:2741
agora::rtc::LocalVideoStats::encodedFrameWidth
int encodedFrameWidth
Definition: IAgoraRtcEngine.h:314
agora::rtc::RtcStats
Definition: AgoraBase.h:2318
agora::rtc::LowlightEnhanceOptions
Definition: AgoraBase.h:5144
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:2438
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:1915
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:7023
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:2478
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:2453
agora::rtc::RemoteVideoStats::width
int width
Definition: IAgoraRtcEngine.h:512
agora::rtc::RtcEngineContext::audioScenario
AUDIO_SCENARIO_TYPE audioScenario
Definition: IAgoraRtcEngine.h:3340
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::RefCountInterface
Definition: AgoraRefPtr.h:31
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:3305
agora::rtc::IRtcEngine::unloadAllEffects
virtual int unloadAllEffects()=0
agora::rtc::ChannelMediaOptions
Definition: IAgoraRtcEngine.h:1060
agora::rtc::IVideoEffectObject
Provides methods to manage and configure video effects, such as beauty, style makeup,...
Definition: IAgoraRtcEngine.h:3126
agora::rtc::IRtcEngine
Definition: IAgoraRtcEngine.h:3729
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:5993
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:2881
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::IRtcEngine::release
static AGORA_CPP_API void release(RtcEngineReleaseCallback callback=nullptr)
agora::rtc::RtcEngineContext::useExternalEglContext
bool useExternalEglContext
Definition: IAgoraRtcEngine.h:3380
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:3611
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:2537
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:2936
agora::rtc::IRtcEngine::setRemoteUserSpatialAudioParams
virtual int setRemoteUserSpatialAudioParams(uid_t uid, const agora::SpatialAudioParams &params)=0
agora::rtc::IVideoEffectObject::VIDEO_EFFECT_NODE_ID::BEAUTY
@ BEAUTY
agora::rtc::IVideoEffectObject::VIDEO_EFFECT_NODE_ID::STICKER
@ STICKER
agora::rtc::IRtcEngine::setHeadphoneEQParameters
virtual int setHeadphoneEQParameters(int lowGain, int highGain)=0
agora::rtc::IVideoEffectObject::removeVideoEffect
virtual int removeVideoEffect(uint32_t nodeId)=0
Removes a video effect with specified node ID.
agora::rtc::IRtcEngine::getFaceShapeAreaOptions
virtual int getFaceShapeAreaOptions(agora::rtc::FaceShapeAreaOptions::FACE_SHAPE_AREA shapeArea, FaceShapeAreaOptions &options, agora::media::MEDIA_SOURCE_TYPE type=agora::media::PRIMARY_CAMERA_SOURCE)=0
agora::rtc::IMetadataObserver::UNKNOWN_METADATA
@ UNKNOWN_METADATA
Definition: IAgoraRtcEngine.h:3416
agora::rtc::IRtcEngineEventHandler::onFirstLocalVideoFramePublished
virtual void onFirstLocalVideoFramePublished(VIDEO_SOURCE_TYPE source, int elapsed)
Definition: IAgoraRtcEngine.h:1815
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:2962
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:1735
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:2832
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:1901
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:3442
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
Face shape area options. This structure defines options for facial adjustments on different facial ar...
Definition: AgoraBase.h:4857
agora::SpatialAudioParams
Definition: AgoraBase.h:7080
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:2728
agora::rtc::IRtcEngineEventHandler::onUploadLogResult
virtual void onUploadLogResult(const char *requestId, bool success, UPLOAD_ERROR_REASON reason)
Definition: IAgoraRtcEngine.h:2800
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:1652
agora::rtc::IRtcEngineEventHandler::onUserJoined
virtual void onUserJoined(uid_t uid, int elapsed)
Definition: IAgoraRtcEngine.h:1941
agora::rtc::AAudioDeviceManager
Definition: IAgoraRtcEngine.h:8890
agora::rtc::IMetadataObserver::Metadata
Definition: IAgoraRtcEngine.h:3434
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:7046
agora::rtc::LocalVideoStats::rendererOutputFrameRate
int rendererOutputFrameRate
Definition: IAgoraRtcEngine.h:320
agora::rtc::IRtcEngineEventHandler::onDownlinkNetworkInfoUpdated
virtual void onDownlinkNetworkInfoUpdated(const DownlinkNetworkInfo &info)
Definition: IAgoraRtcEngine.h:1770
agora::rtc::DirectCdnStreamingMediaOptions::publishCustomAudioTrack
Optional< bool > publishCustomAudioTrack
Definition: IAgoraRtcEngine.h:3599
agora::rtc::VideoRenderingTracingInfo
Definition: AgoraBase.h:6874
agora::rtc::IRtcEngineEventHandler::onAudioMixingStateChanged
virtual void onAudioMixingStateChanged(AUDIO_MIXING_STATE_TYPE state, AUDIO_MIXING_REASON_TYPE reason)
Definition: IAgoraRtcEngine.h:2189
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:3349
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:2305
agora::rtc::CameraCapturerConfiguration
Definition: IAgoraRtcEngine.h:813
agora::rtc::IMetadataObserver::VIDEO_METADATA
@ VIDEO_METADATA
Definition: IAgoraRtcEngine.h:3419
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:3445
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:2038
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:2570
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:2848
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:2667
agora::rtc::IVideoEffectObject::getVideoEffectIntParam
virtual int getVideoEffectIntParam(const char *option, const char *key)=0
Gets an integer parameter from the video effect.
agora::rtc::SegmentationProperty
Definition: AgoraBase.h:5344
agora::rtc::VideoCompositingLayout::Region::x
double x
Definition: IAgoraRtcEngine.h:585