Classes

class  AAudioDeviceManager
 
class  AParameter
 
struct  AudioVolumeInfo
 
class  AVideoDeviceManager
 
struct  BeautyOptions
 
struct  CameraCapturerConfiguration
 
struct  ChannelMediaInfo
 
struct  ChannelMediaRelayConfiguration
 
class  IAudioDeviceCollection
 
class  IAudioDeviceManager
 
class  IMetadataObserver
 
struct  InjectStreamConfig
 
class  IPacketObserver
 
class  IRtcEngine
 
class  IRtcEngineEventHandler
 
class  IRtcEngineParameter
 
class  IVideoDeviceCollection
 
class  IVideoDeviceManager
 
struct  LastmileProbeConfig
 
struct  LastmileProbeOneWayResult
 
struct  LastmileProbeResult
 
struct  LiveTranscoding
 
struct  LocalAudioStats
 
struct  LocalVideoStats
 
struct  Rect
 
struct  Rectangle
 
struct  RemoteAudioStats
 
struct  RemoteVideoStats
 
struct  RtcEngineContext
 
class  RtcEngineParameters
 
struct  RtcImage
 
struct  RtcStats
 
struct  ScreenCaptureParameters
 
struct  TranscodingUser
 
struct  UserInfo
 
struct  VideoCanvas
 
struct  VideoDimensions
 
struct  VideoEncoderConfiguration
 
struct  WatermarkOptions
 

Typedefs

typedef unsigned int uid_t
 
typedef void * view_t
 
typedef struct agora::rtc::TranscodingUser TranscodingUser
 
typedef struct agora::rtc::RtcImage RtcImage
 
typedef struct agora::rtc::LiveTranscoding LiveTranscoding
 
typedef struct agora::rtc::Rect Rect
 
typedef struct agora::rtc::WatermarkOptions WatermarkOptions
 

Enumerations

enum  MAX_DEVICE_ID_LENGTH_TYPE { MAX_DEVICE_ID_LENGTH = 512 }
 
enum  MAX_USER_ACCOUNT_LENGTH_TYPE { MAX_USER_ACCOUNT_LENGTH = 256 }
 
enum  QUALITY_REPORT_FORMAT_TYPE { QUALITY_REPORT_JSON = 0, QUALITY_REPORT_HTML = 1 }
 
enum  MEDIA_ENGINE_EVENT_CODE_TYPE {
  MEDIA_ENGINE_RECORDING_ERROR = 0, MEDIA_ENGINE_PLAYOUT_ERROR = 1, MEDIA_ENGINE_RECORDING_WARNING = 2, MEDIA_ENGINE_PLAYOUT_WARNING = 3,
  MEDIA_ENGINE_AUDIO_FILE_MIX_FINISH = 10, MEDIA_ENGINE_AUDIO_FAREND_MUSIC_BEGINS = 12, MEDIA_ENGINE_AUDIO_FAREND_MUSIC_ENDS = 13, MEDIA_ENGINE_LOCAL_AUDIO_RECORD_ENABLED = 14,
  MEDIA_ENGINE_LOCAL_AUDIO_RECORD_DISABLED = 15, MEDIA_ENGINE_ROLE_BROADCASTER_SOLO = 20, MEDIA_ENGINE_ROLE_BROADCASTER_INTERACTIVE = 21, MEDIA_ENGINE_ROLE_AUDIENCE = 22,
  MEDIA_ENGINE_ROLE_COMM_PEER = 23, MEDIA_ENGINE_ROLE_GAME_PEER = 24, MEDIA_ENGINE_AUDIO_ADM_REQUIRE_RESTART = 110, MEDIA_ENGINE_AUDIO_ADM_SPECIAL_RESTART = 111,
  MEDIA_ENGINE_AUDIO_ADM_USING_COMM_PARAMS = 112, MEDIA_ENGINE_AUDIO_ADM_USING_NORM_PARAMS = 113, MEDIA_ENGINE_AUDIO_EVENT_MIXING_PLAY = 710, MEDIA_ENGINE_AUDIO_EVENT_MIXING_PAUSED = 711,
  MEDIA_ENGINE_AUDIO_EVENT_MIXING_RESTART = 712, MEDIA_ENGINE_AUDIO_EVENT_MIXING_STOPPED = 713, MEDIA_ENGINE_AUDIO_EVENT_MIXING_ERROR = 714, MEDIA_ENGINE_AUDIO_ERROR_MIXING_OPEN = 701,
  MEDIA_ENGINE_AUDIO_ERROR_MIXING_TOO_FREQUENT = 702, MEDIA_ENGINE_AUDIO_ERROR_MIXING_INTERRUPTED_EOF = 703, MEDIA_ENGINE_AUDIO_ERROR_MIXING_NO_ERROR = 0
}
 
enum  AUDIO_MIXING_STATE_TYPE { AUDIO_MIXING_STATE_PLAYING = 710, AUDIO_MIXING_STATE_PAUSED = 711, AUDIO_MIXING_STATE_STOPPED = 713, AUDIO_MIXING_STATE_FAILED = 714 }
 
enum  AUDIO_MIXING_ERROR_TYPE { AUDIO_MIXING_ERROR_CAN_NOT_OPEN = 701, AUDIO_MIXING_ERROR_TOO_FREQUENT_CALL = 702, AUDIO_MIXING_ERROR_INTERRUPTED_EOF = 703, AUDIO_MIXING_ERROR_OK = 0 }
 
enum  MEDIA_DEVICE_STATE_TYPE { MEDIA_DEVICE_STATE_ACTIVE = 1, MEDIA_DEVICE_STATE_DISABLED = 2, MEDIA_DEVICE_STATE_NOT_PRESENT = 4, MEDIA_DEVICE_STATE_UNPLUGGED = 8 }
 
enum  MEDIA_DEVICE_TYPE {
  UNKNOWN_AUDIO_DEVICE = -1, AUDIO_PLAYOUT_DEVICE = 0, AUDIO_RECORDING_DEVICE = 1, VIDEO_RENDER_DEVICE = 2,
  VIDEO_CAPTURE_DEVICE = 3, AUDIO_APPLICATION_PLAYOUT_DEVICE = 4
}
 
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
}
 
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  AUDIO_RECORDING_QUALITY_TYPE { AUDIO_RECORDING_QUALITY_LOW = 0, AUDIO_RECORDING_QUALITY_MEDIUM = 1, AUDIO_RECORDING_QUALITY_HIGH = 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  RENDER_MODE_TYPE { RENDER_MODE_HIDDEN = 1, RENDER_MODE_FIT = 2, RENDER_MODE_ADAPTIVE = 3 }
 
enum  VIDEO_MIRROR_MODE_TYPE { VIDEO_MIRROR_MODE_AUTO = 0, VIDEO_MIRROR_MODE_ENABLED = 1, VIDEO_MIRROR_MODE_DISABLED = 2 }
 
enum  VIDEO_PROFILE_TYPE {
  VIDEO_PROFILE_LANDSCAPE_120P = 0, VIDEO_PROFILE_LANDSCAPE_120P_3 = 2, VIDEO_PROFILE_LANDSCAPE_180P = 10, VIDEO_PROFILE_LANDSCAPE_180P_3 = 12,
  VIDEO_PROFILE_LANDSCAPE_180P_4 = 13, VIDEO_PROFILE_LANDSCAPE_240P = 20, VIDEO_PROFILE_LANDSCAPE_240P_3 = 22, VIDEO_PROFILE_LANDSCAPE_240P_4 = 23,
  VIDEO_PROFILE_LANDSCAPE_360P = 30, VIDEO_PROFILE_LANDSCAPE_360P_3 = 32, VIDEO_PROFILE_LANDSCAPE_360P_4 = 33, VIDEO_PROFILE_LANDSCAPE_360P_6 = 35,
  VIDEO_PROFILE_LANDSCAPE_360P_7 = 36, VIDEO_PROFILE_LANDSCAPE_360P_8 = 37, VIDEO_PROFILE_LANDSCAPE_360P_9 = 38, VIDEO_PROFILE_LANDSCAPE_360P_10 = 39,
  VIDEO_PROFILE_LANDSCAPE_360P_11 = 100, VIDEO_PROFILE_LANDSCAPE_480P = 40, VIDEO_PROFILE_LANDSCAPE_480P_3 = 42, VIDEO_PROFILE_LANDSCAPE_480P_4 = 43,
  VIDEO_PROFILE_LANDSCAPE_480P_6 = 45, VIDEO_PROFILE_LANDSCAPE_480P_8 = 47, VIDEO_PROFILE_LANDSCAPE_480P_9 = 48, VIDEO_PROFILE_LANDSCAPE_480P_10 = 49,
  VIDEO_PROFILE_LANDSCAPE_720P = 50, VIDEO_PROFILE_LANDSCAPE_720P_3 = 52, VIDEO_PROFILE_LANDSCAPE_720P_5 = 54, VIDEO_PROFILE_LANDSCAPE_720P_6 = 55,
  VIDEO_PROFILE_LANDSCAPE_1080P = 60, VIDEO_PROFILE_LANDSCAPE_1080P_3 = 62, VIDEO_PROFILE_LANDSCAPE_1080P_5 = 64, VIDEO_PROFILE_LANDSCAPE_1440P = 66,
  VIDEO_PROFILE_LANDSCAPE_1440P_2 = 67, VIDEO_PROFILE_LANDSCAPE_4K = 70, VIDEO_PROFILE_LANDSCAPE_4K_3 = 72, VIDEO_PROFILE_PORTRAIT_120P = 1000,
  VIDEO_PROFILE_PORTRAIT_120P_3 = 1002, VIDEO_PROFILE_PORTRAIT_180P = 1010, VIDEO_PROFILE_PORTRAIT_180P_3 = 1012, VIDEO_PROFILE_PORTRAIT_180P_4 = 1013,
  VIDEO_PROFILE_PORTRAIT_240P = 1020, VIDEO_PROFILE_PORTRAIT_240P_3 = 1022, VIDEO_PROFILE_PORTRAIT_240P_4 = 1023, VIDEO_PROFILE_PORTRAIT_360P = 1030,
  VIDEO_PROFILE_PORTRAIT_360P_3 = 1032, VIDEO_PROFILE_PORTRAIT_360P_4 = 1033, VIDEO_PROFILE_PORTRAIT_360P_6 = 1035, VIDEO_PROFILE_PORTRAIT_360P_7 = 1036,
  VIDEO_PROFILE_PORTRAIT_360P_8 = 1037, VIDEO_PROFILE_PORTRAIT_360P_9 = 1038, VIDEO_PROFILE_PORTRAIT_360P_10 = 1039, VIDEO_PROFILE_PORTRAIT_360P_11 = 1100,
  VIDEO_PROFILE_PORTRAIT_480P = 1040, VIDEO_PROFILE_PORTRAIT_480P_3 = 1042, VIDEO_PROFILE_PORTRAIT_480P_4 = 1043, VIDEO_PROFILE_PORTRAIT_480P_6 = 1045,
  VIDEO_PROFILE_PORTRAIT_480P_8 = 1047, VIDEO_PROFILE_PORTRAIT_480P_9 = 1048, VIDEO_PROFILE_PORTRAIT_480P_10 = 1049, VIDEO_PROFILE_PORTRAIT_720P = 1050,
  VIDEO_PROFILE_PORTRAIT_720P_3 = 1052, VIDEO_PROFILE_PORTRAIT_720P_5 = 1054, VIDEO_PROFILE_PORTRAIT_720P_6 = 1055, VIDEO_PROFILE_PORTRAIT_1080P = 1060,
  VIDEO_PROFILE_PORTRAIT_1080P_3 = 1062, VIDEO_PROFILE_PORTRAIT_1080P_5 = 1064, VIDEO_PROFILE_PORTRAIT_1440P = 1066, VIDEO_PROFILE_PORTRAIT_1440P_2 = 1067,
  VIDEO_PROFILE_PORTRAIT_4K = 1070, VIDEO_PROFILE_PORTRAIT_4K_3 = 1072, VIDEO_PROFILE_DEFAULT = VIDEO_PROFILE_LANDSCAPE_360P
}
 
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, AUDIO_PROFILE_NUM = 7
}
 
enum  AUDIO_SCENARIO_TYPE {
  AUDIO_SCENARIO_DEFAULT = 0, AUDIO_SCENARIO_CHATROOM_ENTERTAINMENT = 1, AUDIO_SCENARIO_EDUCATION = 2, AUDIO_SCENARIO_GAME_STREAMING = 3,
  AUDIO_SCENARIO_SHOWROOM = 4, AUDIO_SCENARIO_CHATROOM_GAMING = 5, AUDIO_SCENARIO_IOT = 6, AUDIO_SCENARIO_NUM = 7
}
 
enum  CHANNEL_PROFILE_TYPE { CHANNEL_PROFILE_COMMUNICATION = 0, CHANNEL_PROFILE_LIVE_BROADCASTING = 1, CHANNEL_PROFILE_GAME = 2 }
 
enum  CLIENT_ROLE_TYPE { CLIENT_ROLE_BROADCASTER = 1, CLIENT_ROLE_AUDIENCE = 2 }
 
enum  USER_OFFLINE_REASON_TYPE { USER_OFFLINE_QUIT = 0, USER_OFFLINE_DROPPED = 1, USER_OFFLINE_BECOME_AUDIENCE = 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
}
 
enum  RTMP_STREAM_PUBLISH_ERROR {
  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
}
 
enum  INJECT_STREAM_STATUS {
  INJECT_STREAM_STATUS_START_SUCCESS = 0, INJECT_STREAM_STATUS_START_ALREADY_EXISTS = 1, INJECT_STREAM_STATUS_START_UNAUTHORIZED = 2, INJECT_STREAM_STATUS_START_TIMEDOUT = 3,
  INJECT_STREAM_STATUS_START_FAILED = 4, INJECT_STREAM_STATUS_STOP_SUCCESS = 5, INJECT_STREAM_STATUS_STOP_NOT_FOUND = 6, INJECT_STREAM_STATUS_STOP_UNAUTHORIZED = 7,
  INJECT_STREAM_STATUS_STOP_TIMEDOUT = 8, INJECT_STREAM_STATUS_STOP_FAILED = 9, INJECT_STREAM_STATUS_BROKEN = 10
}
 
enum  REMOTE_VIDEO_STREAM_TYPE { REMOTE_VIDEO_STREAM_HIGH = 0, REMOTE_VIDEO_STREAM_LOW = 1 }
 
enum  RAW_AUDIO_FRAME_OP_MODE_TYPE { RAW_AUDIO_FRAME_OP_MODE_READ_ONLY = 0, RAW_AUDIO_FRAME_OP_MODE_WRITE_ONLY = 1, RAW_AUDIO_FRAME_OP_MODE_READ_WRITE = 2 }
 
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  VIDEO_CODEC_TYPE { VIDEO_CODEC_VP8 = 1, VIDEO_CODEC_H264 = 2, VIDEO_CODEC_EVP = 3, VIDEO_CODEC_E264 = 4 }
 
enum  AUDIO_EQUALIZATION_BAND_FREQUENCY {
  AUDIO_EQUALIZATION_BAND_31 = 0, AUDIO_EQUALIZATION_BAND_62 = 1, AUDIO_EQUALIZATION_BAND_125 = 2, AUDIO_EQUALIZATION_BAND_250 = 3,
  AUDIO_EQUALIZATION_BAND_500 = 4, AUDIO_EQUALIZATION_BAND_1K = 5, AUDIO_EQUALIZATION_BAND_2K = 6, AUDIO_EQUALIZATION_BAND_4K = 7,
  AUDIO_EQUALIZATION_BAND_8K = 8, AUDIO_EQUALIZATION_BAND_16K = 9
}
 
enum  AUDIO_REVERB_TYPE {
  AUDIO_REVERB_DRY_LEVEL = 0, AUDIO_REVERB_WET_LEVEL = 1, AUDIO_REVERB_ROOM_SIZE = 2, AUDIO_REVERB_WET_DELAY = 3,
  AUDIO_REVERB_STRENGTH = 4
}
 
enum  VOICE_CHANGER_PRESET {
  VOICE_CHANGER_OFF = 0, VOICE_CHANGER_OLDMAN = 1, VOICE_CHANGER_BABYBOY = 2, VOICE_CHANGER_BABYGIRL = 3,
  VOICE_CHANGER_ZHUBAJIE = 4, VOICE_CHANGER_ETHEREAL = 5, VOICE_CHANGER_HULK = 6
}
 
enum  AUDIO_REVERB_PRESET {
  AUDIO_REVERB_OFF = 0, AUDIO_REVERB_POPULAR = 1, AUDIO_REVERB_RNB = 2, AUDIO_REVERB_ROCK = 3,
  AUDIO_REVERB_HIPHOP = 4, AUDIO_REVERB_VOCAL_CONCERT = 5, AUDIO_REVERB_KTV = 6, AUDIO_REVERB_STUDIO = 7
}
 
enum  AUDIO_CODEC_PROFILE_TYPE { AUDIO_CODEC_PROFILE_LC_AAC = 0, AUDIO_CODEC_PROFILE_HE_AAC = 1 }
 
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
}
 
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  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 }
 
enum  STREAM_FALLBACK_OPTIONS { STREAM_FALLBACK_OPTION_DISABLED = 0, STREAM_FALLBACK_OPTION_VIDEO_STREAM_LOW = 1, STREAM_FALLBACK_OPTION_AUDIO_ONLY = 2 }
 
enum  CAPTURER_OUTPUT_PREFERENCE { CAPTURER_OUTPUT_PREFERENCE_AUTO = 0, CAPTURER_OUTPUT_PREFERENCE_PERFORMANCE = 1, CAPTURER_OUTPUT_PREFERENCE_PREVIEW = 2 }
 
enum  PRIORITY_TYPE { PRIORITY_HIGH = 50, PRIORITY_NORMAL = 100 }
 
enum  CONNECTION_STATE_TYPE {
  CONNECTION_STATE_DISCONNECTED = 1, CONNECTION_STATE_CONNECTING = 2, CONNECTION_STATE_CONNECTED = 3, CONNECTION_STATE_RECONNECTING = 4,
  CONNECTION_STATE_FAILED = 5
}
 
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
}
 
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  LASTMILE_PROBE_RESULT_STATE { LASTMILE_PROBE_RESULT_COMPLETE = 1, LASTMILE_PROBE_RESULT_INCOMPLETE_NO_BWE = 2, LASTMILE_PROBE_RESULT_UNAVAILABLE = 3 }
 
enum  AUDIO_ROUTE_TYPE {
  AUDIO_ROUTE_DEFAULT = -1, AUDIO_ROUTE_HEADSET = 0, AUDIO_ROUTE_EARPIECE = 1, AUDIO_ROUTE_HEADSET_NO_MIC = 2,
  AUDIO_ROUTE_SPEAKERPHONE = 3, AUDIO_ROUTE_LOUDSPEAKER = 4, AUDIO_ROUTE_BLUETOOTH = 5
}
 
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  CAMERA_DIRECTION { CAMERA_REAR = 0, CAMERA_FRONT = 1 }
 
enum  QUALITY_ADAPT_INDICATION { ADAPT_NONE = 0, ADAPT_UP_BANDWIDTH = 1, ADAPT_DOWN_BANDWIDTH = 2 }
 
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
}
 
enum  CHANNEL_MEDIA_RELAY_STATE { RELAY_STATE_IDLE = 0, RELAY_STATE_CONNECTING = 1, RELAY_STATE_RUNNING = 2, RELAY_STATE_FAILURE = 3 }
 
enum  RTMP_STREAM_LIFE_CYCLE_TYPE { RTMP_STREAM_LIFE_CYCLE_BIND2CHANNEL = 1, RTMP_STREAM_LIFE_CYCLE_BIND2OWNER = 2 }
 
enum  VideoContentHint { CONTENT_HINT_NONE, CONTENT_HINT_MOTION, CONTENT_HINT_DETAILS }
 

Variables

const int STANDARD_BITRATE = 0
 
const int COMPATIBLE_BITRATE = -1
 
const int DEFAULT_MIN_BITRATE = -1
 

Typedef Documentation

◆ uid_t

typedef unsigned int agora::rtc::uid_t

◆ view_t

typedef void* agora::rtc::view_t

◆ TranscodingUser

The video properties of the user displaying the video in the CDN live. Agora supports a maximum of 17 transcoding users in a CDN streaming channel.

◆ RtcImage

Image properties.

The properties of the watermark and background images.

◆ LiveTranscoding

A struct for managing CDN live audio/video transcoding settings.

◆ Rect

DEPRECATED Definition of the rectangular region.

◆ WatermarkOptions

The options of the watermark image to be added.

Enumeration Type Documentation

◆ MAX_DEVICE_ID_LENGTH_TYPE

Maximum length of the device ID.

Enumerator
MAX_DEVICE_ID_LENGTH 

The maximum length of the device ID is 512 bytes.

◆ MAX_USER_ACCOUNT_LENGTH_TYPE

Maximum length of user account.

Enumerator
MAX_USER_ACCOUNT_LENGTH 

The maximum length of user account is 255 bytes.

◆ QUALITY_REPORT_FORMAT_TYPE

Formats of the quality report.

Enumerator
QUALITY_REPORT_JSON 

0: The quality report in JSON format,

QUALITY_REPORT_HTML 

1: The quality report in HTML format.

◆ MEDIA_ENGINE_EVENT_CODE_TYPE

Enumerator
MEDIA_ENGINE_RECORDING_ERROR 

0: For internal use only.

MEDIA_ENGINE_PLAYOUT_ERROR 

1: For internal use only.

MEDIA_ENGINE_RECORDING_WARNING 

2: For internal use only.

MEDIA_ENGINE_PLAYOUT_WARNING 

3: For internal use only.

MEDIA_ENGINE_AUDIO_FILE_MIX_FINISH 

10: For internal use only.

MEDIA_ENGINE_AUDIO_FAREND_MUSIC_BEGINS 

12: For internal use only.

MEDIA_ENGINE_AUDIO_FAREND_MUSIC_ENDS 

13: For internal use only.

MEDIA_ENGINE_LOCAL_AUDIO_RECORD_ENABLED 

14: For internal use only.

MEDIA_ENGINE_LOCAL_AUDIO_RECORD_DISABLED 

15: For internal use only.

MEDIA_ENGINE_ROLE_BROADCASTER_SOLO 

20: For internal use only.

MEDIA_ENGINE_ROLE_BROADCASTER_INTERACTIVE 

21: For internal use only.

MEDIA_ENGINE_ROLE_AUDIENCE 

22: For internal use only.

MEDIA_ENGINE_ROLE_COMM_PEER 

23: For internal use only.

MEDIA_ENGINE_ROLE_GAME_PEER 

24: For internal use only.

MEDIA_ENGINE_AUDIO_ADM_REQUIRE_RESTART 

110: For internal use only.

MEDIA_ENGINE_AUDIO_ADM_SPECIAL_RESTART 

111: For internal use only.

MEDIA_ENGINE_AUDIO_ADM_USING_COMM_PARAMS 

112: For internal use only.

MEDIA_ENGINE_AUDIO_ADM_USING_NORM_PARAMS 

113: For internal use only.

MEDIA_ENGINE_AUDIO_EVENT_MIXING_PLAY 

710: For internal use only.

MEDIA_ENGINE_AUDIO_EVENT_MIXING_PAUSED 

711: For internal use only.

MEDIA_ENGINE_AUDIO_EVENT_MIXING_RESTART 

712: For internal use only.

MEDIA_ENGINE_AUDIO_EVENT_MIXING_STOPPED 

713: For internal use only.

MEDIA_ENGINE_AUDIO_EVENT_MIXING_ERROR 

714: For internal use only.

MEDIA_ENGINE_AUDIO_ERROR_MIXING_OPEN 

701: For internal use only.

MEDIA_ENGINE_AUDIO_ERROR_MIXING_TOO_FREQUENT 

702: For internal use only.

MEDIA_ENGINE_AUDIO_ERROR_MIXING_INTERRUPTED_EOF 

703: The audio mixing file playback is interrupted. For internal use only.

MEDIA_ENGINE_AUDIO_ERROR_MIXING_NO_ERROR 

0: For internal use only.

◆ AUDIO_MIXING_STATE_TYPE

The states of the local user's audio mixing file.

Enumerator
AUDIO_MIXING_STATE_PLAYING 

710: The audio mixing file is playing.

AUDIO_MIXING_STATE_PAUSED 

711: The audio mixing file pauses playing.

AUDIO_MIXING_STATE_STOPPED 

713: The audio mixing file stops playing.

AUDIO_MIXING_STATE_FAILED 

714: An exception occurs when playing the audio mixing file. See AUDIO_MIXING_ERROR_TYPE.

◆ AUDIO_MIXING_ERROR_TYPE

The error codes of the local user's audio mixing file.

Enumerator
AUDIO_MIXING_ERROR_CAN_NOT_OPEN 

701: The SDK cannot open the audio mixing file.

AUDIO_MIXING_ERROR_TOO_FREQUENT_CALL 

702: The SDK opens the audio mixing file too frequently.

AUDIO_MIXING_ERROR_INTERRUPTED_EOF 

703: The audio mixing file playback is interrupted.

AUDIO_MIXING_ERROR_OK 

0: The SDK can open the audio mixing file.

◆ MEDIA_DEVICE_STATE_TYPE

Media device states.

Enumerator
MEDIA_DEVICE_STATE_ACTIVE 

1: The device is active.

MEDIA_DEVICE_STATE_DISABLED 

2: The device is disabled.

MEDIA_DEVICE_STATE_NOT_PRESENT 

4: The device is not present.

MEDIA_DEVICE_STATE_UNPLUGGED 

8: The device is unplugged.

◆ MEDIA_DEVICE_TYPE

Media device types.

Enumerator
UNKNOWN_AUDIO_DEVICE 

-1: Unknown device type.

AUDIO_PLAYOUT_DEVICE 

0: Audio playback device.

AUDIO_RECORDING_DEVICE 

1: Audio recording device.

VIDEO_RENDER_DEVICE 

2: Video renderer.

VIDEO_CAPTURE_DEVICE 

3: Video capturer.

AUDIO_APPLICATION_PLAYOUT_DEVICE 

4: Application audio playback device.

◆ LOCAL_VIDEO_STREAM_STATE

Local video state types

Enumerator
LOCAL_VIDEO_STREAM_STATE_STOPPED 

Initial state

LOCAL_VIDEO_STREAM_STATE_CAPTURING 

The capturer starts successfully.

LOCAL_VIDEO_STREAM_STATE_ENCODING 

The first video frame is successfully encoded.

LOCAL_VIDEO_STREAM_STATE_FAILED 

The local video fails to start.

◆ LOCAL_VIDEO_STREAM_ERROR

Local video state error codes

Enumerator
LOCAL_VIDEO_STREAM_ERROR_OK 

The local video is normal.

LOCAL_VIDEO_STREAM_ERROR_FAILURE 

No specified reason for the local video failure.

LOCAL_VIDEO_STREAM_ERROR_DEVICE_NO_PERMISSION 

No permission to use the local video device.

LOCAL_VIDEO_STREAM_ERROR_DEVICE_BUSY 

The local video capturer is in use.

LOCAL_VIDEO_STREAM_ERROR_CAPTURE_FAILURE 

The local video capture fails. Check whether the capturer is working properly.

LOCAL_VIDEO_STREAM_ERROR_ENCODE_FAILURE 

The local video encoding fails.

◆ LOCAL_AUDIO_STREAM_STATE

Local audio state types.

Enumerator
LOCAL_AUDIO_STREAM_STATE_STOPPED 

0: The local audio is in the initial state.

LOCAL_AUDIO_STREAM_STATE_RECORDING 

1: The recording device starts successfully.

LOCAL_AUDIO_STREAM_STATE_ENCODING 

2: The first audio frame encodes successfully.

LOCAL_AUDIO_STREAM_STATE_FAILED 

3: The local audio fails to start.

◆ LOCAL_AUDIO_STREAM_ERROR

Local audio state error codes.

Enumerator
LOCAL_AUDIO_STREAM_ERROR_OK 

0: The local audio is normal.

LOCAL_AUDIO_STREAM_ERROR_FAILURE 

1: No specified reason for the local audio failure.

LOCAL_AUDIO_STREAM_ERROR_DEVICE_NO_PERMISSION 

2: No permission to use the local audio device.

LOCAL_AUDIO_STREAM_ERROR_DEVICE_BUSY 

3: The microphone is in use.

LOCAL_AUDIO_STREAM_ERROR_RECORD_FAILURE 

4: The local audio recording fails. Check whether the recording device is working properly.

LOCAL_AUDIO_STREAM_ERROR_ENCODE_FAILURE 

5: The local audio encoding fails.

◆ AUDIO_RECORDING_QUALITY_TYPE

Audio recording qualities.

Enumerator
AUDIO_RECORDING_QUALITY_LOW 

0: Low quality. The sample rate is 32 kHz, and the file size is around 1.2 MB after 10 minutes of recording.

AUDIO_RECORDING_QUALITY_MEDIUM 

1: Medium quality. The sample rate is 32 kHz, and the file size is around 2 MB after 10 minutes of recording.

AUDIO_RECORDING_QUALITY_HIGH 

2: High quality. The sample rate is 32 kHz, and the file size is around 3.75 MB after 10 minutes of recording.

◆ QUALITY_TYPE

Network quality types.

Enumerator
QUALITY_UNKNOWN 

0: The network quality is unknown.

QUALITY_EXCELLENT 

1: The network quality is excellent.

QUALITY_GOOD 

2: The network quality is quite good, but the bitrate may be slightly lower than excellent.

QUALITY_POOR 

3: Users can feel the communication slightly impaired.

QUALITY_BAD 

4: Users cannot communicate smoothly.

QUALITY_VBAD 

5: The network is so bad that users can barely communicate.

QUALITY_DOWN 

6: The network is down and users cannot communicate at all.

QUALITY_UNSUPPORTED 

7: Users cannot detect the network quality. (Not in use.)

QUALITY_DETECTING 

8: Detecting the network quality.

◆ RENDER_MODE_TYPE

Video display modes.

Enumerator
RENDER_MODE_HIDDEN 

1: Uniformly scale the video until it fills the visible boundaries (cropped). One dimension of the video may have clipped contents.

RENDER_MODE_FIT 

2: Uniformly scale the video until one of its dimension fits the boundary (zoomed to fit). Areas that are not filled due to disparity in the aspect ratio are filled with black.

RENDER_MODE_ADAPTIVE 

DEPRECATED 3: This mode is deprecated.

◆ VIDEO_MIRROR_MODE_TYPE

Video mirror modes.

Enumerator
VIDEO_MIRROR_MODE_AUTO 

0: (Default) The SDK enables the mirror mode.

VIDEO_MIRROR_MODE_ENABLED 

1: Enable mirror mode.

VIDEO_MIRROR_MODE_DISABLED 

2: Disable mirror mode.

◆ VIDEO_PROFILE_TYPE

DEPRECATED Video profiles.

Enumerator
VIDEO_PROFILE_LANDSCAPE_120P 

0: 160 × 120, frame rate 15 fps, bitrate 65 Kbps.

VIDEO_PROFILE_LANDSCAPE_120P_3 

2: 120 × 120, frame rate 15 fps, bitrate 50 Kbps.

VIDEO_PROFILE_LANDSCAPE_180P 

10: 320×180, frame rate 15 fps, bitrate 140 Kbps.

VIDEO_PROFILE_LANDSCAPE_180P_3 

12: 180 × 180, frame rate 15 fps, bitrate 100 Kbps.

VIDEO_PROFILE_LANDSCAPE_180P_4 

13: 240 × 180, frame rate 15 fps, bitrate 120 Kbps.

VIDEO_PROFILE_LANDSCAPE_240P 

20: 320 × 240, frame rate 15 fps, bitrate 200 Kbps.

VIDEO_PROFILE_LANDSCAPE_240P_3 

22: 240 × 240, frame rate 15 fps, bitrate 140 Kbps.

VIDEO_PROFILE_LANDSCAPE_240P_4 

23: 424 × 240, frame rate 15 fps, bitrate 220 Kbps.

VIDEO_PROFILE_LANDSCAPE_360P 

30: 640 × 360, frame rate 15 fps, bitrate 400 Kbps.

VIDEO_PROFILE_LANDSCAPE_360P_3 

32: 360 × 360, frame rate 15 fps, bitrate 260 Kbps.

VIDEO_PROFILE_LANDSCAPE_360P_4 

33: 640 × 360, frame rate 30 fps, bitrate 600 Kbps.

VIDEO_PROFILE_LANDSCAPE_360P_6 

35: 360 × 360, frame rate 30 fps, bitrate 400 Kbps.

VIDEO_PROFILE_LANDSCAPE_360P_7 

36: 480 × 360, frame rate 15 fps, bitrate 320 Kbps.

VIDEO_PROFILE_LANDSCAPE_360P_8 

37: 480 × 360, frame rate 30 fps, bitrate 490 Kbps.

VIDEO_PROFILE_LANDSCAPE_360P_9 

38: 640 × 360, frame rate 15 fps, bitrate 800 Kbps.

Note
Live broadcast profile only.
VIDEO_PROFILE_LANDSCAPE_360P_10 

39: 640 × 360, frame rate 24 fps, bitrate 800 Kbps.

Note
Live broadcast profile only.
VIDEO_PROFILE_LANDSCAPE_360P_11 

100: 640 × 360, frame rate 24 fps, bitrate 1000 Kbps.

Note
Live broadcast profile only.
VIDEO_PROFILE_LANDSCAPE_480P 

40: 640 × 480, frame rate 15 fps, bitrate 500 Kbps.

VIDEO_PROFILE_LANDSCAPE_480P_3 

42: 480 × 480, frame rate 15 fps, bitrate 400 Kbps.

VIDEO_PROFILE_LANDSCAPE_480P_4 

43: 640 × 480, frame rate 30 fps, bitrate 750 Kbps.

VIDEO_PROFILE_LANDSCAPE_480P_6 

45: 480 × 480, frame rate 30 fps, bitrate 600 Kbps.

VIDEO_PROFILE_LANDSCAPE_480P_8 

47: 848 × 480, frame rate 15 fps, bitrate 610 Kbps.

VIDEO_PROFILE_LANDSCAPE_480P_9 

48: 848 × 480, frame rate 30 fps, bitrate 930 Kbps.

VIDEO_PROFILE_LANDSCAPE_480P_10 

49: 640 × 480, frame rate 10 fps, bitrate 400 Kbps.

VIDEO_PROFILE_LANDSCAPE_720P 

50: 1280 × 720, frame rate 15 fps, bitrate 1130 Kbps.

VIDEO_PROFILE_LANDSCAPE_720P_3 

52: 1280 × 720, frame rate 30 fps, bitrate 1710 Kbps.

VIDEO_PROFILE_LANDSCAPE_720P_5 

54: 960 × 720, frame rate 15 fps, bitrate 910 Kbps.

VIDEO_PROFILE_LANDSCAPE_720P_6 

55: 960 × 720, frame rate 30 fps, bitrate 1380 Kbps.

VIDEO_PROFILE_LANDSCAPE_1080P 

60: 1920 × 1080, frame rate 15 fps, bitrate 2080 Kbps.

VIDEO_PROFILE_LANDSCAPE_1080P_3 

62: 1920 × 1080, frame rate 30 fps, bitrate 3150 Kbps.

VIDEO_PROFILE_LANDSCAPE_1080P_5 

64: 1920 × 1080, frame rate 60 fps, bitrate 4780 Kbps.

VIDEO_PROFILE_LANDSCAPE_1440P 

66: 2560 × 1440, frame rate 30 fps, bitrate 4850 Kbps.

VIDEO_PROFILE_LANDSCAPE_1440P_2 

67: 2560 × 1440, frame rate 60 fps, bitrate 6500 Kbps.

VIDEO_PROFILE_LANDSCAPE_4K 

70: 3840 × 2160, frame rate 30 fps, bitrate 6500 Kbps.

VIDEO_PROFILE_LANDSCAPE_4K_3 

72: 3840 × 2160, frame rate 60 fps, bitrate 6500 Kbps.

VIDEO_PROFILE_PORTRAIT_120P 

1000: 120 × 160, frame rate 15 fps, bitrate 65 Kbps.

VIDEO_PROFILE_PORTRAIT_120P_3 

1002: 120 × 120, frame rate 15 fps, bitrate 50 Kbps.

VIDEO_PROFILE_PORTRAIT_180P 

1010: 180 × 320, frame rate 15 fps, bitrate 140 Kbps.

VIDEO_PROFILE_PORTRAIT_180P_3 

1012: 180 × 180, frame rate 15 fps, bitrate 100 Kbps.

VIDEO_PROFILE_PORTRAIT_180P_4 

1013: 180 × 240, frame rate 15 fps, bitrate 120 Kbps.

VIDEO_PROFILE_PORTRAIT_240P 

1020: 240 × 320, frame rate 15 fps, bitrate 200 Kbps.

VIDEO_PROFILE_PORTRAIT_240P_3 

1022: 240 × 240, frame rate 15 fps, bitrate 140 Kbps.

VIDEO_PROFILE_PORTRAIT_240P_4 

1023: 240 × 424, frame rate 15 fps, bitrate 220 Kbps.

VIDEO_PROFILE_PORTRAIT_360P 

1030: 360 × 640, frame rate 15 fps, bitrate 400 Kbps.

VIDEO_PROFILE_PORTRAIT_360P_3 

1032: 360 × 360, frame rate 15 fps, bitrate 260 Kbps.

VIDEO_PROFILE_PORTRAIT_360P_4 

1033: 360 × 640, frame rate 30 fps, bitrate 600 Kbps.

VIDEO_PROFILE_PORTRAIT_360P_6 

1035: 360 × 360, frame rate 30 fps, bitrate 400 Kbps.

VIDEO_PROFILE_PORTRAIT_360P_7 

1036: 360 × 480, frame rate 15 fps, bitrate 320 Kbps.

VIDEO_PROFILE_PORTRAIT_360P_8 

1037: 360 × 480, frame rate 30 fps, bitrate 490 Kbps.

VIDEO_PROFILE_PORTRAIT_360P_9 

1038: 360 × 640, frame rate 15 fps, bitrate 800 Kbps.

Note
Live broadcast profile only.
VIDEO_PROFILE_PORTRAIT_360P_10 

1039: 360 × 640, frame rate 24 fps, bitrate 800 Kbps.

Note
Live broadcast profile only.
VIDEO_PROFILE_PORTRAIT_360P_11 

1100: 360 × 640, frame rate 24 fps, bitrate 1000 Kbps.

Note
Live broadcast profile only.
VIDEO_PROFILE_PORTRAIT_480P 

1040: 480 × 640, frame rate 15 fps, bitrate 500 Kbps.

VIDEO_PROFILE_PORTRAIT_480P_3 

1042: 480 × 480, frame rate 15 fps, bitrate 400 Kbps.

VIDEO_PROFILE_PORTRAIT_480P_4 

1043: 480 × 640, frame rate 30 fps, bitrate 750 Kbps.

VIDEO_PROFILE_PORTRAIT_480P_6 

1045: 480 × 480, frame rate 30 fps, bitrate 600 Kbps.

VIDEO_PROFILE_PORTRAIT_480P_8 

1047: 480 × 848, frame rate 15 fps, bitrate 610 Kbps.

VIDEO_PROFILE_PORTRAIT_480P_9 

1048: 480 × 848, frame rate 30 fps, bitrate 930 Kbps.

VIDEO_PROFILE_PORTRAIT_480P_10 

1049: 480 × 640, frame rate 10 fps, bitrate 400 Kbps.

VIDEO_PROFILE_PORTRAIT_720P 

1050: 720 × 1280, frame rate 15 fps, bitrate 1130 Kbps.

VIDEO_PROFILE_PORTRAIT_720P_3 

1052: 720 × 1280, frame rate 30 fps, bitrate 1710 Kbps.

VIDEO_PROFILE_PORTRAIT_720P_5 

1054: 720 × 960, frame rate 15 fps, bitrate 910 Kbps.

VIDEO_PROFILE_PORTRAIT_720P_6 

1055: 720 × 960, frame rate 30 fps, bitrate 1380 Kbps.

VIDEO_PROFILE_PORTRAIT_1080P 

1060: 1080 × 1920, frame rate 15 fps, bitrate 2080 Kbps.

VIDEO_PROFILE_PORTRAIT_1080P_3 

1062: 1080 × 1920, frame rate 30 fps, bitrate 3150 Kbps.

VIDEO_PROFILE_PORTRAIT_1080P_5 

1064: 1080 × 1920, frame rate 60 fps, bitrate 4780 Kbps.

VIDEO_PROFILE_PORTRAIT_1440P 

1066: 1440 × 2560, frame rate 30 fps, bitrate 4850 Kbps.

VIDEO_PROFILE_PORTRAIT_1440P_2 

1067: 1440 × 2560, frame rate 60 fps, bitrate 6500 Kbps.

VIDEO_PROFILE_PORTRAIT_4K 

1070: 2160 × 3840, frame rate 30 fps, bitrate 6500 Kbps.

VIDEO_PROFILE_PORTRAIT_4K_3 

1072: 2160 × 3840, frame rate 60 fps, bitrate 6500 Kbps.

VIDEO_PROFILE_DEFAULT 

Default 640 × 360, frame rate 15 fps, bitrate 400 Kbps.

◆ AUDIO_PROFILE_TYPE

Audio profiles.

Sets the sample rate, bitrate, encoding mode, and the number of channels:

Enumerator
AUDIO_PROFILE_DEFAULT 

0: Default audio profile.

AUDIO_PROFILE_SPEECH_STANDARD 

1: A sample rate of 32 kHz, audio encoding, mono, and a bitrate of up to 18 Kbps.

AUDIO_PROFILE_MUSIC_STANDARD 

2: A sample rate of 48 kHz, music encoding, mono, and a bitrate of up to 48 Kbps.

AUDIO_PROFILE_MUSIC_STANDARD_STEREO 

3: A sample rate of 48 kHz, music encoding, stereo, and a bitrate of up to 56 Kbps.

AUDIO_PROFILE_MUSIC_HIGH_QUALITY 

4: A sample rate of 48 kHz, music encoding, mono, and a bitrate of up to 128 Kbps.

AUDIO_PROFILE_MUSIC_HIGH_QUALITY_STEREO 

5: A sample rate of 48 kHz, music encoding, stereo, and a bitrate of up to 192 Kbps.

AUDIO_PROFILE_IOT 

6: A sample rate of 16 kHz, audio encoding, mono, and Acoustic Echo Cancellation (AES) enabled.

AUDIO_PROFILE_NUM 

◆ AUDIO_SCENARIO_TYPE

Audio application scenarios.

Enumerator
AUDIO_SCENARIO_DEFAULT 

0: Default.

AUDIO_SCENARIO_CHATROOM_ENTERTAINMENT 

1: Entertainment scenario, supporting voice during gameplay.

AUDIO_SCENARIO_EDUCATION 

2: Education scenario, prioritizing smoothness and stability.

AUDIO_SCENARIO_GAME_STREAMING 

3: Live gaming scenario, enabling the gaming audio effects in the speaker mode in a live broadcast scenario. Choose this scenario for high-fidelity music playback.

AUDIO_SCENARIO_SHOWROOM 

4: Showroom scenario, optimizing the audio quality with external professional equipment.

AUDIO_SCENARIO_CHATROOM_GAMING 

5: Gaming scenario.

AUDIO_SCENARIO_IOT 

6: Applicable to the IoT scenario.

AUDIO_SCENARIO_NUM 

◆ CHANNEL_PROFILE_TYPE

Channel profiles.

Enumerator
CHANNEL_PROFILE_COMMUNICATION 

0: Communication.

This is used in one-on-one calls or group calls, where all users in the channel can talk freely.

CHANNEL_PROFILE_LIVE_BROADCASTING 

1: Live Broadcast.

Host and audience roles that can be set by calling the setClientRole method. The host sends and receives voice, while the audience receives voice only with the sending function disabled.

CHANNEL_PROFILE_GAME 

2: Gaming.

Note
This profile applies to the Agora Gaming SDK only.

Any user in the channel can talk freely. This mode uses the codec with low-power consumption and low bitrate by default.

◆ CLIENT_ROLE_TYPE

Client roles in a live broadcast.

Enumerator
CLIENT_ROLE_BROADCASTER 

1: Host

CLIENT_ROLE_AUDIENCE 

2: Audience

◆ USER_OFFLINE_REASON_TYPE

Reasons for a user being offline.

Enumerator
USER_OFFLINE_QUIT 

0: The user quits the call.

USER_OFFLINE_DROPPED 

1: The SDK times out and the user drops offline because no data packet is received within a certain period of time. If the user quits the call and the message is not passed to the SDK (due to an unreliable channel), the SDK assumes the user dropped offline.

USER_OFFLINE_BECOME_AUDIENCE 

2: (Live broadcast only.) The client role switched from the host to the audience.

◆ RTMP_STREAM_PUBLISH_STATE

States of the RTMP streaming.

Enumerator
RTMP_STREAM_PUBLISH_STATE_IDLE 

The RTMP streaming has not started or has ended. This state is also triggered after you remove an RTMP address from the CDN by calling removePublishStreamUrl.

RTMP_STREAM_PUBLISH_STATE_CONNECTING 

The SDK is connecting to Agora's streaming server and the RTMP server. This state is triggered after you call the addPublishStreamUrl method.

RTMP_STREAM_PUBLISH_STATE_RUNNING 

The RTMP streaming publishes. The SDK successfully publishes the RTMP streaming and returns this state.

RTMP_STREAM_PUBLISH_STATE_RECOVERING 

The RTMP streaming is recovering. When exceptions occur to the CDN, or the streaming is interrupted, the SDK tries to resume RTMP streaming and returns this state.

RTMP_STREAM_PUBLISH_STATE_FAILURE 

The RTMP streaming fails. See the errCode parameter for the detailed error information. You can also call the addPublishStreamUrl method to publish the RTMP streaming again.

◆ RTMP_STREAM_PUBLISH_ERROR

Error codes of the RTMP streaming.

Enumerator
RTMP_STREAM_PUBLISH_ERROR_OK 

The RTMP streaming publishes successfully.

RTMP_STREAM_PUBLISH_ERROR_INVALID_ARGUMENT 

Invalid argument used. If, for example, you do not call the setLiveTranscoding method to configure the LiveTranscoding parameters before calling the addPublishStreamUrl method, the SDK returns this error. Check whether you set the parameters in the setLiveTranscoding method properly.

RTMP_STREAM_PUBLISH_ERROR_ENCRYPTED_STREAM_NOT_ALLOWED 

The RTMP streaming is encrypted and cannot be published.

RTMP_STREAM_PUBLISH_ERROR_CONNECTION_TIMEOUT 

Timeout for the RTMP streaming. Call the addPublishStreamUrl method to publish the streaming again.

RTMP_STREAM_PUBLISH_ERROR_INTERNAL_SERVER_ERROR 

An error occurs in Agora's streaming server. Call the addPublishStreamUrl method to publish the streaming again.

RTMP_STREAM_PUBLISH_ERROR_RTMP_SERVER_ERROR 

An error occurs in the RTMP server.

RTMP_STREAM_PUBLISH_ERROR_TOO_OFTEN 

The RTMP streaming publishes too frequently.

RTMP_STREAM_PUBLISH_ERROR_REACH_LIMIT 

The host publishes more than 10 URLs. Delete the unnecessary URLs before adding new ones.

RTMP_STREAM_PUBLISH_ERROR_NOT_AUTHORIZED 

The host manipulates other hosts' URLs. Check your app logic.

RTMP_STREAM_PUBLISH_ERROR_STREAM_NOT_FOUND 

Agora's server fails to find the RTMP streaming.

RTMP_STREAM_PUBLISH_ERROR_FORMAT_NOT_SUPPORTED 

The format of the RTMP streaming URL is not supported. Check whether the URL format is correct.

◆ INJECT_STREAM_STATUS

States of importing an external video stream in a live broadcast.

Enumerator
INJECT_STREAM_STATUS_START_SUCCESS 

0: The external video stream imported successfully.

INJECT_STREAM_STATUS_START_ALREADY_EXISTS 

1: The external video stream already exists.

INJECT_STREAM_STATUS_START_UNAUTHORIZED 

2: The external video stream to be imported is unauthorized.

INJECT_STREAM_STATUS_START_TIMEDOUT 

3: Import external video stream timeout.

INJECT_STREAM_STATUS_START_FAILED 

4: Import external video stream failed.

INJECT_STREAM_STATUS_STOP_SUCCESS 

5: The external video stream stopped importing successfully.

INJECT_STREAM_STATUS_STOP_NOT_FOUND 

6: No external video stream is found.

INJECT_STREAM_STATUS_STOP_UNAUTHORIZED 

7: The external video stream to be stopped importing is unauthorized.

INJECT_STREAM_STATUS_STOP_TIMEDOUT 

8: Stop importing external video stream timeout.

INJECT_STREAM_STATUS_STOP_FAILED 

9: Stop importing external video stream failed.

INJECT_STREAM_STATUS_BROKEN 

10: The external video stream is corrupted.

◆ REMOTE_VIDEO_STREAM_TYPE

Remote video stream types.

Enumerator
REMOTE_VIDEO_STREAM_HIGH 

0: High-stream video.

REMOTE_VIDEO_STREAM_LOW 

1: Low-stream video.

◆ RAW_AUDIO_FRAME_OP_MODE_TYPE

Use modes of the onRecordAudioFrame callback.

Enumerator
RAW_AUDIO_FRAME_OP_MODE_READ_ONLY 

0: Read-only mode: Users only read the AudioFrame data without modifying anything. For example, when users acquire the data with the Agora SDK, then push the RTMP streams.

RAW_AUDIO_FRAME_OP_MODE_WRITE_ONLY 

1: Write-only mode: Users replace the AudioFrame data with their own data and pass the data to the SDK for encoding. For example, when users acquire the data.

RAW_AUDIO_FRAME_OP_MODE_READ_WRITE 

2: 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 perform some voice pre-processing, such as a voice change.

◆ AUDIO_SAMPLE_RATE_TYPE

Audio-sample rates.

Enumerator
AUDIO_SAMPLE_RATE_32000 

32000: 32 kHz

AUDIO_SAMPLE_RATE_44100 

44100: 44.1 kHz

AUDIO_SAMPLE_RATE_48000 

48000: 48 kHz

◆ VIDEO_CODEC_PROFILE_TYPE

Video codec profile types.

Enumerator
VIDEO_CODEC_PROFILE_BASELINE 

66: Baseline video codec profile. Generally used in video calls on mobile phones.

VIDEO_CODEC_PROFILE_MAIN 

77: Main video codec profile. Generally used in mainstream electronics such as MP4 players, portable video players, PSP, and iPads.

VIDEO_CODEC_PROFILE_HIGH 

100: (Default) High video codec profile. Generally used in high-resolution broadcasts or television.

◆ VIDEO_CODEC_TYPE

Video codec types

Enumerator
VIDEO_CODEC_VP8 

Standard VP8

VIDEO_CODEC_H264 

Standard H264

VIDEO_CODEC_EVP 

Enhanced VP8

VIDEO_CODEC_E264 

Enhanced H264

◆ AUDIO_EQUALIZATION_BAND_FREQUENCY

Audio equalization band frequencies.

Enumerator
AUDIO_EQUALIZATION_BAND_31 

0: 31 Hz

AUDIO_EQUALIZATION_BAND_62 

1: 62 Hz

AUDIO_EQUALIZATION_BAND_125 

2: 125 Hz

AUDIO_EQUALIZATION_BAND_250 

3: 250 Hz

AUDIO_EQUALIZATION_BAND_500 

4: 500 Hz

AUDIO_EQUALIZATION_BAND_1K 

5: 1 kHz

AUDIO_EQUALIZATION_BAND_2K 

6: 2 kHz

AUDIO_EQUALIZATION_BAND_4K 

7: 4 kHz

AUDIO_EQUALIZATION_BAND_8K 

8: 8 kHz

AUDIO_EQUALIZATION_BAND_16K 

9: 16 kHz

◆ AUDIO_REVERB_TYPE

Audio reverberation types.

Enumerator
AUDIO_REVERB_DRY_LEVEL 

0: The level of the dry signal (db). The value is between -20 and 10.

AUDIO_REVERB_WET_LEVEL 

1: The level of the early reflection signal (wet signal) (dB). The value is between -20 and 10.

AUDIO_REVERB_ROOM_SIZE 

2: The room size of the reflection. The value is between 0 and 100.

AUDIO_REVERB_WET_DELAY 

3: The length of the initial delay of the wet signal (ms). The value is between 0 and 200.

AUDIO_REVERB_STRENGTH 

4: The reverberation strength. The value is between 0 and 100.

◆ VOICE_CHANGER_PRESET

Local voice changer options.

Enumerator
VOICE_CHANGER_OFF 

0: The original voice (no local voice change).

VOICE_CHANGER_OLDMAN 

1: An old man's voice.

VOICE_CHANGER_BABYBOY 

2: A little boy's voice.

VOICE_CHANGER_BABYGIRL 

3: A little girl's voice.

VOICE_CHANGER_ZHUBAJIE 

4: The voice of a growling bear.

VOICE_CHANGER_ETHEREAL 

5: Ethereal vocal effects.

VOICE_CHANGER_HULK 

6: Hulk's voice.

◆ AUDIO_REVERB_PRESET

Local voice reverberation presets.

Enumerator
AUDIO_REVERB_OFF 

0: The original voice (no local voice reverberation).

AUDIO_REVERB_POPULAR 

1: Pop music.

AUDIO_REVERB_RNB 

2: R&B.

AUDIO_REVERB_ROCK 

3: Rock music.

AUDIO_REVERB_HIPHOP 

4: Hip-hop.

AUDIO_REVERB_VOCAL_CONCERT 

5: Pop concert.

AUDIO_REVERB_KTV 

6: Karaoke.

AUDIO_REVERB_STUDIO 

7: Recording studio.

◆ AUDIO_CODEC_PROFILE_TYPE

Audio codec profile types. The default value is LC_ACC.

Enumerator
AUDIO_CODEC_PROFILE_LC_AAC 

0: LC-AAC, which is the low-complexity audio codec type.

AUDIO_CODEC_PROFILE_HE_AAC 

1: HE-AAC, which is the high-efficiency audio codec type.

◆ REMOTE_AUDIO_STATE

Remote audio states.

Enumerator
REMOTE_AUDIO_STATE_STOPPED 

0: The remote audio is in the default state, probably due to REMOTE_AUDIO_REASON_LOCAL_MUTED (3), REMOTE_AUDIO_REASON_REMOTE_MUTED (5), or REMOTE_AUDIO_REASON_REMOTE_OFFLINE (7).

REMOTE_AUDIO_STATE_STARTING 

1: The first remote audio packet is received.

REMOTE_AUDIO_STATE_DECODING 

2: The remote audio stream is decoded and plays normally, probably due to REMOTE_AUDIO_REASON_NETWORK_RECOVERY (2), REMOTE_AUDIO_REASON_LOCAL_UNMUTED (4), or REMOTE_AUDIO_REASON_REMOTE_UNMUTED (6).

REMOTE_AUDIO_STATE_FROZEN 

3: The remote audio is frozen, probably due to REMOTE_AUDIO_REASON_NETWORK_CONGESTION (1).

REMOTE_AUDIO_STATE_FAILED 

4: The remote audio fails to start, probably due to REMOTE_AUDIO_REASON_INTERNAL (0).

◆ REMOTE_AUDIO_STATE_REASON

Remote audio state reasons.

Enumerator
REMOTE_AUDIO_REASON_INTERNAL 

0: Internal reasons.

REMOTE_AUDIO_REASON_NETWORK_CONGESTION 

1: Network congestion.

REMOTE_AUDIO_REASON_NETWORK_RECOVERY 

2: Network recovery.

REMOTE_AUDIO_REASON_LOCAL_MUTED 

3: The local user stops receiving the remote audio stream or disables the audio module.

REMOTE_AUDIO_REASON_LOCAL_UNMUTED 

4: The local user resumes receiving the remote audio stream or enables the audio module.

REMOTE_AUDIO_REASON_REMOTE_MUTED 

5: The remote user stops sending the audio stream or disables the audio module.

REMOTE_AUDIO_REASON_REMOTE_UNMUTED 

6: The remote user resumes sending the audio stream or enables the audio module.

REMOTE_AUDIO_REASON_REMOTE_OFFLINE 

7: The remote user leaves the channel.

◆ REMOTE_VIDEO_STATE

Remote video states. 1: The remote video is playing. 2: The remote video is frozen. The state of the remote video.

Enumerator
REMOTE_VIDEO_STATE_STOPPED 

0: The remote video is in the default state, probably due to REMOTE_VIDEO_STATE_REASON_LOCAL_MUTED (3), REMOTE_VIDEO_STATE_REASON_REMOTE_MUTED (5), or REMOTE_VIDEO_STATE_REASON_REMOTE_OFFLINE (7).

REMOTE_VIDEO_STATE_STARTING 

1: The first remote video packet is received.

REMOTE_VIDEO_STATE_DECODING 

2: The remote video stream is decoded and plays normally, probably due to REMOTE_VIDEO_STATE_REASON_NETWORK_RECOVERY (2), REMOTE_VIDEO_STATE_REASON_LOCAL_UNMUTED (4), REMOTE_VIDEO_STATE_REASON_REMOTE_UNMUTED (6), or REMOTE_VIDEO_STATE_REASON_AUDIO_FALLBACK_RECOVERY (9).

REMOTE_VIDEO_STATE_FROZEN 

3: The remote video is frozen, probably due to REMOTE_VIDEO_STATE_REASON_NETWORK_CONGESTION (1) or REMOTE_VIDEO_STATE_REASON_AUDIO_FALLBACK (8).

REMOTE_VIDEO_STATE_FAILED 

4: The remote video fails to start, probably due to REMOTE_VIDEO_STATE_REASON_INTERNAL (0).

◆ REMOTE_VIDEO_STATE_REASON

The reason of the remote video state change.

Enumerator
REMOTE_VIDEO_STATE_REASON_INTERNAL 

0: Internal reasons.

REMOTE_VIDEO_STATE_REASON_NETWORK_CONGESTION 

1: Network congestion.

REMOTE_VIDEO_STATE_REASON_NETWORK_RECOVERY 

2: Network recovery.

REMOTE_VIDEO_STATE_REASON_LOCAL_MUTED 

3: The local user stops receiving the remote video stream or disables the video module.

REMOTE_VIDEO_STATE_REASON_LOCAL_UNMUTED 

4: The local user resumes receiving the remote video stream or enables the video module.

REMOTE_VIDEO_STATE_REASON_REMOTE_MUTED 

5: The remote user stops sending the video stream or disables the video module.

REMOTE_VIDEO_STATE_REASON_REMOTE_UNMUTED 

6: The remote user resumes sending the video stream or enables the video module.

REMOTE_VIDEO_STATE_REASON_REMOTE_OFFLINE 

7: The remote user leaves the channel.

REMOTE_VIDEO_STATE_REASON_AUDIO_FALLBACK 

8: The remote media stream falls back to the audio-only stream due to poor network conditions.

REMOTE_VIDEO_STATE_REASON_AUDIO_FALLBACK_RECOVERY 

9: The remote media stream switches back to the video stream after the network conditions improve.

◆ FRAME_RATE

Video frame rates.

Enumerator
FRAME_RATE_FPS_1 

1: 1 fps

FRAME_RATE_FPS_7 

7: 7 fps

FRAME_RATE_FPS_10 

10: 10 fps

FRAME_RATE_FPS_15 

15: 15 fps

FRAME_RATE_FPS_24 

24: 24 fps

FRAME_RATE_FPS_30 

30: 30 fps

FRAME_RATE_FPS_60 

60: 60 fps (Windows and macOS only)

◆ ORIENTATION_MODE

Video output orientation modes.

Enumerator
ORIENTATION_MODE_ADAPTIVE 

0: (Default) Adaptive mode.

The video encoder adapts to the orientation mode of the video input device.

  • If the width of the captured video from the SDK is greater than the height, the encoder sends the video in landscape mode. The encoder also sends the rotational information of the video, and the receiver uses the rotational information to rotate the received video.
  • When you use a custom video source, the output video from the encoder inherits the orientation of the original video. If the original video is in portrait mode, the output video from the encoder is also in portrait mode. The encoder also sends the rotational information of the video to the receiver.
ORIENTATION_MODE_FIXED_LANDSCAPE 

1: Landscape mode.

The video encoder always sends the video in landscape mode. The video encoder rotates the original video before sending it and the rotational infomation is 0. This mode applies to scenarios involving CDN live streaming.

ORIENTATION_MODE_FIXED_PORTRAIT 

2: Portrait mode.

The video encoder always sends the video in portrait mode. The video encoder rotates the original video before sending it and the rotational infomation is 0. This mode applies to scenarios involving CDN live streaming.

◆ DEGRADATION_PREFERENCE

Video degradation preferences when the bandwidth is a constraint.

Enumerator
MAINTAIN_QUALITY 

0: (Default) Degrade the frame rate in order to maintain the video quality.

MAINTAIN_FRAMERATE 

1: Degrade the video quality in order to maintain the frame rate.

MAINTAIN_BALANCED 

2: (For future use) Maintain a balance between the frame rate and video quality.

◆ STREAM_FALLBACK_OPTIONS

Stream fallback options.

Enumerator
STREAM_FALLBACK_OPTION_DISABLED 

0: No fallback behavior for the local/remote video stream when the uplink/downlink network conditions are poor. The quality of the stream is not guaranteed.

STREAM_FALLBACK_OPTION_VIDEO_STREAM_LOW 

1: Under poor downlink network conditions, the remote video stream, to which you subscribe, falls back to the low-stream (low resolution and low bitrate) video. You can set this option only in the setRemoteSubscribeFallbackOption method. Nothing happens when you set this in the setLocalPublishFallbackOption method.

STREAM_FALLBACK_OPTION_AUDIO_ONLY 

2: Under poor uplink network conditions, the locally published video stream falls back to audio only.

Under poor downlink network conditions, the remote video stream, to which you subscribe, first falls back to the low-stream (low resolution and low bitrate) video; and then to an audio-only stream if the network conditions worsen.

◆ CAPTURER_OUTPUT_PREFERENCE

Camera capturer configuration.

Enumerator
CAPTURER_OUTPUT_PREFERENCE_AUTO 

0: (Default) self-adapts the camera output parameters to the system performance and network conditions to balance CPU consumption and video preview quality.

CAPTURER_OUTPUT_PREFERENCE_PERFORMANCE 

2: Prioritizes the system performance. The SDK chooses the dimension and frame rate of the local camera capture closest to those set by setVideoEncoderConfiguration.

CAPTURER_OUTPUT_PREFERENCE_PREVIEW 

2: Prioritizes the local preview quality. The SDK chooses higher camera output parameters to improve the local video preview quality. This option requires extra CPU and RAM usage for video pre-processing.

◆ PRIORITY_TYPE

The priority of the remote user.

Enumerator
PRIORITY_HIGH 

50: The user's priority is high.

PRIORITY_NORMAL 

100: (Default) The user's priority is normal.

◆ CONNECTION_STATE_TYPE

Connection states.

Enumerator
CONNECTION_STATE_DISCONNECTED 

1: The SDK is disconnected from Agora's edge server.

  • This is the initial state before calling the joinChannel method.
  • The SDK also enters this state when the application calls the leaveChannel method.
CONNECTION_STATE_CONNECTING 

2: The SDK is connecting to Agora's edge server.

CONNECTION_STATE_CONNECTED 

3: The SDK is connected to Agora's edge server and has joined a channel. You can now publish or subscribe to a media stream in the channel.

If the connection to the channel is lost because, for example, if the network is down or switched, the SDK automatically tries to reconnect and triggers:

CONNECTION_STATE_RECONNECTING 

4: The SDK keeps rejoining the channel after being disconnected from a joined channel because of network issues.

  • If the SDK cannot rejoin the channel within 10 seconds after being disconnected from Agora's edge server, the SDK triggers the onConnectionLost callback, stays in the CONNECTION_STATE_RECONNECTING state, and keeps rejoining the channel.
  • If the SDK fails to rejoin the channel 20 minutes after being disconnected from Agora's edge server, the SDK triggers the onConnectionStateChanged callback, switches to the CONNECTION_STATE_FAILED state, and stops rejoining the channel.
CONNECTION_STATE_FAILED 

5: The SDK fails to connect to Agora's edge server or join the channel.

You must call the leaveChannel method to leave this state, and call the joinChannel method again to rejoin the channel.

If the SDK is banned from joining the channel by Agora's edge server (through the RESTful API), the SDK triggers the onConnectionBanned (deprecated) and onConnectionStateChanged callbacks.

◆ CONNECTION_CHANGED_REASON_TYPE

Reasons for a connection state change.

Enumerator
CONNECTION_CHANGED_CONNECTING 

0: The SDK is connecting to Agora's edge server.

CONNECTION_CHANGED_JOIN_SUCCESS 

1: The SDK has joined the channel successfully.

CONNECTION_CHANGED_INTERRUPTED 

2: The connection between the SDK and Agora's edge server is interrupted.

CONNECTION_CHANGED_BANNED_BY_SERVER 

3: The connection between the SDK and Agora's edge server is banned by Agora's edge server.

CONNECTION_CHANGED_JOIN_FAILED 

4: The SDK fails to join the channel for more than 20 minutes and stops reconnecting to the channel.

CONNECTION_CHANGED_LEAVE_CHANNEL 

5: The SDK has left the channel.

CONNECTION_CHANGED_INVALID_APP_ID 

6: The connection failed since Appid is not valid.

CONNECTION_CHANGED_INVALID_CHANNEL_NAME 

7: The connection failed since channel name is not valid.

CONNECTION_CHANGED_INVALID_TOKEN 

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.
CONNECTION_CHANGED_TOKEN_EXPIRED 

9: The connection failed since token is expired.

CONNECTION_CHANGED_REJECTED_BY_SERVER 

10: The connection is rejected by server.

CONNECTION_CHANGED_SETTING_PROXY_SERVER 

11: The connection changed to reconnecting since SDK has set a proxy server.

CONNECTION_CHANGED_RENEW_TOKEN 

12: When SDK is in connection failed, the renew token operation will make it connecting.

CONNECTION_CHANGED_CLIENT_IP_ADDRESS_CHANGED 

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.

CONNECTION_CHANGED_KEEP_ALIVE_TIMEOUT 

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).

◆ NETWORK_TYPE

Network type.

Enumerator
NETWORK_TYPE_UNKNOWN 

-1: The network type is unknown.

NETWORK_TYPE_DISCONNECTED 

0: The SDK disconnects from the network.

NETWORK_TYPE_LAN 

1: The network type is LAN.

NETWORK_TYPE_WIFI 

2: The network type is Wi-Fi(including hotspots).

NETWORK_TYPE_MOBILE_2G 

3: The network type is mobile 2G.

NETWORK_TYPE_MOBILE_3G 

4: The network type is mobile 3G.

NETWORK_TYPE_MOBILE_4G 

5: The network type is mobile 4G.

◆ LASTMILE_PROBE_RESULT_STATE

States of the last-mile network probe test.

Enumerator
LASTMILE_PROBE_RESULT_COMPLETE 

1: The last-mile network probe test is complete.

LASTMILE_PROBE_RESULT_INCOMPLETE_NO_BWE 

2: The last-mile network probe test is incomplete and the bandwidth estimation is not available, probably due to limited test resources.

LASTMILE_PROBE_RESULT_UNAVAILABLE 

3: The last-mile network probe test is not carried out, probably due to poor network conditions.

◆ AUDIO_ROUTE_TYPE

Audio output routing.

Enumerator
AUDIO_ROUTE_DEFAULT 

Default.

AUDIO_ROUTE_HEADSET 

Headset.

AUDIO_ROUTE_EARPIECE 

Earpiece.

AUDIO_ROUTE_HEADSET_NO_MIC 

Headset with no microphone.

AUDIO_ROUTE_SPEAKERPHONE 

Speakerphone.

AUDIO_ROUTE_LOUDSPEAKER 

Loudspeaker.

AUDIO_ROUTE_BLUETOOTH 

Bluetooth headset.

◆ AUDIO_SESSION_OPERATION_RESTRICTION

Audio session restriction.

Enumerator
AUDIO_SESSION_OPERATION_RESTRICTION_NONE 

No restriction, the SDK has full control of the audio session operations.

AUDIO_SESSION_OPERATION_RESTRICTION_SET_CATEGORY 

The SDK does not change the audio session category.

AUDIO_SESSION_OPERATION_RESTRICTION_CONFIGURE_SESSION 

The SDK does not change any setting of the audio session (category, mode, categoryOptions).

AUDIO_SESSION_OPERATION_RESTRICTION_DEACTIVATE_SESSION 

The SDK keeps the audio session active when leaving a channel.

AUDIO_SESSION_OPERATION_RESTRICTION_ALL 

The SDK does not configure the audio session anymore.

◆ CAMERA_DIRECTION

Enumerator
CAMERA_REAR 

The rear camera.

CAMERA_FRONT 

The front camera.

◆ QUALITY_ADAPT_INDICATION

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

Enumerator
ADAPT_NONE 

The quality of the local video stays the same.

ADAPT_UP_BANDWIDTH 

The quality improves because the network bandwidth increases.

ADAPT_DOWN_BANDWIDTH 

The quality worsens because the network bandwidth decreases.

◆ CHANNEL_MEDIA_RELAY_ERROR

The error code in CHANNEL_MEDIA_RELAY_ERROR.

Enumerator
RELAY_OK 

0: The state is normal.

RELAY_ERROR_SERVER_ERROR_RESPONSE 

1: An error occurs in the server response.

RELAY_ERROR_SERVER_NO_RESPONSE 

2: No server response. You can call the leaveChannel method to leave the channel.

RELAY_ERROR_NO_RESOURCE_AVAILABLE 

3: The SDK fails to access the service, probably due to limited resources of the server.

RELAY_ERROR_FAILED_JOIN_SRC 

4: The server fails to join the source channel.

RELAY_ERROR_FAILED_JOIN_DEST 

5: The server fails to join the destination channel.

RELAY_ERROR_FAILED_PACKET_RECEIVED_FROM_SRC 

6: The server fails to receive the data from the source channel.

RELAY_ERROR_FAILED_PACKET_SENT_TO_DEST 

7: The source channel fails to transmit data.

RELAY_ERROR_SERVER_CONNECTION_LOST 

8: The SDK disconnects from the server due to poor network connections. You can call the leaveChannel method to leave the channel.

RELAY_ERROR_INTERNAL_ERROR 

9: An internal error occurs in the server.

RELAY_ERROR_SRC_TOKEN_EXPIRED 

10: The token of the source channel has expired.

RELAY_ERROR_DEST_TOKEN_EXPIRED 

11: The token of the destination channel has expired.

◆ CHANNEL_MEDIA_RELAY_EVENT

The event code in CHANNEL_MEDIA_RELAY_EVENT.

Enumerator
RELAY_EVENT_NETWORK_DISCONNECTED 

0: The user disconnects from the server due to poor network connections.

RELAY_EVENT_NETWORK_CONNECTED 

1: The network reconnects.

RELAY_EVENT_PACKET_JOINED_SRC_CHANNEL 

2: The user joins the source channel.

RELAY_EVENT_PACKET_JOINED_DEST_CHANNEL 

3: The user joins the destination channel.

RELAY_EVENT_PACKET_SENT_TO_DEST_CHANNEL 

4: The SDK starts relaying the media stream to the destination channel.

RELAY_EVENT_PACKET_RECEIVED_VIDEO_FROM_SRC 

5: The server receives the video stream from the source channel.

RELAY_EVENT_PACKET_RECEIVED_AUDIO_FROM_SRC 

6: The server receives the audio stream from the source channel.

RELAY_EVENT_PACKET_UPDATE_DEST_CHANNEL 

7: The destination channel is updated.

RELAY_EVENT_PACKET_UPDATE_DEST_CHANNEL_REFUSED 

8: The destination channel update fails due to internal reasons.

RELAY_EVENT_PACKET_UPDATE_DEST_CHANNEL_NOT_CHANGE 

9: The destination channel does not change, which means that the destination channel fails to be updated.

RELAY_EVENT_PACKET_UPDATE_DEST_CHANNEL_IS_NULL 

10: The destination channel name is NULL.

RELAY_EVENT_VIDEO_PROFILE_UPDATE 

11: The video profile is sent to the server.

◆ CHANNEL_MEDIA_RELAY_STATE

The state code in CHANNEL_MEDIA_RELAY_STATE.

Enumerator
RELAY_STATE_IDLE 

0: The SDK is initializing.

RELAY_STATE_CONNECTING 

1: The SDK tries to relay the media stream to the destination channel.

RELAY_STATE_RUNNING 

2: The SDK successfully relays the media stream to the destination channel.

RELAY_STATE_FAILURE 

3: A failure occurs. See the details in code.

◆ RTMP_STREAM_LIFE_CYCLE_TYPE

DEPRECATED Lifecycle of the CDN live video stream.

Enumerator
RTMP_STREAM_LIFE_CYCLE_BIND2CHANNEL 

Bind to the channel lifecycle. If all hosts leave the channel, the CDN live streaming stops after 30 seconds.

RTMP_STREAM_LIFE_CYCLE_BIND2OWNER 

Bind to the owner of the RTMP stream. If the owner leaves the channel, the CDN live streaming stops immediately.

◆ VideoContentHint

Content hints for screen sharing.

Enumerator
CONTENT_HINT_NONE 

(Default) No content hint.

CONTENT_HINT_MOTION 

Motion-intensive content. Choose this option if you prefer smoothness or when you are sharing a video clip, movie, or video game.

CONTENT_HINT_DETAILS 

Motionless content. Choose this option if you prefer sharpness or when you are sharing a picture, PowerPoint slide, or text.

Variable Documentation

◆ STANDARD_BITRATE

const int agora::rtc::STANDARD_BITRATE = 0

(Recommended) The standard bitrate set in the setVideoEncoderConfiguration method.

In this mode, the bitrates differ between the live broadcast and communication profiles:

  • Communication profile: The video bitrate is the same as the base bitrate.
  • Live broadcast profile: The video bitrate is twice the base bitrate.

◆ COMPATIBLE_BITRATE

const int agora::rtc::COMPATIBLE_BITRATE = -1

The compatible bitrate set in the setVideoEncoderConfiguration method.

The bitrate remains the same regardless of the channel profile. If you choose this mode in the Live-broadcast profile, the video frame rate may be lower than the set value.

◆ DEFAULT_MIN_BITRATE

const int agora::rtc::DEFAULT_MIN_BITRATE = -1

Use the default minimum bitrate.