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  IParameterEngine
 
class  AutoPtr< T >
 
class  CopyableAutoPtr< T >
 
class  IString
 
class  IIterator
 
class  IContainer
 
class  AOutputIterator< T >
 
class  AList< T >
 
struct  UserInfo
 
struct  VideoDimensions
 
struct  EncodedAudioFrameAdvancedSettings
 
struct  EncodedAudioFrameInfo
 
struct  AudioPcmDataInfo
 
struct  EncodedVideoFrameInfo
 
struct  VideoEncoderConfiguration
 
struct  DataStreamConfig
 
struct  SimulcastStreamConfig
 
struct  Rectangle
 
struct  WatermarkRatio
 
struct  WatermarkOptions
 
struct  RtcStats
 
struct  ClientRoleOptions
 
struct  RemoteAudioStats
 
struct  VideoFormat
 
struct  VideoTrackInfo
 
struct  AudioVolumeInfo
 
struct  DeviceInfo
 
class  IPacketObserver
 
struct  IPacketObserver::Packet
 
class  IVideoEncodedImageReceiver
 
struct  LocalAudioStats
 
struct  RtcImage
 
struct  LiveStreamAdvancedFeature
 
struct  TranscodingUser
 
struct  LiveTranscoding
 
struct  TranscodingVideoStream
 
struct  LocalTranscoderConfiguration
 
struct  LastmileProbeConfig
 
struct  LastmileProbeOneWayResult
 
struct  LastmileProbeResult
 
struct  VideoCanvas
 
struct  BeautyOptions
 
struct  VirtualBackgroundSource
 
struct  FishCorrectionParams
 
struct  ScreenCaptureParameters
 
struct  AudioRecordingConfiguration
 
struct  AudioEncodedFrameObserverConfig
 
class  IAudioEncodedFrameObserver
 
struct  ChannelMediaInfo
 
struct  ChannelMediaRelayConfiguration
 
struct  UplinkNetworkInfo
 
struct  DownlinkNetworkInfo
 
struct  DownlinkNetworkInfo::PeerDownlinkInfo
 
struct  EncryptionConfig
 
struct  UserInfo
 
class  IEngineBase
 
class  AParameter
 
class  LicenseCallback
 

Namespaces

 agora
 
 agora::commons
 
 agora::commons::cjson
 
 agora::base
 
 agora::util
 
 agora::rtc
 

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, CHANNEL_PROFILE_LIVE_BROADCASTING_2 = 5
}
 
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_IOS_CATEGORY_NOT_PLAYANDRECORD = 1029, WARN_ADM_IOS_SAMPLERATE_CHANGE = 1030,
  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_NET_NOBUFS = 15,
  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_CLIENT_IS_BANNED_BY_SERVER = 123, ERR_WATERMARK_PARAM = 124, ERR_WATERMARK_PATH = 125,
  ERR_WATERMARK_PNG = 126, ERR_WATERMARKR_INFO = 127, ERR_WATERMARK_ARGB = 128, ERR_WATERMARK_READ = 129,
  ERR_ENCRYPTED_STREAM_NOT_ALLOWED_PUBLISH = 130, ERR_LICENSE_CREDENTIAL_INVALID = 131, ERR_INVALID_USER_ACCOUNT = 134 , ERR_LOAD_MEDIA_ENGINE = 1001,
  ERR_START_CALL = 1002, ERR_START_CAMERA = 1003, ERR_START_VIDEO_RENDER = 1004, ERR_ADM_GENERAL_ERROR = 1005,
  ERR_ADM_JAVA_RESOURCE = 1006, ERR_ADM_SAMPLE_RATE = 1007, 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_ADM_RUNTIME_PLAYOUT_ERROR = 1015, ERR_ADM_RUNTIME_RECORDING_ERROR = 1017, ERR_ADM_RECORD_AUDIO_FAILED = 1018, ERR_ADM_INIT_LOOPBACK = 1022,
  ERR_ADM_START_LOOPBACK = 1023, ERR_ADM_NO_PERMISSION = 1027, ERR_ADM_RECORD_AUDIO_IS_ACTIVE = 1033, ERR_ADM_ANDROID_JNI_JAVA_RESOURCE = 1101,
  ERR_ADM_ANDROID_JNI_NO_RECORD_FREQUENCY = 1108, ERR_ADM_ANDROID_JNI_NO_PLAYBACK_FREQUENCY = 1109, ERR_ADM_ANDROID_JNI_JAVA_START_RECORD = 1111, ERR_ADM_ANDROID_JNI_JAVA_START_PLAYBACK = 1112,
  ERR_ADM_ANDROID_JNI_JAVA_RECORD_ERROR = 1115, ERR_ADM_ANDROID_OPENSL_CREATE_ENGINE = 1151, ERR_ADM_ANDROID_OPENSL_CREATE_AUDIO_RECORDER = 1153, ERR_ADM_ANDROID_OPENSL_START_RECORDER_THREAD = 1156,
  ERR_ADM_ANDROID_OPENSL_CREATE_AUDIO_PLAYER = 1157, ERR_ADM_ANDROID_OPENSL_START_PLAYER_THREAD = 1160, ERR_ADM_IOS_INPUT_NOT_AVAILABLE = 1201, ERR_ADM_IOS_ACTIVATE_SESSION_FAIL = 1206,
  ERR_ADM_IOS_VPIO_INIT_FAIL = 1210, ERR_ADM_IOS_VPIO_REINIT_FAIL = 1213, ERR_ADM_IOS_VPIO_RESTART_FAIL = 1214 , ERR_ADM_IOS_SESSION_SAMPLERATR_ZERO = 1221,
  ERR_ADM_WIN_CORE_INIT = 1301, ERR_ADM_WIN_CORE_INIT_RECORDING = 1303, ERR_ADM_WIN_CORE_INIT_PLAYOUT = 1306, ERR_ADM_WIN_CORE_INIT_PLAYOUT_NULL = 1307,
  ERR_ADM_WIN_CORE_START_RECORDING = 1309, ERR_ADM_WIN_CORE_CREATE_REC_THREAD = 1311, ERR_ADM_WIN_CORE_CAPTURE_NOT_STARTUP = 1314, ERR_ADM_WIN_CORE_CREATE_RENDER_THREAD = 1319,
  ERR_ADM_WIN_CORE_RENDER_NOT_STARTUP = 1320, ERR_ADM_WIN_CORE_NO_RECORDING_DEVICE = 1322, ERR_ADM_WIN_CORE_NO_PLAYOUT_DEVICE = 1323, ERR_ADM_WIN_WAVE_INIT = 1351,
  ERR_ADM_WIN_WAVE_INIT_RECORDING = 1353, ERR_ADM_WIN_WAVE_INIT_MICROPHONE = 1354, ERR_ADM_WIN_WAVE_INIT_PLAYOUT = 1355, ERR_ADM_WIN_WAVE_INIT_SPEAKER = 1356,
  ERR_ADM_WIN_WAVE_START_RECORDING = 1357, ERR_ADM_WIN_WAVE_START_PLAYOUT = 1358, ERR_ADM_NO_RECORDING_DEVICE = 1359, ERR_ADM_NO_PLAYOUT_DEVICE = 1360,
  ERR_VDM_CAMERA_NOT_AUTHORIZED = 1501, ERR_VDM_WIN_DEVICE_IN_USE = 1502, ERR_VCM_UNKNOWN_ERROR = 1600, ERR_VCM_ENCODER_INIT_ERROR = 1601,
  ERR_VCM_ENCODER_ENCODE_ERROR = 1602, ERR_VCM_ENCODER_SET_ERROR = 1603
}
 
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
}
 
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  VIDEO_CODEC_TYPE { ,
  VIDEO_CODEC_VP8 = 1, VIDEO_CODEC_H264 = 2, VIDEO_CODEC_H265 = 3, VIDEO_CODEC_VP9 = 5,
  VIDEO_CODEC_GENERIC = 6, VIDEO_CODEC_GENERIC_H264 = 7, VIDEO_CODEC_AV1 = 12, VIDEO_CODEC_GENERIC_JPEG = 20
}
 
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_LPCNET = 12
}
 
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  VIDEO_MIRROR_MODE_TYPE { VIDEO_MIRROR_MODE_AUTO = 0, VIDEO_MIRROR_MODE_ENABLED = 1, VIDEO_MIRROR_MODE_DISABLED = 2 }
 
enum  VIDEO_SOURCE_TYPE {
  VIDEO_SOURCE_CAMERA_PRIMARY , VIDEO_SOURCE_CAMERA_SECONDARY, VIDEO_SOURCE_SCREEN_PRIMARY , VIDEO_SOURCE_SCREEN_SECONDARY,
  VIDEO_SOURCE_CUSTOM, VIDEO_SOURCE_MEDIA_PLAYER, VIDEO_SOURCE_RTC_IMAGE_PNG, VIDEO_SOURCE_RTC_IMAGE_JPEG,
  VIDEO_SOURCE_RTC_IMAGE_GIF, VIDEO_SOURCE_REMOTE, VIDEO_SOURCE_TRANSCODED
}
 
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, AUDIENCE_LATENCY_LEVEL_HIGH_LATENCY = 3 }
 
enum  EXPERIENCE_QUALITY_TYPE { EXPERIENCE_QUALITY_GOOD = 0, EXPERIENCE_QUALITY_BAD = 1 }
 
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_HIGH_DEFINITION = 6,
  AUDIO_SCENARIO_CHORUS = 7, AUDIO_SCENARIO_NUM = 8
}
 
enum  VIDEO_CONTENT_HINT { CONTENT_HINT_NONE, CONTENT_HINT_MOTION, CONTENT_HINT_DETAILS }
 
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
}
 
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_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
}
 
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
}
 
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
}
 
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_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_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
}
 
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  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
}
 
enum  VIDEO_VIEW_SETUP_MODE { VIDEO_VIEW_SETUP_REPLACE = 0, VIDEO_VIEW_SETUP_ADD = 1, VIDEO_VIEW_SETUP_REMOVE = 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
}
 
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, 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
}
 
enum  AUDIO_RECORDING_QUALITY_TYPE { AUDIO_RECORDING_QUALITY_LOW = 0, AUDIO_RECORDING_QUALITY_MEDIUM = 1, AUDIO_RECORDING_QUALITY_HIGH = 2 }
 
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  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
 
enum  PERMISSION_TYPE
 
enum  MAX_USER_ACCOUNT_LENGTH_TYPE { MAX_USER_ACCOUNT_LENGTH = 256 }
 
enum  STREAM_SUBSCRIBE_STATE
 
enum  STREAM_PUBLISH_STATE
 
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) }
 
enum  THREAD_PRIORITY_TYPE {
  LOWEST = 0, LOW = 1, NORMAL = 2, HIGH = 3,
  HIGHEST = 4, CRITICAL = 5
}
 

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::LicenseCallbackgetAgoraLicenseCallback ()
 

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

Function Documentation

◆ getAgoraSdkVersion()

AGORA_API const char* AGORA_CALL getAgoraSdkVersion ( int *  build)

Gets the version of the SDK.

Parameters
[out]buildThe 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]errThe 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]credentialThe 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_bufpointer to the credential's content.
[in]credential_lenthe length of the credential's content.
[in]certificate_bufpointer to the certificate's content.
[in]certificate_lenthe 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]callbackThe 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