Agora RTC Objective-C API Reference Refactor

Enumerations
AgoraEnumerates.h File Reference

Go to the source code of this file.

## Enumerations
enum | AgoraVideoCodecTypeForStream { AgoraVideoCodecTypeH264ForStream = 1, AgoraVideoCodecTypeH265ForStream = 2 }
enum | AgoraChannelProfile { AgoraChannelProfileCommunication = 0, AgoraChannelProfileLiveBroadcasting = 1, AgoraChannelProfileGame = 2, AgoraChannelProfileCloudGaming = 3, AgoraChannelProfileCommunication_1v1 = 4 }
enum | AgoraClientRole { AgoraClientRoleBroadcaster = 1, AgoraClientRoleAudience = 2 }
enum | AgoraAudienceLatencyLevelType { AgoraAudienceLatencyLevelLowLatency = 1, AgoraAudienceLatencyLevelUltraLowLatency = 2 }
enum | AgoraCaptureBrightnessLevelType { AgoraCaptureBrightnessLevelInvalid = -1, AgoraCaptureBrightnessLevelNormal = 0, AgoraCaptureBrightnessLevelBright = 1, AgoraCaptureBrightnessLevelDark = 2 }
enum | AgoraCloudProxyType { AgoraNoneProxy = 0, AgoraUdpProxy = 1, AgoraTcpProxy = 2 }
enum | AgoraUserOfflineReason { AgoraUserOfflineReasonQuit = 0, AgoraUserOfflineReasonDropped = 1, AgoraUserOfflineReasonBecomeAudience = 2 }
enum | AgoraLogFilter { AgoraLogFilterOff = 0, AgoraLogFilterDebug = 0x080f, AgoraLogFilterInfo = 0x000f, AgoraLogFilterWarning = 0x000e, AgoraLogFilterError = 0x000c, AgoraLogFilterCritical = 0x0008 }
enum | AgoraAudioFileRecordingType { AgoraAudioFileRecordingTypeMic = 1, AgoraAudioFileRecordingTypePlayback = 2, AgoraAudioFileRecordingTypeMixed = 3 }
enum | AgoraAudioEncodedFrameDelegatePosition { AgoraAudioEncodedFrameObserverPositionRecord = 1, AgoraAudioEncodedFrameObserverPositionPlayback = 2, AgoraAudioEncodedFrameObserverPositionMixed = 3 }
enum | AgoraAudioCodecType
enum | AgoraAudioEncodingType { AgoraAudioEncodingTypeAAC16000Low = 0x010101, AgoraAudioEncodingTypeAAC16000Medium = 0x010102, AgoraAudioEncodingTypeAAC32000Low = 0x010201, AgoraAudioEncodingTypeAAC32000Medium = 0x010202, AgoraAudioEncodingTypeAAC32000High = 0x010203, AgoraAudioEncodingTypeAAC48000Medium = 0x010302, AgoraAudioEncodingTypeAAC48000High = 0x010303, AgoraAudioEncodingTypeOPUS16000Low = 0x020101, AgoraAudioEncodingTypeOPUS6000Medium = 0x020102, AgoraAudioEncodingTypeOPUS48000Medium = 0x020302, AgoraAudioEncodingTypeOPUS48000High = 0x020303 }
enum | AgoraNetworkQuality { AgoraNetworkQualityUnknown = 0, AgoraNetworkQualityExcellent = 1, AgoraNetworkQualityGood = 2, AgoraNetworkQualityPoor = 3, AgoraNetworkQualityBad = 4, AgoraNetworkQualityVBad = 5, AgoraNetworkQualityDown = 6, AgoraNetworkQualityUnsupported = 7, AgoraNetworkQualityDetecting = 8 }
enum | AgoraExperienceQuality { AgoraExperienceQualityGood = 0, AgoraExperienceQualityBad = 1 }
enum | AgoraExperiencePoorReason { AgoraExperiencePoorReasonNone = 0, AgoraExperiencePoorReasonRemoteNetworkQualityPoor = 1, AgoraExperiencePoorReasonLocalNetworkQualityPoor = 2, AgoraExperiencePoorReasonWirelessSignalPoor = 4, AgoraExperiencePoorReasonWifiBluetoothCoexist = 8 }
enum | AgoraLastmileProbeResultState { AgoraLastmileProbeResultComplete = 1, AgoraLastmileProbeResultIncompleteNoBwe = 2, AgoraLastmileProbeResultUnavailable = 3 }
enum | AgoraVideoStreamType { AgoraVideoStreamTypeHigh = 0, AgoraVideoStreamTypeLow = 1, AgoraVideoStreamTypeLayer1 = 4, AgoraVideoStreamTypeLayer2 = 5, AgoraVideoStreamTypeLayer3 = 6, AgoraVideoStreamTypeLayer4 = 7, AgoraVideoStreamTypeLayer5 = 8, AgoraVideoStreamTypeLayer6 = 9 }
enum | AgoraVideoQualityAdaptIndication { AgoraVideoQualityAdaptNone = 0, AgoraVideoQualityAdaptUpBandwidth = 1, AgoraVideoQualityAdaptDownBandwidth = 2 }
enum | AgoraVideoRenderMode { AgoraVideoRenderModeHidden = 1, AgoraVideoRenderModeFit = 2, AgoraVideoRenderModeAdaptive =("AgoraVideoRenderModeAdaptive is deprecated.") = 3 }
enum | AgoraVideoLocalState { AgoraVideoLocalStateStopped = 0, AgoraVideoLocalStateCapturing = 1, AgoraVideoLocalStateEncoding = 2, AgoraVideoLocalStateFailed = 3 }
enum | AgoraLocalVideoStreamReason { AgoraLocalVideoStreamReasonOK = 0, AgoraLocalVideoStreamReasonFailure = 1, AgoraLocalVideoStreamReasonDeviceNoPermission = 2, AgoraLocalVideoStreamReasonDeviceBusy = 3, AgoraLocalVideoStreamReasonCaptureFailure = 4, AgoraLocalVideoStreamReasonCodecNotSupport = 5, AgoraLocalVideoStreamReasonCaptureInBackGround = 6, AgoraLocalVideoStreamReasonCaptureMultipleForegroundApps = 7, AgoraLocalVideoStreamReasonCaptureNoDeviceFound = 8, AgoraLocalVideoStreamReasonCaptureDeviceDisconnected = 9, AgoraLocalVideoStreamReasonCaptureDeviceInvalidId = 10, AgoraLocalVideoStreamReasonScreenCaptureWindowMinimized = 11, AgoraLocalVideoStreamReasonScreenCaptureWindowClosed = 12, AgoraLocalVideoStreamReasonScreenCaptureNoPermission = 22, AgoraLocalVideoStreamReasonScreenCaptureRecoverFromMinimized = 27, AgoraLocalVideoStreamReasonScreenCaptureDisplayDisconnected = 30 }
enum | AgoraVideoRemoteReason { AgoraVideoRemoteReasonInternal = 0, AgoraVideoRemoteReasonCongestion = 1, AgoraVideoRemoteReasonRecovery = 2, AgoraVideoRemoteReasonLocalMuted = 3, AgoraVideoRemoteReasonLocalUnmuted = 4, AgoraVideoRemoteReasonRemoteMuted = 5, AgoraVideoRemoteReasonRemoteUnmuted = 6, AgoraVideoRemoteReasonRemoteOffline = 7, AgoraVideoRemoteReasonAudioFallback = 8, AgoraVideoRemoteReasonAudioFallbackRecovery = 9, AgoraVideoRemoteReasonSDKInBackground = 12, AgoraVideoRemoteReasonCodecNotSupport = 13 }
enum | AgoraAudioLocalState { AgoraAudioLocalStateStopped = 0, AgoraAudioLocalStateRecording = 1, AgoraAudioLocalStateEncoding = 2, AgoraAudioLocalStateFailed = 3 }
enum | AgoraAudioLocalReason { AgoraAudioLocalReasonOK = 0, AgoraAudioLocalReasonFailure = 1, AgoraAudioLocalReasonDeviceNoPermission = 2, AgoraAudioLocalReasonDeviceBusy = 3, AgoraAudioLocalReasonRecordFailure = 4, AgoraAudioLocalReasonEncodeFailure = 5, AgoraAudioLocalReasonNoRecordingDevice = 6, AgoraAudioLocalReasonNoPlayoutDevice = 7, AgoraAudioLocalReasonInterrupted = 8 }
enum | AgoraAudioCodecProfileType { AgoraAudioCodecProfileLCAAC = 0, AgoraAudioCodecProfileHEAAC = 1, AgoraAudioCodecProfileHEAACv2 = 2 }
enum | AgoraAudioRemoteState { AgoraAudioRemoteStateStopped = 0, AgoraAudioRemoteStateStarting = 1, AgoraAudioRemoteStateDecoding = 2, AgoraAudioRemoteStateFrozen = 3, AgoraAudioRemoteStateFailed = 4 }
enum | AgoraAudioRemoteReason { AgoraAudioRemoteReasonInternal = 0, AgoraAudioRemoteReasonNetworkCongestion = 1, AgoraAudioRemoteReasonNetworkRecovery = 2, AgoraAudioRemoteReasonLocalMuted = 3, AgoraAudioRemoteReasonLocalUnmuted = 4, AgoraAudioRemoteReasonRemoteMuted = 5, AgoraAudioRemoteReasonRemoteUnmuted = 6, AgoraAudioRemoteReasonRemoteOffline = 7 }
enum | AgoraAudioProfile { AgoraAudioProfileDefault = 0, AgoraAudioProfileSpeechStandard = 1, AgoraAudioProfileMusicStandard = 2, AgoraAudioProfileMusicStandardStereo = 3, AgoraAudioProfileMusicHighQuality = 4, AgoraAudioProfileMusicHighQualityStereo = 5, AgoraAudioProfileIot = 6 }
enum | AgoraAudioScenario { AgoraAudioScenarioDefault = 0, AgoraAudioScenarioGameStreaming = 3, AgoraAudioScenarioChatRoom = 5, AgoraAudioScenarioChorus = 7, AgoraAudioScenarioMeeting = 8, AgoraAudioScenarioAIServer = 9, AgoraAudioScenarioAiClient = 10 }
enum | AgoraAudioRawFrameOperationMode { AgoraAudioRawFrameOperationModeReadOnly = 0, AgoraAudioRawFrameOperationModeReadWrite = 2 }
enum | AgoraVoiceBeautifierPreset { AgoraVoiceBeautifierPresetOff = 0x00000000, AgoraVoiceBeautifierPresetChatBeautifierMagnetic = 0x01010100, AgoraVoiceBeautifierPresetChatBeautifierFresh = 0x01010200, AgoraVoiceBeautifierPresetChatBeautifierVitality = 0x01010300, AgoraVoiceBeautifierPresetSingingBeautifier = 0x01020100, AgoraVoiceBeautifierTimbreTransformationVigorous = 0x01030100, AgoraVoiceBeautifierTimbreTransformationDeep = 0x01030200, AgoraVoiceBeautifierTimbreTransformationMellow = 0x01030300, AgoraVoiceBeautifierTimbreTransformationFalsetto = 0x01030400, AgoraVoiceBeautifierTimbreTransformationFull = 0x01030500, AgoraVoiceBeautifierTimbreTransformationClear = 0x01030600, AgoraVoiceBeautifierTimbreTransformationResounding = 0x01030700, AgoraVoiceBeautifierTimbreTransformatRinging = 0x01030800 }
enum | AgoraVoiceConversionPreset { AgoraVoiceConversionPresetOff = 0x00000000, AgoraVoiceConversionPresetNeutral = 0x03010100, AgoraVoiceConversionPresetSweet = 0x03010200, AgoraVoiceConversionPresetChangerSolid = 0x03010300, AgoraVoiceConversionPresetChangerBass = 0x03010400, AgoraVoiceConversionPresetChangerCartoon = 0x03010500, AgoraVoiceConversionPresetChangerChildlike = 0x03010600, AgoraVoiceConversionPresetChangerPhoneOperator = 0x03010700, AgoraVoiceConversionPresetChangerMonster = 0x03010800, AgoraVoiceConversionPresetChangerTransformers = 0x03010900, AgoraVoiceConversionPresetChangerGroot = 0x03010A00, AgoraVoiceConversionPresetChangerDarthVader = 0x03010B00, AgoraVoiceConversionPresetChangerIronLady = 0x03010C00, AgoraVoiceConversionPresetChangerShinchan = 0x03010D00, AgoraVoiceConversionPresetChangerGirlishMan = 0x03010E00, AgoraVoiceConversionPresetChangerChipmunk = 0x03010F00 }
enum | AgoraVideoFormat { AgoraVideoFormatI420 = 1, AgoraVideoFormatBGRA = 2, AgoraVideoFormatNV21 = 3, AgoraVideoFormatRGBA = 4, AgoraVideoFormatNV12 = 8, AgoraVideoFormatCVPixelNV12 = 12, AgoraVideoFormatCVPixelI420 = 13, AgoraVideoFormatCVPixelBGRA = 14, AgoraVideoFormatCVPixelP010 = 15, AgoraVideoFormatI422 = 16, AgoraVideoFormatI010 = 18, AgoraVideoFormatDefault = 0 }
enum | AgoraVideoFrameType { AgoraVideoFrameTypeBlankFrame = 0, AgoraVideoFrameTypeKeyFrame = 3, AgoraVideoFrameTypeDeltaFrame = 4, AgoraVideoFrameTypeBFrame = 5, AgoraVideoFrameTypeDroppableFrame = 6, AgoraVideoFrameTypeUnknow }
enum | AgoraConnectionState { AgoraConnectionStateDisconnected = 1, AgoraConnectionStateConnecting = 2, AgoraConnectionStateConnected = 3, AgoraConnectionStateReconnecting = 4, AgoraConnectionStateFailed = 5 }
enum | AgoraNetworkType { AgoraNetworkTypeUnknown = -1, AgoraNetworkTypeDisconnected = 0, AgoraNetworkTypeLAN = 1, AgoraNetworkTypeWIFI = 2, AgoraNetworkType2G = 3, AgoraNetworkType3G = 4, AgoraNetworkType4G = 5, AgoraNetworkType5G = 6 }
enum | AgoraDegradationPreference { AgoraDegradationMaintainAuto = -1, AgoraDegradationMaintainQuality = 0, AgoraDegradationMaintainFramerate = 1, AgoraDegradationBalanced = 2, AgoraDegradationMaintainResolution = 3, AgoraDegradationDisable = 100 }
enum | AgoraEncodingPreference { AgoraEncodingPreferAuto = -1, AgoraEncodingPrefersoftware = 0, AgoraEncodingPreferhardware = 1 }
enum | AgoraCompressionPreference { AgoraCompressionAuto = -1, AgoraCompressionLowLatency = 0, AgoraCompressionQuality = 1 }
enum | AgoraCodecCapMask { AgoraCodecMaskNone = 0, AgoraCodecMaskHwDec = 1, AgoraCodecMaskHwEnc = 2, AgoraCodecMaskSwDec = 4, AgoraCodecMaskSwEnc = 8 }
enum | AgoraLighteningContrastLevel { AgoraLighteningContrastLow = 0, AgoraLighteningContrastNormal = 1, AgoraLighteningContrastHigh = 2 }
enum | AgoraFaceShapeArea { AgoraFaceShapeAreaNone = -1, AgoraFaceShapeAreaHeadScale = 100, AgoraFaceShapeAreaForehead = 101, AgoraFaceShapeAreaFaceContour = 102, AgoraFaceShapeAreaFaceLength = 103, AgoraFaceShapeAreaFaceWidth = 104, AgoraFaceShapeAreaCheekbone = 105, AgoraFaceShapeAreaCheek = 106, AgoraFaceShapeAreaMandible = 107, AgoraFaceShapeAreaChin = 108, AgoraFaceShapeAreaEyeScale = 200, AgoraFaceShapeAreaEyeDistance = 201, AgoraFaceShapeAreaEyePosition = 202, AgoraFaceShapeAreaLowerEyelid = 203, AgoraFaceShapeAreaEyePupils = 204, AgoraFaceShapeAreaEyeInnerCorner = 205, AgoraFaceShapeAreaEyeOuterCorner = 206, AgoraFaceShapeAreaNoseLength = 300, AgoraFaceShapeAreaNoseWidth = 301, AgoraFaceShapeAreaNoseWing = 302, AgoraFaceShapeAreaNoseRoot = 303, AgoraFaceShapeAreaNoseBridge = 304, AgoraFaceShapeAreaNoseTip = 305, AgoraFaceShapeAreaNoseGeneral = 306, AgoraFaceShapeAreaMouthScale = 400, AgoraFaceShapeAreaMouthPosition = 401, AgoraFaceShapeAreaMouthSmile = 402, AgoraFaceShapeAreaMouthLip = 403, AgoraFaceShapeAreaEyebrowPosition = 500, AgoraFaceShapeAreaEyebrowThickness = 501 }
enum | AgoraFaceShapeStyle { AgoraFaceShapeStyleFemale = 0, AgoraFaceShapeStyleMale = 1, AgoraFaceShapeStyleNatural = 2 }
enum | AgoraVideoDenoiserMode { AgoraVideoDenoiserModeAuto = 0, AgoraVideoDenoiserModeManual = 1 }
enum | AgoraVideoDenoiserLevel { AgoraVideoDenoiserLevelHighQuality = 0, AgoraVideoDenoiserLevelFast = 1 }
enum | AgoraLowlightEnhanceMode { AgoraLowlightEnhanceModeAuto = 0, AgoraLowlightEnhanceModeManual = 1 }
enum | AgoraLowlightEnhanceLevel { AgoraLowlightEnhanceLevelQuality = 0, AgoraLowlightEnhanceLevelFast = 1 }
enum | AgoraVirtualBackgroundSourceType { AgoraVirtualBackgroundNone = 0, AgoraVirtualBackgroundColor = 1, AgoraVirtualBackgroundImg = 2, AgoraVirtualBackgroundBlur = 3, AgoraVirtualBackgroundVideo = 4 }
enum | AgoraBlurDegree { AgoraBlurLow = 1, AgoraBlurMedium = 2, AgoraBlurHigh = 3 }
enum | AgoraMaxMetadataSizeType
enum | AgoraLogLevel { AgoraLogLevelNone = 0x0000, AgoraLogLevelInfo = 0x0001, AgoraLogLevelWarn = 0x0002, AgoraLogLevelError = 0x0004, AgoraLogLevelFatal = 0x0008 }
enum | AgoraAreaCodeType { AgoraAreaCodeTypeCN = 0x1, AgoraAreaCodeTypeNA = 0x2, AgoraAreaCodeTypeEUR = 0x4, AgoraAreaCodeTypeAS = 0x8, AgoraAreaCodeTypeJP = 0x10, AgoraAreaCodeTypeIN = 0x20, AgoraAreaCodeTypeRU = 0x1000, AgoraAreaCodeTypeGlobal = 0xFFFFFFFF }
enum | AgoraRtmpStreamingState { AgoraRtmpStreamingStateIdle = 0, AgoraRtmpStreamingStateConnecting = 1, AgoraRtmpStreamingStateRunning = 2, AgoraRtmpStreamingStateRecovering = 3, AgoraRtmpStreamingStateFailure = 4, AgoraRtmpStreamingStateDisconnecting = 5 }
enum | AgoraRtmpStreamingReason { AgoraRtmpStreamingReasonOK = 0, AgoraRtmpStreamingReasonInvalidParameters = 1, AgoraRtmpStreamingReasonEncryptedStreamNotAllowed = 2, AgoraRtmpStreamingReasonConnectionTimeout = 3, AgoraRtmpStreamingReasonInternalServerError = 4, AgoraRtmpStreamingReasonRtmpServerError = 5, AgoraRtmpStreamingReasonTooOften = 6, AgoraRtmpStreamingReasonReachLimit = 7, AgoraRtmpStreamingReasonNotAuthorized = 8, AgoraRtmpStreamingReasonStreamNotFound = 9, AgoraRtmpStreamingReasonFormatNotSupported = 10, AgoraRtmpStreamingReasonNotBroadcaster = 11, AgoraRtmpStreamingReasonTranscodingNoMixStream = 13, AgoraRtmpStreamingReasonNetDown = 14, AgoraRtmpStreamingReasonInvalidAppId = 15, AgoraRtmpStreamingReasonInvalidPrivilege = 16, AgoraRtmpStreamingReasonUnpublishOK = 100 }
enum | AgoraRtmpStreamingEvent { AgoraRtmpStreamingEventFailedLoadImage = 1, AgoraRtmpStreamingEventUrlAlreadyInUse = 2, AgoraRtmpStreamingEventAdvancedFeatureNotSupport = 3, AgoraRtmpStreamingEventRequestTooOften = 4 }
enum | AgoraEncryptionErrorType { ENCRYPTION_ERROR_INTERNAL_FAILURE = 0, ENCRYPTION_ERROR_DECRYPTION_FAILURE = 1, ENCRYPTION_ERROR_ENCRYPTION_FAILURE = 2, ENCRYPTION_ERROR_DATASTREAM_DECRYPTION_FAILURE = 3, ENCRYPTION_ERROR_DATASTREAM_ENCRYPTION_FAILURE = 4 }
enum | AgoraCameraDirection { AgoraCameraDirectionRear = 0, AgoraCameraDirectionFront = 1 }
enum | AgoraCameraStabilizationMode { AgoraCameraStabilizationModeOff = -1, AgoraCameraStabilizationModeAuto = 0, AgoraCameraStabilizationModeLevel1 = 1, AgoraCameraStabilizationModeLevel2 = 2, AgoraCameraStabilizationModeLevel3 = 3 }
enum | AgoraChannelMediaRelayState { AgoraChannelMediaRelayStateIdle = 0, AgoraChannelMediaRelayStateConnecting = 1, AgoraChannelMediaRelayStateRunning = 2, AgoraChannelMediaRelayStateFailure = 3 }
enum | AgoraChannelMediaRelayEvent { AgoraChannelMediaRelayEventDisconnect = 0, AgoraChannelMediaRelayEventConnected = 1, AgoraChannelMediaRelayEventJoinedSourceChannel = 2, AgoraChannelMediaRelayEventJoinedDestinationChannel = 3, AgoraChannelMediaRelayEventSentToDestinationChannel = 4, AgoraChannelMediaRelayEventReceivedVideoPacketFromSource = 5, AgoraChannelMediaRelayEventReceivedAudioPacketFromSource = 6, AgoraChannelMediaRelayEventUpdateDestinationChannel = 7, AgoraChannelMediaRelayEventUpdateDestinationChannelRefused = 8, AgoraChannelMediaRelayEventUpdateDestinationChannelNotChange = 9, AgoraChannelMediaRelayEventUpdateDestinationChannelIsNil = 10, AgoraChannelMediaRelayEventVideoProfileUpdate = 11 }
enum | AgoraChannelMediaRelayError { AgoraChannelMediaRelayErrorNone = 0, AgoraChannelMediaRelayErrorServerErrorResponse = 1, AgoraChannelMediaRelayErrorServerNoResponse = 2, AgoraChannelMediaRelayErrorNoResourceAvailable = 3, AgoraChannelMediaRelayErrorFailedJoinSourceChannel = 4, AgoraChannelMediaRelayErrorFailedJoinDestinationChannel = 5, AgoraChannelMediaRelayErrorFailedPacketReceivedFromSource = 6, AgoraChannelMediaRelayErrorFailedPacketSentToDestination = 7, AgoraChannelMediaRelayErrorServerConnectionLost = 8, AgoraChannelMediaRelayErrorInternalError = 9, AgoraChannelMediaRelayErrorSourceTokenExpired = 10, AgoraChannelMediaRelayErrorDestinationTokenExpired = 11 }
enum | AgoraStreamPublishState
enum | AgoraApplicationScenarioType { AgoraApplicationGeneralScenario = 0 }
enum | AgoraQoEPreferenceType { AgoraVideoQOEPreferenceBalance = 1, AgoraVideoQOEPreferenceDelayFirst = 2, AgoraVideoQOEPreferencePictureQualityFirst = 3, AgoraVideoQOEPreferenceFluencyFirst = 4 }
enum | AgoraScreenScenarioType { AgoraScreenScenarioDocument = 1, AgoraScreenScenarioGaming = 2, AgoraScreenScenarioVideo = 3, AgoraScreenScenarioRDC = 4 }
enum | AgoraMediaSourceType { AgoraMediaSourceTypeAudioPlayout = 0, AgoraMediaSourceTypeRecording = 1, AgoraMediaSourceTypePrimaryCamera = 2, AgoraMediaSourceTypeSecondaryCamera = 3, AgoraMediaSourceTypePrimaryScreen = 4, AgoraMediaSourceTypeSecondaryScreen = 5, AgoraMediaSourceTypeCustomVideo = 6, AgoraMediaSourceTypeMediaPlayer = 7, AgoraMediaSourceTypeRtcImagePng = 8, AgoraMediaSourceTypeRtcImageJpeg = 9, AgoraMediaSourceTypeRtcImageGif = 10, AgoraMediaSourceTypeRemoteVideo = 11, AgoraMediaSourceTypeTranscodedVideo = 12, AgoraMediaSourceTypeSpeechDriven = 13, AgoraMediaSourceTypeUnknown = 100 }
enum | AgoraAudioSourceType { AgoraAudioSourceMicrophone = 0, AgoraAudioSourceCustom = 1, AgoraAudioSourceMediaPlayer = 2, AgoraAudioSourceLoopbackRecording = 3, AgoraAudioSourceMixedStream = 4, AgoraAudioSourceRemoteUser = 5, AgoraAudioSourceRemoteChannel = 6, AgoraAudioSourceTypeUnknown = 100 }
enum | AgoraVideoSourceType { AgoraVideoSourceTypeCamera = 0, AgoraVideoSourceTypeCameraSecondary = 1, AgoraVideoSourceTypeScreen = 2, AgoraVideoSourceTypeScreenSecondary = 3, AgoraVideoSourceTypeCustom = 4, AgoraVideoSourceTypeMediaPlayer = 5, AgoraVideoSourceTypeImagePNG = 6, AgoraVideoSourceTypeImageJPEG = 7, AgoraVideoSourceTypeImageGIF = 8, AgoraVideoSourceTypeRemote = 9, AgoraVideoSourceTypeTransCoded = 10, AgoraVideoSourceTypeCameraThird = 11, AgoraVideoSourceTypeCameraFourth = 12, AgoraVideoSourceTypeScreenThird = 13, AgoraVideoSourceTypeScreenFourth = 14, AgoraVideoSourceTypeSpeechDriven = 15, AgoraVideoSourceTypeUnknown = 100 }
enum | AgoraExternalVideoSourceType { AgoraExternalVideoSourceTypeVideoFrame = 0, AgoraExternalVideoSourceTypeEncodedVideoFrame }
enum | AgoraSimulcastStreamMode { AgoraAutoSimulcastStream = -1, AgoraDisableSimulcastStream = 0, AgoraEnableSimulcastStream = 1 }
enum | AgoraStreamLayerIndex { AgoraStreamLayer1 = 0, AgoraStreamLayer2 = 1, AgoraStreamLayer3 = 2, AgoraStreamLayer4 = 3, AgoraStreamLayer5 = 4, AgoraStreamLayer6 = 5, AgoraStreamLow = 6, AgoraStreamLayerCountMax = 7 }
enum | AgoraMediaStreamType { AgoraMediaStreamTypeUnknown = 0, AgoraMediaStreamTypeVideo = 1, AgoraMediaStreamTypeAudio = 2, AgoraMediaStreamTypeSubtitle = 3 }
enum | AgoraMediaPlayerRenderMode { AgoraMediaPlayerRenderModeHidden = 1, AgoraMediaPlayerRenderModeFit = 2 }
enum | AgoraMediaPlayerReason { AgoraMediaPlayerReasonNone = 0, AgoraMediaPlayerReasonInvalidArguments = -1, AgoraMediaPlayerReasonInternal = -2, AgoraMediaPlayerReasonNoSource = -3, AgoraMediaPlayerReasonInvalidMediaSource = -4, AgoraMediaPlayerReasonUnknowStreamType = -5, AgoraMediaPlayerReasonObjNotInitialized = -6, AgoraMediaPlayerReasonCodecNotSupported = -7, AgoraMediaPlayerReasonVideoRenderFailed = -8, AgoraMediaPlayerReasonInvalidState = -9, AgoraMediaPlayerReasonUrlNotFound = -10, AgoraMediaPlayerReasonInvalidConnectState = -11, AgoraMediaPlayerReasonSrcBufferUnderflow = -12, AgoraMediaPlayerReasonInterrupted = -13, AgoraMediaPlayerReasonNotSupported = -14, AgoraMediaPlayerReasonTokenExpired = -15, AgoraMediaPlayerReasonIpExpired = -16, AgoraMediaPlayerReasonUnknown = -17 }
enum | AgoraMediaPlayerEvent { AgoraMediaPlayerEventSeekBegin = 0, AgoraMediaPlayerEventSeekComplete = 1, AgoraMediaPlayerEventSeekError = 2, AgoraMediaPlayerEventAudioTrackChanged = 5, AgoraMediaPlayerEventBufferLow = 6, AgoraMediaPlayerEventBufferRecover = 7, AgoraMediaPlayerEventFreezeStart = 8, AgoraMediaPlayerEventFreezeStop = 9, AgoraMediaPlayerEventSwitchBegin = 10, AgoraMediaPlayerEventSwitchComplete = 11, AgoraMediaPlayerEventSwitchError = 12, AgoraMediaPlayerEventFirstDisplayed = 13, AgoraMediaPlayerEventReachCacheFileMaxCount = 14, AgoraMediaPlayerEventReachCacheFileMaxSize = 15, AgoraMediaPlayerEventTryOpenStart = 16, AgoraMediaPlayerEventTryOpenSucceed = 17, AgoraMediaPlayerEventTryOpenFailed = 18, AgoraMediaPlayerEventHttpRedirect = 19 }
enum | AgoraMediaPlayerMetaDataType { AgoraMediaPlayerMetaDataTypeUnknown = 0, AgoraMediaPlayerMetaDataTypeSEI = 1 }
enum | AgoraPermissionType { AgoraPermissionTypeRecordAudio = 0, AgoraPermissionTypeCamera = 1 }
enum | AgoraEarMonitoringFilterType { AgoraEarMonitoringFilterNone = (1<<0), AgoraEarMonitoringFilterBuiltInAudioFilters = (1<<1), AgoraEarMonitoringFilterNoiseSuppression = (1<<2), AgoraEarMonitoringFilterBuiltInAudioFiltersWithNoiseSuppression = (1<<1) | (1<<2), AgoraEarMonitoringFilterReusePostProcessingFilter = (1<<15) }
enum | AgoraAudioFramePosition { AgoraAudioFramePositionPlayback = 1 << 0, AgoraAudioFramePositionRecord = 1 << 1, AgoraAudioFramePositionMixed = 1 << 2, AgoraAudioFramePositionBeforeMixing = 1 << 3, AgoraAudioFramePositionEarMonitoring = 1 << 4 }
enum | AgoraVideoContentHint { AgoraVideoContentHintNone = 0, AgoraVideoContentHintMotion = 1, AgoraVideoContentHintDetails = 2 }
enum | AgoraThreadPriorityType { AgoraThreadPriorityTypeLowest = 0, AgoraThreadPriorityTypeLow = 1, AgoraThreadPriorityTypeNormal = 2, AgoraThreadPriorityTypeHigh = 3, AgoraThreadPriorityTypeHighest = 4, AgoraThreadPriorityTypeCritical = 5 }
enum | AgoraAudioDualMonoMode { AgoraAudioDualMonoStereo, AgoraAudioDualMonoL, AgoraAudioDualMonoR }
enum | AgoraRhythmPlayerState { AgoraRhythmPlayerStateIdle = 810, AgoraRhythmPlayerStateOpening, AgoraRhythmPlayerStateDecoding, AgoraRhythmPlayerStatePlaying, AgoraRhythmPlayerStateFailed }
enum | AgoraRhythmPlayerReason { AgoraRhythmPlayerReasonOK = 0, AgoraRhythmPlayerReasonFailed = 1, AgoraRhythmPlayerReasonCanNotOpen = 801, AgoraRhythmPlayerReasonCanNotPlay, AgoraRhythmPlayerReasonFileOverDurationLimit }
enum | AgoraVideoTranscoderError { AgoraVideoTranscoderErrorOK = 0, AgoraVideoTranscoderErrorVideoSourceNotReady = 1, AgoraVideoTranscoderErrorInvalidVideoSourceType = 2, AgoraVideoTranscoderErrorInvalidImagePath = 3, AgoraVideoTranscoderErrorUnsupportImageFormat = 4, AgoraVideoTranscoderErrorInvalidLayout = 5, AgoraVideoTranscoderErrorInternal = 20 }
enum | AgoraProxyType { AgoraNoneProxyType = 0, AgoraUdpProxyType = 1, AgoraTcpProxyType = 2, AgoraLocalProxyType = 3, AgoraTcpProxyAutoFallbackType = 4, AgoraHttpProxyType = 5, AgoraHttpsProxyType = 6 }
enum | AgoraVideoViewSetupMode
enum | AgoraVideoFramePosition { AgoraVideoFramePositionPostCapture = 1 << 0, AgoraVideoFramePositionPreRenderer = 1 << 1, AgoraVideoFramePositionPreEncoder = 1 << 2 }
enum | AgoraWlAccReason { AgoraWlAccMessageReasonWeakSignal = 0, AgoraWlAccMessageReasonChannelCongestion = 1 }
enum | AgoraWlAccAction { AgoraWlAccSuggestActionCloseToWIFI = 0, AgoraWlAccSuggestActionConnectSSID = 1, AgoraWlAccSuggestActionCheck5G = 2, AgoraWlAccSuggestActionModifySSID = 3 }
enum | AgoraMediaRecorderState { AgoraMediaRecorderStateError = -1, AgoraMediaRecorderStateStarted = 2, AgoraMediaRecorderStateStopped = 3 }
enum | AgoraMediaRecorderReasonCode { AgoraMediaRecorderReasonCodeNoError = 0, AgoraMediaRecorderReasonCodeWriteFailed = 1, AgoraMediaRecorderReasonCodeNoStream = 2, AgoraMediaRecorderReasonCodeOverMaxDuration = 3, AgoraMediaRecorderReasonCodeConfigChange = 4 }
enum | AgoraMediaRecorderStreamType { AgoraMediaRecorderStreamTypeAudio = 1, AgoraMediaRecorderStreamTypeVideo = 2, AgoraMediaRecorderStreamTypeBoth = 3 }
enum | AgoraMediaRecorderContainerFormat { AgoraMediaRecorderContainerFormatMP4 = 1 }
enum | AgoraRecorderStreamType { AgoraRecorderStreamTypeRtc = 0, AgoraRecorderStreamTypePreview = 1 }
enum | AgoraScreenCaptureSourceType { AgoraScreenCaptureSourceTypeUnknown = -1, AgoraScreenCaptureSourceTypeWindow = 0, AgoraScreenCaptureSourceTypeScreen = 1, AgoraScreenCaptureSourceTypeCustom = 2 }
enum | AUDIO_AINS_MODE { AINS_MODE_BALANCED = 0, AINS_MODE_AGGRESSIVE = 1, AINS_MODE_ULTRALOWLATENCY = 2 }
enum | AgoraVideoModulePosition { AgoraVideoModulePositionPostCapture = 1 << 0, AgoraVideoModulePositionPreRenderer = 1 << 1, AgoraVideoModulePositionPreEncoder = 1 << 2, AgoraVideoModulePositionPostCaptureOrigin = 1 << 3 }
enum | AgoraMediaTraceEvent { AgoraMediaTraceEventVideoRendered = 0, AgoraMediaTraceEventVideoDecoded = 1 }
enum | AgoraAlphaStitchMode { AgoraNoAlphaStitch = 0, AgoraAlphaStitchUp = 1, AgoraAlphaStitchBelow = 2, AgoraAlphaStitchLeft = 3, AgoraAlphaStitchRight = 4 }

## Enumeration Type Documentation

## ◆ AgoraVideoCodecCapabilityLevel

enum AgoraVideoCodecCapabilityLevel

Enumerator
AgoraVideoCodecCapabilityLevelUnspecified |
AgoraVideoCodecCapabilityLevelBasicSupport |
AgoraVideoCodecCapabilityLevel1080p30fps |
AgoraVideoCodecCapabilityLevel1080p60fps |
AgoraVideoCodecCapabilityLevel4k60fps |

## ◆ AgoraVideoHwEncoderAccelerating

enum AgoraVideoHwEncoderAccelerating

Enumerator
AgoraVideoHwEncoderSoftware |
AgoraVideoHwEncoderHardware |

## ◆ AgoraVideoFrameOrientation

enum AgoraVideoFrameOrientation

Enumerator
AgoraVideoFrameOrientation0 |
AgoraVideoFrameOrientation90 |
AgoraVideoFrameOrientation180 |
AgoraVideoFrameOrientation270 |

## ◆ AgoraVideoCodecTypeForStream

enum AgoraVideoCodecTypeForStream

The video codec type of the output video stream.

Since
  v3.2.0

Enumerator
AgoraVideoCodecTypeH264ForStream | 1: (Default) H.264
AgoraVideoCodecTypeH265ForStream | 2: H.265

## ◆ AgoraChannelProfile

enum AgoraChannelProfile

The channel profile.

Enumerator
AgoraChannelProfileCommunication | 0: Communication. This profile prioritizes smoothness and applies to the one-to-one scenario.
AgoraChannelProfileLiveBroadcasting | 1: (Default) Live Broadcast. This profile prioritizes supporting a large audience in a live broadcast channel.
AgoraChannelProfileGame | Deprecated: 2: Gaming.
AgoraChannelProfileCloudGaming | Deprecated: 3: Cloud Gaming.
AgoraChannelProfileCommunication_1v1 | Deprecated: 4：1-to-1 communication.

## ◆ AgoraClientRole

enum AgoraClientRole

Client role.

Enumerator
AgoraClientRoleBroadcaster | Broadcaster
AgoraClientRoleAudience | Audience

## ◆ AgoraAudienceLatencyLevelType

enum AgoraAudienceLatencyLevelType

Audience latency levels in broadcaster mode.

Enumerator
AgoraAudienceLatencyLevelLowLatency | 1: Low latency. A low latency audience's jitter buffer is 1.2 second.
AgoraAudienceLatencyLevelUltraLowLatency | 2: Default Ultra low latency. An ultra low latency audience's jitter buffer is 0.5 second.

## ◆ AgoraCaptureBrightnessLevelType

enum AgoraCaptureBrightnessLevelType

The brightness level of the video image captured by the local camera.

Enumerator
AgoraCaptureBrightnessLevelInvalid | -1: The SDK does not detect the brightness level of the video image. Wait a few seconds to get the brightness level in the next callback.
AgoraCaptureBrightnessLevelNormal | 0: The brightness level of the video image is normal.
AgoraCaptureBrightnessLevelBright | 1: The brightness level of the video image is too bright.
AgoraCaptureBrightnessLevelDark | 2: The brightness level of the video image is too dark.

## ◆ AgoraCloudProxyType

enum AgoraCloudProxyType

The cloud proxy type.

Enumerator
AgoraNoneProxy | Do not use the cloud proxy.
AgoraUdpProxy | The cloud proxy for the UDP protocol.
AgoraTcpProxy | The cloud proxy for the TCP (encrypted) protocol.

## ◆ AgoraUserOfflineReason

enum AgoraUserOfflineReason

Reason for the user being offline

Enumerator
AgoraUserOfflineReasonQuit | A user has quit the call.
AgoraUserOfflineReasonDropped | The SDK timed out and the user dropped offline because it has not received any data package within a certain period of time. If a user quits the call and the message is not passed to the SDK (due to an unreliable channel), the SDK assumes the event has timed out.
AgoraUserOfflineReasonBecomeAudience | User switched to an audience

## ◆ AgoraLogFilter

enum AgoraLogFilter

Output log filter level

Enumerator
AgoraLogFilterOff | Do not output any log information.
AgoraLogFilterDebug | Output all API log information
AgoraLogFilterInfo | Output CRITICAL, ERROR, WARNING, and INFO level log information.
AgoraLogFilterWarning | Outputs CRITICAL, ERROR, and WARNING level log information.
AgoraLogFilterError | Outputs CRITICAL and ERROR level log information
AgoraLogFilterCritical | Outputs CRITICAL level log information.

## ◆ AgoraAudioFileRecordingType

enum AgoraAudioFileRecordingType

The audio file record type.

Enumerator
AgoraAudioFileRecordingTypeMic | mic audio file recording.
AgoraAudioFileRecordingTypePlayback | playback audio file recording.
AgoraAudioFileRecordingTypeMixed | mixed audio file recording.

## ◆ AgoraAudioEncodedFrameDelegatePosition

enum AgoraAudioEncodedFrameDelegatePosition

The encoded audio frame observer position.

Enumerator
AgoraAudioEncodedFrameObserverPositionRecord | mic audio file recording.
AgoraAudioEncodedFrameObserverPositionPlayback | playback audio file recording.
AgoraAudioEncodedFrameObserverPositionMixed | mixed audio file recording.

## ◆ AgoraAudioCodecType

enum AgoraAudioCodecType

The codec type of audio

Enumerator
AgoraAudioCodecTypeOPUS |
AgoraAudioCodecTypeAACLC |
AgoraAudioCodecTypeHEAAC |
AgoraAudioCodecTypeHEAAC2 |

## ◆ AgoraAudioEncodingType

enum AgoraAudioEncodingType

the audio encoding type of audio encoded frame delegate

Enumerator
AgoraAudioEncodingTypeAAC16000Low | codecType AAC; sampleRate 16000; quality low which around 1.2 MB after 10 minutes
AgoraAudioEncodingTypeAAC16000Medium | codecType AAC; sampleRate 16000; quality medium which around 2 MB after 10 minutes
AgoraAudioEncodingTypeAAC32000Low | codecType AAC; sampleRate 32000; quality low which around 1.2 MB after 10 minutes
AgoraAudioEncodingTypeAAC32000Medium | codecType AAC; sampleRate 32000; quality medium which around 2 MB after 10 minutes
AgoraAudioEncodingTypeAAC32000High | codecType AAC; sampleRate 32000; quality high which around 3.5 MB after 10 minutes
AgoraAudioEncodingTypeAAC48000Medium | codecType AAC; sampleRate 48000; quality medium which around 2 MB after 10 minutes
AgoraAudioEncodingTypeAAC48000High | codecType AAC; sampleRate 48000; quality high which around 3.5 MB after 10 minutes
AgoraAudioEncodingTypeOPUS16000Low | codecType OPUS; sampleRate 16000; quality low which around 1.2 MB after 10 minutes
AgoraAudioEncodingTypeOPUS6000Medium | codecType OPUS; sampleRate 16000; quality medium which around 2 MB after 10 minutes
AgoraAudioEncodingTypeOPUS48000Medium | codecType OPUS; sampleRate 48000; quality medium which around 2 MB after 10 minutes
AgoraAudioEncodingTypeOPUS48000High | codecType OPUS; sampleRate 48000; quality high which around 3.5 MB after 10 minutes

## ◆ AgoraNetworkQuality

enum AgoraNetworkQuality

Network quality

Enumerator
AgoraNetworkQualityUnknown | The network quality is unknown.
AgoraNetworkQualityExcellent | The network quality is excellent.
AgoraNetworkQualityGood | The network quality is quite good, but the bitrate may be slightly lower than excellent.
AgoraNetworkQualityPoor | Users can feel the communication slightly impaired.
AgoraNetworkQualityBad | Users can communicate only not very smoothly.
AgoraNetworkQualityVBad | The network is so bad that users can hardly communicate.
AgoraNetworkQualityDown | The network is down and users cannot communicate at all.
AgoraNetworkQualityUnsupported | Users cannot detect the network quality. (Not in use.)
AgoraNetworkQualityDetecting | Detecting the network quality.

## ◆ AgoraExperienceQuality

enum AgoraExperienceQuality

Quality of experience (QoE) of the local user when receiving a remote audio stream.

Enumerator
AgoraExperienceQualityGood | QoE of the local user is good.
AgoraExperienceQualityBad | QoE of the local user is poor.

## ◆ AgoraExperiencePoorReason

enum AgoraExperiencePoorReason

The reason for poor QoE of the local user when receiving a remote audio stream.

Enumerator
AgoraExperiencePoorReasonNone | 0: No reason, indicating good QoE of the local user.
AgoraExperiencePoorReasonRemoteNetworkQualityPoor | 1: The remote user's network quality is poor.
AgoraExperiencePoorReasonLocalNetworkQualityPoor | 2: The local user's network quality is poor.
AgoraExperiencePoorReasonWirelessSignalPoor | 4: The local user's Wi-Fi or mobile network signal is weak.
AgoraExperiencePoorReasonWifiBluetoothCoexist | 8: The local user enables both Wi-Fi and bluetooth, and their signals interfere with each other. As a result, audio transmission quality is undermined.

## ◆ AgoraLastmileProbeResultState

enum AgoraLastmileProbeResultState

The state of the probe test.

Enumerator
AgoraLastmileProbeResultComplete | 1: The last-mile network probe test is complete.
AgoraLastmileProbeResultIncompleteNoBwe | 2: The last-mile network probe test is incomplete and the bandwidth estimation is not available, probably due to limited test resources.
AgoraLastmileProbeResultUnavailable | 3: The last-mile network probe test is not carried out, probably due to poor network conditions.

## ◆ AgoraUploadErrorReason

enum AgoraUploadErrorReason

Enumerator
AgoraUploadErrorReasonSuccess |
AgoraUploadErrorReasonNetError |
AgoraUploadErrorReasonServerError |

## ◆ AgoraVideoStreamType

enum AgoraVideoStreamType

Video stream type

Enumerator
AgoraVideoStreamTypeHigh | 0: The high-quality video stream, which has the highest resolution and bitrate.
AgoraVideoStreamTypeLow | 1: The low-quality video stream, which has the lowest resolution and bitrate
AgoraVideoStreamTypeLayer1 | 4: The video stream of layer_1, which has a lower resolution and bitrate than VIDEO_STREAM_HIGH
AgoraVideoStreamTypeLayer2 | 5: The video stream of layer_2, which has a lower resolution and bitrate than VIDEO_STREAM_LAYER_1
AgoraVideoStreamTypeLayer3 | 6: The video stream of layer_3, which has a lower resolution and bitrate than VIDEO_STREAM_LAYER_2.
AgoraVideoStreamTypeLayer4 | 7: The video stream of layer_4, which has a lower resolution and bitrate than VIDEO_STREAM_LAYER_3.
AgoraVideoStreamTypeLayer5 | 8: The video stream of layer_5, which has a lower resolution and bitrate than VIDEO_STREAM_LAYER_4
AgoraVideoStreamTypeLayer6 | 9: The video stream of layer_6, which has a lower resolution and bitrate than VIDEO_STREAM_LAYER_5

## ◆ AgoraVideoQualityAdaptIndication

enum AgoraVideoQualityAdaptIndication

Quality change of the local video in terms of target frame rate and target bit rate since last count.

Enumerator
AgoraVideoQualityAdaptNone | The quality of the local video stays the same.
AgoraVideoQualityAdaptUpBandwidth | The quality improves because the network bandwidth increases.
AgoraVideoQualityAdaptDownBandwidth | The quality worsens because the network bandwidth decreases.

## ◆ AgoraVideoRenderMode

enum AgoraVideoRenderMode

Video display mode

Enumerator
AgoraVideoRenderModeHidden | Hidden(1): Uniformly scale the video until it fills the visible boundaries (cropped). One dimension of the video may have clipped contents.
AgoraVideoRenderModeFit | Fit(2): Uniformly scale the video until one of its dimension fits the boundary (zoomed to fit). Areas that are not filled due to the disparity in the aspect ratio will be filled with black.
AgoraVideoRenderModeAdaptive | Deprecated: Adaptive(3)：This mode is obsolete.

## ◆ AgoraVideoLocalState

enum AgoraVideoLocalState

States of the local video.

Enumerator
AgoraVideoLocalStateStopped | 0: The local video is in the initial state.
AgoraVideoLocalStateCapturing | 1: The capturer starts successfully.
AgoraVideoLocalStateEncoding | 2: The first video frame is encoded successfully.
AgoraVideoLocalStateFailed | 3: The local video fails to start.

## ◆ AgoraLocalVideoStreamReason

enum AgoraLocalVideoStreamReason

States of the local video.

Enumerator
AgoraLocalVideoStreamReasonOK | 0: The local video is normal.
AgoraLocalVideoStreamReasonFailure | 1: No specified reason for the local video failure.
AgoraLocalVideoStreamReasonDeviceNoPermission | 2: The application does not have permission to start the local video capture device. Remind your user to grant permission and rejoin the channel.
AgoraLocalVideoStreamReasonDeviceBusy | 3: The local video capture device is in use. Check whether the camera is occupied by another application or try to rejoin the channel.
AgoraLocalVideoStreamReasonCaptureFailure | 4: The local video capture failed. Check whether the video capture device is working properly, check whether the camera is occupied by another application, or try to rejoin the channel.
AgoraLocalVideoStreamReasonCodecNotSupport | 5: The local video encoding fails.
AgoraLocalVideoStreamReasonCaptureInBackGround | 6: (iOS only) The application is in the background. Remind your user that the application cannot capture video properly when the application is in the background.
AgoraLocalVideoStreamReasonCaptureMultipleForegroundApps | 7: (iOS only) The application is running in Slide Over, Split View, or Picture in Picture mode. Remind your user that the application cannot capture video properly when the application is running in Slide Over, Split View, or Picture in Picture mode.
AgoraLocalVideoStreamReasonCaptureNoDeviceFound | 8: The SDK cannot find the local video capture device. Check whether the camera is connected to the device properly, check whether the camera is working properly, or try to rejoin the channel.
AgoraLocalVideoStreamReasonCaptureDeviceDisconnected | 9: (macOS only) The external camera currently in use is disconnected (such as being unplugged).
AgoraLocalVideoStreamReasonCaptureDeviceInvalidId | 10: The SDK cannot find the local video device id in device list, device id is invalid.
AgoraLocalVideoStreamReasonScreenCaptureWindowMinimized | 11: (macOS only) The shared window is minimized when you call [startScreenCaptureByWindowId]([AgoraRtcEngineKit startScreenCaptureByWindowId:rectangle:parameters:]) to share a window. Remind your user that the window cannot be shared properly when the shared window is minimized.
AgoraLocalVideoStreamReasonScreenCaptureWindowClosed | 12: (macOS only) The error code indicates that a window shared by the window ID has been closed, or a full-screen window shared by the window ID has exited full-screen mode. After exiting full-screen mode, remote users cannot see the shared window. To prevent remote users from seeing a black screen, Agora recommends that you immediately stop screen sharing. Common scenarios for reporting this error code: When the local user closes the shared window, the SDK reports this error code.t The local user shows some slides in full-screen mode first, and then shares the windows of the slides. After the user exits full-screen mode, the SDK reports this error code. The local user watches web video or reads web document in full-screen mode first, and then shares the window of the web video or document. After the user exits full-screen mode, the SDK reports this error code.
AgoraLocalVideoStreamReasonScreenCaptureNoPermission | 22: No permision to capture screen.
AgoraLocalVideoStreamReasonScreenCaptureRecoverFromMinimized | 27: The window is recovered from miniminzed
AgoraLocalVideoStreamReasonScreenCaptureDisplayDisconnected | 30: The shared display has been disconnected

## ◆ AgoraVideoRemoteReason

enum AgoraVideoRemoteReason

The reason of the remote video state change.

Enumerator
AgoraVideoRemoteReasonInternal | 0: Internal reasons.
AgoraVideoRemoteReasonCongestion | 1: Network congestion.
AgoraVideoRemoteReasonRecovery | 2: Network recovery.
AgoraVideoRemoteReasonLocalMuted | 3: The local user stops receiving the remote video stream or disables the video module.
AgoraVideoRemoteReasonLocalUnmuted | 4: The local user resumes receiving the remote video stream or enables the video module.
AgoraVideoRemoteReasonRemoteMuted | 5: The remote user stops sending the video stream or disables the video module.
AgoraVideoRemoteReasonRemoteUnmuted | 6: The remote user resumes sending the video stream or enables the video module.
AgoraVideoRemoteReasonRemoteOffline | 7: The remote user leaves the channel.
AgoraVideoRemoteReasonAudioFallback | 8: The remote media stream falls back to the audio-only stream due to poor network conditions.
AgoraVideoRemoteReasonAudioFallbackRecovery | 9: The remote media stream switches back to the video stream after the network conditions improve.
AgoraVideoRemoteReasonSDKInBackground | 12: (iOS only) The app of the remote user is in background.
AgoraVideoRemoteReasonCodecNotSupport | 13: The remote video stream is not supported by the decoder.

## ◆ AgoraAudioLocalState

enum AgoraAudioLocalState

The state of the local audio.

Enumerator
AgoraAudioLocalStateStopped | 0: The local audio is in the initial state.
AgoraAudioLocalStateRecording | 1: The recording device starts successfully.
AgoraAudioLocalStateEncoding | 2: The first audio frame encodes successfully.
AgoraAudioLocalStateFailed | 3: The local audio fails to start.

## ◆ AgoraAudioLocalReason

enum AgoraAudioLocalReason

The error information of the local audio.

Enumerator
AgoraAudioLocalReasonOK | 0: No error.
AgoraAudioLocalReasonFailure | 1: No specified reason for the local audio failure.
AgoraAudioLocalReasonDeviceNoPermission | 2: No permission to use the local audio device.
AgoraAudioLocalReasonDeviceBusy | 3: The microphone is in use.
AgoraAudioLocalReasonRecordFailure | 4: The local audio recording fails. Check whether the recording device is working properly.
AgoraAudioLocalReasonEncodeFailure | 5: The local audio encoding fails.
AgoraAudioLocalReasonNoRecordingDevice | 6: (macOS only) The SDK cannot find the local audio recording device.
AgoraAudioLocalReasonNoPlayoutDevice | 7: (macOS only) The SDK cannot find the local audio playback device.
AgoraAudioLocalReasonInterrupted | 8: (iOS only) The local audio is interrupted by system calls, Siri, alarm clock, etc.

## ◆ AgoraAudioCodecProfileType

enum AgoraAudioCodecProfileType

Audio codec profile.

Enumerator
AgoraAudioCodecProfileLCAAC | (Default) LC-AAC, the low-complexity audio codec profile.
AgoraAudioCodecProfileHEAAC | HE-AAC, the high-efficiency audio codec profile.
AgoraAudioCodecProfileHEAACv2 | HE-AACv2, which is the high-efficiency audio codec type.

## ◆ AgoraLicenseVerifyCode

enum AgoraLicenseVerifyCode

Enumerator
AgoraLicenseVerifyInvalid | 1: Invalid license
AgoraLicenseVerifyExpire | 2: License expired
AgoraLicenseVerifyMinutesExceed | 3: Exceed license minutes limit
AgoraLicenseVerifyLimitedPeriod | 4: License use in limited period
AgoraLicenseVerifyDiffDevices | 5: Same license used in different devices at the same time
AgoraLicenseVerifyInternal | 99: SDK internal error

## ◆ AgoraAudioRemoteState

enum AgoraAudioRemoteState

The state of the remote audio.

Enumerator
AgoraAudioRemoteStateStopped | 0: The remote audio stops (the default state). The following are possible reasons: AgoraAudioRemoteReasonLocalMuted(3) AgoraAudioRemoteReasonRemoteMuted(5) AgoraAudioRemoteReasonRemoteOffline(7)
AgoraAudioRemoteStateStarting | 1: The first remote audio packet is received.
AgoraAudioRemoteStateDecoding | 2: The remote audio stream is decoded and plays normally. The following are possible reasons: AgoraAudioRemoteReasonNetworkRecovery(2) AgoraAudioRemoteReasonLocalUnmuted(4) AgoraAudioRemoteReasonRemoteUnmuted(6)
AgoraAudioRemoteStateFrozen | 3: The remote audio is frozen. The possible reason is AgoraAudioRemoteReasonNetworkCongestion(1).
AgoraAudioRemoteStateFailed | 4: The remote audio fails to start. The possible reason is AgoraAudioRemoteReasonInternal(0).

## ◆ AgoraAudioRemoteReason

enum AgoraAudioRemoteReason

The reason of the remote audio state change.

Enumerator
AgoraAudioRemoteReasonInternal | 0: Internal reasons.
AgoraAudioRemoteReasonNetworkCongestion | 1: Network congestion.
AgoraAudioRemoteReasonNetworkRecovery | 2: Network recovery.
AgoraAudioRemoteReasonLocalMuted | 3: The local user stops receiving the remote audio stream or disables the audio module.
AgoraAudioRemoteReasonLocalUnmuted | 4: The local user resumes receiving the remote audio stream or enables the audio module.
AgoraAudioRemoteReasonRemoteMuted | 5: The remote user stops sending the audio stream or disables the audio module.
AgoraAudioRemoteReasonRemoteUnmuted | 6: The remote user resumes sending the audio stream or enables the audio module.
AgoraAudioRemoteReasonRemoteOffline | 7: The remote user leaves the channel.

## ◆ AgoraAudioProfile

enum AgoraAudioProfile

Audio profile types.

Enumerator
AgoraAudioProfileDefault | 0: The default audio profile. In the Communication profile, it represents a sample rate of 16 kHz, music encoding, mono, and a bitrate of up to 16 Kbps. In the Live-broadcast profile, it represents a sample rate of 48 kHz, music encoding, mono, and a bitrate of up to 64 Kbps.
AgoraAudioProfileSpeechStandard | 1: A sample rate of 32 kHz, audio encoding, mono, and a bitrate up to 18 Kbps.
AgoraAudioProfileMusicStandard | 2: A sample rate of 48 kHz, music encoding, mono, and a bitrate of up to 64 Kbps.
AgoraAudioProfileMusicStandardStereo | 3: A sample rate of 48 kHz, music encoding, stereo, and a bitrate of up to 80 Kbps.
AgoraAudioProfileMusicHighQuality | 4: A sample rate of 48 kHz, music encoding, mono, and a bitrate of up to 96 Kbps.
AgoraAudioProfileMusicHighQualityStereo | 5: A sample rate of 48 kHz, music encoding, stereo, and a bitrate of up to 128 Kbps.
AgoraAudioProfileIot | 6: A sample rate of 16 kHz, audio encoding, mono, and a bitrate of up to 64 Kbps.

## ◆ AgoraAudioScenario

enum AgoraAudioScenario

Audio application scenarios.

Enumerator
AgoraAudioScenarioDefault | 0: (Recommended) The default audio scenario.
AgoraAudioScenarioGameStreaming | 3: (Recommended) The live gaming scenario, which needs to enable gaming audio effects in the speaker. Choose this scenario to achieve high-fidelity music playback.
AgoraAudioScenarioChatRoom | 5: The chatroom scenario.
AgoraAudioScenarioChorus | Chorus
AgoraAudioScenarioMeeting | Meeting
AgoraAudioScenarioAIServer | AI Server @technical preview
AgoraAudioScenarioAiClient | AI Client

## ◆ AgoraAudioRawFrameOperationMode

enum AgoraAudioRawFrameOperationMode

Use mode of the onRecordAudioFrame callback

Enumerator
AgoraAudioRawFrameOperationModeReadOnly | Read-only mode: Users only read the AudioFrame data without modifying anything. For example, when users acquire data with the Agora SDK then push the RTMP streams.
AgoraAudioRawFrameOperationModeReadWrite | Read and write mode: Users read the data from AudioFrame, modify it, and then play it. For example, when users have their own sound-effect processing module and do some voice pre-processing such as a voice change.

## ◆ AgoraVoiceBeautifierPreset

enum AgoraVoiceBeautifierPreset

The options for SDK preset voice beautifier effects.

Enumerator
AgoraVoiceBeautifierPresetOff | Turn off voice beautifier effects and use the original voice.
AgoraVoiceBeautifierPresetChatBeautifierMagnetic | A more magnetic voice. Note Agora recommends using this enumerator to process a male-sounding voice; otherwise, you may experience vocal distortion.
AgoraVoiceBeautifierPresetChatBeautifierFresh | A fresher voice. Note Agora recommends using this enumerator to process a female-sounding voice; otherwise, you may experience vocal distortion.
AgoraVoiceBeautifierPresetChatBeautifierVitality | A more vital voice. Note Agora recommends using this enumerator to process a female-sounding voice; otherwise, you may experience vocal distortion.
AgoraVoiceBeautifierPresetSingingBeautifier | Since v3.3.0 Singing beautifier effect. If you call setVoiceBeautifierPreset (SINGING_BEAUTIFIER), you can beautify a male-sounding voice and add a reverberation effect that sounds like singing in a small room. Agora recommends not using setVoiceBeautifierPreset (SINGING_BEAUTIFIER) to process a female-sounding voice; otherwise, you may experience vocal distortion. If you call setVoiceBeautifierParameters(SINGING_BEAUTIFIER, param1, param2), you can beautify a male- or female-sounding voice and add a reverberation effect.
AgoraVoiceBeautifierTimbreTransformationVigorous | A more vigorous voice.
AgoraVoiceBeautifierTimbreTransformationDeep | A deeper voice.
AgoraVoiceBeautifierTimbreTransformationMellow | A mellower voice.
AgoraVoiceBeautifierTimbreTransformationFalsetto | A falsetto voice.
AgoraVoiceBeautifierTimbreTransformationFull | A fuller voice.
AgoraVoiceBeautifierTimbreTransformationClear | A clearer voice.
AgoraVoiceBeautifierTimbreTransformationResounding | A more resounding voice.
AgoraVoiceBeautifierTimbreTransformatRinging | A more ringing voice.
AgoraVoiceBeautifierUltraHighQuality |

## ◆ AgoraVoiceConversionPreset

enum AgoraVoiceConversionPreset

The options for SDK preset voice conversion.

Enumerator
AgoraVoiceConversionPresetOff | Turn off voice conversion and use the original voice.
AgoraVoiceConversionPresetNeutral | A neutral voice.
AgoraVoiceConversionPresetSweet | A sweet voice.
AgoraVoiceConversionPresetChangerSolid | A solid voice.
AgoraVoiceConversionPresetChangerBass | A bass voice.
AgoraVoiceConversionPresetChangerCartoon | A voice like a cartoon character.
AgoraVoiceConversionPresetChangerChildlike | A voice like a child.
AgoraVoiceConversionPresetChangerPhoneOperator | A voice like a phone operator.
AgoraVoiceConversionPresetChangerMonster | A monster voice.
AgoraVoiceConversionPresetChangerTransformers | A voice like Transformers.
AgoraVoiceConversionPresetChangerGroot | A voice like Groot.
AgoraVoiceConversionPresetChangerDarthVader | A voice like Darth Vader.
AgoraVoiceConversionPresetChangerIronLady | A rough female voice.
AgoraVoiceConversionPresetChangerShinchan | A voice like Crayon Shin-chan.
AgoraVoiceConversionPresetChangerGirlishMan | A voice like a castrato.
AgoraVoiceConversionPresetChangerChipmunk | A voice like chipmunk.

## ◆ AgoraHeadphoneEQPreset

enum AgoraHeadphoneEQPreset

Enumerator
AgoraAudioHeadphoneEQPresetOff | Turn off headphone EQ and use the original voice.
AgoraAudioHeadphoneEQPresetOverear | For over-ear headphones.
AgoraAudioHeadphoneEQPresetInear | For in-ear headphones.

## ◆ AgoraVoiceAITunerType

enum AgoraVoiceAITunerType

Enumerator
AgoraVoiceAITunerMatureMale | Uncle, deep and magnetic male voice.
AgoraVoiceAITunerFreshMale | Fresh male, refreshing and sweet male voice.
AgoraVoiceAITunerElegantFemale | Big sister, deep and charming female voice.
AgoraVoiceAITunerSweetFemale | Lolita, high-pitched and cute female voice.
AgoraVoiceAITunerWarmMaleSinging | Warm man singing, warm and melodic male voice that is suitable for male lyrical songs.
AgoraVoiceAITunerGentleFemaleSinging | Gentle female singing, soft and delicate female voice that is suitable for female lyrical songs.
AgoraVoiceAITunerHuskyMaleSinging | Smoky uncle singing, unique husky male voice that is suitable for rock or blues songs.
AgoraVoiceAITunerWarmElegantFemaleSinging | Warm big sister singing, warm and mature female voice that is suitable for emotionally powerful songs.
AgoraVoiceAITunerPowerfulMaleSinging | Forceful male singing, strong and powerful male voice that is suitable for passionate songs.
AgoraVoiceAITunerDreamyFemaleSinging | Dreamy female singing, dreamlike and soft female voice that is suitable for airy and dream-like songs.

## ◆ AgoraVideoFormat

enum AgoraVideoFormat

Video frame format

Enumerator
AgoraVideoFormatI420 | i420 video frame fromat
AgoraVideoFormatBGRA | BGRA video frame fromat
AgoraVideoFormatNV21 | NV21 video frame fromat
AgoraVideoFormatRGBA | RGBA video frame fromat
AgoraVideoFormatNV12 | NV12 video frame fromat
AgoraVideoFormatCVPixelNV12 | iOS texture NV12 (CVPixelBufferRef)
AgoraVideoFormatCVPixelI420 | iOS texture I420 (CVPixelBufferRef)
AgoraVideoFormatCVPixelBGRA | iOS texture BGRA (CVPixelBufferRef)
AgoraVideoFormatCVPixelP010 | iOS texture P010 (CVPixelBufferRef)
AgoraVideoFormatI422 | I422 video frame fromat
AgoraVideoFormatI010 | I010 video frame fromat
AgoraVideoFormatDefault | Internal default fromat

## ◆ AgoraVideoFrameType

enum AgoraVideoFrameType

Types of the video frame.

Enumerator
AgoraVideoFrameTypeBlankFrame | (Default) Blank frame
AgoraVideoFrameTypeKeyFrame | (Default) Key frame
AgoraVideoFrameTypeDeltaFrame | (Default) Delta frame
AgoraVideoFrameTypeBFrame | (Default) B frame
AgoraVideoFrameTypeDroppableFrame | (Default) Droppable frame
AgoraVideoFrameTypeUnknow | (Default) Unknown frame type

## ◆ AgoraColorPrimaryID

enum AgoraColorPrimaryID

Enumerator
AgoraColorPrimaryIDBT709 |
AgoraColorPrimaryIDUnspecified |
AgoraColorPrimaryIDSMPTE170M |
AgoraColorPrimaryIDBT2020 |
AgoraColorPrimaryIDInvalid |

## ◆ AgoraColorTransferID

enum AgoraColorTransferID

Enumerator
AgoraColorTransferIDBT709 |
AgoraColorTransferIDUnspecified |
AgoraColorTransferIDSMPTE170M |
AgoraColorTransferIDSMPTEST2084 |
AgoraColorTransferIDARIB_STD_B67 |
AgoraColorTransferIDInvalid |

## ◆ AgoraColorMatrixID

enum AgoraColorMatrixID

Enumerator
AgoraColorMatrixIDRGB |
AgoraColorMatrixIDBT709 |
AgoraColorMatrixIDUnspecified |
AgoraColorMatrixIDSMPTE170M |
AgoraColorMatrixIDBT2020_NCL |
AgoraColorMatrixIDInvalid |

## ◆ AgoraColorRangeID

enum AgoraColorRangeID

Enumerator
AgoraColorRangeIDInvalid |
AgoraColorRangeIDLimited |
AgoraColorRangeIDFull |
AgoraColorRangeIDDerived |

## ◆ AgoraVideoFrameProcessMode

enum AgoraVideoFrameProcessMode

Enumerator
AgoraVideoFrameProcessModeReadOnly |
AgoraVideoFrameProcessModeReadWrite |

## ◆ AgoraConnectionState

enum AgoraConnectionState

The connection state of the SDK.

Enumerator
AgoraConnectionStateDisconnected | 1: The SDK is disconnected from the edge server.
AgoraConnectionStateConnecting | 2: The SDK is connecting to the edge server.
AgoraConnectionStateConnected | 3: The SDK is connected to the edge server and has joined a channel. You can now publish or subscribe to a media stream in the channel.
AgoraConnectionStateReconnecting | 4: The SDK keeps rejoining the channel after being disconnected from a joined channel because of network issues.
AgoraConnectionStateFailed | 5: The SDK fails to connect to the edge server or join the channel.

## ◆ AgoraNetworkType

enum AgoraNetworkType

The network type.

Enumerator
AgoraNetworkTypeUnknown | -1: The network type is unknown.
AgoraNetworkTypeDisconnected | 0: The network type is disconnected.
AgoraNetworkTypeLAN | 1: The network type is LAN.
AgoraNetworkTypeWIFI | 2: The network type is Wi-Fi.
AgoraNetworkType2G | 3: The network type is mobile 2G.
AgoraNetworkType3G | 4: The network type is mobile 3G.
AgoraNetworkType4G | 5: The network type is mobile 4G.
AgoraNetworkType5G | 6: The network type is mobile 5G.

## ◆ AgoraDegradationPreference

enum AgoraDegradationPreference

The video encoding degradation preference under limited bandwidth.

Enumerator
AgoraDegradationMaintainAuto | (Default) SDK uses option MAINTAIN_RESOLUTION By default. But If user set video scenario through API setVideoScenario or network state has changed, sdk may change this parameter between MAINTAIN_FRAMERATE、MAINTAIN_BALANCED and MAINTAIN_RESOLUTION automatically to get the best QOE.
AgoraDegradationMaintainQuality | (Deprecated) Degrade the frame rate and keep resolution to guarantee the video quality.
AgoraDegradationMaintainFramerate | Degrade resolution in order to maintain framerate.
AgoraDegradationBalanced | Maintain resolution in video quality control process. Under limited bandwidth, degrade video quality first and then degrade frame rate.
AgoraDegradationMaintainResolution | Degrade framerate in order to maintain resolution.
AgoraDegradationDisable | Disable VQC adjustion.

## ◆ AgoraEncodingPreference

enum AgoraEncodingPreference

The video AgoraHardwareEncoding.

Enumerator
AgoraEncodingPreferAuto | Default encoding.
AgoraEncodingPrefersoftware | Software encoding.
AgoraEncodingPreferhardware | Hardware encoding

## ◆ AgoraCompressionPreference

enum AgoraCompressionPreference

The video compression preference.

Enumerator
AgoraCompressionAuto | (Default) SDK uses compression preference according to setVideoScenario API settings, real-time network state and other relevant data information. If API setVideoScenario set video scenario to APPLICATION_SCENARIO_LIVESHOW, then PREFER_QUALITY is used. If not, then PREFER_LOW_LATENCY is used. Also if network state is changed, SDK may change this parameter between PREFER_QUALITY and PREFER_LOW_LATENCY automatically to get the best QOE. We recommend using this option.
AgoraCompressionLowLatency | Prefer low latency, normally used in real-time communication.
AgoraCompressionQuality | Prefer quality in sacrifice of a degree of latency, usually around 30ms ~ 150ms, depends target fps

## ◆ AgoraCodecCapMask

enum AgoraCodecCapMask

Supported codec bit mask types.

Enumerator
AgoraCodecMaskNone | No codec support.
AgoraCodecMaskHwDec | bit 1: Hardware decoder support flag
AgoraCodecMaskHwEnc | bit 2: Hardware encoder support flag
AgoraCodecMaskSwDec | bit 3: Software decoder support flag
AgoraCodecMaskSwEnc | bit 4: Software encoder support flag

## ◆ AgoraLighteningContrastLevel

enum AgoraLighteningContrastLevel

The lightening contrast level.

Enumerator
AgoraLighteningContrastLow | Low contrast level.
AgoraLighteningContrastNormal | (Default) Normal contrast level.
AgoraLighteningContrastHigh | High contrast level.

## ◆ AgoraFaceShapeArea

enum AgoraFaceShapeArea

The specific facial area to be adjusted.

Since
  v4.4.0

Enumerator
AgoraFaceShapeAreaNone | (Default) Invalid area.
AgoraFaceShapeAreaHeadScale | Head Scale, reduces the size of the head. The value range is [0, 100]. The default value is 50. The larger the value, the stronger the head reduction effect.
AgoraFaceShapeAreaForehead | Forehead, adjusts the size of the forehead. The value range is [0, 100]. The default value is 0. The larger the value, the stronger the forehead effect.
AgoraFaceShapeAreaFaceContour | Face Contour, slims the facial contour. The value range is [0, 100]. The default value is 0. The larger the value, the stronger the facial contour reduction effect.
AgoraFaceShapeAreaFaceLength | Face Length, adjusts the length of the face. The value range is [-100, 100]. The default value is 0. The larger the absolute value, the stronger the face length effect, negative values indicate the opposite direction.
AgoraFaceShapeAreaFaceWidth | Face Width, narrows the width of the face. The value range is [0, 100]. The default value is 0. The larger the value, the stronger the face width reduction effect.
AgoraFaceShapeAreaCheekbone | Cheekbone, adjusts the size of the cheekbone. The value range is [0, 100]. The default value is 0. The larger the value, the stronger the cheekbone effect.
AgoraFaceShapeAreaCheek | Cheek, adjusts the size of the cheek. The value range is [0, 100]. The default value is 0. The larger the value, the stronger the cheek effect.
AgoraFaceShapeAreaMandible | Mandible, slims the mandible. The value range is [0, 100]. The default value is 0. The larger the value, the stronger the mandible effect. Since v4.6.0
AgoraFaceShapeAreaChin | Chin, adjusts the length of the chin. The value range is [-100, 100]. The default value is 0. The larger the absolute value, the stronger the chin effect, negative values indicate the opposite direction.
AgoraFaceShapeAreaEyeScale | Eye Scale, adjusts the size of the eyes. The value range is [0, 100]. The default value is 50. The larger the value, the stronger the eye size effect.
AgoraFaceShapeAreaEyeDistance | Eye Distance, adjusts the distance between two eyes. The value range is [-100, 100]. The default value is 0. The larger the absolute value, the stronger the eye distance effect, negative values indicate the opposite direction. Since v4.6.0
AgoraFaceShapeAreaEyePosition | Eye Position, adjusts the upper and lower position of the eyes. The value range is [-100, 100]. The default value is 0. The larger the absolute value, the stronger the eye position effect, negative values indicate the opposite direction. Since v4.6.0
AgoraFaceShapeAreaLowerEyelid | Lower Eyelid, adjusts the downward position of the eyelids. The value range is [0, 100]. The default value is 0. The larger the value, the stronger the lower eyelid effect. Since v4.6.0
AgoraFaceShapeAreaEyePupils | Eye Pupils, adjusts the size of the pupils. The value range is [0, 100]. The default value is 0. The larger the value, the stronger the eye pupils effect. Since v4.6.0
AgoraFaceShapeAreaEyeInnerCorner | Eye Inner Corner, adjusts the inner corners of the eyes. The value range is [-100, 100]. The default value is 0. The larger the absolute value, the stronger the eye inner corner effect, negative values indicate the opposite direction. Since v4.6.0
AgoraFaceShapeAreaEyeOuterCorner | Eye Outer Corner, adjusts the outer corners of the eyes. The value range is [-100, 100]. The default value is 0. The larger the absolute value, the stronger the eye outer corner effect, negative values indicate the opposite direction. Since v4.6.0
AgoraFaceShapeAreaNoseLength | Nose Length, adjusts the length of the nose. The value range is [-100, 100]. The default value is 0.
AgoraFaceShapeAreaNoseWidth | Nose Width, adjusts the width of the nose. The value range is [0, 100]. The default value is 0. The larger the value, the stronger the nose width effect. Since v4.6.0
AgoraFaceShapeAreaNoseWing | Nose Wing, adjusts the size of the nose wings. The value range is [0, 100]. The default value is 10. The larger the value, the stronger the nose wing effect. Since v4.6.0
AgoraFaceShapeAreaNoseRoot | Nose Root, adjusts the size of the nose root. The value range is [0, 100]. The default value is 0. The larger the value, the stronger the nose root effect. Since v4.6.0
AgoraFaceShapeAreaNoseBridge | Nose Bridge, adjusts the size of the nose bridge. The value range is [0, 100]. The default value is 50. The larger the value, the stronger the nose bridge effect. Since v4.6.0
AgoraFaceShapeAreaNoseTip | Nose Tip, adjusts the size of the nose tip. The value range is [0, 100]. The default value is 50. The larger the value, the stronger the nose tip effect. Since v4.6.0
AgoraFaceShapeAreaNoseGeneral | Nose General, adjusts the overall size of the nose. The value range is [-100, 100]. The default value is 50. The larger the absolute value, the stronger the nose general effect, negative values indicate the opposite direction. Since v4.6.0
AgoraFaceShapeAreaMouthScale | Mouth Scale, adjusts the size of the mouth. The value range is [-100, 100]. The default value is 20. The larger the absolute value, the stronger the mouth size effect, negative values indicate the opposite direction. Since v4.6.0
AgoraFaceShapeAreaMouthPosition | Mouth Position, adjusts the position of the mouth. The value range is [0, 100]. The default value is 0. The larger the value, the stronger the mouth position effect. Since v4.6.0
AgoraFaceShapeAreaMouthSmile | Mouth Smile, adjusts the degree of the mouth's smile. The value range is [0, 100]. The default value is 30. The larger the value, the stronger the mouth smile effect. Since v4.6.0
AgoraFaceShapeAreaMouthLip | Mouth Lip, adjusts the size of the lips. The value range is [0, 100]. The default value is 0. The larger the value, the stronger the mouth lip effect. Since v4.6.0
AgoraFaceShapeAreaEyebrowPosition | Eyebrow Position, adjusts the position of the eyebrows. The value range is [-100, 100]. The default value is 0. The larger the absolute value, the stronger the eyebrow position effect, negative values indicate the opposite direction. Since v4.6.0
AgoraFaceShapeAreaEyebrowThickness | Eyebrow Thickness, adjusts the thickness of the eyebrows. The value range is [-100, 100]. The default value is 0. The larger the value, the stronger the eyebrow thickness effect. Since v4.6.0

## ◆ AgoraFaceShapeStyle

enum AgoraFaceShapeStyle

The face shape style.

Since
  v4.4.0

Enumerator
AgoraFaceShapeStyleFemale | (Default) Female face shape style.
AgoraFaceShapeStyleMale | Male face shape style.
AgoraFaceShapeStyleNatural | Natural face shape style. Since v4.6.0

## ◆ AgoraVideoDenoiserMode

enum AgoraVideoDenoiserMode

The video noise reduction mode.

Since
  v4.0.0

Enumerator
AgoraVideoDenoiserModeAuto | 0: (Default) Automatic mode. The SDK automatically enables or disables the video noise reduction feature according to the ambient light.
AgoraVideoDenoiserModeManual | 1: Manual mode. Users need to enable or disable the video noise reduction feature manually.

## ◆ AgoraVideoDenoiserLevel

enum AgoraVideoDenoiserLevel

The video noise reduction level.

Since
  v4.0.0

Enumerator
AgoraVideoDenoiserLevelHighQuality | 0: (Default) Promotes video quality during video noise reduction. `HighQuality` balances performance consumption and video noise reduction quality. The performance consumption is moderate, the video noise reduction speed is moderate, and the overall video quality is optimal.
AgoraVideoDenoiserLevelFast | 1: Promotes reducing performance consumption during video noise reduction. `Fast` prioritizes reducing performance consumption over video noise reduction quality. The performance consumption is lower, and the video noise reduction speed is faster. To avoid a noticeable shadowing effect (shadows trailing behind moving objects) in the processed video, Agora recommends that you use `Fast` when the camera is fixed.

## ◆ AgoraLowlightEnhanceMode

enum AgoraLowlightEnhanceMode

The low-light enhancement mode.

Since
  v4.0.0

Enumerator
AgoraLowlightEnhanceModeAuto | 0: (Default) Automatic mode. The SDK automatically enables or disables the low-light enhancement feature according to the ambient light to compensate for the lighting level or prevent overexposure, as necessary.
AgoraLowlightEnhanceModeManual | 1: Manual mode. Users need to enable or disable the low-light enhancement feature manually.

## ◆ AgoraLowlightEnhanceLevel

enum AgoraLowlightEnhanceLevel

The low-light enhancement level.

Since
  v4.0.0

Enumerator
AgoraLowlightEnhanceLevelQuality | 0: (Default) Promotes video quality during low-light enhancement. It processes the brightness, details, and noise of the video image. The performance consumption is moderate, the processing speed is moderate, and the overall video quality is optimal.
AgoraLowlightEnhanceLevelFast | 1: Promotes performance during low-light enhancement. It processes the brightness and details of the video image. The processing speed is faster.

## ◆ AgoraVirtualBackgroundSourceType

enum AgoraVirtualBackgroundSourceType

The type of the custom background image.

Since
  v3.7.200

Enumerator
AgoraVirtualBackgroundNone | 0: Enable segementation with the captured video frame without replacing the background.
AgoraVirtualBackgroundColor | 1: (Default) The background is a solid color.
AgoraVirtualBackgroundImg | 2: The background source is a file in PNG or JPG format.
AgoraVirtualBackgroundBlur | 3: The background source is the blurred original video frame.
AgoraVirtualBackgroundVideo | 4: The background source is a file in MP4, AVI, MKV, FLV format.

## ◆ AgoraBlurDegree

enum AgoraBlurDegree

The lightening contrast level.

Enumerator
AgoraBlurLow | Background few things
AgoraBlurMedium | Background blur more things
AgoraBlurHigh | Background blur most

## ◆ SegModelType

enum SegModelType

Enumerator
SegModelAgoraAi |
SegModelAgoraGreen |

## ◆ AgoraConnectionChangedReason

enum AgoraConnectionChangedReason

Enumerator
AgoraConnectionChangedReasonConnecting | 0: The SDK is connecting to Agora's edge server.
AgoraConnectionChangedReasonJoinSuccess | 1: The SDK has joined the channel successfully.
AgoraConnectionChangedReasonInterrupted | 2: The connection between the SDK and Agora's edge server is interrupted.
AgoraConnectionChangedReasonBannedByServer | 3: The connection between the SDK and Agora's edge server is banned by Agora's edge server.
AgoraConnectionChangedReasonJoinFailed | 4: The SDK fails to join the channel for more than 20 minutes and stops reconnecting to the channel.
AgoraConnectionChangedReasonLeaveChannel | 5: The SDK has left the channel.
AgoraConnectionChangedReasonInvalidAppId | 6: The connection failed since Appid is not valid.
AgoraConnectionChangedReasonInvalidChannelName | 7: The connection failed since channel name is not valid.
AgoraConnectionChangedReasonInvalidToken | 8: The connection failed since token is not valid, possibly because: The App Certificate for the project is enabled in Console, but you do not use Token when joining the channel. If you enable the App Certificate, you must use a token to join the channel. The uid that you specify in the `joinChannel` method is different from the uid that you pass for generating the token.
AgoraConnectionChangedReasonTokenExpired | 9: The connection failed since token is expired.
AgoraConnectionChangedReasonRejectedByServer | 10: The connection is rejected by server.
AgoraConnectionChangedReasonSettingProxyServer | 11: The connection changed to reconnecting since SDK has set a proxy server.
AgoraConnectionChangedReasonRenewToken | 12: When SDK is in connection failed, the renew token operation will make it connecting.
AgoraConnectionChangedReasonClientIpAddressChanged | 13: The IP Address of SDK client has changed. i.e., Network type or IP/Port changed by network operator might change client IP address.
AgoraConnectionChangedReasonKeepAliveTimeout | 14: Timeout for the keep-alive of the connection between the SDK and Agora's edge server. The connection state changes to CONNECTION_STATE_RECONNECTING(4).
AgoraConnectionChangedReasonRejoinSuccess | 15: The SDK has rejoined the channel successfully.
AgoraConnectionChangedReasonLost | 16: The connection between the SDK and Agora's edge server is lost.
AgoraConnectionChangedReasonEchoTest | 17: The change of connection state is caused by echo test.
AgoraConnectionChangedClientIpAddressChangedByUser | 18: The local IP Address is changed by user.
AgoraConnectionChangedSameUidLogin | 19: There is a disconnection due to joining channel on another device with the same uid.
AgoraConnectionChangedTooManyBroadcasters | 20: The connection is failed due to too many broadcasters in the channel.
AgoraConnectionChangedLicenseValidationFailure | 21: The connection is failed due to license validation failure.
AgoraConnectionChangedCertificationVerifyFailure | 22: The connection is failed due to certification verify failure.

## ◆ AgoraClientRoleChangeFailedReason

enum AgoraClientRoleChangeFailedReason

Enumerator
AgoraClientRoleChangeFailedTooManyBroadcasters | 1: Too many broadcasters in the channel.
AgoraClientRoleChangeFailedNotAuthorized | 2: The operation of changing role is not authorized.
AgoraClientRoleChangeFailedRequestTimeout | 3: The operation of changing role is timeout.
AgoraClientRoleChangeFailedConnectionFailed | 4: The operation of changing role is interrupted since we lost connection with agora service.

## ◆ AgoraMetadataType

enum AgoraMetadataType

Enumerator
AgoraMetadataTypeUnknown | -1: The metadata type is unknown.
AgoraMetadataTypeVideo | 0: The metadata type is video.

## ◆ AgoraMaxMetadataSizeType

enum AgoraMaxMetadataSizeType

The maximum metadata size.

Enumerator
AgoraMaxMetadataSizeTypeInvalid |
AgoraMaxMetadataSizeTypeDefault |
AgoraMaxMetadataSizeTypeMax |

## ◆ AgoraLogLevel

enum AgoraLogLevel

Supported logging severities of SDK.

Enumerator
AgoraLogLevelNone | Do not output any log file.
AgoraLogLevelInfo | (Recommended) Output log files of the Info level.
AgoraLogLevelWarn | Output log files of the Warning level.
AgoraLogLevelError | Output log files of the Error level.
AgoraLogLevelFatal | Output log files of the Critical level.

## ◆ AgoraAreaCodeType

enum AgoraAreaCodeType

Areas for geofencing.

Enumerator
AgoraAreaCodeTypeCN | Mainland China.
AgoraAreaCodeTypeNA | North America.
AgoraAreaCodeTypeEUR | Europe.
AgoraAreaCodeTypeAS | Asia, excluding Mainland China.
AgoraAreaCodeTypeJP | Japan.
AgoraAreaCodeTypeIN | India
AgoraAreaCodeTypeRU | Russia
AgoraAreaCodeTypeGlobal | (Default) Global.

## ◆ AgoraRtmpStreamingState

enum AgoraRtmpStreamingState

The RTMP or RTMPS streaming state.

Enumerator
AgoraRtmpStreamingStateIdle | The RTMP or RTMPS streaming has not started or has ended. This state is also triggered after you remove an RTMP or RTMPS stream from the CDN by calling [removePublishStreamUrl]([AgoraRtcEngineKit removePublishStreamUrl:]).
AgoraRtmpStreamingStateConnecting | The SDK is connecting to Agora's streaming server and the CDN server. This state is triggered after you call the [addPublishStreamUrl]([AgoraRtcEngineKit addPublishStreamUrl:transcodingEnabled:]) method.
AgoraRtmpStreamingStateRunning | The RTMP or RTMPS streaming is being published. The SDK successfully publishes the RTMP or RTMPS streaming and returns this state.
AgoraRtmpStreamingStateRecovering | The RTMP or RTMPS streaming is recovering. When exceptions occur to the CDN, or the streaming is interrupted, the SDK attempts to resume RTMP or RTMPS streaming and returns this state. If the SDK successfully resumes the streaming, `AgoraRtmpStreamingStateRunning(2)` returns. If the streaming does not resume within 60 seconds or server errors occur, AgoraRtmpStreamingStateFailure(4) returns. You can also reconnect to the server by calling the [removePublishStreamUrl]([AgoraRtcEngineKit removePublishStreamUrl:]) and [addPublishStreamUrl]([AgoraRtcEngineKit addPublishStreamUrl:transcodingEnabled:]) methods.
AgoraRtmpStreamingStateFailure | The RTMP or RTMPS streaming fails. See the errorCode parameter for the detailed error information. You can also call the [addPublishStreamUrl]([AgoraRtcEngineKit addPublishStreamUrl:transcodingEnabled:]) method to publish the RTMP or RTMPS streaming again.
AgoraRtmpStreamingStateDisconnecting | The SDK is disconnecting to Agora's streaming server and the CDN server. This state is triggered after you call the [removePublishStreamUrl]([AgoraRtcEngineKit removePublishStreamUrl:transcodingEnabled:]) method.

## ◆ AgoraRtmpStreamingReason

enum AgoraRtmpStreamingReason

The detailed error information for streaming.

Enumerator
AgoraRtmpStreamingReasonOK | The RTMP or RTMPS streaming publishes successfully.
AgoraRtmpStreamingReasonInvalidParameters | Invalid argument used. If, for example, you do not call the [setLiveTranscoding]([AgoraRtcEngineKit setLiveTranscoding:]) method to configure the LiveTranscoding parameters before calling the [addPublishStreamUrl]([AgoraRtcEngineKit addPublishStreamUrl:transcodingEnabled:]) method, the SDK returns this error. Check whether you set the parameters in the setLiveTranscoding method properly.
AgoraRtmpStreamingReasonEncryptedStreamNotAllowed | The RTMP or RTMPS streaming is encrypted and cannot be published.
AgoraRtmpStreamingReasonConnectionTimeout | Timeout for the RTMP or RTMPS streaming. Call the [addPublishStreamUrl]([AgoraRtcEngineKit addPublishStreamUrl:transcodingEnabled:]) method to publish the streaming again.
AgoraRtmpStreamingReasonInternalServerError | An error occurs in Agora's streaming server. Call the [addPublishStreamUrl]([AgoraRtcEngineKit addPublishStreamUrl:transcodingEnabled:]) method to publish the streaming again.
AgoraRtmpStreamingReasonRtmpServerError | An error occurs in the CDN server.
AgoraRtmpStreamingReasonTooOften | The RTMP or RTMPS streaming publishes too frequently.
AgoraRtmpStreamingReasonReachLimit | The host publishes more than 10 URLs. Delete the unnecessary URLs before adding new ones.
AgoraRtmpStreamingReasonNotAuthorized | The host manipulates other hosts' URLs. Check your app logic.
AgoraRtmpStreamingReasonStreamNotFound | Agora's server fails to find the RTMP or RTMPS streaming.
AgoraRtmpStreamingReasonFormatNotSupported | The format of the RTMP or RTMPS streaming URL is not supported. Check whether the URL format is correct.
AgoraRtmpStreamingReasonNotBroadcaster | Current role is not broadcaster. Check whether the role of the current channel.
AgoraRtmpStreamingReasonTranscodingNoMixStream | Call updateTranscoding, but no mix stream.
AgoraRtmpStreamingReasonNetDown | Network error.
AgoraRtmpStreamingReasonInvalidAppId | User AppId have not authorized to push stream.
AgoraRtmpStreamingReasonInvalidPrivilege | invalid privilege.
AgoraRtmpStreamingReasonUnpublishOK | The streaming has been stopped normally. After you call [removePublishStreamUrl]([AgoraRtcEngineKit removePublishStreamUrl:]) to stop streaming, the SDK returns this value. Since v3.4.5

## ◆ AgoraRtmpStreamingEvent

enum AgoraRtmpStreamingEvent

Events during the RTMP or RTMPS streaming.

Enumerator
AgoraRtmpStreamingEventFailedLoadImage | 1: An error occurs when you add a background image or a watermark image to the RTMP stream.
AgoraRtmpStreamingEventUrlAlreadyInUse | 2: The streaming URL is already being used for CDN live streaming. If you want to start new streaming, use a new streaming URL. Since v3.4.5
AgoraRtmpStreamingEventAdvancedFeatureNotSupport | advanced feature not support.
AgoraRtmpStreamingEventRequestTooOften | Client request too frequently.

## ◆ AgoraEncryptionErrorType

enum AgoraEncryptionErrorType

Encryption error type.

Enumerator
ENCRYPTION_ERROR_INTERNAL_FAILURE | 0: Internal reason.
ENCRYPTION_ERROR_DECRYPTION_FAILURE | 1: MediaStream decryption errors. Ensure that the receiver and the sender use the same encryption mode and key.
ENCRYPTION_ERROR_ENCRYPTION_FAILURE | 2: MediaStream encryption errors.
ENCRYPTION_ERROR_DATASTREAM_DECRYPTION_FAILURE | 3: DataStream decryption errors. Ensure that the receiver and the sender use the same encryption mode and key.
ENCRYPTION_ERROR_DATASTREAM_ENCRYPTION_FAILURE | 4: DataStream encryption errors.

## ◆ AgoraCameraDirection

enum AgoraCameraDirection

The camera direction

Enumerator
AgoraCameraDirectionRear | 0: Uses the rear camera.
AgoraCameraDirectionFront | 1: Uses the front camera.

## ◆ AgoraFocalLength

enum AgoraFocalLength

Enumerator
AgoraFocalLengthDefault |
AgoraFocalLengthWide |
AgoraFocalLengthUltraWide |
AgoraFocalLengthTelephoto |

## ◆ AgoraCameraStabilizationMode

enum AgoraCameraStabilizationMode

The camera stabilization mode. Higher stabilization level represent more stable picture and smaller fov and higher capture latency

Enumerator
AgoraCameraStabilizationModeOff | -1: disable stabilization mode.
AgoraCameraStabilizationModeAuto | 0: stabilization auto mode. Camera chooses appropriate mode.
AgoraCameraStabilizationModeLevel1 | 1: stabilization mode level 1.
AgoraCameraStabilizationModeLevel2 | 2: stabilization mode level 2.
AgoraCameraStabilizationModeLevel3 | 3: stabilization mode level 3.

## ◆ AgoraChannelMediaRelayState

enum AgoraChannelMediaRelayState

The state code in AgoraChannelMediaRelayState.

Enumerator
AgoraChannelMediaRelayStateIdle | 0: The SDK is initializing.
AgoraChannelMediaRelayStateConnecting | 1: The SDK tries to relay the media stream to the destination channel.
AgoraChannelMediaRelayStateRunning | 2: The SDK successfully relays the media stream to the destination channel.
AgoraChannelMediaRelayStateFailure | 3: A failure occurs. See the details in `error`.

## ◆ AgoraChannelMediaRelayEvent

enum AgoraChannelMediaRelayEvent

The event code in AgoraChannelMediaRelayEvent.

Enumerator
AgoraChannelMediaRelayEventDisconnect | 0: The user disconnects from the server due to poor network connections.
AgoraChannelMediaRelayEventConnected | 1: The network reconnects.
AgoraChannelMediaRelayEventJoinedSourceChannel | 2: The user joins the source channel.
AgoraChannelMediaRelayEventJoinedDestinationChannel | 3: The user joins the destination channel.
AgoraChannelMediaRelayEventSentToDestinationChannel | 4: The SDK starts relaying the media stream to the destination channel.
AgoraChannelMediaRelayEventReceivedVideoPacketFromSource | 5: The server receives the video stream from the source channel.
AgoraChannelMediaRelayEventReceivedAudioPacketFromSource | 6: The server receives the audio stream from the source channel.
AgoraChannelMediaRelayEventUpdateDestinationChannel | 7: The destination channel is updated.
AgoraChannelMediaRelayEventUpdateDestinationChannelRefused | 8: The destination channel update fails due to internal reasons.
AgoraChannelMediaRelayEventUpdateDestinationChannelNotChange | 9: The destination channel does not change, which means that the destination channel fails to be updated.
AgoraChannelMediaRelayEventUpdateDestinationChannelIsNil | 10: The destination channel name is NULL.
AgoraChannelMediaRelayEventVideoProfileUpdate | 11: The video profile is sent to the server.

## ◆ AgoraChannelMediaRelayError

enum AgoraChannelMediaRelayError

The error code in AgoraChannelMediaRelayError.

Enumerator
AgoraChannelMediaRelayErrorNone | 0: The state is normal.
AgoraChannelMediaRelayErrorServerErrorResponse | 1: An error occurs in the server response.
AgoraChannelMediaRelayErrorServerNoResponse | 2: No server response. You can call the [leaveChannel]([AgoraRtcEngineKit leaveChannel:]) method to leave the channel.
AgoraChannelMediaRelayErrorNoResourceAvailable | 3: The SDK fails to access the service, probably due to limited resources of the server.
AgoraChannelMediaRelayErrorFailedJoinSourceChannel | 4: Fails to send the relay request.
AgoraChannelMediaRelayErrorFailedJoinDestinationChannel | 5: Fails to accept the relay request.
AgoraChannelMediaRelayErrorFailedPacketReceivedFromSource | 6: The server fails to receive the media stream.
AgoraChannelMediaRelayErrorFailedPacketSentToDestination | 7: The server fails to send the media stream.
AgoraChannelMediaRelayErrorServerConnectionLost | 8: The SDK disconnects from the server due to poor network connections. You can call the [leaveChannel]([AgoraRtcEngineKit leaveChannel:]) method to leave the channel.
AgoraChannelMediaRelayErrorInternalError | 9: An internal error occurs in the server.
AgoraChannelMediaRelayErrorSourceTokenExpired | 10: The token of the source channel has expired.
AgoraChannelMediaRelayErrorDestinationTokenExpired | 11: The token of the destination channel has expired.

## ◆ AgoraStreamSubscribeState

enum AgoraStreamSubscribeState

Enumerator
AgoraStreamSubscribeStateIdle |
AgoraStreamSubscribeStateNoSubscribed |
AgoraStreamSubscribeStateSubscribing |
AgoraStreamSubscribeStateSubscribed |

## ◆ AgoraStreamPublishState

enum AgoraStreamPublishState

The stream publish state.

Enumerator
AgoraStreamPublishStateIdle |
AgoraStreamPublishStateNoPublished |
AgoraStreamPublishStatePublishing |
AgoraStreamPublishStatePublished |

## ◆ AgoraApplicationScenarioType

enum AgoraApplicationScenarioType

The application scenario scenario.

Since
  v4.2.0

Enumerator
AgoraApplicationGeneralScenario | 0: Default Scenario.
AgoraApplicationMeetingScenario |
AgoraApplication1V1Scenario |
AgoraApplicationLiveShowScenario |

## ◆ AgoraQoEPreferenceType

enum AgoraQoEPreferenceType

The video qoe preference enum type.

Since
  v4.2.0

Enumerator
AgoraVideoQOEPreferenceBalance | 0: Default QoE type, balance the delay, picture quality and fluency.
AgoraVideoQOEPreferenceDelayFirst | 1: lower the e2e delay.
AgoraVideoQOEPreferencePictureQualityFirst | 2: picture quality.
AgoraVideoQOEPreferenceFluencyFirst | 3: more fluency.

## ◆ AgoraScreenScenarioType

enum AgoraScreenScenarioType

The screen sharing scenario.

Since
  v4.0.0

Enumerator
AgoraScreenScenarioDocument | 1: (Default) Document. This scenario prioritizes the video quality of screen sharing and reduces the latency of the shared video for the receiver. If you share documents, slides, and tables, you can set this scenario.
AgoraScreenScenarioGaming | 2: Game. This scenario prioritizes the smoothness of screen sharing. If you share games, you can set this scenario.
AgoraScreenScenarioVideo | 3: Video. This scenario prioritizes the smoothness of screen sharing. If you share movies or live videos, you can set this scenario.
AgoraScreenScenarioRDC | 4: Remote control. This scenario prioritizes the video quality of screen sharing and reduces the latency of the shared video for the receiver. If you share the device desktop being remotely controlled, you can set this scenario.

## ◆ AgoraMediaSourceType

enum AgoraMediaSourceType

Media source types definition.

Enumerator
AgoraMediaSourceTypeAudioPlayout | 0: The audio playback device.
AgoraMediaSourceTypeRecording | 1: Microphone.
AgoraMediaSourceTypePrimaryCamera | 2: Video captured by primary camera.
AgoraMediaSourceTypeSecondaryCamera | 3: Video captured by secondary camera.
AgoraMediaSourceTypePrimaryScreen | 4: Video captured by primary screen capturer.
AgoraMediaSourceTypeSecondaryScreen | 5: Video captured by secondary screen capturer.
AgoraMediaSourceTypeCustomVideo | 6: Video captured by custom video source.
AgoraMediaSourceTypeMediaPlayer | 7: Video for media player sharing.
AgoraMediaSourceTypeRtcImagePng | 8: Video for png image.
AgoraMediaSourceTypeRtcImageJpeg | 9: Video for jpeg image.
AgoraMediaSourceTypeRtcImageGif | 10: Video for gif image.
AgoraMediaSourceTypeRemoteVideo | 11: Remote video received from network.
AgoraMediaSourceTypeTranscodedVideo | 12: Video for transcoded.
AgoraMediaSourceTypeSpeechDriven | 13: Video for voice drive.
AgoraMediaSourceTypeUnknown | 100: unknown media source.

## ◆ AgoraAudioSourceType

enum AgoraAudioSourceType

Audio source types definition.

Enumerator
AgoraAudioSourceMicrophone | Audio captured by the mic.
AgoraAudioSourceCustom | Audio generated by custom.
AgoraAudioSourceMediaPlayer | Audio generated by media player.
AgoraAudioSourceLoopbackRecording | Audio captured by the loopback recording.
AgoraAudioSourceMixedStream | Audio generated by local mixed track.
AgoraAudioSourceRemoteUser | Audio from remote by user.
AgoraAudioSourceRemoteChannel | Audio from remote by channel.
AgoraAudioSourceTypeUnknown | Not define.

## ◆ AgoraVideoSourceType

enum AgoraVideoSourceType

Video source types definition.

Enumerator
AgoraVideoSourceTypeCamera | Video captured by the camera.
AgoraVideoSourceTypeCameraSecondary | Video captured by the secondary camera.
AgoraVideoSourceTypeScreen | Video for screen sharing.
AgoraVideoSourceTypeScreenSecondary | Video for secondary screen sharing.
AgoraVideoSourceTypeCustom | Video for custom video.
AgoraVideoSourceTypeMediaPlayer | Video for media player sharing.
AgoraVideoSourceTypeImagePNG | Video for png image.
AgoraVideoSourceTypeImageJPEG | Video for JPEG image.
AgoraVideoSourceTypeImageGIF | Video for GIF image.
AgoraVideoSourceTypeRemote | Remote video received from network.
AgoraVideoSourceTypeTransCoded | Video for transcoded.
AgoraVideoSourceTypeCameraThird | Video captured by the third camera.
AgoraVideoSourceTypeCameraFourth | Video captured by the fourth camera.
AgoraVideoSourceTypeScreenThird | Video for third screen sharing.
AgoraVideoSourceTypeScreenFourth | Video for fourth screen sharing.
AgoraVideoSourceTypeSpeechDriven | Video for voice drive.
AgoraVideoSourceTypeUnknown | Not define.

## ◆ AgoraExternalVideoSourceType

enum AgoraExternalVideoSourceType

The external video source type.

Enumerator
AgoraExternalVideoSourceTypeVideoFrame | 0: non-encoded video frame.
AgoraExternalVideoSourceTypeEncodedVideoFrame | 1: encoded video frame.

## ◆ AgoraSimulcastStreamMode

enum AgoraSimulcastStreamMode

The dual stream mode

Enumerator
AgoraAutoSimulcastStream | -1 : disable simulcast stream until receive request for enable simulcast stream by other broadcaster
AgoraDisableSimulcastStream | 0 : disable simulcast stream
AgoraEnableSimulcastStream | 1 : always enable simulcast stream

## ◆ AgoraStreamLayerIndex

enum AgoraStreamLayerIndex

The index of multi-layer video stream

Enumerator
AgoraStreamLayer1 | 0: video stream index of layer_1
AgoraStreamLayer2 | 1: video stream index of layer_2
AgoraStreamLayer3 | 2: video stream index of layer_3
AgoraStreamLayer4 | 3: video stream index of layer_4
AgoraStreamLayer5 | 4: video stream index of layer_5
AgoraStreamLayer6 | 5: video stream index of layer_6
AgoraStreamLow | 6: video stream index of low
AgoraStreamLayerCountMax | 7: max count of video stream layers

## ◆ AgoraMediaStreamType

enum AgoraMediaStreamType

AgoraMediaStreamType, reporting the type of the media stream.

Enumerator
AgoraMediaStreamTypeUnknown | `0`: The type is unknown.
AgoraMediaStreamTypeVideo | `1`: The video stream.
AgoraMediaStreamTypeAudio | `2`: The audio stream.
AgoraMediaStreamTypeSubtitle | `3`: The subtitle stream.

## ◆ AgoraMediaPlayerState

enum AgoraMediaPlayerState

Player state.

Enumerator
AgoraMediaPlayerStateIdle | Player idle
AgoraMediaPlayerStateOpening | Opening media file
AgoraMediaPlayerStateOpenCompleted | Media file opened successfully
AgoraMediaPlayerStatePlaying | Player playing
AgoraMediaPlayerStatePaused | Player paused
AgoraMediaPlayerStatePlayBackCompleted | Player playback one loop completed
AgoraMediaPlayerStatePlayBackAllLoopsCompleted | Player playback all loops completed
AgoraMediaPlayerStateStopped | Player stopped
AgoraMediaPlayerStatePausingInternal | Player pausing (internal)
AgoraMediaPlayerStateStoppingInternal | Player stopping (internal)
AgoraMediaPlayerStateSeekingInternal | Player seeking state (internal)
AgoraMediaPlayerStateGettingInternal | Player getting state (internal)
AgoraMediaPlayerStateNoneInternal | None state for state machine (internal)
AgoraMediaPlayerStateDoNothingInternal | Do nothing state for state machine (internal)
AgoraMediaPlayerStateSetTrackInternal | Player set track state (internal)
AgoraMediaPlayerStateFailed | Player failed

## ◆ AgoraMediaPlayerRenderMode

enum AgoraMediaPlayerRenderMode

The video display mode.

Enumerator
AgoraMediaPlayerRenderModeHidden | 1: Uniformly scale the video until it fills the visible boundaries (cropped). One dimension of the video may have clipped contents.
AgoraMediaPlayerRenderModeFit | 2: Uniformly scale the video until one of its dimension fits the boundary (zoomed to fit). Areas that are not filled due to the disparity in the aspect ratio will be filled with black.

## ◆ AgoraMediaPlayerReason

enum AgoraMediaPlayerReason

AgoraMediaPlayerReason, reporting the player's error code.

Enumerator
AgoraMediaPlayerReasonNone | `0`: No error.
AgoraMediaPlayerReasonInvalidArguments | `-1`: Invalid arguments.
AgoraMediaPlayerReasonInternal | `-2`: Internal error.
AgoraMediaPlayerReasonNoSource | `-3`: No resource.
AgoraMediaPlayerReasonInvalidMediaSource | `-4`: Invalid media resource.
AgoraMediaPlayerReasonUnknowStreamType | `-5`: The type of the media stream is unknown.
AgoraMediaPlayerReasonObjNotInitialized | `-6`: The object is not initialized.
AgoraMediaPlayerReasonCodecNotSupported | `-7`: The codec is not supported.
AgoraMediaPlayerReasonVideoRenderFailed | `-8`: Invalid renderer.
AgoraMediaPlayerReasonInvalidState | `-9`: Error occurs in the internal state of the player.
AgoraMediaPlayerReasonUrlNotFound | `-10`: The URL of the media resource can not be found.
AgoraMediaPlayerReasonInvalidConnectState | `-11`: Invalid connection between the player and Agora's Server.
AgoraMediaPlayerReasonSrcBufferUnderflow | `-12`: The playback buffer is insufficient.
AgoraMediaPlayerReasonInterrupted | `-13`: The audio mixing file playback is interrupted.
AgoraMediaPlayerReasonNotSupported | `-14`: The SDK does not support this function.
AgoraMediaPlayerReasonTokenExpired | `-15`: The token has expired.
AgoraMediaPlayerReasonIpExpired | `-16`: The ip has expired.
AgoraMediaPlayerReasonUnknown | `-17`: An unknown error occurs.

## ◆ AgoraMediaPlayerEvent

enum AgoraMediaPlayerEvent

AgoraMediaPlayerEvent, reporting the result of the seek operation to the new playback position.

Enumerator
AgoraMediaPlayerEventSeekBegin | `0`: Begins to seek to the new playback position.
AgoraMediaPlayerEventSeekComplete | `1`: Finish seeking to the new playback position.
AgoraMediaPlayerEventSeekError | `2`: Error occurs when seeking to the new playback position.
AgoraMediaPlayerEventAudioTrackChanged | The player changes the audio track for playback.
AgoraMediaPlayerEventBufferLow | player buffer low.
AgoraMediaPlayerEventBufferRecover | player buffer recover.
AgoraMediaPlayerEventFreezeStart | `8`: The video or audio is interrupted.
AgoraMediaPlayerEventFreezeStop | `9`: Interrupt at the end of the video or audio.
AgoraMediaPlayerEventSwitchBegin | switch source begin.
AgoraMediaPlayerEventSwitchComplete | switch source complete.
AgoraMediaPlayerEventSwitchError | switch source error.
AgoraMediaPlayerEventFirstDisplayed | An application can render the video to less than a second.
AgoraMediaPlayerEventReachCacheFileMaxCount | cache resources exceed the maximum number
AgoraMediaPlayerEventReachCacheFileMaxSize | cache resources exceed the maximum file size
AgoraMediaPlayerEventTryOpenStart | Triggered when a retry is required to open the media
AgoraMediaPlayerEventTryOpenSucceed | Triggered when the retry to open the media is successful
AgoraMediaPlayerEventTryOpenFailed | Triggered when retrying to open media fails
AgoraMediaPlayerEventHttpRedirect | Triggered when an http redirect occurs @technical preview

## ◆ AgoraMediaPlayerPreloadEvent

enum AgoraMediaPlayerPreloadEvent

The play preload another source event.

Enumerator
AgoraMediaPlayerPreloadEventBegin | preload source begin.
AgoraMediaPlayerPreloadEventComplete | preload source complete.
AgoraMediaPlayerPreloadEventError | preload source error.

## ◆ AgoraMediaPlayerMetaDataType

enum AgoraMediaPlayerMetaDataType

AgoraMediaPlayerMetaDataType, reporting the type of the media metadata.

Enumerator
AgoraMediaPlayerMetaDataTypeUnknown | `0`: The type is unknown.
AgoraMediaPlayerMetaDataTypeSEI | `1`: The type is SEI.

## ◆ AgoraPermissionType

enum AgoraPermissionType

Type of permission.

Enumerator
AgoraPermissionTypeRecordAudio | 0: Permission, Record Audio
AgoraPermissionTypeCamera | 1:Permission, Camera

## ◆ AgoraDirectCdnStreamingState

enum AgoraDirectCdnStreamingState

Streaming state.

Enumerator
AgoraDirectCdnStreamingStateIdle | State idle.
AgoraDirectCdnStreamingStateRunning | Start pushing the stream.
AgoraDirectCdnStreamingStateStopped | Stop push stream.
AgoraDirectCdnStreamingStateFailed | Failed to push the stream.
AgoraDirectCdnStreamingStateRecovering | Retrying to push stream

## ◆ AgoraDirectCdnStreamingReason

enum AgoraDirectCdnStreamingReason

Enumerator
AgoraDirectCdnStreamingReasonOK |
AgoraDirectCdnStreamingReasonFailed |
AgoraDirectCdnStreamingReasonAudioPublication |
AgoraDirectCdnStreamingReasonVideoPublication |
AgoraDirectCdnStreamingReasonNetConnect |
AgoraDirectCdnStreamingReasonBadName |

## ◆ AgoraEarMonitoringFilterType

enum AgoraEarMonitoringFilterType

Type of ear monitoring.

Enumerator
AgoraEarMonitoringFilterNone | 1: Do not add an audio filter to the in-ear monitor.
AgoraEarMonitoringFilterBuiltInAudioFilters | 2: Add an audio filter to the in-ear monitor.
AgoraEarMonitoringFilterNoiseSuppression | 4: Enable noise suppression to the in-ear monitor.
AgoraEarMonitoringFilterBuiltInAudioFiltersWithNoiseSuppression | 6: Enable both audio fileter and noise suppression to the in-ear monitor.
AgoraEarMonitoringFilterReusePostProcessingFilter | 32768: Enable audio filters by reuse post-processing filter to the in-ear monitor. This bit is intended to be used in exclusive mode, which means, if this bit is set, all other bits will be disregarded.

## ◆ AgoraAudioFramePosition

enum AgoraAudioFramePosition

The bit mask that controls the audio observation positions.

Enumerator
AgoraAudioFramePositionPlayback | The position for observing the playback audio of all remote users after mixing, which enables the SDK to trigger the [onPlaybackAudioFrame]([AgoraAudioFrameDelegate onPlaybackAudioFrame:]) callback.
AgoraAudioFramePositionRecord | The position for observing the recorded audio of the local user, which enables the SDK to trigger the [onRecordAudioFrame]([AgoraAudioFrameDelegate onRecordAudioFrame:]) callback.
AgoraAudioFramePositionMixed | The position for observing the mixed audio of the local user and all remote users, which enables the SDK to trigger the [onMixedAudioFrame]([AgoraAudioFrameDelegate onMixedAudioFrame:]) callback.
AgoraAudioFramePositionBeforeMixing | The position for observing the audio of a single remote user before mixing, which enables the SDK to trigger the [onPlaybackAudioFrameBeforeMixing]([AgoraAudioFrameDelegate onPlaybackAudioFrameBeforeMixing:uid:]) callback.
AgoraAudioFramePositionEarMonitoring | The position for observing the ear monitoring audio of the local user [onEarMonitoringAudioFrame]([AgoraAudioFrameDelegate onEarMonitoringAudioFrame:]) callback.

## ◆ AgoraVideoContentHint

enum AgoraVideoContentHint

The content hint for screen sharing.

Enumerator
AgoraVideoContentHintNone | 0: (Default) No content hint.
AgoraVideoContentHintMotion | 1: Motion-intensive content. Choose this option if you prefer smoothness or when you are sharing a video clip, movie, or video game.
AgoraVideoContentHintDetails | 2: Motionless content. Choose this option if you prefer sharpness or when you are sharing a picture, PowerPoint slide, or text.

## ◆ AgoraThreadPriorityType

enum AgoraThreadPriorityType

Thread priority type.

Enumerator
AgoraThreadPriorityTypeLowest | 0: Lowest priority.
AgoraThreadPriorityTypeLow | 1: Low priority.
AgoraThreadPriorityTypeNormal | 2: Normal priority.
AgoraThreadPriorityTypeHigh | 3: High priority.
AgoraThreadPriorityTypeHighest | Highest priority.
AgoraThreadPriorityTypeCritical | Critical priority.

## ◆ AgoraContentInspectType

enum AgoraContentInspectType

Enumerator
AgoraContentInspectTypeInvalid | default type is invalid
AgoraContentInspectTypeModeration | Deprecated: content inspect type moderation
AgoraContentInspectTypeSupervise | content inspect type supervise
AgoraContentInspectTypeImageModeration | content inspect type image moderation

## ◆ AgoraContentInspectResult

enum AgoraContentInspectResult

Enumerator
AgoraContentInspectNeutral |
AgoraContentInspectSexy |
AgoraContentInspectPorn |

## ◆ AgoraAudioDualMonoMode

enum AgoraAudioDualMonoMode

The audio dual-mono output mode.

Enumerator
AgoraAudioDualMonoStereo | ChanLOut=ChanLin, ChanRout=ChanRin ChanLOut=ChanRout=ChanLin
AgoraAudioDualMonoL | ChanLOut=ChanRout=ChanRin
AgoraAudioDualMonoR | ChanLout=ChanRout=(ChanLin+ChanRin)/2
AgoraAudioDualMonoMix |

## ◆ AgoraRhythmPlayerState

enum AgoraRhythmPlayerState

The states of the rhythm player.

Enumerator
AgoraRhythmPlayerStateIdle | 810: The rhythm player is idle.
AgoraRhythmPlayerStateOpening | 811: The rhythm player is opening files.
AgoraRhythmPlayerStateDecoding | 812: 812: Files opened successfully, the rhythm player starts decoding files.
AgoraRhythmPlayerStatePlaying | 813: Files decoded successfully, the rhythm player starts mixing the two files and playing back them locally.
AgoraRhythmPlayerStateFailed | 814: The rhythm player is starting to fail, and you need to check the error code for detailed failure reasons.

## ◆ AgoraRhythmPlayerReason

enum AgoraRhythmPlayerReason

The error codes of the rhythm player.

Enumerator
AgoraRhythmPlayerReasonOK | 0: The rhythm player works well.
AgoraRhythmPlayerReasonFailed | 1: The rhythm player occurs a internal error.
AgoraRhythmPlayerReasonCanNotOpen | 801: The rhythm player can not open the file.
AgoraRhythmPlayerReasonCanNotPlay | 802: The rhythm player can not play the file.
AgoraRhythmPlayerReasonFileOverDurationLimit | 803: The file duration over the limit. The file duration limit is 1.2 seconds.

## ◆ AgoraVideoTranscoderError

enum AgoraVideoTranscoderError

The error codes of the local video transcoder.

Enumerator
AgoraVideoTranscoderErrorOK | No error
AgoraVideoTranscoderErrorVideoSourceNotReady | Occurs when video track not started of video source.
AgoraVideoTranscoderErrorInvalidVideoSourceType | Occurs when source type not on support list.
AgoraVideoTranscoderErrorInvalidImagePath | Occurs when image url is not correctly of image source.
AgoraVideoTranscoderErrorUnsupportImageFormat | Occurs when image format not the type png/jpeg/gif of image source.
AgoraVideoTranscoderErrorInvalidLayout | Occurs when layout is invalid such as width is zero.
AgoraVideoTranscoderErrorInternal | Internal error.

## ◆ AgoraLocalProxyMode

enum AgoraLocalProxyMode

Enumerator
AgoraConnectivityFirst | Connect local proxy with high priority, if not connected to local proxy, fallback to sdrtn.
AgoraLocalOnly | Only connect local proxy.

## ◆ AgoraProxyType

enum AgoraProxyType

The proxy type.

Enumerator
AgoraNoneProxyType | Not connected cloud proxy or local proxy.
AgoraUdpProxyType | The cloud proxy for the UDP protocol.
AgoraTcpProxyType | The cloud proxy for the TCP (encrypted) protocol.
AgoraLocalProxyType | The local proxy
AgoraTcpProxyAutoFallbackType | The cloud proxy, auto fallback.
AgoraHttpProxyType | The http proxy.
AgoraHttpsProxyType | The https proxy.

## ◆ AgoraVideoViewSetupMode

enum AgoraVideoViewSetupMode

mode of setting view.

Enumerator
AgoraVideoViewSetupReplace |
AgoraVideoViewSetupAdd |
AgoraVideoViewSetupRemove |

## ◆ AgoraAudioProcessChannels

enum AgoraAudioProcessChannels

Enumerator
AgoraAudioProcessChannelsMono |
AgoraAudioProcessChannelstereo |

## ◆ AgoraVideoFramePosition

enum AgoraVideoFramePosition

The frame position of the video observer.

Enumerator
AgoraVideoFramePositionPostCapture | 1: The post-capturer position, which corresponds to the video data in the onCaptureVideoFrame callback.
AgoraVideoFramePositionPreRenderer | 2: The pre-renderer position, which corresponds to the video data in the onRenderVideoFrame callback.
AgoraVideoFramePositionPreEncoder | 4: The pre-encoder position, which corresponds to the video data in the onPreEncodeVideoFrame callback.

## ◆ AgoraWlAccReason

enum AgoraWlAccReason

The reason of notifying the user of a message.

Enumerator
AgoraWlAccMessageReasonWeakSignal | WIFI signal is weak.
AgoraWlAccMessageReasonChannelCongestion | Channel congestion.

## ◆ AgoraWlAccAction

enum AgoraWlAccAction

Suggest an action for the user.

Enumerator
AgoraWlAccSuggestActionCloseToWIFI | Please get close to AP.
AgoraWlAccSuggestActionConnectSSID | The user is advised to connect to the prompted SSID.
AgoraWlAccSuggestActionCheck5G | The user is advised to check whether the AP supports 5G band and enable 5G band (the aciton link is attached), or purchases an AP that supports 5G. AP does not support 5G band.
AgoraWlAccSuggestActionModifySSID | The user is advised to change the SSID of the 2.4G or 5G band (the aciton link is attached). The SSID of the 2.4G band AP is the same as that of the 5G band.

## ◆ AgoraMediaRecorderState

enum AgoraMediaRecorderState

The state of agora media recorder.

Enumerator
AgoraMediaRecorderStateError | -1: Media recorder is in wrong state.
AgoraMediaRecorderStateStarted | 2: Media recorder is started.
AgoraMediaRecorderStateStopped | 3: Media recorder is stopped.

## ◆ AgoraMediaRecorderReasonCode

enum AgoraMediaRecorderReasonCode

Recorder error code.

Enumerator
AgoraMediaRecorderReasonCodeNoError | 0: No error occurs.
AgoraMediaRecorderReasonCodeWriteFailed | 1: Store media data into local file failed.
AgoraMediaRecorderReasonCodeNoStream | 2: Occurs when there is no media stream.
AgoraMediaRecorderReasonCodeOverMaxDuration | 3: Occurs when duration of media stream is already over maxmium stream duration.
AgoraMediaRecorderReasonCodeConfigChange | 4: Occurs when recording configuration changes.

## ◆ AgoraMediaRecorderStreamType

enum AgoraMediaRecorderStreamType

Recorder stream type.

Enumerator
AgoraMediaRecorderStreamTypeAudio | 1: Record audio only.
AgoraMediaRecorderStreamTypeVideo | 2: Record video only.
AgoraMediaRecorderStreamTypeBoth | 3: Record both audio and video.

## ◆ AgoraMediaRecorderContainerFormat

enum AgoraMediaRecorderContainerFormat

Recorder container format.

Enumerator
AgoraMediaRecorderContainerFormatMP4 | 1: Format of mp4.

## ◆ AgoraRecorderStreamType

enum AgoraRecorderStreamType

Recorder stream type.

Enumerator
AgoraRecorderStreamTypeRtc | 0: the stream in (rtc)channel
AgoraRecorderStreamTypePreview | 1: the stream out channel

## ◆ AgoraScreenCaptureSourceType

enum AgoraScreenCaptureSourceType

The type of the shared target.

Enumerator
AgoraScreenCaptureSourceTypeUnknown | -1: Unknown type.
AgoraScreenCaptureSourceTypeWindow | 0: The shared target is a window.
AgoraScreenCaptureSourceTypeScreen | 1: The shared target is a screen of a particular monitor.
AgoraScreenCaptureSourceTypeCustom | 2: Reserved parameter.

## ◆ AgoraScreenCaptureFrameRateCapability

enum AgoraScreenCaptureFrameRateCapability

Enumerator
AgoraScreenCaptureFrameRateUnKonw |
AgoraScreenCaptureFrameRate15FPS |
AgoraScreenCaptureFrameRate30FPS |
AgoraScreenCaptureFrameRate60FPS |

## ◆ AgoraAudioTrackType

enum AgoraAudioTrackType

Enumerator
AgoraAudioTrackTypeMixable | 0: Mixable audio track You can push more than one mixable Audio tracks into one RTC connection(channel id + uid), and SDK will mix these tracks into one audio track automatically. However, compare to direct audio track, mixable track might cause extra 30ms+ delay.
AgoraAudioTrackTypeDirect | 1: Direct audio track You can only push one direct (non-mixable) audio track into one RTC connection(channel id + uid). Compare to mixable stream, you can have lower lantency using direct audio track.

## ◆ AUDIO_AINS_MODE

enum AUDIO_AINS_MODE

Audio AINS mode, decide the type of the audio noise suppression.

Enumerator
AINS_MODE_BALANCED | AINS mode with soft suppression level.
AINS_MODE_AGGRESSIVE | AINS mode with high suppression level.
AINS_MODE_ULTRALOWLATENCY | AINS mode with high suppression level and ultra-low-latency

## ◆ AgoraVideoModulePosition

enum AgoraVideoModulePosition

The module position in video pipeline.

Enumerator
AgoraVideoModulePositionPostCapture | The position after capturing the video data and pre-processing.
AgoraVideoModulePositionPreRenderer | The position before receiving the remote video data.
AgoraVideoModulePositionPreEncoder | The position before encoding the video data.
AgoraVideoModulePositionPostCaptureOrigin | The position after capturing the video data and before pre-processing.

## ◆ AgoraMediaTraceEvent

enum AgoraMediaTraceEvent

The tracing event of media rendering.

Enumerator
AgoraMediaTraceEventVideoRendered | 0: The media frame has been rendered.
AgoraMediaTraceEventVideoDecoded | 1: The media frame has been decoded.

## ◆ AgoraH265TranscodeResult

enum AgoraH265TranscodeResult

Enumerator
AgoraH265TranscodeResultUnknown | -1: Unknown error.
AgoraH265TranscodeResultSuccess | 0: The request of operation is successfully.
AgoraH265TranscodeResultRequestInvalid | This request is invalid. Possible reasons include incorrect parameters.
AgoraH265TranscodeResultUnauthorized | 2: Authentication failed, please check for correctnes of token.
AgoraH265TranscodeResultTokenExpired | 3: The token is expired, please update token.
AgoraH265TranscodeResultForbidden | 4: No permission to access the interface.
AgoraH265TranscodeResultNotFound | 5: The url of request is not found.
AgoraH265TranscodeResultConflict | 6: The request encountered a conflict, please try again.
AgoraH265TranscodeResultNotSupported | 7: Content type not supported.
AgoraH265TranscodeResultTooOften | 8: The requests are too frequent.
AgoraH265TranscodeResultServerInternalError | 9: Internal Server Error, you can try sending the request again.
AgoraH265TranscodeResultServiceUnavailable | 10: Service is unavailable.

## ◆ AgoraFeatureType

enum AgoraFeatureType

Enumerator
AgoraVideoPreprocessVirtualBackground |
AgoraVideoPreprocessBeauty |

## ◆ AgoraVideoModule

enum AgoraVideoModule

Enumerator
AgoraVideoModuleCapturer |
AgoraVideoModuleSoftwareEncoder |
AgoraVideoModuleHardwareEncoder |
AgoraVideoModuleSoftwareDecoder |
AgoraVideoModuleHardwareDecoder |
AgoraVideoModuleRenderer |

## ◆ AgoraHDRCapability

enum AgoraHDRCapability

Enumerator
AgoraHDRCapabilityUnknown |
AgoraHDRCapabilityUnsupported |
AgoraHDRCapabilitySupported |

## ◆ AgoraAlphaStitchMode

enum AgoraAlphaStitchMode

The relative position between alphabuffer and the frame.

Enumerator
AgoraNoAlphaStitch | 0: Normal frame without alphabuffer stitched
AgoraAlphaStitchUp | 1: Alphabuffer is above the frame
AgoraAlphaStitchBelow | 2: Alphabuffer is below the frame
AgoraAlphaStitchLeft | 3: Alphabuffer is on the left of frame
AgoraAlphaStitchRight | 4: Alphabuffer is on the right of frame

## ◆ AgoraMultipathMode

enum AgoraMultipathMode

Defines how data is transmitted across multiple network paths.

Enumerator
AgoraMultipathModeDuplicate | 0: Duplicate mode, where data is sent over multiple paths simultaneously. @technical preview
AgoraMultipathModeDynamic | 1: Dynamic mode, where the SDK dynamically selects the best path for data transmission.

## ◆ AgoraMultipathType

enum AgoraMultipathType

Defines the types of network paths used in multipath transmission.

Enumerator
AgoraMultipathTypeLAN | 0: LAN type, indicating that the data is transmitted over a local area network.
AgoraMultipathTypeWIFI | 1: WIFI type, indicating that the data is transmitted over a Wi-Fi network.
AgoraMultipathTypeMobile | 2: Mobile type, indicating that the data is transmitted over a mobile network.
AgoraMultipathTypeUnknown | 99: Unknown type, indicating that the path type is not recognized.