Agora RTC Objective-C API Reference Refactor

Data Structures | Namespaces | Typedefs | Enumerations | Functions | Variables
AgoraBase.h File Reference

Go to the source code of this file.

## Data Structures
class | AutoPtr< T >
class | CopyableAutoPtr< T >
class | IString
class | IIterator
class | IContainer
class | AOutputIterator< T >
class | AList< T >
struct | UserInfo
struct | VideoDimensions
struct | SenderOptions
struct | EncodedAudioFrameAdvancedSettings
struct | EncodedAudioFrameInfo
struct | AudioPcmDataInfo
struct | VideoSubscriptionOptions
struct | EncodedVideoFrameInfo
struct | AdvanceOptions
struct | CodecCapLevels
struct | CodecCapInfo
struct | VideoEncoderConfiguration
struct | DataStreamConfig
struct | SimulcastStreamConfig
struct | Rectangle
struct | WatermarkRatio
struct | WatermarkOptions
struct | RtcStats
struct | ClientRoleOptions
struct | VideoFormat
struct | VideoTrackInfo
struct | AudioVolumeInfo
struct | DeviceInfo
class | IPacketObserver
struct | IPacketObserver::Packet
struct | LocalAudioStats
struct | RtcImage
struct | LiveStreamAdvancedFeature
struct | TranscodingUser
struct | LiveTranscoding
struct | TranscodingVideoStream
struct | LocalTranscoderConfiguration
struct | LastmileProbeConfig
struct | LastmileProbeOneWayResult
struct | LastmileProbeResult
struct | WlAccStats
struct | VideoCanvas
struct | BeautyOptions
struct | LowlightEnhanceOptions
struct | VideoDenoiserOptions
struct | ColorEnhanceOptions
struct | VirtualBackgroundSource
struct | SegmentationProperty
struct | AudioTrackConfig
struct | LoopbackAudioTrackConfig
struct | ScreenCaptureParameters
struct | AudioRecordingConfiguration
struct | AudioEncodedFrameObserverConfig
class | IAudioEncodedFrameObserver
struct | ChannelMediaInfo
struct | ChannelMediaRelayConfiguration
struct | UplinkNetworkInfo
struct | DownlinkNetworkInfo
struct | DownlinkNetworkInfo::PeerDownlinkInfo
struct | EncryptionConfig
struct | EchoTestConfiguration
struct | UserInfo
struct | VideoRenderingTracingInfo
struct | RecorderStreamInfo
struct | LogUploadServerInfo
struct | AdvancedConfigInfo
struct | LocalAccessPointConfiguration
class | IEngineBase
class | AParameter
class | LicenseCallback

## Namespaces
| agora
| agora::util
| agora::rtc
| agora::base

## Typedefs
typedef struct agora::rtc::RtcImage | RtcImage

## Enumerations
enum | CHANNEL_PROFILE_TYPE { CHANNEL_PROFILE_COMMUNICATION = 0, CHANNEL_PROFILE_LIVE_BROADCASTING = 1, CHANNEL_PROFILE_GAME = 2, CHANNEL_PROFILE_CLOUD_GAMING = 3, CHANNEL_PROFILE_COMMUNICATION_1v1 = 4 }
enum | WARN_CODE_TYPE { WARN_INVALID_VIEW = 8, WARN_INIT_VIDEO = 16, WARN_PENDING = 20, WARN_NO_AVAILABLE_CHANNEL = 103, WARN_LOOKUP_CHANNEL_TIMEOUT = 104, WARN_LOOKUP_CHANNEL_REJECTED = 105, WARN_OPEN_CHANNEL_TIMEOUT = 106, WARN_OPEN_CHANNEL_REJECTED = 107, WARN_SWITCH_LIVE_VIDEO_TIMEOUT = 111, WARN_SET_CLIENT_ROLE_TIMEOUT = 118, WARN_OPEN_CHANNEL_INVALID_TICKET = 121, WARN_OPEN_CHANNEL_TRY_NEXT_VOS = 122, WARN_CHANNEL_CONNECTION_UNRECOVERABLE = 131, WARN_CHANNEL_CONNECTION_IP_CHANGED = 132, WARN_CHANNEL_CONNECTION_PORT_CHANGED = 133, WARN_CHANNEL_SOCKET_ERROR = 134, WARN_AUDIO_MIXING_OPEN_ERROR = 701, WARN_ADM_RUNTIME_PLAYOUT_WARNING = 1014, WARN_ADM_RUNTIME_RECORDING_WARNING = 1016, WARN_ADM_RECORD_AUDIO_SILENCE = 1019, WARN_ADM_PLAYOUT_MALFUNCTION = 1020, WARN_ADM_RECORD_MALFUNCTION = 1021, WARN_ADM_RECORD_AUDIO_LOWLEVEL = 1031, WARN_ADM_PLAYOUT_AUDIO_LOWLEVEL = 1032, WARN_ADM_WINDOWS_NO_DATA_READY_EVENT = 1040, WARN_APM_HOWLING = 1051, WARN_ADM_GLITCH_STATE = 1052, WARN_ADM_IMPROPER_SETTINGS = 1053, WARN_ADM_WIN_CORE_NO_RECORDING_DEVICE = 1322, WARN_ADM_WIN_CORE_NO_PLAYOUT_DEVICE = 1323, WARN_ADM_WIN_CORE_IMPROPER_CAPTURE_RELEASE = 1324 }
enum | ERROR_CODE_TYPE { ERR_OK = 0, ERR_FAILED = 1, ERR_INVALID_ARGUMENT = 2, ERR_NOT_READY = 3, ERR_NOT_SUPPORTED = 4, ERR_REFUSED = 5, ERR_BUFFER_TOO_SMALL = 6, ERR_NOT_INITIALIZED = 7, ERR_INVALID_STATE = 8, ERR_NO_PERMISSION = 9, ERR_TIMEDOUT = 10, ERR_CANCELED = 11, ERR_TOO_OFTEN = 12, ERR_BIND_SOCKET = 13, ERR_NET_DOWN = 14, ERR_JOIN_CHANNEL_REJECTED = 17, ERR_LEAVE_CHANNEL_REJECTED = 18, ERR_ALREADY_IN_USE = 19, ERR_ABORTED = 20, ERR_INIT_NET_ENGINE = 21, ERR_RESOURCE_LIMITED = 22, ERR_INVALID_APP_ID = 101, ERR_INVALID_CHANNEL_NAME = 102, ERR_NO_SERVER_RESOURCES = 103, ERR_TOKEN_EXPIRED = 109, ERR_INVALID_TOKEN = 110, ERR_CONNECTION_INTERRUPTED = 111, ERR_CONNECTION_LOST = 112, ERR_NOT_IN_CHANNEL = 113, ERR_SIZE_TOO_LARGE = 114, ERR_BITRATE_LIMIT = 115, ERR_TOO_MANY_DATA_STREAMS = 116, ERR_STREAM_MESSAGE_TIMEOUT = 117, ERR_SET_CLIENT_ROLE_NOT_AUTHORIZED = 119, ERR_DECRYPTION_FAILED = 120, ERR_INVALID_USER_ID = 121, ERR_DATASTREAM_DECRYPTION_FAILED = 122, ERR_CLIENT_IS_BANNED_BY_SERVER = 123, ERR_ENCRYPTED_STREAM_NOT_ALLOWED_PUBLISH = 130, ERR_LICENSE_CREDENTIAL_INVALID = 131, ERR_INVALID_USER_ACCOUNT = 134, ERR_MODULE_NOT_FOUND = 157 , ERR_LOAD_MEDIA_ENGINE = 1001, ERR_ADM_GENERAL_ERROR = 1005, ERR_ADM_INIT_PLAYOUT = 1008, ERR_ADM_START_PLAYOUT = 1009, ERR_ADM_STOP_PLAYOUT = 1010, ERR_ADM_INIT_RECORDING = 1011, ERR_ADM_START_RECORDING = 1012, ERR_ADM_STOP_RECORDING = 1013, ERR_VDM_CAMERA_NOT_AUTHORIZED = 1501, ERR_ADM_APPLICATION_LOOPBACK = 2007 }
enum | AUDIO_SESSION_OPERATION_RESTRICTION { AUDIO_SESSION_OPERATION_RESTRICTION_NONE = 0, AUDIO_SESSION_OPERATION_RESTRICTION_SET_CATEGORY = 1, AUDIO_SESSION_OPERATION_RESTRICTION_CONFIGURE_SESSION = 1 << 1, AUDIO_SESSION_OPERATION_RESTRICTION_DEACTIVATE_SESSION = 1 << 2, AUDIO_SESSION_OPERATION_RESTRICTION_ALL = 1 << 7 }
enum | USER_OFFLINE_REASON_TYPE { USER_OFFLINE_QUIT = 0, USER_OFFLINE_DROPPED = 1, USER_OFFLINE_BECOME_AUDIENCE = 2 }
enum | QUALITY_TYPE { QUALITY_UNKNOWN = 0, QUALITY_EXCELLENT = 1, QUALITY_GOOD = 2, QUALITY_POOR = 3, QUALITY_BAD = 4, QUALITY_VBAD = 5, QUALITY_DOWN = 6, QUALITY_UNSUPPORTED = 7, QUALITY_DETECTING = 8 }
enum | FIT_MODE_TYPE { MODE_COVER = 1, MODE_CONTAIN = 2 }
enum | VIDEO_ORIENTATION { VIDEO_ORIENTATION_0 = 0, VIDEO_ORIENTATION_90 = 90, VIDEO_ORIENTATION_180 = 180, VIDEO_ORIENTATION_270 = 270 }
enum | FRAME_RATE { FRAME_RATE_FPS_1 = 1, FRAME_RATE_FPS_7 = 7, FRAME_RATE_FPS_10 = 10, FRAME_RATE_FPS_15 = 15, FRAME_RATE_FPS_24 = 24, FRAME_RATE_FPS_30 = 30, FRAME_RATE_FPS_60 = 60 }
enum | VIDEO_FRAME_TYPE { VIDEO_FRAME_TYPE_BLANK_FRAME = 0, VIDEO_FRAME_TYPE_KEY_FRAME = 3, VIDEO_FRAME_TYPE_DELTA_FRAME = 4, VIDEO_FRAME_TYPE_B_FRAME = 5, VIDEO_FRAME_TYPE_DROPPABLE_FRAME = 6, VIDEO_FRAME_TYPE_UNKNOW }
enum | ORIENTATION_MODE { ORIENTATION_MODE_ADAPTIVE = 0, ORIENTATION_MODE_FIXED_LANDSCAPE = 1, ORIENTATION_MODE_FIXED_PORTRAIT = 2 }
enum | DEGRADATION_PREFERENCE { MAINTAIN_QUALITY = 0, MAINTAIN_FRAMERATE = 1, MAINTAIN_BALANCED = 2, MAINTAIN_RESOLUTION = 3, DISABLED = 100 }
enum | SCREEN_CAPTURE_FRAMERATE_CAPABILITY
enum | VIDEO_CODEC_CAPABILITY_LEVEL { CODEC_CAPABILITY_LEVEL_UNSPECIFIED = -1, CODEC_CAPABILITY_LEVEL_BASIC_SUPPORT = 5, CODEC_CAPABILITY_LEVEL_1080P30FPS = 10, CODEC_CAPABILITY_LEVEL_1080P60FPS = 20, CODEC_CAPABILITY_LEVEL_4K60FPS = 30 }
enum | VIDEO_CODEC_TYPE { , VIDEO_CODEC_VP8 = 1, VIDEO_CODEC_H264 = 2, VIDEO_CODEC_H265 = 3, VIDEO_CODEC_GENERIC = 6, VIDEO_CODEC_GENERIC_H264 = 7, VIDEO_CODEC_AV1 = 12, VIDEO_CODEC_VP9 = 13, VIDEO_CODEC_GENERIC_JPEG = 20 }
enum | TCcMode { CC_ENABLED, CC_DISABLED }
enum | AUDIO_CODEC_TYPE { AUDIO_CODEC_OPUS = 1, AUDIO_CODEC_PCMA = 3, AUDIO_CODEC_PCMU = 4, AUDIO_CODEC_G722 = 5, AUDIO_CODEC_AACLC = 8, AUDIO_CODEC_HEAAC = 9, AUDIO_CODEC_JC1 = 10, AUDIO_CODEC_HEAAC2 = 11, AUDIO_CODEC_LPCNET = 12, AUDIO_CODEC_OPUS4C = 13, AUDIO_CODEC_OPUS6C = 14, AUDIO_CODEC_OPUS8C = 15 }
enum | AUDIO_ENCODING_TYPE { AUDIO_ENCODING_TYPE_AAC_16000_LOW = 0x010101, AUDIO_ENCODING_TYPE_AAC_16000_MEDIUM = 0x010102, AUDIO_ENCODING_TYPE_AAC_32000_LOW = 0x010201, AUDIO_ENCODING_TYPE_AAC_32000_MEDIUM = 0x010202, AUDIO_ENCODING_TYPE_AAC_32000_HIGH = 0x010203, AUDIO_ENCODING_TYPE_AAC_48000_MEDIUM = 0x010302, AUDIO_ENCODING_TYPE_AAC_48000_HIGH = 0x010303, AUDIO_ENCODING_TYPE_OPUS_16000_LOW = 0x020101, AUDIO_ENCODING_TYPE_OPUS_16000_MEDIUM = 0x020102, AUDIO_ENCODING_TYPE_OPUS_48000_MEDIUM = 0x020302, AUDIO_ENCODING_TYPE_OPUS_48000_HIGH = 0x020303 }
enum | WATERMARK_FIT_MODE { FIT_MODE_COVER_POSITION, FIT_MODE_USE_IMAGE_RATIO }
enum | H264PacketizeMode { NonInterleaved = 0, SingleNalUnit }
enum | VIDEO_STREAM_TYPE { VIDEO_STREAM_HIGH = 0, VIDEO_STREAM_LOW = 1 }
enum | COMPRESSION_PREFERENCE { PREFER_LOW_LATENCY, PREFER_QUALITY }
enum | ENCODING_PREFERENCE { PREFER_AUTO = -1, PREFER_SOFTWARE = 0, PREFER_HARDWARE = 1 }
enum | VIDEO_MIRROR_MODE_TYPE { VIDEO_MIRROR_MODE_AUTO = 0, VIDEO_MIRROR_MODE_ENABLED = 1, VIDEO_MIRROR_MODE_DISABLED = 2 }
enum | CODEC_CAP_MASK { CODEC_CAP_MASK_NONE = 0, CODEC_CAP_MASK_HW_DEC = 1 << 0, CODEC_CAP_MASK_HW_ENC = 1 << 1, CODEC_CAP_MASK_SW_DEC = 1 << 2, CODEC_CAP_MASK_SW_ENC = 1 << 3 }
enum | SIMULCAST_STREAM_MODE
enum | CLIENT_ROLE_TYPE { CLIENT_ROLE_BROADCASTER = 1, CLIENT_ROLE_AUDIENCE = 2 }
enum | QUALITY_ADAPT_INDICATION { ADAPT_NONE = 0, ADAPT_UP_BANDWIDTH = 1, ADAPT_DOWN_BANDWIDTH = 2 }
enum | AUDIENCE_LATENCY_LEVEL_TYPE { AUDIENCE_LATENCY_LEVEL_LOW_LATENCY = 1, AUDIENCE_LATENCY_LEVEL_ULTRA_LOW_LATENCY = 2 }
enum | EXPERIENCE_QUALITY_TYPE { EXPERIENCE_QUALITY_GOOD = 0, EXPERIENCE_QUALITY_BAD = 1 }
enum | EXPERIENCE_POOR_REASON { EXPERIENCE_REASON_NONE = 0, REMOTE_NETWORK_QUALITY_POOR = 1, LOCAL_NETWORK_QUALITY_POOR = 2, WIRELESS_SIGNAL_POOR = 4, WIFI_BLUETOOTH_COEXIST = 8 }
enum | AUDIO_AINS_MODE { AINS_MODE_BALANCED = 0, AINS_MODE_AGGRESSIVE = 1, AINS_MODE_ULTRALOWLATENCY = 2 }
enum | AUDIO_PROFILE_TYPE { AUDIO_PROFILE_DEFAULT = 0, AUDIO_PROFILE_SPEECH_STANDARD = 1, AUDIO_PROFILE_MUSIC_STANDARD = 2, AUDIO_PROFILE_MUSIC_STANDARD_STEREO = 3, AUDIO_PROFILE_MUSIC_HIGH_QUALITY = 4, AUDIO_PROFILE_MUSIC_HIGH_QUALITY_STEREO = 5, AUDIO_PROFILE_IOT = 6 }
enum | AUDIO_SCENARIO_TYPE { AUDIO_SCENARIO_DEFAULT = 0, AUDIO_SCENARIO_GAME_STREAMING = 3, AUDIO_SCENARIO_CHATROOM = 5, AUDIO_SCENARIO_CHORUS = 7, AUDIO_SCENARIO_MEETING = 8, AUDIO_SCENARIO_NUM = 9 }
enum | VIDEO_CONTENT_HINT { CONTENT_HINT_NONE, CONTENT_HINT_MOTION, CONTENT_HINT_DETAILS }
enum | SCREEN_SCENARIO_TYPE { SCREEN_SCENARIO_DOCUMENT = 1, SCREEN_SCENARIO_GAMING = 2, SCREEN_SCENARIO_VIDEO = 3, SCREEN_SCENARIO_RDC = 4 }
enum | VIDEO_APPLICATION_SCENARIO_TYPE { APPLICATION_SCENARIO_GENERAL = 0, APPLICATION_SCENARIO_MEETING = 1 }
enum | CAPTURE_BRIGHTNESS_LEVEL_TYPE { CAPTURE_BRIGHTNESS_LEVEL_INVALID = -1, CAPTURE_BRIGHTNESS_LEVEL_NORMAL = 0, CAPTURE_BRIGHTNESS_LEVEL_BRIGHT = 1, CAPTURE_BRIGHTNESS_LEVEL_DARK = 2 }
enum | LOCAL_AUDIO_STREAM_STATE { LOCAL_AUDIO_STREAM_STATE_STOPPED = 0, LOCAL_AUDIO_STREAM_STATE_RECORDING = 1, LOCAL_AUDIO_STREAM_STATE_ENCODING = 2, LOCAL_AUDIO_STREAM_STATE_FAILED = 3 }
enum | LOCAL_AUDIO_STREAM_ERROR { LOCAL_AUDIO_STREAM_ERROR_OK = 0, LOCAL_AUDIO_STREAM_ERROR_FAILURE = 1, LOCAL_AUDIO_STREAM_ERROR_DEVICE_NO_PERMISSION = 2, LOCAL_AUDIO_STREAM_ERROR_DEVICE_BUSY = 3, LOCAL_AUDIO_STREAM_ERROR_RECORD_FAILURE = 4, LOCAL_AUDIO_STREAM_ERROR_ENCODE_FAILURE = 5, LOCAL_AUDIO_STREAM_ERROR_NO_RECORDING_DEVICE = 6, LOCAL_AUDIO_STREAM_ERROR_NO_PLAYOUT_DEVICE = 7, LOCAL_AUDIO_STREAM_ERROR_INTERRUPTED = 8, LOCAL_AUDIO_STREAM_ERROR_RECORD_INVALID_ID = 9, LOCAL_AUDIO_STREAM_ERROR_PLAYOUT_INVALID_ID = 10 }
enum | LOCAL_VIDEO_STREAM_STATE { LOCAL_VIDEO_STREAM_STATE_STOPPED = 0, LOCAL_VIDEO_STREAM_STATE_CAPTURING = 1, LOCAL_VIDEO_STREAM_STATE_ENCODING = 2, LOCAL_VIDEO_STREAM_STATE_FAILED = 3 }
enum | LOCAL_VIDEO_STREAM_ERROR { LOCAL_VIDEO_STREAM_ERROR_OK = 0, LOCAL_VIDEO_STREAM_ERROR_FAILURE = 1, LOCAL_VIDEO_STREAM_ERROR_DEVICE_NO_PERMISSION = 2, LOCAL_VIDEO_STREAM_ERROR_DEVICE_BUSY = 3, LOCAL_VIDEO_STREAM_ERROR_CAPTURE_FAILURE = 4, LOCAL_VIDEO_STREAM_ERROR_ENCODE_FAILURE = 5, LOCAL_VIDEO_STREAM_ERROR_CAPTURE_INBACKGROUND = 6, LOCAL_VIDEO_STREAM_ERROR_CAPTURE_MULTIPLE_FOREGROUND_APPS = 7, LOCAL_VIDEO_STREAM_ERROR_DEVICE_NOT_FOUND = 8, LOCAL_VIDEO_STREAM_ERROR_DEVICE_DISCONNECTED = 9, LOCAL_VIDEO_STREAM_ERROR_DEVICE_INVALID_ID = 10, LOCAL_VIDEO_STREAM_ERROR_DEVICE_INTERRUPT = 14, LOCAL_VIDEO_STREAM_ERROR_DEVICE_FATAL_ERROR = 15, LOCAL_VIDEO_STREAM_ERROR_DEVICE_SYSTEM_PRESSURE = 101, LOCAL_VIDEO_STREAM_ERROR_SCREEN_CAPTURE_WINDOW_MINIMIZED = 11, LOCAL_VIDEO_STREAM_ERROR_SCREEN_CAPTURE_WINDOW_CLOSED = 12, LOCAL_VIDEO_STREAM_ERROR_SCREEN_CAPTURE_WINDOW_OCCLUDED = 13, LOCAL_VIDEO_STREAM_ERROR_SCREEN_CAPTURE_WINDOW_NOT_SUPPORTED = 20, LOCAL_VIDEO_STREAM_ERROR_SCREEN_CAPTURE_FAILURE = 21, LOCAL_VIDEO_STREAM_ERROR_SCREEN_CAPTURE_NO_PERMISSION = 22, LOCAL_VIDEO_STREAM_ERROR_SCREEN_CAPTURE_PAUSED = 23, LOCAL_VIDEO_STREAM_ERROR_SCREEN_CAPTURE_RESUMED = 24, LOCAL_VIDEO_STREAM_ERROR_SCREEN_CAPTURE_WINDOW_HIDDEN = 25, LOCAL_VIDEO_STREAM_ERROR_SCREEN_CAPTURE_WINDOW_RECOVER_FROM_HIDDEN = 26, LOCAL_VIDEO_STREAM_ERROR_SCREEN_CAPTURE_WINDOW_RECOVER_FROM_MINIMIZED = 27, LOCAL_VIDEO_STREAM_REASON_SCREEN_CAPTURE_DISPLAY_DISCONNECTED = 30 }
enum | REMOTE_AUDIO_STATE { REMOTE_AUDIO_STATE_STOPPED = 0, REMOTE_AUDIO_STATE_STARTING = 1, REMOTE_AUDIO_STATE_DECODING = 2, REMOTE_AUDIO_STATE_FROZEN = 3, REMOTE_AUDIO_STATE_FAILED = 4 }
enum | REMOTE_AUDIO_STATE_REASON { REMOTE_AUDIO_REASON_INTERNAL = 0, REMOTE_AUDIO_REASON_NETWORK_CONGESTION = 1, REMOTE_AUDIO_REASON_NETWORK_RECOVERY = 2, REMOTE_AUDIO_REASON_LOCAL_MUTED = 3, REMOTE_AUDIO_REASON_LOCAL_UNMUTED = 4, REMOTE_AUDIO_REASON_REMOTE_MUTED = 5, REMOTE_AUDIO_REASON_REMOTE_UNMUTED = 6, REMOTE_AUDIO_REASON_REMOTE_OFFLINE = 7, REMOTE_AUDIO_REASON_REMOTE_NO_PACKET_RECEIVE = 8, REMOTE_AUDIO_REASON_REMOTE_LOCAL_PLAY_FAILED = 9 }
enum | REMOTE_VIDEO_STATE { REMOTE_VIDEO_STATE_STOPPED = 0, REMOTE_VIDEO_STATE_STARTING = 1, REMOTE_VIDEO_STATE_DECODING = 2, REMOTE_VIDEO_STATE_FROZEN = 3, REMOTE_VIDEO_STATE_FAILED = 4 }
enum | REMOTE_VIDEO_STATE_REASON { REMOTE_VIDEO_STATE_REASON_INTERNAL = 0, REMOTE_VIDEO_STATE_REASON_NETWORK_CONGESTION = 1, REMOTE_VIDEO_STATE_REASON_NETWORK_RECOVERY = 2, REMOTE_VIDEO_STATE_REASON_LOCAL_MUTED = 3, REMOTE_VIDEO_STATE_REASON_LOCAL_UNMUTED = 4, REMOTE_VIDEO_STATE_REASON_REMOTE_MUTED = 5, REMOTE_VIDEO_STATE_REASON_REMOTE_UNMUTED = 6, REMOTE_VIDEO_STATE_REASON_REMOTE_OFFLINE = 7, REMOTE_VIDEO_STATE_REASON_AUDIO_FALLBACK = 8, REMOTE_VIDEO_STATE_REASON_AUDIO_FALLBACK_RECOVERY = 9, REMOTE_VIDEO_STATE_REASON_VIDEO_STREAM_TYPE_CHANGE_TO_LOW = 10, REMOTE_VIDEO_STATE_REASON_VIDEO_STREAM_TYPE_CHANGE_TO_HIGH = 11, REMOTE_VIDEO_STATE_REASON_SDK_IN_BACKGROUND = 12, REMOTE_VIDEO_STATE_REASON_CODEC_NOT_SUPPORT = 13 }
enum | REMOTE_USER_STATE { USER_STATE_MUTE_AUDIO = (1 << 0), USER_STATE_MUTE_VIDEO = (1 << 1), USER_STATE_ENABLE_VIDEO = (1 << 4), USER_STATE_ENABLE_LOCAL_VIDEO = (1 << 8) }
enum | REMOTE_VIDEO_DOWNSCALE_LEVEL { REMOTE_VIDEO_DOWNSCALE_LEVEL_NONE, REMOTE_VIDEO_DOWNSCALE_LEVEL_1, REMOTE_VIDEO_DOWNSCALE_LEVEL_2, REMOTE_VIDEO_DOWNSCALE_LEVEL_3, REMOTE_VIDEO_DOWNSCALE_LEVEL_4 }
enum | AUDIO_SAMPLE_RATE_TYPE { AUDIO_SAMPLE_RATE_32000 = 32000, AUDIO_SAMPLE_RATE_44100 = 44100, AUDIO_SAMPLE_RATE_48000 = 48000 }
enum | VIDEO_CODEC_TYPE_FOR_STREAM { VIDEO_CODEC_H264_FOR_STREAM = 1, VIDEO_CODEC_H265_FOR_STREAM = 2 }
enum | VIDEO_CODEC_PROFILE_TYPE { VIDEO_CODEC_PROFILE_BASELINE = 66, VIDEO_CODEC_PROFILE_MAIN = 77, VIDEO_CODEC_PROFILE_HIGH = 100 }
enum | AUDIO_CODEC_PROFILE_TYPE { AUDIO_CODEC_PROFILE_LC_AAC = 0, AUDIO_CODEC_PROFILE_HE_AAC = 1, AUDIO_CODEC_PROFILE_HE_AAC_V2 = 2 }
enum | RTMP_STREAM_PUBLISH_STATE { RTMP_STREAM_PUBLISH_STATE_IDLE = 0, RTMP_STREAM_PUBLISH_STATE_CONNECTING = 1, RTMP_STREAM_PUBLISH_STATE_RUNNING = 2, RTMP_STREAM_PUBLISH_STATE_RECOVERING = 3, RTMP_STREAM_PUBLISH_STATE_FAILURE = 4, RTMP_STREAM_PUBLISH_STATE_DISCONNECTING = 5 }
enum | RTMP_STREAM_PUBLISH_ERROR_TYPE { RTMP_STREAM_PUBLISH_ERROR_OK = 0, RTMP_STREAM_PUBLISH_ERROR_INVALID_ARGUMENT = 1, RTMP_STREAM_PUBLISH_ERROR_ENCRYPTED_STREAM_NOT_ALLOWED = 2, RTMP_STREAM_PUBLISH_ERROR_CONNECTION_TIMEOUT = 3, RTMP_STREAM_PUBLISH_ERROR_INTERNAL_SERVER_ERROR = 4, RTMP_STREAM_PUBLISH_ERROR_RTMP_SERVER_ERROR = 5, RTMP_STREAM_PUBLISH_ERROR_TOO_OFTEN = 6, RTMP_STREAM_PUBLISH_ERROR_REACH_LIMIT = 7, RTMP_STREAM_PUBLISH_ERROR_NOT_AUTHORIZED = 8, RTMP_STREAM_PUBLISH_ERROR_STREAM_NOT_FOUND = 9, RTMP_STREAM_PUBLISH_ERROR_FORMAT_NOT_SUPPORTED = 10, RTMP_STREAM_PUBLISH_ERROR_NOT_BROADCASTER = 11, RTMP_STREAM_PUBLISH_ERROR_TRANSCODING_NO_MIX_STREAM = 13, RTMP_STREAM_PUBLISH_ERROR_NET_DOWN = 14, RTMP_STREAM_PUBLISH_ERROR_INVALID_APPID = 15, RTMP_STREAM_PUBLISH_ERROR_INVALID_PRIVILEGE = 16, RTMP_STREAM_UNPUBLISH_ERROR_OK = 100 }
enum | RTMP_STREAMING_EVENT { RTMP_STREAMING_EVENT_FAILED_LOAD_IMAGE = 1, RTMP_STREAMING_EVENT_URL_ALREADY_IN_USE = 2, RTMP_STREAMING_EVENT_ADVANCED_FEATURE_NOT_SUPPORT = 3, RTMP_STREAMING_EVENT_REQUEST_TOO_OFTEN = 4 }
enum | LASTMILE_PROBE_RESULT_STATE { LASTMILE_PROBE_RESULT_COMPLETE = 1, LASTMILE_PROBE_RESULT_INCOMPLETE_NO_BWE = 2, LASTMILE_PROBE_RESULT_UNAVAILABLE = 3 }
enum | CONNECTION_CHANGED_REASON_TYPE { CONNECTION_CHANGED_CONNECTING = 0, CONNECTION_CHANGED_JOIN_SUCCESS = 1, CONNECTION_CHANGED_INTERRUPTED = 2, CONNECTION_CHANGED_BANNED_BY_SERVER = 3, CONNECTION_CHANGED_JOIN_FAILED = 4, CONNECTION_CHANGED_LEAVE_CHANNEL = 5, CONNECTION_CHANGED_INVALID_APP_ID = 6, CONNECTION_CHANGED_INVALID_CHANNEL_NAME = 7, CONNECTION_CHANGED_INVALID_TOKEN = 8, CONNECTION_CHANGED_TOKEN_EXPIRED = 9, CONNECTION_CHANGED_REJECTED_BY_SERVER = 10, CONNECTION_CHANGED_SETTING_PROXY_SERVER = 11, CONNECTION_CHANGED_RENEW_TOKEN = 12, CONNECTION_CHANGED_CLIENT_IP_ADDRESS_CHANGED = 13, CONNECTION_CHANGED_KEEP_ALIVE_TIMEOUT = 14, CONNECTION_CHANGED_REJOIN_SUCCESS = 15, CONNECTION_CHANGED_LOST = 16, CONNECTION_CHANGED_ECHO_TEST = 17, CONNECTION_CHANGED_CLIENT_IP_ADDRESS_CHANGED_BY_USER = 18, CONNECTION_CHANGED_SAME_UID_LOGIN = 19, CONNECTION_CHANGED_TOO_MANY_BROADCASTERS = 20, CONNECTION_CHANGED_LICENSE_VALIDATION_FAILURE = 21, CONNECTION_CHANGED_CERTIFICATION_VERYFY_FAILURE = 22 }
enum | CLIENT_ROLE_CHANGE_FAILED_REASON { CLIENT_ROLE_CHANGE_FAILED_TOO_MANY_BROADCASTERS = 1, CLIENT_ROLE_CHANGE_FAILED_NOT_AUTHORIZED = 2, CLIENT_ROLE_CHANGE_FAILED_REQUEST_TIME_OUT = 3, CLIENT_ROLE_CHANGE_FAILED_CONNECTION_FAILED = 4 }
enum | WLACC_MESSAGE_REASON { WLACC_MESSAGE_REASON_WEAK_SIGNAL = 0, WLACC_MESSAGE_REASON_CHANNEL_CONGESTION = 1 }
enum | WLACC_SUGGEST_ACTION { WLACC_SUGGEST_ACTION_CLOSE_TO_WIFI = 0, WLACC_SUGGEST_ACTION_CONNECT_SSID = 1, WLACC_SUGGEST_ACTION_CHECK_5G = 2, WLACC_SUGGEST_ACTION_MODIFY_SSID = 3 }
enum | NETWORK_TYPE { NETWORK_TYPE_UNKNOWN = -1, NETWORK_TYPE_DISCONNECTED = 0, NETWORK_TYPE_LAN = 1, NETWORK_TYPE_WIFI = 2, NETWORK_TYPE_MOBILE_2G = 3, NETWORK_TYPE_MOBILE_3G = 4, NETWORK_TYPE_MOBILE_4G = 5, NETWORK_TYPE_MOBILE_5G = 6 }
enum | VIDEO_VIEW_SETUP_MODE { VIDEO_VIEW_SETUP_REPLACE = 0, VIDEO_VIEW_SETUP_ADD = 1, VIDEO_VIEW_SETUP_REMOVE = 2 }
enum | AUDIO_TRACK_TYPE { AUDIO_TRACK_INVALID = -1, AUDIO_TRACK_MIXABLE = 0, AUDIO_TRACK_DIRECT = 1 }
enum | LOOPBACK_AUDIO_TRACK_TYPE { LOOPBACK_SYSTEM = 0, LOOPBACK_SYSTEM_EXCLUDE_SELF = 1, LOOPBACK_APPLICATION = 2 }
enum | VOICE_BEAUTIFIER_PRESET { VOICE_BEAUTIFIER_OFF = 0x00000000, CHAT_BEAUTIFIER_MAGNETIC = 0x01010100, CHAT_BEAUTIFIER_FRESH = 0x01010200, CHAT_BEAUTIFIER_VITALITY = 0x01010300, SINGING_BEAUTIFIER = 0x01020100, TIMBRE_TRANSFORMATION_VIGOROUS = 0x01030100, TIMBRE_TRANSFORMATION_DEEP = 0x01030200, TIMBRE_TRANSFORMATION_MELLOW = 0x01030300, TIMBRE_TRANSFORMATION_FALSETTO = 0x01030400, TIMBRE_TRANSFORMATION_FULL = 0x01030500, TIMBRE_TRANSFORMATION_CLEAR = 0x01030600, TIMBRE_TRANSFORMATION_RESOUNDING = 0x01030700, TIMBRE_TRANSFORMATION_RINGING = 0x01030800, ULTRA_HIGH_QUALITY_VOICE = 0x01040100 }
enum | AUDIO_EFFECT_PRESET { AUDIO_EFFECT_OFF = 0x00000000, ROOM_ACOUSTICS_KTV = 0x02010100, ROOM_ACOUSTICS_VOCAL_CONCERT = 0x02010200, ROOM_ACOUSTICS_STUDIO = 0x02010300, ROOM_ACOUSTICS_PHONOGRAPH = 0x02010400, ROOM_ACOUSTICS_VIRTUAL_STEREO = 0x02010500, ROOM_ACOUSTICS_SPACIAL = 0x02010600, ROOM_ACOUSTICS_ETHEREAL = 0x02010700, ROOM_ACOUSTICS_3D_VOICE = 0x02010800, ROOM_ACOUSTICS_VIRTUAL_SURROUND_SOUND = 0x02010900, VOICE_CHANGER_EFFECT_UNCLE = 0x02020100, VOICE_CHANGER_EFFECT_OLDMAN = 0x02020200, VOICE_CHANGER_EFFECT_BOY = 0x02020300, VOICE_CHANGER_EFFECT_SISTER = 0x02020400, VOICE_CHANGER_EFFECT_GIRL = 0x02020500, VOICE_CHANGER_EFFECT_PIGKING = 0x02020600, VOICE_CHANGER_EFFECT_HULK = 0x02020700, STYLE_TRANSFORMATION_RNB = 0x02030100, STYLE_TRANSFORMATION_POPULAR = 0x02030200, PITCH_CORRECTION = 0x02040100 }
enum | VOICE_CONVERSION_PRESET { VOICE_CONVERSION_OFF = 0x00000000, VOICE_CHANGER_NEUTRAL = 0x03010100, VOICE_CHANGER_SWEET = 0x03010200, VOICE_CHANGER_SOLID = 0x03010300, VOICE_CHANGER_BASS = 0x03010400, VOICE_CHANGER_CARTOON = 0x03010500, VOICE_CHANGER_CHILDLIKE = 0x03010600, VOICE_CHANGER_PHONE_OPERATOR = 0x03010700, VOICE_CHANGER_MONSTER = 0x03010800, VOICE_CHANGER_TRANSFORMERS = 0x03010900, VOICE_CHANGER_GROOT = 0x03010A00, VOICE_CHANGER_DARTH_VADER = 0x03010B00, VOICE_CHANGER_IRON_LADY = 0x03010C00, VOICE_CHANGER_SHIN_CHAN = 0x03010D00, VOICE_CHANGER_GIRLISH_MAN = 0x03010E00, VOICE_CHANGER_CHIPMUNK = 0x03010F00 }
enum | HEADPHONE_EQUALIZER_PRESET { HEADPHONE_EQUALIZER_OFF = 0x00000000, HEADPHONE_EQUALIZER_OVEREAR = 0x04000001, HEADPHONE_EQUALIZER_INEAR = 0x04000002 }
enum | AUDIO_RECORDING_QUALITY_TYPE { AUDIO_RECORDING_QUALITY_LOW = 0, AUDIO_RECORDING_QUALITY_MEDIUM = 1, AUDIO_RECORDING_QUALITY_HIGH = 2, AUDIO_RECORDING_QUALITY_ULTRA_HIGH = 3 }
enum | AUDIO_FILE_RECORDING_TYPE { AUDIO_FILE_RECORDING_MIC = 1, AUDIO_FILE_RECORDING_PLAYBACK = 2, AUDIO_FILE_RECORDING_MIXED = 3 }
enum | AUDIO_ENCODED_FRAME_OBSERVER_POSITION { AUDIO_ENCODED_FRAME_OBSERVER_POSITION_RECORD = 1, AUDIO_ENCODED_FRAME_OBSERVER_POSITION_PLAYBACK = 2, AUDIO_ENCODED_FRAME_OBSERVER_POSITION_MIXED = 3 }
enum | AREA_CODE { AREA_CODE_CN = 0x00000001, AREA_CODE_NA = 0x00000002, AREA_CODE_EU = 0x00000004, AREA_CODE_AS = 0x00000008, AREA_CODE_JP = 0x00000010, AREA_CODE_IN = 0x00000020, AREA_CODE_GLOB = (0xFFFFFFFF) }
enum | AREA_CODE_EX { AREA_CODE_OC = 0x00000040, AREA_CODE_SA = 0x00000080, AREA_CODE_AF = 0x00000100, AREA_CODE_KR = 0x00000200, AREA_CODE_HKMC = 0x00000400, AREA_CODE_US = 0x00000800, AREA_CODE_RU = 0x00001000, AREA_CODE_OVS = 0xFFFFFFFE }
enum | CHANNEL_MEDIA_RELAY_ERROR { RELAY_OK = 0, RELAY_ERROR_SERVER_ERROR_RESPONSE = 1, RELAY_ERROR_SERVER_NO_RESPONSE = 2, RELAY_ERROR_NO_RESOURCE_AVAILABLE = 3, RELAY_ERROR_FAILED_JOIN_SRC = 4, RELAY_ERROR_FAILED_JOIN_DEST = 5, RELAY_ERROR_FAILED_PACKET_RECEIVED_FROM_SRC = 6, RELAY_ERROR_FAILED_PACKET_SENT_TO_DEST = 7, RELAY_ERROR_SERVER_CONNECTION_LOST = 8, RELAY_ERROR_INTERNAL_ERROR = 9, RELAY_ERROR_SRC_TOKEN_EXPIRED = 10, RELAY_ERROR_DEST_TOKEN_EXPIRED = 11 }
enum | CHANNEL_MEDIA_RELAY_EVENT { RELAY_EVENT_NETWORK_DISCONNECTED = 0, RELAY_EVENT_NETWORK_CONNECTED = 1, RELAY_EVENT_PACKET_JOINED_SRC_CHANNEL = 2, RELAY_EVENT_PACKET_JOINED_DEST_CHANNEL = 3, RELAY_EVENT_PACKET_SENT_TO_DEST_CHANNEL = 4, RELAY_EVENT_PACKET_RECEIVED_VIDEO_FROM_SRC = 5, RELAY_EVENT_PACKET_RECEIVED_AUDIO_FROM_SRC = 6, RELAY_EVENT_PACKET_UPDATE_DEST_CHANNEL = 7, RELAY_EVENT_PACKET_UPDATE_DEST_CHANNEL_REFUSED = 8, RELAY_EVENT_PACKET_UPDATE_DEST_CHANNEL_NOT_CHANGE = 9, RELAY_EVENT_PACKET_UPDATE_DEST_CHANNEL_IS_NULL = 10, RELAY_EVENT_VIDEO_PROFILE_UPDATE = 11, RELAY_EVENT_PAUSE_SEND_PACKET_TO_DEST_CHANNEL_SUCCESS = 12, RELAY_EVENT_PAUSE_SEND_PACKET_TO_DEST_CHANNEL_FAILED = 13, RELAY_EVENT_RESUME_SEND_PACKET_TO_DEST_CHANNEL_SUCCESS = 14, RELAY_EVENT_RESUME_SEND_PACKET_TO_DEST_CHANNEL_FAILED = 15 }
enum | CHANNEL_MEDIA_RELAY_STATE { RELAY_STATE_IDLE = 0, RELAY_STATE_CONNECTING = 1, RELAY_STATE_RUNNING = 2, RELAY_STATE_FAILURE = 3 }
enum | ENCRYPTION_MODE { AES_128_XTS = 1, AES_128_ECB = 2, AES_256_XTS = 3, SM4_128_ECB = 4, AES_128_GCM = 5, AES_256_GCM = 6, AES_128_GCM2 = 7, AES_256_GCM2 = 8, MODE_END }
enum | ENCRYPTION_ERROR_TYPE { 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 | PERMISSION_TYPE { RECORD_AUDIO = 0, CAMERA = 1 }
enum | MAX_USER_ACCOUNT_LENGTH_TYPE { MAX_USER_ACCOUNT_LENGTH = 256 }
enum | STREAM_SUBSCRIBE_STATE { SUB_STATE_IDLE = 0, SUB_STATE_NO_SUBSCRIBED = 1, SUB_STATE_SUBSCRIBING = 2, SUB_STATE_SUBSCRIBED = 3 }
enum | STREAM_PUBLISH_STATE { PUB_STATE_IDLE = 0, PUB_STATE_NO_PUBLISHED = 1, PUB_STATE_PUBLISHING = 2, PUB_STATE_PUBLISHED = 3 }
enum | EAR_MONITORING_FILTER_TYPE { EAR_MONITORING_FILTER_NONE = (1<<0), EAR_MONITORING_FILTER_BUILT_IN_AUDIO_FILTERS = (1<<1), EAR_MONITORING_FILTER_NOISE_SUPPRESSION = (1<<2), EAR_MONITORING_FILTER_REUSE_POST_PROCESSING_FILTER = (1<<15) }
enum | THREAD_PRIORITY_TYPE { LOWEST = 0, LOW = 1, NORMAL = 2, HIGH = 3, HIGHEST = 4, CRITICAL = 5 }
enum | MEDIA_TRACE_EVENT { MEDIA_TRACE_EVENT_VIDEO_RENDERED = 0, MEDIA_TRACE_EVENT_VIDEO_DECODED }
enum | LOCAL_PROXY_MODE { ConnectivityFirst = 0, LocalOnly = 1 }

## Functions
AGORA_API const char *AGORA_CALL | getAgoraSdkVersion (int *build)
AGORA_API const char *AGORA_CALL | getAgoraSdkErrorDescription (int err)
AGORA_API int AGORA_CALL | createAgoraCredential (agora::util::AString &credential)
AGORA_API int AGORA_CALL | getAgoraCertificateVerifyResult (const char *credential_buf, int credential_len, const char *certificate_buf, int certificate_len)
AGORA_API void | setAgoraLicenseCallback (agora::base::LicenseCallback *callback)
AGORA_API agora::base::LicenseCallback * | getAgoraLicenseCallback ()

## Variables
const int | STANDARD_BITRATE = 0
const int | COMPATIBLE_BITRATE = -1
const int | DEFAULT_MIN_BITRATE = -1
const int | DEFAULT_MIN_BITRATE_EQUAL_TO_TARGET_BITRATE = -2

## Macro Definition Documentation

## ◆ MAX_PATH_260

#define MAX_PATH_260 (260)

## ◆ AGORA_API

#define AGORA_API extern "C"

## ◆ AGORA_CALL

#define AGORA_CALL

## ◆ __deprecated

#define __deprecated

## ◆ OPTIONAL_NULLPTR

#define OPTIONAL_NULLPTR NULL

## ◆ INVALID_DISPLAY_ID

#define INVALID_DISPLAY_ID 0xffff

## Function Documentation

## ◆ getAgoraSdkVersion()

AGORA_API const char* AGORA_CALL getAgoraSdkVersion | ( | int * | build | ) |

Gets the version of the SDK.

Parameters

  [out] | build | The build number of Agora SDK.

Returns
  The string of the version of the SDK.

## ◆ getAgoraSdkErrorDescription()

AGORA_API const char* AGORA_CALL getAgoraSdkErrorDescription | ( | int | err | ) |

Gets error description of an error code.

Parameters

  [in] | err | The error code.

Returns
  The description of the error code.

## ◆ setAgoraSdkExternalSymbolLoader()

AGORA_API int AGORA_CALL setAgoraSdkExternalSymbolLoader | ( | void *(*)(const char *symname) | func | ) |

## ◆ createAgoraCredential()

AGORA_API int AGORA_CALL createAgoraCredential | ( | agora::util::AString & | credential | ) |

Generate credential

Parameters

  [in,out] | credential | The content of the credential.

Returns
  The description of the error code.

Note
  For license only, everytime will generate a different credential. So, just need to call once for a device, and then save the credential

## ◆ getAgoraCertificateVerifyResult()

AGORA_API int AGORA_CALL getAgoraCertificateVerifyResult | ( | const char * | credential_buf,
|  | int | credential_len,
|  | const char * | certificate_buf,
|  | int | certificate_len
| ) |  |

Verify given certificate and return the result When you receive onCertificateRequired event, you must validate the certificate by calling this function. This is sync call, and if validation is success, it will return ERR_OK. And if failed to pass validation, you won't be able to joinChannel and ERR_CERT_FAIL will be returned.

Parameters

  [in] | credential_buf | pointer to the credential's content.
  [in] | credential_len | the length of the credential's content.
  [in] | certificate_buf | pointer to the certificate's content.
  [in] | certificate_len | the length of the certificate's content.

Returns
  The description of the error code.

Note
  For license only.

## ◆ setAgoraLicenseCallback()

AGORA_API void setAgoraLicenseCallback | ( | agora::base::LicenseCallback * | callback | ) |

Implement the agora::base::LicenseCallback, create a LicenseCallback object to receive callbacks of license.

Parameters

  [in] | callback | The object of agora::LiceseCallback, set the callback to null before delete it.

## ◆ getAgoraLicenseCallback()

AGORA_API agora::base::LicenseCallback* getAgoraLicenseCallback | ( |  | ) |

Get the LicenseCallback pointer if already setup, otherwise, return null.

Returns
  a pointer of agora::base::LicenseCallback

## ◆ getAgoraCurrentMonotonicTimeInMs()

AGORA_API int64_t AGORA_CALL getAgoraCurrentMonotonicTimeInMs | ( |  | ) |