Agora RTC Objective-C API Reference  Refactor
AgoraObjects.h
Go to the documentation of this file.
1 //
2 // AgoraObjects.h
3 // AgoraRtcEngineKit
4 //
5 // Copyright (c) 2018 Agora. All rights reserved.
6 //
7 
8 #import <CoreMedia/CoreMedia.h>
9 #import <Foundation/Foundation.h>
10 #import "AgoraEnumerates.h"
12 
13 #if TARGET_OS_IPHONE
14 #import <UIKit/UIKit.h>
15 typedef UIView VIEW_CLASS;
16 typedef UIColor COLOR_CLASS;
17 typedef UIImage IMAGE_CLASS;
18 #elif TARGET_OS_MAC
19 #import <AppKit/AppKit.h>
20 typedef NSView VIEW_CLASS;
21 typedef NSColor COLOR_CLASS;
22 typedef NSImage IMAGE_CLASS;
23 #endif
24 
33 typedef int(^AgoraRtcMediaPlayerCustomSourceOnReadCallback)(id<AgoraRtcMediaPlayerProtocol> _Nonnull playerKit, unsigned char * _Nullable buffer, int bufferSize);
34 
48 typedef long long(^AgoraRtcMediaPlayerCustomSourceOnSeekCallback)(id<AgoraRtcMediaPlayerProtocol> _Nonnull playerKit, long long offset, int whence);
49 
50 __attribute__((visibility("default"))) @interface AgoraMediaSource : NSObject
54 @property(copy, nonatomic) NSString *_Nullable url;
58 @property(copy, nonatomic) NSString *_Nullable uri;
62 @property(assign, nonatomic) NSUInteger startPos;
68 @property(assign, nonatomic) BOOL autoPlay;
80 @property(assign, nonatomic) BOOL enableCache;
86 @property(assign, nonatomic) BOOL isAgoraSource;
92 @property(assign, nonatomic) BOOL isLiveSource;
98 
99 @end
100 
101 __attribute__((visibility("default"))) @interface AgoraMediaPlayerCacheStatistics : NSObject
102 
103 @property(assign, nonatomic) NSInteger fileSize;
104 @property(assign, nonatomic) NSInteger cacheSize;
105 @property(assign, nonatomic) NSInteger downloadSize;
106 
107 @end
108 
113 __attribute__((visibility("default"))) @interface AgoraMediaPlayerUpdatedInfo : NSObject
114 @property(copy, nonatomic) NSString *_Nullable playerId;
115 @property(copy, nonatomic) NSString *_Nullable deviceId;
116 @property(strong, nonatomic) AgoraMediaPlayerCacheStatistics *_Nullable cacheStatistics;
117 @end
118 
123 __attribute__((visibility("default"))) @interface AgoraMediaPlayerSrcInfo : NSObject
127 @property(assign, nonatomic) int bitrateInKbps;
131 @property(copy, nonatomic) NSString *_Nullable name;
132 
133 @end
134 
135 
139 __attribute__((visibility("default"))) @interface AgoraDirectCdnStreamingStats : NSObject
143 @property(assign, nonatomic) NSUInteger videoWidth;
147 @property(assign, nonatomic) NSUInteger videoHeight;
151 @property(assign, nonatomic) NSUInteger fps;
155 @property(assign, nonatomic) NSUInteger videoBitrate;
159 @property(assign, nonatomic) NSUInteger audioBitrate;
160 
161 @end
162 
166 __attribute__((visibility("default"))) @interface AgoraDirectCdnStreamingMediaOptions : NSObject
172 @property(assign, nonatomic) BOOL publishCameraTrack;
178 @property(assign, nonatomic) BOOL publishMicrophoneTrack;
184 @property(assign, nonatomic) BOOL publishCustomAudioTrack;
190 @property(assign, nonatomic) BOOL publishCustomVideoTrack;
196 @property(assign, nonatomic) BOOL publishMediaPlayerAudioTrack;
201 @property(assign, nonatomic) NSInteger publishMediaPlayerId;
202 
206 @property(assign, nonatomic) NSInteger customVideoTrackId;
207 
208 @end
209 
213 __attribute__((visibility("default"))) @interface AgoraEncodedVideoTrackOptions : NSObject
219 @property(assign, nonatomic) int ccMode;
230 @property(assign, nonatomic) int codecType;
234 @property(assign, nonatomic) int targetBitrate;
235 @end
236 
240 __attribute__((visibility("default"))) @interface AgoraRtcChannelMediaOptions : NSObject
246 @property(assign, nonatomic) BOOL publishCameraTrack;
252 @property(assign, nonatomic) BOOL publishSecondaryCameraTrack;
258 @property(assign, nonatomic) BOOL publishMicrophoneTrack;
259 #if TARGET_OS_IPHONE
260 
265 @property(assign, nonatomic) BOOL publishScreenCaptureVideo;
271 @property(assign, nonatomic) BOOL publishScreenCaptureAudio;
272 #elif TARGET_OS_MAC
273 
278 @property(assign, nonatomic) BOOL publishThirdCameraTrack;
284 @property(assign, nonatomic) BOOL publishFourthCameraTrack;
290 @property(assign, nonatomic) BOOL publishScreenTrack;
296 @property(assign, nonatomic) BOOL publishSecondaryScreenTrack;
302 @property(assign, nonatomic) BOOL publishThirdScreenTrack;
308 @property(assign, nonatomic) BOOL publishFourthScreenTrack;
309 #endif
310 
315 @property(assign, nonatomic) BOOL publishCustomAudioTrack;
319 @property(assign, nonatomic) NSInteger publishCustomAudioTrackId;
325 @property(assign, nonatomic) BOOL publishCustomVideoTrack;
331 @property(assign, nonatomic) BOOL publishEncodedVideoTrack;
337 @property(assign, nonatomic) BOOL publishMediaPlayerAudioTrack;
343 @property(assign, nonatomic) BOOL publishMediaPlayerVideoTrack;
349 @property(assign, nonatomic) BOOL publishTranscodedVideoTrack;
357 @property(assign, nonatomic) BOOL autoSubscribeAudio;
365 @property(assign, nonatomic) BOOL autoSubscribeVideo;
371 @property(assign, nonatomic) BOOL enableAudioRecordingOrPlayout;
376 @property(assign, nonatomic) NSInteger publishMediaPlayerId;
381 @property(assign, nonatomic) AgoraClientRole clientRoleType;
386 @property(assign, nonatomic) AgoraAudienceLatencyLevelType audienceLatencyLevel;
391 @property(assign, nonatomic) AgoraVideoStreamType defaultVideoStreamType;
396 @property(assign, nonatomic) AgoraChannelProfile channelProfile;
401 @property(assign, nonatomic) NSInteger audioDelayMs;
406 @property(assign, nonatomic) NSInteger mediaPlayerAudioDelayMs;
410 @property(copy, nonatomic) NSString * _Nullable token;
417 @property(assign, nonatomic) BOOL enableBuiltInMediaEncryption;
418 
424 @property(assign, nonatomic) BOOL publishRhythmPlayerTrack;
432 @property(assign, nonatomic) BOOL isInteractiveAudience;
433 
437 @property(assign, nonatomic) NSInteger customVideoTrackId;
438 
444 @property(assign, nonatomic) BOOL isAudioFilterable;
445 
446 @end
447 
450 __attribute__((visibility("default"))) @interface AgoraRtcVideoCanvas : NSObject
459 @property(strong, nonatomic) VIEW_CLASS *_Nullable view;
463 @property(assign, nonatomic) NSUInteger uid;
468 @property(assign, nonatomic) AgoraVideoRenderMode renderMode;
478 @property(assign, nonatomic) AgoraVideoMirrorMode mirrorMode;
483 @property(assign, nonatomic) AgoraVideoViewSetupMode setupMode;
488 @property(nonatomic, assign) AgoraVideoSourceType sourceType;
494 @property(nonatomic, assign) int mediaPlayerId;
500 @property(assign, nonatomic) CGRect cropArea;
501 
505 @property(assign, nonatomic) UInt32 backgroundColor;
506 
512 @property(assign, nonatomic) BOOL enableAlphaMask;
513 
514 @end
515 
519 __attribute__((visibility("default"))) @interface AgoraLastmileProbeConfig : NSObject
527 @property (assign, nonatomic) BOOL probeUplink;
533 @property (assign, nonatomic) BOOL probeDownlink;
540 @property (assign, nonatomic) NSUInteger expectedUplinkBitrate;
545 @property (assign, nonatomic) NSUInteger expectedDownlinkBitrate;
546 @end
547 
551 __attribute__((visibility("default"))) @interface AgoraLastmileProbeOneWayResult : NSObject
555 @property (assign, nonatomic) NSUInteger packetLossRate;
559 @property (assign, nonatomic) NSUInteger jitter;
563 @property (assign, nonatomic) NSUInteger availableBandwidth;
564 @end
565 
569 __attribute__((visibility("default"))) @interface AgoraLastmileProbeResult : NSObject
574 @property (assign, nonatomic) AgoraLastmileProbeResultState state;
578 @property (assign, nonatomic) NSUInteger rtt;
584 @property (strong, nonatomic) AgoraLastmileProbeOneWayResult *_Nonnull uplinkReport;
590 @property (strong, nonatomic) AgoraLastmileProbeOneWayResult *_Nonnull downlinkReport;
591 @end
592 
593 
597 __attribute__((visibility("default"))) @interface AgoraRtcLocalVideoStats : NSObject
602 @property(assign, nonatomic) NSUInteger sentBitrate;
607 @property(assign, nonatomic) NSUInteger sentFrameRate;
611 @property(assign, nonatomic) NSUInteger uid;
612 
615 @property(assign, nonatomic) NSInteger captureFrameRate;
618 @property(assign, nonatomic) NSInteger captureFrameWidth;
621 @property(assign, nonatomic) NSInteger captureFrameHeight;
625 @property(assign, nonatomic) NSInteger regulatedCaptureFrameRate;
629 @property(assign, nonatomic) NSInteger regulatedCaptureFrameWidth;
633 @property(assign, nonatomic) NSInteger regulatedCaptureFrameHeight;
634 
637 @property(assign, nonatomic) NSInteger encoderOutputFrameRate;
640 @property(assign, nonatomic) NSInteger rendererOutputFrameRate;
643 @property(assign, nonatomic) NSInteger targetFrameRate;
645 @property(assign, nonatomic) AgoraVideoQualityAdaptIndication qualityAdaptIndication;
650 @property(assign, nonatomic) NSInteger targetBitrate;
655 @property(assign, nonatomic) NSInteger encodedBitrate;
659 @property(assign, nonatomic) NSInteger encodedFrameWidth;
663 @property(assign, nonatomic) NSInteger encodedFrameHeight;
667 @property(assign, nonatomic) NSInteger encodedFrameCount;
673 @property(assign, nonatomic) AgoraVideoCodecType codecType;
679 @property(assign, nonatomic) AgoraVideoHwEncoderAccelerating hwEncoderAccelerating;
683 @property(assign, nonatomic) NSInteger txPacketLossRate;
687 @property(assign, nonatomic) AgoraCaptureBrightnessLevelType captureBrightnessLevel NS_SWIFT_NAME(captureBrightnessLevel);
691 @property(assign, nonatomic) BOOL dualStreamEnabled;
692 @end
693 
695 __attribute__((visibility("default"))) @interface AgoraRtcRemoteVideoStats : NSObject
699 @property(assign, nonatomic) NSUInteger uid;
702 @property(assign, nonatomic) NSUInteger delay __deprecated;
705 @property(assign, nonatomic) NSUInteger e2eDelay;
708 @property(assign, nonatomic) NSUInteger width;
711 @property(assign, nonatomic) NSUInteger height;
714 @property(assign, nonatomic) NSUInteger receivedBitrate;
717 @property(assign, nonatomic) NSUInteger receivedFrameRate;
720 @property(assign, nonatomic) AgoraVideoStreamType rxStreamType;
721 
724 @property(assign, nonatomic) NSInteger decoderOutputFrameRate;
727 @property(assign, nonatomic) NSInteger rendererOutputFrameRate;
730 @property(assign, nonatomic) NSInteger frameLossRate;
733 @property(assign, nonatomic) NSInteger packetLossRate;
739 @property(assign, nonatomic) NSInteger totalFrozenTime;
744 @property(assign, nonatomic) NSUInteger totalActiveTime;
748 @property(assign, nonatomic) NSInteger publishDuration;
752 @property(assign, nonatomic) NSInteger frozenRate;
757 @property(assign, nonatomic) NSInteger avSyncTimeMs;
765 @property(assign, nonatomic) NSInteger mosValue;
769 @property(assign, nonatomic) NSUInteger rxVideoBytes;
770 
771 @end
772 
776 __attribute__((visibility("default"))) @interface AgoraRtcLocalAudioStats : NSObject
780 @property(assign, nonatomic) NSUInteger numChannels;
784 @property(assign, nonatomic) NSUInteger sentSampleRate;
788 @property(assign, nonatomic) NSUInteger sentBitrate;
791 @property(assign, nonatomic) NSUInteger internalCodec;
794 @property(assign, nonatomic) NSUInteger txPacketLossRate;
798 @property(assign, nonatomic) NSUInteger audioDeviceDelay;
799 
800 @end
801 
805 __attribute__((visibility("default"))) @interface AgoraRtcRemoteAudioStats : NSObject
809 @property(assign, nonatomic) NSUInteger uid;
822 @property(assign, nonatomic) NSUInteger quality;
826 @property(assign, nonatomic) NSUInteger networkTransportDelay;
830 @property(assign, nonatomic) NSUInteger jitterBufferDelay;
834 @property(assign, nonatomic) NSUInteger audioLossRate;
838 @property(assign, nonatomic) NSUInteger numChannels;
842 @property(assign, nonatomic) NSUInteger receivedSampleRate;
846 @property(assign, nonatomic) NSUInteger receivedBitrate;
853 @property(assign, nonatomic) NSUInteger totalFrozenTime;
858 @property(assign, nonatomic) NSUInteger totalActiveTime;
862 @property(assign, nonatomic) NSInteger publishDuration;
866 @property(assign, nonatomic) NSUInteger frozenRate;
884 @property(assign, nonatomic) NSUInteger mosValue;
889 @property (assign, nonatomic) NSUInteger frozenRateByCustomPlcCount;
893 @property (assign, nonatomic) NSUInteger plcCount;
894 
898 @property(assign, nonatomic) AgoraExperienceQuality qoeQuality;
902 @property(assign, nonatomic) AgoraExperiencePoorReason qualityChangedReason;
907 @property(assign, nonatomic) NSUInteger rxAudioBytes;
908 @end
909 
912 __attribute__((visibility("default"))) @interface AgoraRtcAudioVolumeInfo : NSObject
915 @property(assign, nonatomic) NSUInteger uid;
918 @property(assign, nonatomic) NSUInteger volume;
919 
920 @property(assign, nonatomic) NSUInteger vad;
921 
924 @property (assign, nonatomic) double voicePitch;
925 
926 @end
927 
931 __attribute__((visibility("default"))) @interface AgoraChannelStats : NSObject
935 @property(assign, nonatomic) NSUInteger duration;
939 @property(assign, nonatomic) NSUInteger txBytes;
943 @property(assign, nonatomic) NSUInteger rxBytes;
947 @property(assign, nonatomic) NSUInteger txAudioKBitrate;
951 @property(assign, nonatomic) NSUInteger rxAudioKBitrate;
955 @property(assign, nonatomic) NSUInteger txVideoKBitrate;
959 @property(assign, nonatomic) NSUInteger rxVideoKBitrate;
963 @property(assign, nonatomic) NSUInteger txAudioBytes;
967 @property(assign, nonatomic) NSUInteger txVideoBytes;
972 @property(assign, nonatomic) NSUInteger rxAudioBytes;
976 @property(assign, nonatomic) NSUInteger rxVideoBytes;
980 @property(assign, nonatomic) NSUInteger lastmileDelay;
984 @property(assign, nonatomic) NSUInteger userCount;
987 @property(assign, nonatomic) double cpuAppUsage;
990 @property(assign, nonatomic) double cpuTotalUsage;
993 @property(assign, nonatomic) NSInteger gatewayRtt;
997 @property(assign, nonatomic) double memoryAppUsageRatio;
1001 @property(assign, nonatomic) double memoryTotalUsageRatio;
1005 @property(assign, nonatomic) NSInteger memoryAppUsageInKbytes;
1009 @property(assign, nonatomic) NSInteger connectTimeMs;
1010 
1014 @property(assign, nonatomic) NSUInteger txKBitrate;
1018 @property(assign, nonatomic) NSUInteger rxKBitrate;
1019 
1022 @property(assign, nonatomic) NSInteger firstAudioPacketDuration;
1025 @property(assign, nonatomic) NSInteger firstVideoPacketDuration;
1028 @property(assign, nonatomic) NSInteger firstVideoKeyFramePacketDuration;
1031 @property(assign, nonatomic) NSInteger packetsBeforeFirstKeyFramePacket;
1035 @property(assign, nonatomic) NSInteger txPacketLossRate;
1039 @property(assign, nonatomic) NSInteger rxPacketLossRate;
1040 
1041 @end
1044 __attribute__((visibility("default"))) @interface AgoraAdvancedVideoOptions : NSObject
1048 @property(assign, nonatomic) AgoraEncodingPreference encodingPreference;
1049 
1051 @property(assign, nonatomic) AgoraCompressionPreference compressionPreference;
1052 
1053 @end
1054 
1055 __attribute__((visibility("default"))) @interface AgoraVideoCodecCapLevels : NSObject
1056 
1057 @property(assign, nonatomic) AgoraVideoCodecCapabilityLevel hwDecodingLevel;
1058 @property(assign, nonatomic) AgoraVideoCodecCapabilityLevel swDecodingLevel;
1059 
1060 @end
1061 
1065 __attribute__((visibility("default"))) @interface AgoraVideoCodecCapInfo : NSObject
1066 
1068 @property(assign, nonatomic) AgoraVideoCodecType codecType;
1071 @property(assign, nonatomic) NSUInteger codecCapMask;
1072 
1074 @property(strong, nonatomic) AgoraVideoCodecCapLevels *_Nonnull codecCapLevels;
1075 
1076 @end
1079 __attribute__((visibility("default"))) @interface AgoraVideoEncoderConfiguration : NSObject
1108 @property(assign, nonatomic) CGSize dimensions;
1109 
1112 @property(assign, nonatomic) AgoraVideoCodecType codecType;
1113 
1116 @property(assign, nonatomic) AgoraVideoFrameRate frameRate;
1117 
1138 @property(assign, nonatomic) NSInteger bitrate;
1139 
1140 @property(assign, nonatomic) NSInteger minBitrate;
1141 
1144 @property(assign, nonatomic) AgoraVideoOutputOrientationMode orientationMode;
1145 
1148 @property(assign, nonatomic) AgoraVideoMirrorMode mirrorMode;
1149 
1157 @property (assign, nonatomic) AgoraDegradationPreference degradationPreference;
1158 
1160 @property (strong, nonatomic) AgoraAdvancedVideoOptions *_Nullable advancedVideoOptions;
1161 
1172 - (instancetype _Nonnull)initWithSize:(CGSize)size
1173  frameRate:(AgoraVideoFrameRate)frameRate
1174  bitrate:(NSInteger)bitrate
1175  orientationMode:(AgoraVideoOutputOrientationMode)orientationMode
1176  mirrorMode:(AgoraVideoMirrorMode)mirrorMode NS_SWIFT_NAME(init(size:frameRate:bitrate:orientationMode:mirrorMode:));
1177 
1189 - (instancetype _Nonnull)initWithWidth:(NSInteger)width
1190  height:(NSInteger)height
1191  frameRate:(AgoraVideoFrameRate)frameRate
1192  bitrate:(NSInteger)bitrate
1193  orientationMode:(AgoraVideoOutputOrientationMode)orientationMode
1194  mirrorMode:(AgoraVideoMirrorMode)mirrorMode NS_SWIFT_NAME(init(width:height:frameRate:bitrate:orientationMode:mirrorMode:));
1195 @end
1196 
1199 __attribute__((visibility("default"))) @interface AgoraLiveTranscodingUser : NSObject
1202 @property(assign, nonatomic) NSUInteger uid;
1205 @property(assign, nonatomic) CGRect rect;
1211 @property(assign, nonatomic) NSInteger zOrder;
1217 @property(assign, nonatomic) double alpha;
1232 @property(assign, nonatomic) NSInteger audioChannel;
1233 @end
1234 
1237 __attribute__((visibility("default"))) @interface AgoraLiveStreamAdvancedFeature : NSObject
1238 
1244 @property(copy, nonatomic) NSString* _Nullable featureName;
1245 
1251 @property(assign, nonatomic) BOOL opened;
1252 @end
1253 
1256 __attribute__((visibility("default"))) @interface AgoraImage : NSObject
1259 @property(strong, nonatomic) NSURL *_Nonnull url;
1262 @property(assign, nonatomic) CGRect rect;
1266 @property (assign, nonatomic) NSInteger zOrder;
1274 @property(assign, nonatomic) double alpha;
1275 @end
1276 
1279 __attribute__((visibility("default"))) @interface WatermarkOptions : NSObject
1285 @property(assign, nonatomic) BOOL visibleInPreview;
1293 @property(assign, nonatomic) CGRect positionInLandscapeMode;
1301 @property(assign, nonatomic) CGRect positionInPortraitMode;
1302 @end
1303 
1306 __attribute__((visibility("default"))) @interface AgoraLiveTranscoding : NSObject
1320 @property(assign, nonatomic) CGSize size;
1327 @property(assign, nonatomic) NSInteger videoBitrate;
1334 @property(assign, nonatomic) NSInteger videoFramerate;
1340 @property(assign, nonatomic) BOOL lowLatency;
1342 @property(assign, nonatomic) NSInteger videoGop;
1349 @property(assign, nonatomic) AgoraVideoCodecProfileType videoCodecProfile;
1350 
1355 @property(assign, nonatomic) AgoraVideoCodecTypeForStream videoCodecType;
1356 
1359 @property(copy, nonatomic) NSArray<AgoraLiveTranscodingUser*>* _Nullable transcodingUsers;
1360 
1363 @property(copy, nonatomic) NSString* _Nullable transcodingExtraInfo;
1364 
1368 @property(copy, nonatomic) NSArray<AgoraImage*>* _Nullable watermarkArray;
1369 
1373 @property(copy, nonatomic) NSArray<AgoraImage*>* _Nullable backgroundImageArray;
1374 
1384 @property(strong, nonatomic) COLOR_CLASS* _Nullable backgroundColor;
1385 
1388 @property(assign, nonatomic) AgoraAudioSampleRateType audioSampleRate;
1391 @property(assign, nonatomic) NSInteger audioBitrate;
1402 @property(assign, nonatomic) NSInteger audioChannels;
1408 @property(assign, nonatomic) AgoraAudioCodecProfileType audioCodecProfile;
1409 
1414 + (AgoraLiveTranscoding* _Nonnull)defaultTranscoding NS_SWIFT_NAME(default());
1415 
1423 - (int)addUser:(AgoraLiveTranscodingUser* _Nonnull)user NS_SWIFT_NAME(add(_:));
1424 
1432 - (int)removeUser:(NSUInteger)uid NS_SWIFT_NAME(removeUser(_:));
1433 
1443 - (void)setAdvancedFeatures:(NSString* _Nonnull)featureName opened:(BOOL)opened NS_SWIFT_NAME(setAdvancedFeatures(_:opened:));
1444 
1448 - (NSArray<AgoraLiveStreamAdvancedFeature*>* _Nullable)getAdvancedFeatures NS_SWIFT_NAME(getAdvancedFeatures());
1449 
1450 @end
1451 
1454 __attribute__((visibility("default"))) @interface AgoraLiveInjectStreamConfig : NSObject
1458 @property(assign, nonatomic) CGSize size;
1461 @property(assign, nonatomic) NSInteger videoGop;
1464 @property(assign, nonatomic) NSInteger videoFramerate;
1467 @property(assign, nonatomic) NSInteger videoBitrate;
1468 
1471 @property(assign, nonatomic) AgoraAudioSampleRateType audioSampleRate;
1474 @property(assign, nonatomic) NSInteger audioBitrate;
1477 @property(assign, nonatomic) NSInteger audioChannels;
1478 
1483 + (AgoraLiveInjectStreamConfig *_Nonnull)defaultConfig NS_SWIFT_NAME(defaultConfig());
1484 @end
1485 
1486  __deprecated
1487 
1490  __attribute__((visibility("default"))) @interface AgoraRtcVideoCompositingRegion
1491  : NSObject
1494  @property(assign, nonatomic) NSUInteger uid;
1497 @property(assign, nonatomic) CGFloat x;
1500 @property(assign, nonatomic) CGFloat y;
1503 @property(assign, nonatomic) CGFloat width;
1506 @property(assign, nonatomic) CGFloat height;
1509 @property(assign, nonatomic) NSInteger zOrder;
1512 @property(assign, nonatomic) CGFloat alpha;
1515 @property(assign, nonatomic) AgoraVideoRenderMode renderMode;
1516 @end
1517 
1518  __deprecated
1521  __attribute__((visibility("default"))) @interface AgoraRtcVideoCompositingLayout
1522  : NSObject
1525  @property(assign, nonatomic) NSInteger canvasWidth;
1528 @property(assign, nonatomic) NSInteger canvasHeight;
1531 @property(copy, nonatomic) NSString *_Nullable backgroundColor;
1534 @property(copy, nonatomic) NSArray<AgoraRtcVideoCompositingRegion *> *_Nullable regions;
1537 @property(copy, nonatomic) NSString *_Nullable appData;
1538 @end
1539 
1545  __deprecated __attribute__((visibility("default"))) @interface AgoraPublisherConfiguration
1546  : NSObject
1552  @property(assign, nonatomic) BOOL owner;
1553 
1556 @property(assign, nonatomic) NSInteger width;
1559 @property(assign, nonatomic) NSInteger height;
1562 @property(assign, nonatomic) NSInteger framerate;
1565 @property(assign, nonatomic) NSInteger bitrate;
1568 @property(assign, nonatomic) NSInteger audiosamplerate;
1571 @property(assign, nonatomic) NSInteger audiobitrate;
1574 @property(assign, nonatomic) NSInteger audiochannels;
1575 
1582 @property(assign, nonatomic) NSInteger defaultLayout;
1585 @property(assign, nonatomic) AgoraRtmpStreamLifeCycle lifeCycle;
1586 
1589 @property(assign, nonatomic) NSInteger injectStreamWidth;
1590 
1593 @property(assign, nonatomic) NSInteger injectStreamHeight;
1594 
1597 @property(copy, nonatomic) NSString *_Nullable injectStreamUrl;
1598 
1601 @property(copy, nonatomic) NSString *_Nullable publishUrl;
1602 
1606 @property(copy, nonatomic) NSString *_Nullable rawStreamUrl;
1607 
1610 @property(copy, nonatomic) NSString *_Nullable extraInfo;
1611 
1614 - (BOOL)validate NS_SWIFT_NAME(validate());
1615 
1616 - (NSString * _Nullable)toJsonString NS_SWIFT_NAME(toJsonString());
1617 @end
1618 
1619 #if (!(TARGET_OS_IPHONE) && (TARGET_OS_MAC))
1620 
1623 __attribute__((visibility("default"))) @interface AgoraRtcDeviceInfo : NSObject
1624 @property (assign, nonatomic) int __deprecated index;
1625 
1628 @property(assign, nonatomic) AgoraMediaDeviceType type;
1629 
1632 @property(copy, nonatomic) NSString *_Nullable deviceId;
1633 
1636 @property(copy, nonatomic) NSString *_Nullable deviceName;
1637 @end
1638 #endif
1639 
1642 __attribute__((visibility("default"))) @interface AgoraVideoFrame : NSObject
1655 @property(assign, nonatomic) NSInteger format;
1656 
1660 @property(assign, nonatomic) CMTime time; // Time for this frame.
1661 
1665 @property(assign, nonatomic) int stride DEPRECATED_MSG_ATTRIBUTE("use strideInPixels instead");
1666 
1670 @property(assign, nonatomic) int strideInPixels; // Number of pixels between two consecutive rows.
1671  // Note: in pixel, not byte. Not used for iOS
1672  // textures.
1673 
1676 @property(assign, nonatomic) int height; // Number of rows of pixels. Not used for iOS textures.
1677 
1680 @property(assign, nonatomic) CVPixelBufferRef _Nullable textureBuf;
1681 
1684 @property(strong, nonatomic) IMAGE_CLASS * _Nullable image;
1685 
1688 @property(strong, nonatomic) NSData *_Nullable dataBuf; // Raw data buffer. Not used for iOS textures.
1689 
1692 @property(assign, nonatomic) int cropLeft; // Number of pixels to crop on the left boundary.
1695 @property(assign, nonatomic) int cropTop; // Number of pixels to crop on the top boundary.
1698 @property(assign, nonatomic) int cropRight; // Number of pixels to crop on the right boundary.
1701 @property(assign, nonatomic) int cropBottom; // Number of pixels to crop on the bottom boundary.
1705 @property(assign, nonatomic) int rotation; // 0, 90, 180, 270. See document for rotation calculation.
1706 /* Note
1707  * 1. strideInPixels
1708  * Stride is in pixels, not bytes
1709  * 2. About the frame width and height
1710  * No field is defined for the width. However, it can be deduced by:
1711  * croppedWidth = (strideInPixels - cropLeft - cropRight)
1712  * And
1713  * croppedHeight = (height - cropTop - cropBottom)
1714  * 3. About crop
1715  * _________________________________________________________________.....
1716  * | ^ | ^
1717  * | | | |
1718  * | cropTop | |
1719  * | | | |
1720  * | v | |
1721  * | ________________________________ | |
1722  * | | | | |
1723  * | | | | |
1724  * |<-- cropLeft -->| valid region |<- cropRight ->|
1725  * | | | | height
1726  * | | | |
1727  * | |_____________________________ | | |
1728  * | ^ | |
1729  * | | | |
1730  * | cropBottom | |
1731  * | | | |
1732  * | v | v
1733  * _________________________________________________________________......
1734  * | |
1735  * |<---------------- strideInPixels ----------------------------->|
1736  *
1737  * If your buffer contains garbage data, you can crop them. For example, the frame size is
1738  * 360 x 640, often the buffer stride is 368, that is, there extra 8 pixels on the
1739  * right are for padding, and should be removed. In this case, you can set:
1740  * strideInPixels = 368;
1741  * height = 640;
1742  * cropRight = 8;
1743  * // cropLeft, cropTop, cropBottom are set to a default of 0
1744  */
1745 @end
1746 
1747 __attribute__((visibility("default"))) @interface AgoraLogConfig: NSObject
1759 @property (copy, nonatomic) NSString * _Nullable filePath;
1767 @property (assign, nonatomic) NSInteger fileSizeInKB;
1773 @property (assign, nonatomic) AgoraLogLevel level;
1774 @end
1775 
1779 __attribute__((visibility("default"))) @interface AgoraRtcEngineConfig: NSObject
1780 
1785  @property (copy, nonatomic) NSString * _Nullable appId;
1786 
1790  @property (assign, nonatomic) AgoraChannelProfile channelProfile;
1791 
1795  @property (copy, nonatomic) NSString * _Nullable license;
1796 
1804  @property (assign, nonatomic) AgoraAudioScenario audioScenario;
1814  @property (assign, nonatomic) AgoraAreaCodeType areaCode;
1815  @property (strong, nonatomic) AgoraLogConfig * _Nullable logConfig;
1821  @property (assign, nonatomic) AgoraThreadPriorityType threadPriority;
1822  @property (weak, nonatomic) id<AgoraMediaFilterEventDelegate> _Nullable eventDelegate;
1828  @property (assign, nonatomic) BOOL domainLimit;
1829 
1835  @property (assign, nonatomic) BOOL autoRegisterAgoraExtensions;
1836 @end
1837 
1841 __attribute__((visibility("default"))) @interface AgoraAudioFrame : NSObject
1844 @property(assign, nonatomic) NSInteger samplesPerChannel;
1848 @property(assign, nonatomic) NSInteger bytesPerSample;
1855 @property(assign, nonatomic) NSInteger channels;
1858 @property(assign, nonatomic) NSInteger samplesPerSec;
1863 @property(assign, nonatomic) void* _Nullable buffer;
1871 @property(assign, nonatomic) int64_t renderTimeMs;
1874 @property(assign, nonatomic) int64_t presentationMs;
1877 @property(assign, nonatomic) NSInteger avSyncType;
1878 @end
1879 
1908 __attribute__((visibility("default"))) @interface AgoraAudioParams : NSObject
1909 
1918 @property (assign, nonatomic) NSInteger sampleRate;
1919 
1920 /* The number of audio channels, which can be set as either of the following values:
1921 
1922  - `1`: Mono (Default)
1923  - `2`: Stereo
1924  */
1925 @property (assign, nonatomic) NSInteger channel;
1926 
1927 /* The use mode of the audio data. See AgoraAudioRawFrameOperationMode.
1928  */
1929 @property (assign, nonatomic) AgoraAudioRawFrameOperationMode mode;
1930 
1934 @property (assign, nonatomic) NSInteger samplesPerCall;
1935 
1936 @end
1937 
1941 __attribute__((visibility("default"))) @interface AgoraEncodedAudioFrameInfo: NSObject
1942  @property (assign, nonatomic) NSInteger samplesPerChannel;
1943  @property (assign, nonatomic) NSInteger channels;
1944  @property (assign, nonatomic) NSInteger samplesPerSec;
1945  @property (assign, nonatomic) AgoraAudioCodecType codecType;
1946 @end
1947 
1951 __attribute__((visibility("default"))) @interface AgoraUplinkNetworkInfo : NSObject
1955 @property(nonatomic, assign) int videoEncoderTargetBitrateBps;
1956 @end
1957 
1961 __attribute__((visibility("default"))) @interface AgoraDownlinkNetworkInfo : NSObject
1965 @property(nonatomic, assign) int lastmileBufferDelayTimeMs;
1969 @property(nonatomic, assign) int bandwidthEstimationBps;
1970 @end
1971 
1975 __attribute__((visibility("default"))) @interface AgoraLeaveChannelOptions : NSObject
1981 @property(nonatomic, assign) BOOL stopAudioMixing;
1982 
1988 @property(nonatomic, assign) BOOL stopAllEffect;
1989 
1995 @property(nonatomic, assign) BOOL stopMicrophoneRecording;
1996 
1997 @end
1998 
1999 __attribute__((visibility("default"))) @interface AgoraOutputVideoFrame : NSObject
2000 
2013 @property (nonatomic, assign) NSInteger type;
2017 @property (nonatomic, assign) int width;
2021 @property (nonatomic, assign) int height;
2025 @property (nonatomic, assign) int yStride;
2029 @property (nonatomic, assign) int uStride;
2033 @property (nonatomic, assign) int vStride;
2037 @property (nonatomic, assign) uint8_t* _Nullable yBuffer;
2041 @property (nonatomic, assign) uint8_t* _Nullable uBuffer;
2045 @property (nonatomic, assign) uint8_t* _Nullable vBuffer;
2049 @property (nonatomic, assign) int rotation;
2056 @property (nonatomic, assign) int64_t renderTimeMs;
2060 @property (nonatomic, assign) int avSyncType;
2061 
2064 @property(assign, nonatomic) CVPixelBufferRef _Nullable pixelBuffer;
2069 @property (nonatomic, assign) uint8_t* _Nullable alphaBuffer;
2070 
2071 @end
2072 
2075 __attribute__((visibility("default"))) @interface AgoraEncryptionConfig: NSObject
2076 
2079  @property (assign, nonatomic) AgoraEncryptionMode encryptionMode;
2080 
2087  @property (copy, nonatomic) NSString * _Nullable encryptionKey;
2088  @property (strong, nonatomic) NSData * _Nullable encryptionKdfSalt;
2089  @end
2090 
2093 __attribute__((visibility("default"))) @interface AgoraUserInfo: NSObject
2094 
2097 @property(assign, nonatomic) NSUInteger uid;
2098 
2101  @property (copy, nonatomic) NSString * _Nullable userAccount;
2102  @end
2103 
2106 __attribute__((visibility("default"))) @interface AgoraClientRoleOptions: NSObject
2107 
2110 @property (assign, nonatomic) AgoraAudienceLatencyLevelType audienceLatencyLevel;
2111 
2112 @end
2113 
2116 __attribute__((visibility("default"))) @interface AgoraCameraCapturerConfiguration: NSObject
2122 #if TARGET_OS_IOS
2123 @property (assign, nonatomic) AgoraCameraDirection cameraDirection;
2124 #elif TARGET_OS_MAC
2125 
2128 @property (copy, nonatomic) NSString * _Nullable deviceId;
2129 #endif
2130 
2134 @property(assign, nonatomic) CGSize dimensions;
2135 
2138 @property(assign, nonatomic) int frameRate;
2139 
2144 @property(assign, nonatomic) BOOL followEncodeDimensionRatio;
2145 
2146 @end
2147 
2150 __attribute__((visibility("default"))) @interface AgoraDataStreamConfig: NSObject
2151 
2152 @property (assign, nonatomic) BOOL ordered;
2153 
2154 @property (assign, nonatomic) BOOL syncWithAudio;
2155 @end
2156 
2157 
2160 __attribute__((visibility("default"))) @interface AgoraChannelMediaRelayInfo: NSObject
2163 @property (copy, nonatomic) NSString * _Nullable token;
2166 @property (copy, nonatomic) NSString * _Nullable channelName;
2169 @property (assign, nonatomic) NSUInteger uid;
2174 - (instancetype _Nonnull)initWithToken:(NSString *_Nullable)token NS_SWIFT_NAME(init(token:));
2175 @end
2176 
2179 __attribute__((visibility("default"))) @interface AgoraChannelMediaRelayConfiguration: NSObject
2189 @property (strong, nonatomic, readonly) NSDictionary<NSString *, AgoraChannelMediaRelayInfo *> *_Nullable destinationInfos;
2199 @property (strong, nonatomic) AgoraChannelMediaRelayInfo *_Nonnull sourceInfo;
2218 - (BOOL)setDestinationInfo:(AgoraChannelMediaRelayInfo *_Nonnull)destinationInfo forChannelName:(NSString *_Nonnull)channelName NS_SWIFT_NAME(setDestinationInfo(_:forChannelName:));
2226 - (BOOL)removeDestinationInfoForChannelName:(NSString *_Nonnull)channelName NS_SWIFT_NAME(removeDestinationInfo(forChannelName:));
2227 @end
2228 
2229 
2231 __attribute__((visibility("default"))) @interface AgoraBeautyOptions : NSObject
2232 
2241 @property(nonatomic, assign) AgoraLighteningContrastLevel lighteningContrastLevel;
2242 
2247 @property(nonatomic, assign) float lighteningLevel;
2248 
2253 @property(nonatomic, assign) float smoothnessLevel;
2254 
2259 @property(nonatomic, assign) float rednessLevel;
2260 
2265 @property(nonatomic, assign) float sharpnessLevel;
2266 
2267 @end
2268 
2274 __attribute__((visibility("default"))) @interface AgoraVideoDenoiserOptions : NSObject
2275 
2278 @property(nonatomic, assign) AgoraVideoDenoiserMode mode;
2279 
2282 @property(nonatomic, assign) AgoraVideoDenoiserLevel level;
2283 
2284 @end
2285 
2291 __attribute__((visibility("default"))) @interface AgoraLowlightEnhanceOptions : NSObject
2292 
2294 @property(nonatomic, assign) AgoraLowlightEnhanceMode mode;
2295 
2297 @property(nonatomic, assign) AgoraLowlightEnhanceLevel level;
2298 
2299 @end
2300 
2306 __attribute__((visibility("default"))) @interface AgoraColorEnhanceOptions : NSObject
2307 
2309 @property(nonatomic, assign) float strengthLevel;
2310 
2312 @property(nonatomic, assign) float skinProtectLevel;
2313 
2314 @end
2315 
2316 
2319 __attribute__((visibility("default"))) @interface AgoraVirtualBackgroundSource : NSObject
2320 
2323 @property(nonatomic, assign) AgoraVirtualBackgroundSourceType backgroundSourceType NS_SWIFT_NAME(backgroundSourceType);
2324 
2333 @property(nonatomic, assign) NSUInteger color NS_SWIFT_NAME(color);
2334 
2341 @property(nonatomic, copy) NSString* _Nullable source NS_SWIFT_NAME(source);
2342 
2344 @property(nonatomic, assign) AgoraBlurDegree blurDegree;
2345 
2346 @end
2347 
2350 __attribute__((visibility("default"))) @interface AgoraSegmentationProperty: NSObject
2351 
2352 @property(nonatomic, assign) SegModelType modelType;
2353 
2354 @property(nonatomic, assign) float greenCapacity;
2355 
2356 @end
2357 
2358 
2361 __attribute__((visibility("default"))) @interface AgoraTranscodingVideoStream: NSObject
2365 @property (assign, nonatomic) AgoraVideoSourceType sourceType;
2369 @property (assign, nonatomic) NSUInteger remoteUserUid;
2373 @property (copy, nonatomic) NSString * _Nullable imageUrl;
2377 @property(assign, nonatomic) NSUInteger mediaPlayerId;
2381 @property (assign, nonatomic) CGRect rect;
2387 @property (assign, nonatomic) NSInteger zOrder;
2391 @property(assign, nonatomic) double alpha;
2395 @property(assign, nonatomic) BOOL mirror;
2396 
2397 @end
2398 
2401 __attribute__((visibility("default"))) @interface AgoraLocalTranscoderConfiguration: NSObject
2405 @property(copy, nonatomic) NSArray<AgoraTranscodingVideoStream *> *_Nullable videoInputStreams;
2409 @property (strong, nonatomic) AgoraVideoEncoderConfiguration *_Nonnull videoOutputConfiguration;
2410 
2416 @property(assign, nonatomic) BOOL syncWithPrimaryCamera;
2417 
2418 @end
2419 
2422 __attribute__((visibility("default"))) @interface AgoraScreenCaptureParameters: NSObject
2427 @property (assign, nonatomic) CGSize dimensions;
2432 @property (assign, nonatomic) NSInteger frameRate;
2437 @property (assign, nonatomic) NSInteger bitrate;
2438 
2444 @property(assign, nonatomic) BOOL captureMouseCursor;
2445 
2454 @property(assign, nonatomic) BOOL windowFocus;
2455 
2464 @property(copy, nonatomic) NSArray* _Nullable excludeWindowList;
2465 
2474 @property(assign, nonatomic) BOOL highLighted;
2480 @property(strong, nonatomic) COLOR_CLASS* _Nullable highLightColor;
2484 @property(assign, nonatomic) NSUInteger highLightWidth;
2485 
2486 @end
2487 
2488 #if (!(TARGET_OS_IPHONE) && (TARGET_OS_MAC))
2489 
2491 __attribute__((visibility("default"))) @interface AgoraScreenCaptureConfiguration: NSObject
2497 @property(assign, nonatomic) BOOL isCaptureWindow;
2501 @property(assign, nonatomic) UInt32 displayId;
2507 @property(assign, nonatomic) UInt32 windowId;
2508 
2512 @property(strong, nonatomic) AgoraScreenCaptureParameters* _Nonnull params;
2520 @property(assign, nonatomic) CGRect regionRect;
2521 
2522 @end
2523 #endif
2524 
2525 __attribute__((visibility("default"))) @interface AgoraScreenVideoParameters : NSObject
2526 
2557 @property(assign, nonatomic) CGSize dimensions;
2570 @property(assign, nonatomic) AgoraVideoFrameRate frameRate;
2624 @property(assign, nonatomic) NSInteger bitrate;
2625 
2628 @property(assign, nonatomic) AgoraVideoContentHint contentHint;
2629 
2630 @end
2631 
2632 __attribute__((visibility("default"))) @interface AgoraScreenAudioParameters : NSObject
2633 
2634 @property(assign, nonatomic) NSInteger captureSignalVolume;
2635 
2636 @end
2637 
2638 __attribute__((visibility("default"))) @interface AgoraScreenCaptureParameters2 : NSObject
2642 @property(assign, nonatomic) BOOL captureAudio;
2646 @property(strong, nonatomic) AgoraScreenAudioParameters* _Nonnull audioParams;
2650 @property(assign, nonatomic) BOOL captureVideo;
2654 @property(strong, nonatomic) AgoraScreenVideoParameters* _Nonnull videoParams;
2655 @end
2656 
2660 __attribute__((visibility("default"))) @interface AgoraAudioRecordingConfiguration: NSObject
2665 @property (copy, nonatomic) NSString * _Nullable filePath;
2675 @property (assign, nonatomic) NSUInteger sampleRate;
2679 @property (assign, nonatomic) AgoraAudioFileRecordingType fileRecordOption;
2684 @property (assign, nonatomic) AgoraAudioRecordingQuality quality;
2685 
2691 @property (assign, nonatomic) NSInteger recordingChannel;
2692 
2693 @end
2694 
2697 __attribute__((visibility("default"))) @interface AgoraSimulcastStreamConfig: NSObject
2698 
2702  @property (assign, nonatomic) int kBitrate;
2706  @property (assign, nonatomic) int framerate;
2710  @property (assign, nonatomic) CGSize dimensions;
2711  @end
2712 
2716 __attribute__((visibility("default"))) @interface AgoraRtcMediaStreamInfo : NSObject
2718 @property(nonatomic, assign) NSInteger streamIndex;
2720 @property(nonatomic, assign) AgoraMediaStreamType streamType;
2722 @property(nonatomic, copy) NSString *_Nonnull codecName;
2724 @property(nonatomic, copy) NSString *_Nullable language;
2726 @property(nonatomic, assign) NSInteger videoFrameRate;
2728 @property(nonatomic, assign) NSInteger videoBitRate;
2730 @property(nonatomic, assign) NSInteger videoWidth;
2732 @property(nonatomic, assign) NSInteger videoHeight;
2734 @property(nonatomic, assign) NSInteger audioSampleRate;
2736 @property(nonatomic, assign) NSInteger audioChannels;
2738 @property(nonatomic, assign) NSInteger duration;
2740 @property(nonatomic, assign) NSInteger rotation;
2741 
2742 @end
2743 
2744 __attribute__((visibility("default"))) @interface AgoraAudioSpectrumInfo : NSObject
2745 
2747 @property(nonatomic, assign) NSInteger uid;
2748 @property(nonatomic, strong) NSArray<NSNumber *> * _Nullable audioSpectrumData;
2749 
2750 @end
2751 
2755 __attribute__((visibility("default"))) @interface AgoraAudioEncodedFrameDelegateConfig: NSObject
2759 @property (assign, nonatomic) AgoraAudioEncodedFrameDelegatePosition postionType;
2763 @property (assign, nonatomic) AgoraAudioEncodingType encodingType;
2764 @end
2765 
2766 __attribute__((visibility("default"))) @interface AgoraContentInspectModule: NSObject
2767 @property (assign, nonatomic) AgoraContentInspectType type;
2768 
2769 @property (assign, nonatomic) NSInteger interval;
2770 @end
2771 
2772 __attribute__((visibility("default"))) @interface AgoraContentInspectConfig: NSObject
2773 @property (nonatomic, copy) NSString* _Nullable extraInfo;
2774 @property(copy, nonatomic) NSArray<AgoraContentInspectModule*>* _Nullable modules;
2775 @end
2779 __attribute__((visibility("default"))) @interface AgoraRtcConnection: NSObject <NSCopying>
2780 
2788 - (instancetype _Nonnull)initWithChannelId:(NSString *_Nonnull)channelId localUid:(NSInteger)localUid;
2789 
2790 /* channelId Unique channel name for the AgoraRTC session in the string
2791  * format. The string length must be less than 64 bytes. Supported character
2792  * scopes are:
2793  * - All lowercase English letters: a to z.
2794  * - All uppercase English letters: A to Z.
2795  * - All numeric characters: 0 to 9.
2796  * - The space character.
2797  * - Punctuation characters and other symbols, including: "!", "#", "$", "%", "&", "(", ")", "+", "-", ":", ";", "<", "=", ".", ">", "?", "@", "[", "]", "^", "_", " {", "}", "|", "~", ",".
2798  */
2799 @property (nonatomic, copy) NSString *_Nonnull channelId;
2800 /* uid Local User ID. A 32-bit unsigned integer with a value ranging from 1 to
2801  * (2<sup>32</sup>-1). The `uid` must be unique and not set to 0 . Your app
2802  * must record and maintain the returned `uid` since the SDK does not do so.
2803  */
2804 @property (nonatomic, assign) NSUInteger localUid;
2805 
2806 @end
2810 __attribute__((visibility("default"))) @interface AgoraVideoSubscriptionOptions: NSObject
2811 
2812 /*
2813 * The type of the video stream to subscribe to.
2814 *
2815 * The default value is `VIDEO_STREAM_HIGH`, which means the high-quality
2816 * video stream.
2817 */
2818 @property (nonatomic, assign) AgoraVideoStreamType type;
2819 /*
2820 * Whether to subscribe to encoded video data only:
2821 * - `true`: Subscribe to encoded video data only.
2822 * - `false`: (Default) Subscribe to decoded video data.
2823 */
2824 @property (nonatomic, assign) bool encodedFrameOnly;
2825 
2826 @end
2827 
2831 __attribute__((visibility("default"))) @interface AgoraRecorderStreamInfo: NSObject
2832 
2833 /* channelId Unique channel name for the AgoraRTC session in the string
2834  * format. The string length must be less than 64 bytes. Supported character
2835  * scopes are:
2836  * - All lowercase English letters: a to z.
2837  * - All uppercase English letters: A to Z.
2838  * - All numeric characters: 0 to 9.
2839  * - The space character.
2840  * - Punctuation characters and other symbols, including: "!", "#", "$", "%", "&", "(", ")", "+", "-", ":", ";", "<", "=", ".", ">", "?", "@", "[", "]", "^", "_", " {", "}", "|", "~", ",".
2841  */
2842 @property (nonatomic, copy) NSString *_Nonnull channelId;
2843 /* uid Local User ID. A 32-bit unsigned integer with a value ranging from 1 to
2844  * (2<sup>32</sup>-1). The `uid` must be unique and not set to 0 . Your app
2845  * must record and maintain the returned `uid` since the SDK does not do so.
2846  */
2847 @property (nonatomic, nonatomic) NSUInteger uid;
2848 
2849 @end
2853 __attribute__((visibility("default"))) @interface AgoraEncodedVideoFrameInfo: NSObject
2854 
2858 @property (assign, nonatomic) AgoraVideoCodecType codecType;
2862 @property (assign, nonatomic) NSInteger width;
2866 @property (assign, nonatomic) NSInteger height;
2873 @property (assign, nonatomic) NSInteger framesPerSecond;
2877 @property (assign, nonatomic) AgoraVideoFrameType frameType;
2881 @property (assign, nonatomic) NSInteger rotation;
2885 @property (assign, nonatomic) NSInteger trackId; // This can be reserved for multiple video tracks, we need to create different ssrc
2886  // and additional payload for later implementation.
2890 @property (assign, nonatomic) NSInteger captureTimeMs;
2894 @property (assign, nonatomic) NSInteger decodeTimeMs;
2898 @property (assign, nonatomic) NSInteger uid;
2902 @property (assign, nonatomic) AgoraVideoStreamType streamType;
2903 @end
2904 
2905 NS_SWIFT_NAME(LogUploadServerInfo) __attribute__((visibility("default"))) @interface LogUploadServerInfo : NSObject
2908 @property(copy, nonatomic) NSString* _Nullable serverDomain;
2911 @property(copy, nonatomic) NSString* _Nullable serverPath;
2914 @property(assign, nonatomic) NSInteger serverPort;
2919 @property(assign, nonatomic) BOOL serverHttps;
2920 @end
2921 
2922 NS_SWIFT_NAME(AdvancedConfigInfo) __attribute__((visibility("default"))) @interface AdvancedConfigInfo : NSObject
2925 @property(strong, nonatomic) LogUploadServerInfo* _Nullable logUploadServer;
2926 @end
2927 
2928 NS_SWIFT_NAME(AgoraLocalAccessPointConfiguration) __attribute__((visibility("default"))) @interface AgoraLocalAccessPointConfiguration : NSObject
2931 @property(copy, nonatomic) NSArray* _Nullable ipList NS_SWIFT_NAME(ipList);
2934 @property(copy, nonatomic) NSArray* _Nullable domainList NS_SWIFT_NAME(domainList);
2938 @property(copy, nonatomic) NSString* _Nullable verifyDomainName NS_SWIFT_NAME(verifyDomainName);
2941 @property(assign, nonatomic) AgoraLocalProxyMode mode NS_SWIFT_NAME(mode);
2944 @property(strong, nonatomic) AdvancedConfigInfo* _Nullable advancedConfig NS_SWIFT_NAME(advancedConfig);
2945 @end
2946 
2951 __attribute__((visibility("default"))) @interface AgoraRhythmPlayerConfig: NSObject
2957 @property (assign, nonatomic) int beatsPerMeasure;
2958 /*
2959  * The range is 60 to 360.
2960  * The default value is 60,
2961  * which means that the rhythm player plays 60 beats in one minute.
2962  */
2963 @property (assign, nonatomic) int beatsPerMinute;
2964 
2965 @end
2966 
2969 NS_SWIFT_NAME(AgoraFacePositionInfo) __attribute__((visibility("default"))) @interface AgoraFacePositionInfo : NSObject
2970 
2973 @property(assign, nonatomic) NSInteger x NS_SWIFT_NAME(x);
2974 
2977 @property(assign, nonatomic) NSInteger y NS_SWIFT_NAME(y);
2978 
2981 @property(assign, nonatomic) NSInteger width NS_SWIFT_NAME(width);
2982 
2985 @property(assign, nonatomic) NSInteger height NS_SWIFT_NAME(height);
2986 
2989 @property(assign, nonatomic) NSInteger distance NS_SWIFT_NAME(distance);
2990 @end
2991 
2994 __attribute__((visibility("default"))) @interface AgoraAdvancedAudioOptions: NSObject
2995 
2996 @property(assign, nonatomic) AgoraAudioProcessChannels audioProcessingChannels;
2997 
2998 @end
2999 
3000 __attribute__((visibility("default"))) @interface AgoraImageTrackOptions : NSObject
3001 @property(copy, nonatomic) NSString *_Nullable imageUrl;
3002 @property(assign, nonatomic) int fps;
3003 @property(assign, nonatomic) AgoraVideoMirrorMode mirrorMode;
3004 @end
3005 
3010 __attribute__((visibility("default"))) @interface AgoraSpatialAudioParams : NSObject
3014 @property(assign, nonatomic) double speaker_azimuth;
3018 @property(assign, nonatomic) double speaker_elevation;
3022 @property(assign, nonatomic) double speaker_distance;
3026 @property(assign, nonatomic) NSInteger speaker_orientation;
3030 @property(assign, nonatomic) BOOL enable_blur;
3034 @property(assign, nonatomic) BOOL enable_air_absorb;
3038 @property(assign, nonatomic) double speaker_attenuation;
3042 @property(assign, nonatomic) BOOL enable_doppler;
3043 @end
3044 
3045 NS_SWIFT_NAME(AgoraEchoTestConfiguration)
3046 __attribute__((visibility("default"))) @interface AgoraEchoTestConfiguration : NSObject
3054 @property(strong, nonatomic) VIEW_CLASS* _Nullable view NS_SWIFT_NAME(view);
3057 @property(assign, nonatomic) BOOL enableAudio NS_SWIFT_NAME(enableAudio);
3060 @property(assign, nonatomic) BOOL enableVideo NS_SWIFT_NAME(enableVideo);
3063 @property(copy, nonatomic) NSString* _Nullable token NS_SWIFT_NAME(token);
3066 @property(copy, nonatomic) NSString* _Nonnull channelId NS_SWIFT_NAME(channelId);
3071 @property(assign, nonatomic) NSInteger intervalInSeconds NS_SWIFT_NAME(intervalInSeconds);
3072 @end
3073 
3077 NS_SWIFT_NAME(AgoraWlAccStats) __attribute__((visibility("default"))) @interface AgoraWlAccStats : NSObject
3081 @property(assign, nonatomic) NSInteger e2eDelayPercent NS_SWIFT_NAME(e2eDelayPercent);
3085 @property(assign, nonatomic) NSInteger frozenRatioPercent NS_SWIFT_NAME(frozenRatioPercent);
3089 @property(assign, nonatomic) NSInteger lossRatePercent NS_SWIFT_NAME(lossRatePercent);
3090 @end
3091 
3092 __attribute__((visibility("default"))) @interface AgoraMediaRecorderInfo : NSObject
3093 
3096 @property(copy, nonatomic) NSString* _Nonnull recorderFileName;
3099 @property(assign, nonatomic) NSUInteger durationMs;
3102 @property(assign, nonatomic) NSUInteger fileSize;
3103 
3104 @end
3105 
3106 __attribute__((visibility("default"))) @interface AgoraMediaRecorderConfiguration : NSObject
3107 
3110 @property(copy, nonatomic) NSString* _Nonnull storagePath;
3113 @property(assign, nonatomic) AgoraMediaRecorderContainerFormat containerFormat;
3116 @property(assign, nonatomic) AgoraMediaRecorderStreamType streamType;
3119 @property(assign, nonatomic) NSUInteger maxDurationMs;
3122 @property(assign, nonatomic) NSUInteger recorderInfoUpdateInterval;
3123 
3124 @end
3125 
3126 #if (!(TARGET_OS_IPHONE) && (TARGET_OS_MAC))
3127 
3131 __attribute__((visibility("default"))) @interface AgoraScreenCaptureSourceInfo : NSObject
3133 @property(assign, nonatomic) AgoraScreenCaptureSourceType type;
3135 @property(assign, nonatomic) CGWindowID sourceId;
3137 @property(copy, nonatomic) NSString* _Nonnull sourceName;
3139 @property(strong, nonatomic) NSImage* _Nonnull thumbImage;
3141 @property(strong, nonatomic) NSImage* _Nullable iconImage;
3143 @property(copy, nonatomic) NSString* _Nonnull processPath;
3145 @property(copy, nonatomic) NSString* _Nonnull sourceTitle;
3147 @property(assign, nonatomic) CGRect position;
3153 @property(assign, nonatomic) BOOL primaryMonitor;
3154 
3155 @end
3156 
3157 #endif
3158 
3159 NS_SWIFT_NAME(AgoraExtensionInfo) __attribute__((visibility("default"))) @interface AgoraExtensionInfo : NSObject
3160 
3164 @property (assign, nonatomic) AgoraMediaSourceType sourceType NS_SWIFT_NAME(sourceType);
3165 
3171 @property (assign, nonatomic) NSUInteger remoteUid NS_SWIFT_NAME(remoteUid);
3172 
3184 @property (copy, nonatomic) NSString *_Nonnull channelId NS_SWIFT_NAME(channelId);
3185 
3189 @property (assign, nonatomic) NSUInteger localUid NS_SWIFT_NAME(localUid);
3190 
3191 @end
3192 
3195 NS_SWIFT_NAME(AgoraAudioTrackConfig) __attribute__((visibility("default"))) @interface AgoraAudioTrackConfig : NSObject
3201 @property (assign, nonatomic) BOOL enableLocalPlayback NS_SWIFT_NAME(enableLocalPlayback);
3202 
3203 @end
3204 
3208 NS_SWIFT_NAME(AgoraVideoRenderingTracingInfo) __attribute__((visibility("default"))) @interface AgoraVideoRenderingTracingInfo : NSObject
3212 @property (assign, nonatomic) NSInteger elapsedTime NS_SWIFT_NAME(elapsedTime);
3219 @property (assign, nonatomic) NSInteger start2JoinChannel NS_SWIFT_NAME(start2JoinChannel);
3223 @property (assign, nonatomic) NSInteger join2JoinSuccess NS_SWIFT_NAME(join2JoinSuccess);
3231 @property (assign, nonatomic) NSInteger joinSuccess2RemoteJoined NS_SWIFT_NAME(joinSuccess2RemoteJoined);
3239 @property (assign, nonatomic) NSInteger remoteJoined2SetView NS_SWIFT_NAME(remoteJoined2SetView);
3248 @property (assign, nonatomic) NSInteger remoteJoined2UnmuteVideo NS_SWIFT_NAME(remoteJoined2UnmuteVideo);
3257 @property (assign, nonatomic) NSInteger remoteJoined2PacketReceived NS_SWIFT_NAME(remoteJoined2PacketReceived);
3258 
3259 @end
AgoraRecorderStreamInfo
Definition: AgoraObjects.h:2832
AgoraMediaSource
Definition: AgoraObjects.h:51
AgoraLowlightEnhanceLevel
AgoraLowlightEnhanceLevel
Definition: AgoraEnumerates.h:1931
AgoraFacePositionInfo
Definition: AgoraObjects.h:2970
AgoraRtcMediaPlayerCustomSourceOnReadCallback
int(^ AgoraRtcMediaPlayerCustomSourceOnReadCallback)(id< AgoraRtcMediaPlayerProtocol > _Nonnull playerKit, unsigned char *_Nullable buffer, int bufferSize)
The player requests to read the data callback, you need to fill the specified length of data into the...
Definition: AgoraObjects.h:33
AgoraLocalProxyMode
AgoraLocalProxyMode
Definition: AgoraEnumerates.h:3045
AgoraMediaSource::isLiveSource
BOOL isLiveSource
Definition: AgoraObjects.h:92
AgoraDirectCdnStreamingStats
Definition: AgoraObjects.h:140
AgoraDegradationPreference
AgoraDegradationPreference
Definition: AgoraEnumerates.h:1825
AgoraCameraDirection
AgoraCameraDirection
Definition: AgoraEnumerates.h:2307
AgoraMediaSource::playerOnReadCallback
AgoraRtcMediaPlayerCustomSourceOnReadCallback _Nonnull playerOnReadCallback
Definition: AgoraObjects.h:96
AgoraMediaSource::startPos
NSUInteger startPos
Definition: AgoraObjects.h:62
AgoraEncodedVideoTrackOptions
Definition: AgoraObjects.h:214
AgoraVideoRenderingTracingInfo
Definition: AgoraObjects.h:3209
AgoraScreenAudioParameters
Definition: AgoraObjects.h:2633
AgoraRtcChannelMediaOptions
Definition: AgoraObjects.h:241
AgoraMediaFilterEventDelegate.h
AgoraAudioScenario
AgoraAudioScenario
Definition: AgoraEnumerates.h:1252
AgoraRhythmPlayerConfig
Definition: AgoraObjects.h:2952
AgoraBeautyOptions
Definition: AgoraObjects.h:2232
AgoraVideoCodecCapInfo
Definition: AgoraObjects.h:1066
AgoraVideoSubscriptionOptions
Definition: AgoraObjects.h:2811
AgoraOutputVideoFrame
Definition: AgoraObjects.h:2000
AgoraAudioTrackConfig
Definition: AgoraObjects.h:3196
AgoraClientRole
AgoraClientRole
Definition: AgoraEnumerates.h:521
AgoraScreenCaptureParameters2
Definition: AgoraObjects.h:2639
AgoraExperiencePoorReason
AgoraExperiencePoorReason
Definition: AgoraEnumerates.h:763
AgoraMediaSource::uri
NSString *_Nullable uri
Definition: AgoraObjects.h:58
AgoraVideoDenoiserMode
AgoraVideoDenoiserMode
Definition: AgoraEnumerates.h:1895
AgoraContentInspectModule
Definition: AgoraObjects.h:2767
AgoraMediaPlayerSrcInfo
The information of the media stream object.
Definition: AgoraObjects.h:124
AdvancedConfigInfo
Definition: AgoraObjects.h:2923
AgoraMediaSource::url
NSString *_Nullable url
Definition: AgoraObjects.h:54
AgoraLighteningContrastLevel
AgoraLighteningContrastLevel
Definition: AgoraEnumerates.h:1882
AgoraEnumerates.h
AgoraVideoFrame
Definition: AgoraObjects.h:1643
AgoraSimulcastStreamConfig
Definition: AgoraObjects.h:2698
AgoraRtcConnection::channelId
NSString *_Nonnull channelId
Definition: AgoraObjects.h:2799
AgoraScreenCaptureParameters
Definition: AgoraObjects.h:2423
AgoraAudioRawFrameOperationMode
AgoraAudioRawFrameOperationMode
Definition: AgoraEnumerates.h:1324
AgoraMediaRecorderInfo
Definition: AgoraObjects.h:3093
AgoraSegmentationProperty
Definition: AgoraObjects.h:2351
AgoraVideoDenoiserLevel
AgoraVideoDenoiserLevel
Definition: AgoraEnumerates.h:1906
AgoraRtcRemoteVideoStats
Definition: AgoraObjects.h:696
AgoraVideoViewSetupMode
AgoraVideoViewSetupMode
Definition: AgoraEnumerates.h:3083
AgoraMediaSource::autoPlay
BOOL autoPlay
Definition: AgoraObjects.h:68
AgoraContentInspectConfig
Definition: AgoraObjects.h:2773
AgoraAudioEncodedFrameDelegateConfig
Definition: AgoraObjects.h:2756
AgoraTranscodingVideoStream
Definition: AgoraObjects.h:2362
AgoraDirectCdnStreamingMediaOptions
Definition: AgoraObjects.h:167
AgoraAudioCodecType
AgoraAudioCodecType
Definition: AgoraEnumerates.h:687
AgoraAudioEncodedFrameDelegatePosition
AgoraAudioEncodedFrameDelegatePosition
Definition: AgoraEnumerates.h:677
AgoraRtcMediaPlayerProtocol-p
Definition: AgoraRtcMediaPlayerProtocol.h:23
AgoraRtcConnection::localUid
NSUInteger localUid
Definition: AgoraObjects.h:2804
AgoraVideoDenoiserOptions
Definition: AgoraObjects.h:2275
AgoraLastmileProbeConfig
Definition: AgoraObjects.h:520
AgoraAudienceLatencyLevelType
AgoraAudienceLatencyLevelType
Definition: AgoraEnumerates.h:529
AgoraLastmileProbeResultState
AgoraLastmileProbeResultState
Definition: AgoraEnumerates.h:785
AgoraWlAccStats
Definition: AgoraObjects.h:3078
AgoraRtcMediaStreamInfo
Definition: AgoraObjects.h:2717
AgoraChannelMediaRelayInfo
Definition: AgoraObjects.h:2161
WatermarkOptions
Definition: AgoraObjects.h:1280
AgoraVideoSourceType
AgoraVideoSourceType
Definition: AgoraEnumerates.h:2534
AgoraAudioFrame
Definition: AgoraObjects.h:1842
AgoraMediaRecorderStreamType
AgoraMediaRecorderStreamType
Definition: AgoraEnumerates.h:3168
AgoraAudioEncodingType
AgoraAudioEncodingType
Definition: AgoraEnumerates.h:694
AgoraMediaSource::enableCache
BOOL enableCache
Definition: AgoraObjects.h:80
AgoraAreaCodeType
AgoraAreaCodeType
Definition: AgoraEnumerates.h:2185
VIEW_CLASS
UIView VIEW_CLASS
Definition: AgoraObjects.h:15
AgoraChannelProfile
AgoraChannelProfile
Definition: AgoraEnumerates.h:487
COLOR_CLASS
UIColor COLOR_CLASS
Definition: AgoraObjects.h:16
AgoraBlurDegree
AgoraBlurDegree
Definition: AgoraEnumerates.h:1955
AgoraAudioSpectrumInfo
Definition: AgoraObjects.h:2745
AgoraLeaveChannelOptions
Definition: AgoraObjects.h:1976
AgoraDataStreamConfig
Definition: AgoraObjects.h:2151
AgoraLowlightEnhanceMode
AgoraLowlightEnhanceMode
Definition: AgoraEnumerates.h:1920
AgoraRtcRemoteAudioStats
Definition: AgoraObjects.h:806
AgoraUserInfo
Definition: AgoraObjects.h:2094
AgoraVideoCodecCapabilityLevel
AgoraVideoCodecCapabilityLevel
Definition: AgoraEnumerates.h:400
AgoraRtcEngineConfig
Definition: AgoraObjects.h:1780
AgoraMediaStreamType
AgoraMediaStreamType
Definition: AgoraEnumerates.h:2617
AgoraImageTrackOptions
Definition: AgoraObjects.h:3001
AgoraVideoRenderMode
AgoraVideoRenderMode
Definition: AgoraEnumerates.h:825
AgoraLastmileProbeOneWayResult
Definition: AgoraObjects.h:552
AgoraVideoQualityAdaptIndication
AgoraVideoQualityAdaptIndication
Definition: AgoraEnumerates.h:815
AgoraContentInspectType
AgoraContentInspectType
Definition: AgoraEnumerates.h:2936
AgoraEncryptionConfig
Definition: AgoraObjects.h:2076
AgoraEncodedVideoFrameInfo
Definition: AgoraObjects.h:2854
AgoraRtcMediaPlayerCustomSourceOnSeekCallback
long long(^ AgoraRtcMediaPlayerCustomSourceOnSeekCallback)(id< AgoraRtcMediaPlayerProtocol > _Nonnull playerKit, long long offset, int whence)
The Player seek event callback, you need to operate the corresponding stream seek operation,...
Definition: AgoraObjects.h:48
AgoraChannelMediaRelayConfiguration
Definition: AgoraObjects.h:2180
AgoraVideoStreamType
AgoraVideoStreamType
Definition: AgoraEnumerates.h:807
AgoraVideoCodecTypeForStream
AgoraVideoCodecTypeForStream
Definition: AgoraEnumerates.h:434
AgoraEchoTestConfiguration
Definition: AgoraObjects.h:3047
AgoraAdvancedAudioOptions
Definition: AgoraObjects.h:2995
AgoraVideoCodecCapLevels
Definition: AgoraObjects.h:1056
AgoraRtcAudioVolumeInfo
Definition: AgoraObjects.h:913
AgoraVideoHwEncoderAccelerating
AgoraVideoHwEncoderAccelerating
Definition: AgoraEnumerates.h:418
AgoraMediaPlayerCacheStatistics
Definition: AgoraObjects.h:102
AgoraAudioProcessChannels
AgoraAudioProcessChannels
Definition: AgoraEnumerates.h:3089
AgoraLocalAccessPointConfiguration
Definition: AgoraObjects.h:2929
AgoraEncodingPreference
AgoraEncodingPreference
Definition: AgoraEnumerates.h:1837
AgoraThreadPriorityType
AgoraThreadPriorityType
Definition: AgoraEnumerates.h:2909
AgoraScreenVideoParameters
Definition: AgoraObjects.h:2526
AgoraVirtualBackgroundSource
Definition: AgoraObjects.h:2320
AgoraLiveStreamAdvancedFeature
Definition: AgoraObjects.h:1238
AgoraRtcConnection
Definition: AgoraObjects.h:2779
AgoraLowlightEnhanceOptions
Definition: AgoraObjects.h:2292
AgoraExperienceQuality
AgoraExperienceQuality
Definition: AgoraEnumerates.h:752
__deprecated
#define __deprecated
Definition: AgoraBase.h:63
AgoraAudioCodecProfileType
AgoraAudioCodecProfileType
Definition: AgoraEnumerates.h:1074
AgoraVideoContentHint
AgoraVideoContentHint
Definition: AgoraEnumerates.h:2898
AgoraMediaSource::isAgoraSource
BOOL isAgoraSource
Definition: AgoraObjects.h:86
AgoraLocalTranscoderConfiguration
Definition: AgoraObjects.h:2402
AgoraRtcVideoCanvas
Definition: AgoraObjects.h:451
AgoraEncodedAudioFrameInfo
Definition: AgoraObjects.h:1942
AgoraVirtualBackgroundSourceType
AgoraVirtualBackgroundSourceType
Definition: AgoraEnumerates.h:1941
SegModelType
SegModelType
Definition: AgoraEnumerates.h:1964
AgoraMediaSource::playerOnSeekCallback
AgoraRtcMediaPlayerCustomSourceOnSeekCallback _Nonnull playerOnSeekCallback
Definition: AgoraObjects.h:97
AgoraAudioRecordingConfiguration
Definition: AgoraObjects.h:2661
LogUploadServerInfo
Definition: AgoraObjects.h:2906
AgoraVideoFrameType
AgoraVideoFrameType
Definition: AgoraEnumerates.h:1744
AgoraColorEnhanceOptions
Definition: AgoraObjects.h:2307
AgoraMediaRecorderConfiguration
Definition: AgoraObjects.h:3107
AgoraMediaRecorderContainerFormat
AgoraMediaRecorderContainerFormat
Definition: AgoraEnumerates.h:3177
AgoraLogConfig
Definition: AgoraObjects.h:1748
AgoraClientRoleOptions
Definition: AgoraObjects.h:2107
AgoraMediaSourceType
AgoraMediaSourceType
Definition: AgoraEnumerates.h:2472
AgoraAudioFileRecordingType
AgoraAudioFileRecordingType
Definition: AgoraEnumerates.h:667
AgoraRtcLocalAudioStats
Definition: AgoraObjects.h:777
AgoraCameraCapturerConfiguration
Definition: AgoraObjects.h:2117
AgoraCompressionPreference
AgoraCompressionPreference
Definition: AgoraEnumerates.h:1853
IMAGE_CLASS
UIImage IMAGE_CLASS
Definition: AgoraObjects.h:17
AgoraAdvancedVideoOptions
Definition: AgoraObjects.h:1045
AgoraExtensionInfo
Definition: AgoraObjects.h:3160
AgoraMediaPlayerUpdatedInfo
player_id and device_id has value when user trigger interface of opening.
Definition: AgoraObjects.h:114
AgoraLogLevel
AgoraLogLevel
Definition: AgoraEnumerates.h:2160
AgoraScreenCaptureSourceType
AgoraScreenCaptureSourceType
Definition: AgoraEnumerates.h:3186
AgoraLastmileProbeResult
Definition: AgoraObjects.h:570
AgoraChannelStats
Definition: AgoraObjects.h:932
AgoraCaptureBrightnessLevelType
AgoraCaptureBrightnessLevelType
Definition: AgoraEnumerates.h:537