Agora C++ API Reference for All Platforms
Namespaces | Classes | Typedefs | Enumerations | Functions | Variables
agora::rtc Namespace Reference

Namespaces

 protocol
 

Classes

class  AAudioDeviceManager
 
struct  AlphaChannel
 
struct  audio_packet_t
 
struct  audio_transport_packet_info
 
struct  AudioDeviceInfo
 
struct  AudioEncodedFrameData
 
struct  AudioEncodedFrameObserverConfig
 
struct  AudioEncoderConfiguration
 
struct  AudioFileRecordingConfig
 
struct  AudioOptions
 
struct  AudioParameters
 
struct  AudioPcmData
 
struct  AudioPcmDataInfo
 
struct  AudioSinkWants
 
struct  AudioSubscriptionOptions
 
struct  AudioTrackConfig
 
struct  AudioVolumeInfo
 
class  AVideoDeviceManager
 
struct  BeautyOptions
 
struct  BitrateConstraints
 
struct  broadcast_packet_t
 
struct  CameraCapturerConfiguration
 
struct  canvas_info
 
struct  ChannelMediaInfo
 
struct  ChannelMediaOptions
 
struct  ChannelMediaRelayConfiguration
 
struct  ColorSpace
 
class  ConnInfosIterator
 
struct  DataStreamConfig
 
struct  DirectCdnStreamingMediaOptions
 
struct  DownlinkNetworkInfo
 
struct  EncodedAudioFrameAdvancedSettings
 
struct  EncodedAudioFrameInfo
 
struct  EncodedVideoFrameInfo
 
struct  EncryptionConfig
 
class  IAudioDeviceManagerObserver
 
class  IAudioEncodedFrameDataCallback
 
class  IAudioEncodedFrameObserver
 
class  IAudioEncodedFrameSender
 
class  IAudioEncodedFrameSenderEx
 
class  IAudioFilter
 
class  IAudioFilterBase
 
class  IAudioFrameDumpObserver
 
class  IAudioPcmDataCallback
 
class  IAudioPcmDataSender
 
class  IAudioPcmDataSenderEx
 
class  IAudioSinkBase
 
class  IAudioTrack
 
class  ICameraCaptureObserver
 
class  ICameraCapturer
 
class  ICameraCapturerEx
 
class  IDiagnosticService
 
class  IDirectCdnStreamingEventHandler
 
class  IDumpStateObserver
 
class  IExtensionControl
 
class  IExtensionProvider
 
class  IExtensionVideoFilter
 
class  ILocalAudioTrack
 
class  ILocalAudioTrackEx
 
class  ILocalUser
 
class  ILocalUserEx
 
class  ILocalUserObserver
 
class  ILocalVideoTrack
 
class  ILocalVideoTrackEx
 
class  IMediaControlPacketCallback
 
class  IMediaControlPacketReceiver
 
class  IMediaControlPacketSender
 
class  IMediaControlPacketSenderEx
 
class  IMediaExtensionObserver
 
class  IMediaNodeFactory
 
class  IMediaNodeFactoryEx
 
class  IMediaPacketCallback
 
class  IMediaPacketReceiver
 
class  IMediaPacketSender
 
class  IMediaPacketSenderEx
 
class  IMediaPlayerSource
 
class  IMediaPlayerSourceEx
 
class  IMediaPlayerSourceObserver
 
class  IMediaRelayObserver
 
class  IMediaRelayService
 
class  IMediaStreamingSource
 
class  IMediaStreamingSourceEx
 
class  IMediaStreamingSourceObserver
 
class  IMetadataObserver
 
class  INetworkObserver
 
class  INGAudioDeviceManager
 
struct  InjectStreamConfig
 
struct  InputSeiData
 
struct  InternalEngineStatus
 
class  IPacketObserver
 
class  IRecordingDeviceSource
 
class  IRecordingDeviceSourceEx
 
class  IRemoteAudioMixerSource
 
class  IRemoteAudioMixerSourceEx
 
class  IRemoteAudioTrack
 
class  IRemoteAudioTrackEx
 
class  IRemoteVideoTrack
 
class  IRemoteVideoTrackEx
 
class  IRtcAvTransportPacketInfoObserver
 
class  IRtcConnection
 
class  IRtcConnectionEx
 
class  IRtcConnectionObserver
 
class  IRtcEngine
 
class  IRtcEngineEventHandler
 
class  IRtcEngineEventHandlerEx
 
class  IRtcEngineEventHandlerInternal
 
class  IRtcEngineEx
 
class  IRtcEngineInternal
 
class  IRtcEngineParameter
 
class  IRtmpConnection
 
class  IRtmpConnectionEx
 
class  IRtmpConnectionObserver
 
class  IRtmpLocalUser
 
class  IRtmpLocalUserObserver
 
class  IRtmpStreamingObserver
 
class  IRtmpStreamingService
 
class  IScreenCaptureObserver
 
class  IScreenCapturer
 
class  IScreenCapturerEx
 
class  ITransportPacketObserver
 
class  IVideoBeautyFilter
 
class  IVideoDeviceCollection
 
class  IVideoDeviceManager
 
class  IVideoEncodedImageCallback
 
class  IVideoEncodedImageReceiver
 
class  IVideoEncodedImageSender
 
class  IVideoEncodedImageSenderEx
 
class  IVideoFilter
 
class  IVideoFilterBase
 
class  IVideoFilterEx
 
class  IVideoFrame
 
class  IVideoFrameAdapter
 
class  IVideoFrameMemoryPool
 
class  IVideoFrameObserver2
 
class  IVideoFrameSender
 
class  IVideoFrameSenderEx
 
class  IVideoFrameTransceiver
 
class  IVideoFrameTransceiverEx
 
class  IVideoListener
 
class  IVideoMixerSource
 
class  IVideoMixerSourceEx
 
class  IVideoRenderer
 
class  IVideoRendererEx
 
class  IVideoSinkBase
 
class  IVideoTrack
 
class  IVideoTrackObserver
 
struct  LastmileProbeConfig
 
struct  LastmileProbeOneWayResult
 
struct  LastmileProbeResult
 
struct  layout_info
 
struct  LeaveChannelOptions
 
struct  LiveTranscoding
 
struct  LocalAudioStats
 
struct  LocalTranscoderConfiguration
 
struct  LocalVideoStats
 
struct  LocalVideoTrackStats
 
struct  LocalVideoTrackStatsEx
 
struct  MixerLayoutConfig
 
struct  PacketOptions
 
struct  PreviewMetaInfo
 
struct  PublisherConfiguration
 
struct  RawPixelBuffer
 
struct  ReceivePacketHandler
 
struct  Rectangle
 
struct  region_info
 
struct  RemoteAudioStats
 
struct  RemoteAudioTrackStats
 
struct  RemoteVideoStats
 
struct  RemoteVideoTrackStats
 
struct  RemoteVideoTrackStatsEx
 
struct  rtc_packet_t
 
struct  RtcConnection
 
struct  RtcConnectionConfiguration
 
struct  RtcConnectionConfigurationEx
 
struct  RtcConnStats
 
struct  RtcEngineContext
 
struct  RtcEngineContextEx
 
struct  RtcEngineContextInternal
 
class  RtcEngineLibHelper
 
struct  RtcImage
 
struct  RtcStats
 
struct  RtmpConnectionConfiguration
 
struct  RtmpConnectionInfo
 
struct  RtmpStreamingAudioConfiguration
 
struct  RtmpStreamingVideoConfiguration
 
struct  SAudioFrame
 
struct  SAudioPacket
 
struct  ScreenCaptureConfiguration
 
struct  ScreenCaptureParameters
 
struct  SimulcastStreamConfig
 
struct  SMediaFrame
 
class  StateNotifier
 
struct  TConnectionInfo
 
struct  TextureInfo
 
struct  TranscodingUser
 
struct  TranscodingVideoStream
 
struct  UplinkNetworkInfo
 
struct  UserInfo
 
struct  video_custom_ctrl_broadcast_packet_t
 
struct  video_packet_t
 
struct  video_report_packet_t
 
struct  video_rtcp_packet_t
 
struct  video_transport_packet_info
 
struct  VideoCanvas
 
struct  VideoCompositingLayout
 
struct  VideoConfigurationEx
 
struct  VideoDimensions
 
struct  VideoEncodedImageData
 
struct  VideoEncoderConfiguration
 
struct  VideoFormat
 
struct  VideoFrameData
 
struct  VideoTrackInfo
 
struct  WatermarkOptions
 
struct  WatermarkRatio
 
struct  WebAgentVideoStats
 

Typedefs

using PipelineBuilder = std::shared_ptr< webrtc::Call >
 
using WeakPipelineBuilder = std::weak_ptr< webrtc::Call >
 
using SharedSAudioFrame = std::shared_ptr< SAudioFrame >
 
template<typename STATE_TYPE , typename REASON_TYPE >
using StateEvent = std::pair< uint64_t, std::pair< STATE_TYPE, REASON_TYPE > >
 
template<typename STATE_TYPE , typename REASON_TYPE >
using StateEvents = std::vector< StateEvent< STATE_TYPE, REASON_TYPE > >
 
typedef struct agora::rtc::RtcImage RtcImage
 
typedef unsigned int uid_t
 
typedef unsigned int track_id_t
 
typedef unsigned int conn_id_t
 

Enumerations

enum  RTMP_CHANNEL_EVENT { RTMP_CHANNEL_EVENT_DISCONNECT = 0, RTMP_CHANNEL_EVENT_LEAVE_CHANNEL = 1, RTMP_CHANNEL_EVENT_BANNED_BY_SERVER = 2 }
 
enum  PcmSendErrorCode { PcmSendErrorCode::ERR_OK, PcmSendErrorCode::ERR_BUFFEROVERFLOW }
 
enum  OPENSL_MODE { OPENSL_MODE::ALWAYS_ON, OPENSL_MODE::ALWAYS_OFF, OPENSL_MODE::ON_WITH_HEADSET }
 
enum  MEDIA_STREAM_TYPE { MEDIA_STREAM_TYPE_AUDIO = (1 << 0), MEDIA_STREAM_TYPE_VIDEO_LOW = (1 << 1), MEDIA_STREAM_TYPE_VIDEO_HIGH = (1 << 2), MEDIA_STREAM_TYPE_VIDEO = (MEDIA_STREAM_TYPE_VIDEO_LOW | MEDIA_STREAM_TYPE_VIDEO_HIGH) }
 
enum  VideoStreamType { MASTER_VIDEO_STREAM = 0, LOW_BITRATE_VIDEO_STREAM = 1, MEDIUM_BITRATE_VIDEO_STREAM = 2, LIVE_VIDEO_STREAM = 3 }
 
enum  CongestionControlType { CONGESTION_CONTROLLER_TYPE_AGORA_CC = 0, CONGESTION_CONTROLLER_TYPE_REMB, CONGESTION_CONTROLLER_TYPE_TRANSPORT_CC, CONGESTION_CONTROLLER_TYPE_AUT_CC }
 
enum  ConnectionMode { CONNECTION_MODE_ACTIVE, CONNECTION_MODE_PASSIVE }
 
enum  InternalRendererType { RENDERER_NONE = -1, RENDERER_BUILT_IN_RENDERER = 0, RENDERER_EXT_OBSERVER = 3 }
 
enum  CAMERA_OUTPUT_DATA_TYPE { CAMERA_OUTPUT_RAW = 0, CAMERA_OUTPUT_TEXTURE = 1, CAMERA_OUTPUT_TEXTURE_AND_RAW = 2 }
 
enum  InternalVideoSourceType : unsigned {
  InternalVideoSourceType::None = 0, InternalVideoSourceType::Camera = 1, InternalVideoSourceType::Custom = 2, InternalVideoSourceType::Screen = 3,
  InternalVideoSourceType::CustomYuvSource = 4, InternalVideoSourceType::CustomEncodedImageSource = 5, InternalVideoSourceType::CustomPacketSource = 6, InternalVideoSourceType::MixedSource = 7,
  InternalVideoSourceType::TranscodedSource = 8
}
 
enum  RTMP_CONNECTION_ERROR { RTMP_CONNECTION_ERR_OK = 0, RTMP_CONNECTION_ERR_FAILED = 1, RTMP_CONNECTION_ERR_INVALID_URL = 2 }
 
enum  RTMP_CONNECTION_STATE {
  STATE_DISCONNECTED = 1, STATE_CONNECTING = 2, STATE_CONNECTED = 3, STATE_RECONNECTING = 4,
  STATE_FAILED = 5
}
 
enum  PublishAudioError { PUBLISH_AUDIO_ERR_OK = 0, PUBLISH_AUDIO_ERR_FAILED = 1 }
 
enum  PublishVideoError { PUBLISH_VIDEO_ERR_OK = 0, PUBLISH_VIDEO_ERR_FAILED = 1 }
 
enum  ImageType { kPng, kJpeg, kGif }
 
enum  VideoTrackType { LOCAL_VIDEO_TRACK, REMOTE_VIDEO_TRACK }
 
enum  USER_OFFLINE_REASON_TYPE { USER_OFFLINE_QUIT = 0, USER_OFFLINE_DROPPED = 1, USER_OFFLINE_BECOME_AUDIENCE = 2 }
 
enum  INTERFACE_ID_TYPE {
  AGORA_IID_AUDIO_DEVICE_MANAGER = 1, AGORA_IID_VIDEO_DEVICE_MANAGER = 2, AGORA_IID_PARAMETER_ENGINE = 3, AGORA_IID_MEDIA_ENGINE = 4,
  AGORA_IID_AUDIO_ENGINE = 5, AGORA_IID_VIDEO_ENGINE = 6, AGORA_IID_RTC_CONNECTION = 7, AGORA_IID_SIGNALING_ENGINE = 8,
  AGORA_IID_MEDIA_ENGINE_REGULATOR = 9
}
 
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  FRAME_WIDTH { FRAME_WIDTH_640 = 640 }
 
enum  FRAME_HEIGHT { FRAME_HEIGHT_360 = 360 }
 
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_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_HEAAC2 = 11
}
 
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 = VIDEO_SOURCE_CAMERA_PRIMARY, VIDEO_SOURCE_CAMERA_SECONDARY, VIDEO_SOURCE_SCREEN_PRIMARY,
  VIDEO_SOURCE_SCREEN = 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, VIDEO_SOURCE_UNKNOWN = 100
}
 
enum  CLIENT_ROLE_TYPE { CLIENT_ROLE_BROADCASTER = 1, CLIENT_ROLE_AUDIENCE = 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, AUDIO_PROFILE_NUM = 7
}
 
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_BACKGROUD = 6, LOCAL_VIDEO_STREAM_ERROR_MULTIPLE_FOREGROUND_APPS = 7,
  LOCAL_VIDEO_STREAM_ERROR_SYSTEM_PRESSURE = 8
}
 
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_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 }
 
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_FAILED = -1, 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_CDN_ERROR = 11, RTMP_STREAM_PUBLISH_ERROR_ALREADY_IN_USE = 12
}
 
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  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
}
 
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  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_REVERB_PRESET {
  AUDIO_REVERB_OFF = 0, AUDIO_REVERB_FX_KTV = 0x02010100, AUDIO_REVERB_FX_VOCAL_CONCERT = 0x02010200, AUDIO_REVERB_FX_UNCLE = 0x02020100,
  AUDIO_REVERB_FX_SISTER = 0x02020400, AUDIO_REVERB_FX_STUDIO = 0x02010300, AUDIO_REVERB_FX_POPULAR = 0x02030200, AUDIO_REVERB_FX_RNB = 0x02030100,
  AUDIO_REVERB_FX_PHONOGRAPH = 0x02010400
}
 
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  VOICE_CHANGER_PRESET {
  VOICE_CHANGER_OFF = 0, VOICE_CHANGER_OLDMAN = 0x02020200, VOICE_CHANGER_BABYBOY = 0x02020300, VOICE_CHANGER_BABYGIRL = 0x02020500,
  VOICE_CHANGER_ZHUBAJIE = 0x02020600, VOICE_CHANGER_ETHEREAL = 0x02010700, VOICE_CHANGER_HULK = 0x02020700, VOICE_BEAUTY_VIGOROUS = 0x01030100,
  VOICE_BEAUTY_DEEP = 0x01030200, VOICE_BEAUTY_MELLOW = 0x01030300, VOICE_BEAUTY_FALSETTO = 0x01030400, VOICE_BEAUTY_FULL = 0x01030500,
  VOICE_BEAUTY_CLEAR = 0x01030600, VOICE_BEAUTY_RESOUNDING = 0x01030700, VOICE_BEAUTY_RINGING = 0x01030800, VOICE_BEAUTY_SPACIAL = 0x02010600,
  GENERAL_BEAUTY_VOICE_MALE = 0x01010100, GENERAL_BEAUTY_VOICE_FEMALE_FRESH = 0x01010200, GENERAL_BEAUTY_VOICE_FEMALE_VITALITY = 0x01010300
}
 
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_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
}
 
enum  CHANNEL_MEDIA_RELAY_STATE { RELAY_STATE_IDLE = 0, RELAY_STATE_CONNECTING = 1, RELAY_STATE_RUNNING = 2, RELAY_STATE_FAILURE = 3 }
 
enum  ENCRYPTION_MODE { SM4_128_ECB = 4, 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 }
 
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) }
 
enum  AudioRoute {
  ROUTE_DEFAULT = -1, ROUTE_HEADSET, ROUTE_EARPIECE, ROUTE_HEADSETNOMIC,
  ROUTE_SPEAKERPHONE, ROUTE_LOUDSPEAKER, ROUTE_HEADSETBLUETOOTH, ROUTE_HDMI,
  ROUTE_USB
}
 
enum  BYTES_PER_SAMPLE { TWO_BYTES_PER_SAMPLE = 2 }
 
enum  RAW_AUDIO_FRAME_OP_MODE_TYPE { RAW_AUDIO_FRAME_OP_MODE_READ_ONLY = 0, RAW_AUDIO_FRAME_OP_MODE_READ_WRITE = 2 }
 
enum  STREAMING_SRC_ERR {
  STREAMING_SRC_ERR_NONE = 0, STREAMING_SRC_ERR_UNKNOWN = 1, STREAMING_SRC_ERR_INVALID_PARAM = 2, STREAMING_SRC_ERR_BAD_STATE = 3,
  STREAMING_SRC_ERR_NO_MEM = 4, STREAMING_SRC_ERR_BUFFER_OVERFLOW = 5, STREAMING_SRC_ERR_BUFFER_UNDERFLOW = 6, STREAMING_SRC_ERR_NOT_FOUND = 7,
  STREAMING_SRC_ERR_TIMEOUT = 8, STREAMING_SRC_ERR_EXPIRED = 9, STREAMING_SRC_ERR_UNSUPPORTED = 10, STREAMING_SRC_ERR_NOT_EXIST = 11,
  STREAMING_SRC_ERR_EXIST = 12, STREAMING_SRC_ERR_OPEN = 13, STREAMING_SRC_ERR_CLOSE = 14, STREAMING_SRC_ERR_READ = 15,
  STREAMING_SRC_ERR_WRITE = 16, STREAMING_SRC_ERR_SEEK = 17, STREAMING_SRC_ERR_EOF = 18, STREAMING_SRC_ERR_CODECOPEN = 19,
  STREAMING_SRC_ERR_CODECCLOSE = 20, STREAMING_SRC_ERR_CODECPROC = 21
}
 
enum  STREAMING_SRC_STATE {
  STREAMING_SRC_STATE_CLOSED = 0, STREAMING_SRC_STATE_OPENING = 1, STREAMING_SRC_STATE_IDLE = 2, STREAMING_SRC_STATE_PLAYING = 3,
  STREAMING_SRC_STATE_SEEKING = 4, STREAMING_SRC_STATE_EOF = 5, STREAMING_SRC_STATE_ERROR = 6
}
 
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  AUDIO_MIXING_STATE_TYPE {
  AUDIO_MIXING_STATE_PLAYING = 710, AUDIO_MIXING_STATE_PAUSED = 711, AUDIO_MIXING_STATE_STOPPED = 713, AUDIO_MIXING_STATE_FAILED = 714,
  AUDIO_MIXING_STATE_COMPLETED = 715, AUDIO_MIXING_STATE_ALL_LOOPS_COMPLETED = 716
}
 
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  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  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  STREAM_FALLBACK_OPTIONS { STREAM_FALLBACK_OPTION_DISABLED = 0, STREAM_FALLBACK_OPTION_VIDEO_STREAM_LOW = 1, STREAM_FALLBACK_OPTION_AUDIO_ONLY = 2 }
 
enum  PRIORITY_TYPE { PRIORITY_HIGH = 50, PRIORITY_NORMAL = 100 }
 
enum  RTMP_STREAM_LIFE_CYCLE_TYPE { RTMP_STREAM_LIFE_CYCLE_BIND2CHANNEL = 1, RTMP_STREAM_LIFE_CYCLE_BIND2OWNER = 2 }
 
enum  CAMERA_DIRECTION { CAMERA_REAR = 0, CAMERA_FRONT = 1 }
 
enum  DIRECT_CDN_STREAMING_ERROR {
  DIRECT_CDN_STREAMING_ERROR_OK = 0, DIRECT_CDN_STREAMING_ERROR_FAILED = 1, DIRECT_CDN_STREAMING_ERROR_AUDIO_PUBLICATION = 2, DIRECT_CDN_STREAMING_ERROR_VIDEO_PUBLICATION = 3,
  DIRECT_CDN_STREAMING_ERROR_NET_CONNECT = 4
}
 
enum  DIRECT_CDN_STREAMING_STATE { DIRECT_CDN_STREAMING_STATE_IDLE = 0, DIRECT_CDN_STREAMING_STATE_STARTED = 1, DIRECT_CDN_STREAMING_STATE_STOPPED = 2, DIRECT_CDN_STREAMING_STATE_FAILED = 3 }
 
enum  QUALITY_REPORT_FORMAT_TYPE { QUALITY_REPORT_JSON = 0, QUALITY_REPORT_HTML = 1 }
 
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  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  INTERFACE_ID_EX_TYPE { AGORA_IID_RTC_ENGINE_EX = 0xacbd }
 
enum  SCREEN_SHARING_MODE { SCREEN_SHARING_NORMAL = 0, SCREEN_SHARING_MOVIE = 1 }
 
enum  RecordingEventType : unsigned {
  RecordingEventType::RECORDING_EVENT_UNKNOWN, RecordingEventType::RECORDING_EVENT_START, RecordingEventType::RECORDING_EVENT_JOIN = RECORDING_EVENT_START, RecordingEventType::RECORDING_EVENT_LEAVE,
  RecordingEventType::RECORDING_EVENT_END = RECORDING_EVENT_LEAVE
}
 
enum  RecordingEventKeyIndex {
  RECORDING_JOIN_EVT_START = 1, RECORDING_JOIN_EVT_MIXMODE = RECORDING_JOIN_EVT_START, RECORDING_JOIN_EVT_MIXEDVIDEOAUDIOMODE = 2, RECORDING_JOIN_EVT_MIXHIGH = 3,
  RECORDING_JOIN_EVT_MIXLOW = 4, RECORDING_JOIN_EVT_MIXFPS = 5, RECORDING_JOIN_EVT_MIXKBPS = 6, RECORDING_JOIN_EVT_MINUDPPORT = 7,
  RECORDING_JOIN_EVT_MAXUDPPORT = 8, RECORDING_JOIN_EVT_DECODEAUDIOTYPE = 9, RECORDING_JOIN_EVT_DECODEVIDEOTYPE = 10, RECORDING_JOIN_EVT_LIVEMODE = 11,
  RECORDING_JOIN_EVT_IDLE = 12, RECORDING_JOIN_EVT_AUDIOONLY = 13, RECORDING_JOIN_EVT_VIDEOONLY = 14, RECORDING_JOIN_EVT_SYSLOGFACILITY = 15,
  RECORDING_JOIN_EVT_STREAMTYPE = 16, RECORDING_JOIN_EVT_TRIGGERMODE = 17, RECORDING_JOIN_EVT_LANGUAGE = 18, RECORDING_JOIN_EVT_RESERVE1 = 19,
  MAX_RECORDING_JOIN_EVT_RESERVE15 = RECORDING_JOIN_EVT_RESERVE1 + 14, RECORDING_JOIN_EVT_MAX = MAX_RECORDING_JOIN_EVT_RESERVE15, RECORDING_LEAVE_EVT_START = 101, RECORDING_LEAVE_EVT_LEAVEPATHCODE = RECORDING_LEAVE_EVT_START,
  RECORDING_LEAVE_EVT_RESERVE1, RECORDING_LEAVE_EVT_RESERVE5 = RECORDING_LEAVE_EVT_RESERVE1 + 4, RECORDING_LEAVE_EVT_MAX = RECORDING_LEAVE_EVT_RESERVE5
}
 

Functions

template<typename T >
static T MinPositive (T a, T b)
 
AGORA_API bool AGORA_CALL decode_sei_layout (const void *data, unsigned size, layout_info *layout)
 

Variables

static const char * kAudioStreamTrackId = "audio_stream_track_id"
 
static const char * kVideoMajorStreamTrackId = "video_major_stream_track_id"
 
static const char * kVideoMinorStreamTrackId = "video_minor_stream_track_id"
 
const std::string AUDIO_PIPELINE_POS_RECORD_ORIGIN
 
const std::string AUDIO_PIPELINE_POS_PRE_APM_PROC
 
const std::string AUDIO_PIPELINE_POS_APM
 
const std::string AUDIO_PIPELINE_POS_PRE_SEND_PROC
 
const std::string AUDIO_PIPELINE_POS_FILTER
 
const std::string AUDIO_PIPELINE_POS_ENC
 
const std::string AUDIO_PIPELINE_POS_TX_MIXER
 
const std::string AUDIO_PIPELINE_POS_AT_RECORD
 
const std::string AUDIO_PIPELINE_POS_ATW_RECORD
 
const std::string AUDIO_PIPELINE_POS_DEC
 
const std::string AUDIO_PIPELINE_POS_MIXED
 
const std::string AUDIO_PIPELINE_POS_PLAY
 
const std::string AUDIO_PIPELINE_POS_RX_MIXER
 
const std::string AUDIO_PIPELINE_POS_PLAYBACK_MIXER
 
const std::string AUDIO_PIPELINE_POS_PCM_SOURCE_PLAYBAC_MIXER
 
const std::string AUDIO_PIPELINE_POS_PRE_PLAY_PROC
 
const std::string AUDIO_PIPELINE_POS_AT_PLAYOUT
 
const std::string AUDIO_PIPELINE_POS_ATW_PLAYOUT
 
const int64_t AUDIO_FRAME_DUMP_MIN_DURATION_MS = 0
 
const int64_t AUDIO_FRAME_DUMP_MAX_DURATION_MS = 150000
 
static const uint8_t kVideoEngineFlagHasIntraRequest = 0x10
 
static const uint8_t kVideoEngineFlagStdCodec = 0x8
 
static const uint8_t kVideoEngineFlagNasa = 0x40
 
static const uint8_t kVideoEngineFlagScalableDelta = 0x80
 
static const uint8_t kVideoEngineFlagMajorStreamOnly = 0x01
 
static const uint8_t kAgoraHeaderLength = 3
 
static const uint8_t kAgoraAudioExtendLength = 5
 
static const uint8_t AUDIO_MEDIA_PACKET_PAYLOAD_TYPE = 127
 
static const char *const BUILT_IN_ADAPTER = "built-in-adapter"
 
static const char *const BUILT_IN_MIRROR_FILTER = "built-in-mirror"
 
static const char *const BUILT_IN_WATERMARK_FILTER = "built-in-watermarker"
 
static const char *const BUILT_IN_ROTATOR = "built-in-rotator"
 
static const char *const BUILT_IN_PREVIEW_TEE = "built-in-preview-tee"
 
static const char *const BUILT_IN_MAJOR_TEE = "built-in-major-tee"
 
static const char *const BUILT_IN_MINOR_TEE = "built-in-minor-tee"
 
static const char *const BUILT_IN_MINOR_ADAPTER = "built-in-minor-adapter"
 
static const int kAdmMaxDeviceNameSize = 128
 
static const int kAdmMaxGuidSize = 128
 
static const int kIntervalInMillseconds = 200
 
static const int kDeviceIdSize = 128
 
OPTIONAL_ENUM_CLASS VideoFrameMetaDataType
 
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
 
static const unsigned int DEFAULT_CONNECTION_ID = 0
 
static const unsigned int DUMMY_CONNECTION_ID = (std::numeric_limits<unsigned int>::max)()
 

Typedef Documentation

◆ PipelineBuilder

using agora::rtc::PipelineBuilder = typedef std::shared_ptr<webrtc::Call>

◆ WeakPipelineBuilder

using agora::rtc::WeakPipelineBuilder = typedef std::weak_ptr<webrtc::Call>

◆ SharedSAudioFrame

using agora::rtc::SharedSAudioFrame = typedef std::shared_ptr<SAudioFrame>

◆ StateEvent

template<typename STATE_TYPE , typename REASON_TYPE >
using agora::rtc::StateEvent = typedef std::pair<uint64_t, std::pair<STATE_TYPE, REASON_TYPE> >

◆ StateEvents

template<typename STATE_TYPE , typename REASON_TYPE >
using agora::rtc::StateEvents = typedef std::vector<StateEvent<STATE_TYPE, REASON_TYPE> >

◆ RtcImage

The definition of the RtcImage struct.

◆ uid_t

typedef unsigned int agora::rtc::uid_t

◆ track_id_t

typedef unsigned int agora::rtc::track_id_t

◆ conn_id_t

typedef unsigned int agora::rtc::conn_id_t

Enumeration Type Documentation

◆ RTMP_CHANNEL_EVENT

The events in the RTMP channel.

Enumerator
RTMP_CHANNEL_EVENT_DISCONNECT 

0: The live stream service is disconnected.

RTMP_CHANNEL_EVENT_LEAVE_CHANNEL 

1: The live stream service has left the channel.

RTMP_CHANNEL_EVENT_BANNED_BY_SERVER 

2: The live stream service is banned by the server.

◆ PcmSendErrorCode

Enumerator
ERR_OK 
ERR_BUFFEROVERFLOW 

◆ OPENSL_MODE

OpenSL mode

Enumerator
ALWAYS_ON 

always on

ALWAYS_OFF 

always off

ON_WITH_HEADSET 

on with headset

◆ MEDIA_STREAM_TYPE

Enumerator
MEDIA_STREAM_TYPE_AUDIO 
MEDIA_STREAM_TYPE_VIDEO_LOW 
MEDIA_STREAM_TYPE_VIDEO_HIGH 
MEDIA_STREAM_TYPE_VIDEO 

◆ VideoStreamType

Enumerator
MASTER_VIDEO_STREAM 
LOW_BITRATE_VIDEO_STREAM 
MEDIUM_BITRATE_VIDEO_STREAM 
LIVE_VIDEO_STREAM 

◆ CongestionControlType

Enumerator
CONGESTION_CONTROLLER_TYPE_AGORA_CC 
CONGESTION_CONTROLLER_TYPE_REMB 
CONGESTION_CONTROLLER_TYPE_TRANSPORT_CC 
CONGESTION_CONTROLLER_TYPE_AUT_CC 

◆ ConnectionMode

Enumerator
CONNECTION_MODE_ACTIVE 
CONNECTION_MODE_PASSIVE 

◆ InternalRendererType

Enumerator
RENDERER_NONE 
RENDERER_BUILT_IN_RENDERER 
RENDERER_EXT_OBSERVER 

◆ CAMERA_OUTPUT_DATA_TYPE

Enumerator
CAMERA_OUTPUT_RAW 
CAMERA_OUTPUT_TEXTURE 
CAMERA_OUTPUT_TEXTURE_AND_RAW 

◆ InternalVideoSourceType

enum agora::rtc::InternalVideoSourceType : unsigned
strong
Enumerator
None 
Camera 
Custom 
Screen 
CustomYuvSource 
CustomEncodedImageSource 
CustomPacketSource 
MixedSource 
TranscodedSource 

◆ RTMP_CONNECTION_ERROR

The RTMP Connection error codes.

Enumerator
RTMP_CONNECTION_ERR_OK 

0: No error occurs.

RTMP_CONNECTION_ERR_FAILED 

1: A general error occurs (no specified reason).

RTMP_CONNECTION_ERR_INVALID_URL 

2: The rtmp url is invalid.

◆ RTMP_CONNECTION_STATE

The connection state between the SDK and the RTMP server.

Enumerator
STATE_DISCONNECTED 

1: The SDK is disconnected from the RTMP server.

This is the initial state when an RTMP Connetion is created by the createRtmpConnection method.

The RTMP Connection also enters this state if you call the disconnect method when the SDK is in the STATE_CONNECTING(2), STATE_CONNECTED(3), STATE_RECONNECTING(4) or STATE_FAILED(5) state.

STATE_CONNECTING 

2: The SDK is connecting to the RTMP server.

The SDK goes to this state after you call the connect method, indicating that the SDK is in the process of establishing a connection to the RTMP server.

Once successfully connected, it enters the STATE_CONNECTED(3) state.

If the SDK fails to connect to RTMP server, the SDK goes to STATE_FAILED(5).

STATE_CONNECTED 

3: The SDK is connected to the RTMP server.

This state indicates that the SDK has established a connection to the RTMP server, and you can publish media streams through this connection.

Once the connection is interrupted, for example, due to network deterioration or network type change, the SDK tries to reconnect to the RTMP server and enters the STATE_RECONNECTING(4) state.

STATE_RECONNECTING 

4: The SDK is reconnecting to the RTMP server.

This state indicates that the connection is interrupted by some network issue. The SDK keeps trying connecting to the server. If the SDK fails to reconnect, the SDK goes to STATE_FAILED(5).

STATE_FAILED 

5: The SDK fails to connect to the RTMP server.

In this state, SDK stops connecting to the server. Call the

◆ PublishAudioError

The error occurs while publising audio stream.

Enumerator
PUBLISH_AUDIO_ERR_OK 

0: No error occurs.

PUBLISH_AUDIO_ERR_FAILED 

1: A general error occurs (no specified reason).

◆ PublishVideoError

The error occurs while publising video stream.

Enumerator
PUBLISH_VIDEO_ERR_OK 

0: No error occurs.

PUBLISH_VIDEO_ERR_FAILED 

1: A general error occurs (no specified reason).

◆ ImageType

Enumerator
kPng 
kJpeg 
kGif 

◆ VideoTrackType

Enumerator
LOCAL_VIDEO_TRACK 
REMOTE_VIDEO_TRACK 

◆ USER_OFFLINE_REASON_TYPE

Reasons for a user being offline.

Enumerator
USER_OFFLINE_QUIT 

0: The user leaves the current channel.

USER_OFFLINE_DROPPED 

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

USER_OFFLINE_BECOME_AUDIENCE 

2: (Live Broadcast only.) The user role switches from broadcaster to audience.

◆ INTERFACE_ID_TYPE

Enumerator
AGORA_IID_AUDIO_DEVICE_MANAGER 
AGORA_IID_VIDEO_DEVICE_MANAGER 
AGORA_IID_PARAMETER_ENGINE 
AGORA_IID_MEDIA_ENGINE 
AGORA_IID_AUDIO_ENGINE 
AGORA_IID_VIDEO_ENGINE 
AGORA_IID_RTC_CONNECTION 
AGORA_IID_SIGNALING_ENGINE 
AGORA_IID_MEDIA_ENGINE_REGULATOR 

◆ QUALITY_TYPE

The network quality types.

Enumerator
QUALITY_UNKNOWN 

0: The network quality is unknown.

Deprecated:
This member is deprecated.
QUALITY_EXCELLENT 

1: The quality is excellent.

QUALITY_GOOD 

2: The 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: Users can barely communicate.

QUALITY_DOWN 

6: Users cannot communicate at all.

QUALITY_UNSUPPORTED 

7: (For future use) The network quality cannot be detected.

QUALITY_DETECTING 

8: Detecting the network quality.

◆ FIT_MODE_TYPE

Content fit modes.

Enumerator
MODE_COVER 

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

MODE_CONTAIN 

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.

◆ VIDEO_ORIENTATION

The rotation information.

Enumerator
VIDEO_ORIENTATION_0 

0: Rotate the video by 0 degree clockwise.

VIDEO_ORIENTATION_90 

90: Rotate the video by 90 degrees clockwise.

VIDEO_ORIENTATION_180 

180: Rotate the video by 180 degrees clockwise.

VIDEO_ORIENTATION_270 

270: Rotate the video by 270 degrees clockwise.

◆ FRAME_RATE

The video frame rate.

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. Applies to Windows and macOS only.

◆ FRAME_WIDTH

Enumerator
FRAME_WIDTH_640 

◆ FRAME_HEIGHT

Enumerator
FRAME_HEIGHT_360 

◆ VIDEO_FRAME_TYPE

Types of the video frame.

Enumerator
VIDEO_FRAME_TYPE_BLANK_FRAME 

(Default) Blank frame

VIDEO_FRAME_TYPE_KEY_FRAME 

(Default) Key frame

VIDEO_FRAME_TYPE_DELTA_FRAME 

(Default) Delta frame

VIDEO_FRAME_TYPE_B_FRAME 

(Default) B frame

VIDEO_FRAME_TYPE_DROPPABLE_FRAME 

(Default) Droppable frame

VIDEO_FRAME_TYPE_UNKNOW 

(Default) Unknown frame type

◆ ORIENTATION_MODE

Video output orientation modes.

Enumerator
ORIENTATION_MODE_ADAPTIVE 

0: (Default) Adaptive mode.

In this mode, the output video always follows the orientation of the captured video.

  • If the captured video is in landscape mode, the output video is in landscape mode.
  • If the captured video is in portrait mode, the output video is in portrait mode.
ORIENTATION_MODE_FIXED_LANDSCAPE 

1: Landscape mode.

In this mode, the output video is always in landscape mode. If the captured video is in portrait mode, the video encoder crops it to fit the output. Applies to scenarios where the receiver cannot process the rotation information, for example, CDN live streaming.

ORIENTATION_MODE_FIXED_PORTRAIT 

2: Portrait mode.

In this mode, the output video is always in portrait mode. If the captured video is in landscape mode, the video encoder crops it to fit the output. Applies to scenarios where the receiver cannot process the rotation information, for example, CDN live streaming.

◆ DEGRADATION_PREFERENCE

(For future use) Video degradation preferences under limited bandwidth.

Enumerator
MAINTAIN_QUALITY 

0: (Default) Degrade the frame rate and keep resolution to guarantee the video quality.

MAINTAIN_FRAMERATE 

1: Degrade resolution in order to maintain framerate.

MAINTAIN_BALANCED 

2: Maintain resolution in video quality control process. Under limited bandwidth, degrade video quality first and then degrade frame rate.

MAINTAIN_RESOLUTION 

3: Degrade framerate in order to maintain resolution.

DISABLED 

4: Disable VQC adjustion.

◆ VIDEO_CODEC_TYPE

Video codec types.

Enumerator
VIDEO_CODEC_VP8 

1: VP8.

VIDEO_CODEC_H264 

2: H.264.

VIDEO_CODEC_H265 

3: H.265.

VIDEO_CODEC_VP9 

5: VP9.

VIDEO_CODEC_GENERIC 

6: Generic.

VIDEO_CODEC_GENERIC_H264 

7: Generic H264.

VIDEO_CODEC_GENERIC_JPEG 

20: JPEG.

◆ AUDIO_CODEC_TYPE

Audio codec types.

Enumerator
AUDIO_CODEC_OPUS 

1: OPUS.

AUDIO_CODEC_PCMA 

3: PCMA.

AUDIO_CODEC_PCMU 

4: PCMU.

AUDIO_CODEC_G722 

5: G722.

AUDIO_CODEC_AACLC 

7: AAC. 8: AAC LC.

AUDIO_CODEC_HEAAC 

9: HE AAC.

AUDIO_CODEC_JC1 

10: JC1.

AUDIO_CODEC_HEAAC2 

◆ AUDIO_ENCODING_TYPE

audio encoding type of audio encoded frame observer.

Enumerator
AUDIO_ENCODING_TYPE_AAC_16000_LOW 

1: codecType AAC; sampleRate 16000; quality low which around 1.2 MB after 10 minutes

AUDIO_ENCODING_TYPE_AAC_16000_MEDIUM 

1: codecType AAC; sampleRate 16000; quality medium which around 2 MB after 10 minutes

AUDIO_ENCODING_TYPE_AAC_32000_LOW 

1: codecType AAC; sampleRate 32000; quality low which around 1.2 MB after 10 minutes

AUDIO_ENCODING_TYPE_AAC_32000_MEDIUM 

1: codecType AAC; sampleRate 32000; quality medium which around 2 MB after 10 minutes

AUDIO_ENCODING_TYPE_AAC_32000_HIGH 

1: codecType AAC; sampleRate 32000; quality high which around 3.5 MB after 10 minutes

AUDIO_ENCODING_TYPE_AAC_48000_MEDIUM 

1: codecType AAC; sampleRate 48000; quality medium which around 2 MB after 10 minutes

AUDIO_ENCODING_TYPE_AAC_48000_HIGH 

1: codecType AAC; sampleRate 48000; quality high which around 3.5 MB after 10 minutes

AUDIO_ENCODING_TYPE_OPUS_16000_LOW 

1: codecType OPUS; sampleRate 16000; quality low which around 1.2 MB after 10 minutes

AUDIO_ENCODING_TYPE_OPUS_16000_MEDIUM 

1: codecType OPUS; sampleRate 16000; quality medium which around 2 MB after 10 minutes

AUDIO_ENCODING_TYPE_OPUS_48000_MEDIUM 

1: codecType OPUS; sampleRate 48000; quality medium which around 2 MB after 10 minutes

AUDIO_ENCODING_TYPE_OPUS_48000_HIGH 

1: codecType OPUS; sampleRate 48000; quality high which around 3.5 MB after 10 minutes

◆ WATERMARK_FIT_MODE

Watermark fit mode

Enumerator
FIT_MODE_COVER_POSITION 

Use the position of positionInLandscapeMode/positionInPortraitMode in #WatermarkOptions the widthRatio will be invalid.

FIT_MODE_USE_IMAGE_RATIO 

Use width rotio of video, in this mode, positionInLandscapeMode/positionInPortraitMode in #WatermarkOptions will be invalid, and watermarkRatio will valid.

◆ H264PacketizeMode

Packetization modes. Applies to H.264 only.

Enumerator
NonInterleaved 

Non-interleaved mode. See RFC 6184.

SingleNalUnit 

Single NAL unit mode. See RFC 6184.

◆ VIDEO_STREAM_TYPE

Video stream types.

Enumerator
VIDEO_STREAM_HIGH 

0: The high-quality video stream, which has a higher resolution and bitrate.

VIDEO_STREAM_LOW 

1: The low-quality video stream, which has a lower resolution and bitrate.

◆ VIDEO_MIRROR_MODE_TYPE

Video mirror mode types.

Enumerator
VIDEO_MIRROR_MODE_AUTO 

(Default) 0: The mirror mode determined by the SDK.

VIDEO_MIRROR_MODE_ENABLED 

1: Enable the mirror mode.

VIDEO_MIRROR_MODE_DISABLED 

2: Disable the mirror mode.

◆ VIDEO_SOURCE_TYPE

Video source types definition.

Enumerator
VIDEO_SOURCE_CAMERA_PRIMARY 

Video captured by the camera.

VIDEO_SOURCE_CAMERA 
VIDEO_SOURCE_CAMERA_SECONDARY 

Video captured by the secondary camera.

VIDEO_SOURCE_SCREEN_PRIMARY 

Video for screen sharing.

VIDEO_SOURCE_SCREEN 
VIDEO_SOURCE_SCREEN_SECONDARY 

Video for secondary screen sharing.

VIDEO_SOURCE_CUSTOM 

Not define.

VIDEO_SOURCE_MEDIA_PLAYER 

Video for media player sharing.

VIDEO_SOURCE_RTC_IMAGE_PNG 

Video for png image.

VIDEO_SOURCE_RTC_IMAGE_JPEG 

Video for png image.

VIDEO_SOURCE_RTC_IMAGE_GIF 

Video for png image.

VIDEO_SOURCE_REMOTE 

Remote video received from network.

VIDEO_SOURCE_TRANSCODED 

Video for transcoded.

VIDEO_SOURCE_UNKNOWN 

◆ CLIENT_ROLE_TYPE

User role types.

Enumerator
CLIENT_ROLE_BROADCASTER 

1: Broadcaster. A broadcaster can both send and receive streams.

CLIENT_ROLE_AUDIENCE 

2: Audience. An audience can only receive streams.

◆ AUDIO_PROFILE_TYPE

Audio profile types.

Enumerator
AUDIO_PROFILE_DEFAULT 

0: The default audio profile.

  • In the Communication profile, it represents a sample rate of 16 kHz, music encoding, mono, and a bitrate of up to 16 Kbps.
  • In the Live-broadcast profile, it represents a sample rate of 48 kHz, music encoding, mono, and a bitrate of up to 64 Kbps.
AUDIO_PROFILE_SPEECH_STANDARD 

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

AUDIO_PROFILE_MUSIC_STANDARD 

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

AUDIO_PROFILE_MUSIC_STANDARD_STEREO 

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

AUDIO_PROFILE_MUSIC_HIGH_QUALITY 

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

AUDIO_PROFILE_MUSIC_HIGH_QUALITY_STEREO 

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

AUDIO_PROFILE_IOT 

6: A sample rate of 16 kHz, audio encoding, mono, and a bitrate of up to 64 Kbps.

AUDIO_PROFILE_NUM 

◆ AUDIO_SCENARIO_TYPE

Audio application scenarios.

Enumerator
AUDIO_SCENARIO_DEFAULT 

0: (Recommended) The default audio scenario.

AUDIO_SCENARIO_GAME_STREAMING 

3: (Recommended) The live gaming scenario, which needs to enable gaming audio effects in the speaker. Choose this scenario to achieve high-fidelity music playback.

AUDIO_SCENARIO_CHATROOM 

5: The chatroom scenario, which needs to keep recording when setClientRole to audience. Normally, app developer can also use mute api to achieve the same result, and we implement this 'non-orthogonal' behavior only to make API backward compatible.

AUDIO_SCENARIO_HIGH_DEFINITION 

6: (Recommended) The scenario requiring high-quality audio.

AUDIO_SCENARIO_CHORUS 

7: Chorus

AUDIO_SCENARIO_NUM 

8: Reserved.

◆ VIDEO_CONTENT_HINT

Video content hints.

Enumerator
CONTENT_HINT_NONE 

(Default) No content hint. In this case, the SDK balances smoothness with sharpness.

CONTENT_HINT_MOTION 

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

CONTENT_HINT_DETAILS 

Choose this option if you prefer sharpness or when you are sharing montionless content such as a picture, PowerPoint slide, ot text.

◆ LOCAL_AUDIO_STREAM_STATE

States of the local audio.

Enumerator
LOCAL_AUDIO_STREAM_STATE_STOPPED 

0: The local audio is in the initial state.

LOCAL_AUDIO_STREAM_STATE_RECORDING 

1: The audio recording device starts successfully.

LOCAL_AUDIO_STREAM_STATE_ENCODING 

2: The first audio frame is encoded successfully.

LOCAL_AUDIO_STREAM_STATE_FAILED 

3: The local audio fails to start.

◆ LOCAL_AUDIO_STREAM_ERROR

Reasons for the local audio failure.

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.

◆ LOCAL_VIDEO_STREAM_STATE

Local video state types.

Enumerator
LOCAL_VIDEO_STREAM_STATE_STOPPED 

0: The local video is in the initial state.

LOCAL_VIDEO_STREAM_STATE_CAPTURING 

1: The capturer starts successfully.

LOCAL_VIDEO_STREAM_STATE_ENCODING 

2: The first video frame is successfully encoded.

LOCAL_VIDEO_STREAM_STATE_FAILED 

3: The local video fails to start.

◆ LOCAL_VIDEO_STREAM_ERROR

Local video state error codes.

Enumerator
LOCAL_VIDEO_STREAM_ERROR_OK 

0: The local video is normal.

LOCAL_VIDEO_STREAM_ERROR_FAILURE 

1: No specified reason for the local video failure.

LOCAL_VIDEO_STREAM_ERROR_DEVICE_NO_PERMISSION 

2: No permission to use the local video capturing device.

LOCAL_VIDEO_STREAM_ERROR_DEVICE_BUSY 

3: The local video capturing device is in use.

LOCAL_VIDEO_STREAM_ERROR_CAPTURE_FAILURE 

4: The local video capture fails. Check whether the capturing device is working properly.

LOCAL_VIDEO_STREAM_ERROR_ENCODE_FAILURE 

5: The local video encoding fails.

LOCAL_VIDEO_STREAM_ERROR_BACKGROUD 

6: The local video capturing device not avalible due to app did enter background.

LOCAL_VIDEO_STREAM_ERROR_MULTIPLE_FOREGROUND_APPS 

7: The local video capturing device not avalible because the app is running in a multi-app layout (generally on the pad)

LOCAL_VIDEO_STREAM_ERROR_SYSTEM_PRESSURE 

8: The local video capturing device temporarily being made unavailable due to system pressure.

◆ 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

Reasons for a remote audio state change.

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

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 for 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 audio-and-video stream falls back to the audio-only stream due to poor network conditions.

REMOTE_VIDEO_STATE_REASON_AUDIO_FALLBACK_RECOVERY 

9: The remote audio-only stream switches back to the audio-and-video stream after the network conditions improve.

REMOTE_VIDEO_STATE_REASON_VIDEO_STREAM_TYPE_CHANGE_TO_LOW 

10: The remote video stream type change to low stream type just for internal use

REMOTE_VIDEO_STATE_REASON_VIDEO_STREAM_TYPE_CHANGE_TO_HIGH 

11: The remote video stream type change to high stream type just for internal use

◆ REMOTE_VIDEO_DOWNSCALE_LEVEL

The downscale level of the remote video stream . The higher the downscale level, the more the video downscales.

Enumerator
REMOTE_VIDEO_DOWNSCALE_LEVEL_NONE 

No downscale.

REMOTE_VIDEO_DOWNSCALE_LEVEL_1 

Downscale level 1.

REMOTE_VIDEO_DOWNSCALE_LEVEL_2 

Downscale level 2.

REMOTE_VIDEO_DOWNSCALE_LEVEL_3 

Downscale level 3.

REMOTE_VIDEO_DOWNSCALE_LEVEL_4 

Downscale level 4.

◆ AUDIO_SAMPLE_RATE_TYPE

Audio sample rate types.

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.

◆ AUDIO_CODEC_PROFILE_TYPE

Audio codec profile types.

Enumerator
AUDIO_CODEC_PROFILE_LC_AAC 

0: (Default) 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.

◆ RTMP_STREAM_PUBLISH_STATE

States of the RTMP streaming.

Enumerator
RTMP_STREAM_PUBLISH_STATE_IDLE 

0: The RTMP streaming has not started or has ended.

This state is also reported after you remove an RTMP address from the CDN by calling removePublishStreamUrl.

RTMP_STREAM_PUBLISH_STATE_CONNECTING 

1: The SDK is connecting to the streaming server and the RTMP server.

This state is reported after you call addPublishStreamUrl.

RTMP_STREAM_PUBLISH_STATE_RUNNING 

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

RTMP_STREAM_PUBLISH_STATE_RECOVERING 

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

  • If the SDK successfully resumes the streaming, RTMP_STREAM_PUBLISH_STATE_RUNNING(2) is reported.
  • If the streaming does not resume within 60 seconds or server errors occur, RTMP_STREAM_PUBLISH_STATE_FAILURE(4) is reported. You can also reconnect to the server by calling removePublishStreamUrl and addPublishStreamUrl.
RTMP_STREAM_PUBLISH_STATE_FAILURE 

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

◆ RTMP_STREAM_PUBLISH_ERROR

Error codes of the RTMP streaming.

Enumerator
RTMP_STREAM_PUBLISH_ERROR_FAILED 

-1: The RTMP streaming fails.

RTMP_STREAM_PUBLISH_ERROR_OK 

0: The RTMP streaming publishes successfully.

RTMP_STREAM_PUBLISH_ERROR_INVALID_ARGUMENT 

1: Invalid argument. If, for example, you did not call setLiveTranscoding to configure the LiveTranscoding parameters before calling addPublishStreamUrl, the SDK reports this error. Check whether you set the parameters in LiveTranscoding properly.

RTMP_STREAM_PUBLISH_ERROR_ENCRYPTED_STREAM_NOT_ALLOWED 

2: The RTMP streaming is encrypted and cannot be published.

RTMP_STREAM_PUBLISH_ERROR_CONNECTION_TIMEOUT 

3: A timeout occurs with the RTMP streaming. Call addPublishStreamUrl to publish the streaming again.

RTMP_STREAM_PUBLISH_ERROR_INTERNAL_SERVER_ERROR 

4: An error occurs in the streaming server. Call addPublishStreamUrl to publish the stream again.

RTMP_STREAM_PUBLISH_ERROR_RTMP_SERVER_ERROR 

5: An error occurs in the RTMP server.

RTMP_STREAM_PUBLISH_ERROR_TOO_OFTEN 

6: The RTMP streaming publishes too frequently.

RTMP_STREAM_PUBLISH_ERROR_REACH_LIMIT 

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

RTMP_STREAM_PUBLISH_ERROR_NOT_AUTHORIZED 

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

RTMP_STREAM_PUBLISH_ERROR_STREAM_NOT_FOUND 

9: The Agora server fails to find the RTMP streaming.

RTMP_STREAM_PUBLISH_ERROR_FORMAT_NOT_SUPPORTED 

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

RTMP_STREAM_PUBLISH_ERROR_CDN_ERROR 

11: CDN related errors. Remove the original URL address and add a new one by calling removePublishStreamUrl and addPublishStreamUrl.

RTMP_STREAM_PUBLISH_ERROR_ALREADY_IN_USE 

12: Resources are occupied and cannot be reused.

◆ CONNECTION_STATE_TYPE

Connection state types.

Enumerator
CONNECTION_STATE_DISCONNECTED 

1: The SDK is disconnected from the server.

CONNECTION_STATE_CONNECTING 

2: The SDK is connecting to the server.

CONNECTION_STATE_CONNECTED 

3: The SDK is connected to the server and has joined a channel. You can now publish or subscribe to a track in the channel.

CONNECTION_STATE_RECONNECTING 

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

CONNECTION_STATE_FAILED 

5: The SDK fails to connect to the server or join the channel.

◆ LASTMILE_PROBE_RESULT_STATE

States of the last mile network probe result.

Enumerator
LASTMILE_PROBE_RESULT_COMPLETE 

1: The probe result is complete.

LASTMILE_PROBE_RESULT_INCOMPLETE_NO_BWE 

2: The probe result is incomplete and bandwidth estimation is not available, probably due to temporary limited test resources.

LASTMILE_PROBE_RESULT_UNAVAILABLE 

3: The probe result is not available, probably due to poor network conditions.

◆ CONNECTION_CHANGED_REASON_TYPE

Reasons for a connection state change.

Enumerator
CONNECTION_CHANGED_CONNECTING 

0: The SDK is connecting to the server.

CONNECTION_CHANGED_JOIN_SUCCESS 

1: The SDK has joined the channel successfully.

CONNECTION_CHANGED_INTERRUPTED 

2: The connection between the SDK and the server is interrupted.

CONNECTION_CHANGED_BANNED_BY_SERVER 

3: The connection between the SDK and the server is banned by the 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 fails because the App ID is not valid.

CONNECTION_CHANGED_INVALID_CHANNEL_NAME 

7: The connection fails because the channel name is not valid.

CONNECTION_CHANGED_INVALID_TOKEN 

8: The connection fails because the token is not valid.

CONNECTION_CHANGED_TOKEN_EXPIRED 

9: The connection fails because the token has expired.

CONNECTION_CHANGED_REJECTED_BY_SERVER 

10: The connection is rejected by the server.

CONNECTION_CHANGED_SETTING_PROXY_SERVER 

11: The connection changes to reconnecting because the SDK has set a proxy server.

CONNECTION_CHANGED_RENEW_TOKEN 

12: When the connection state changes because the app has renewed the token.

CONNECTION_CHANGED_CLIENT_IP_ADDRESS_CHANGED 

13: The IP Address of the app has changed. A change in the network type or IP/Port changes the IP address of the app.

CONNECTION_CHANGED_KEEP_ALIVE_TIMEOUT 

14: A timeout occurs for the keep-alive of the connection between the SDK and the server.

CONNECTION_CHANGED_REJOIN_SUCCESS 

15: The SDK has rejoined the channel successfully.

CONNECTION_CHANGED_LOST 

16: The connection between the SDK and the server is lost.

CONNECTION_CHANGED_ECHO_TEST 

17: The change of connection state is caused by echo test.

CONNECTION_CHANGED_CLIENT_IP_ADDRESS_CHANGED_BY_USER 

18: The local IP Address is changed by user.

◆ NETWORK_TYPE

The network type.

Enumerator
NETWORK_TYPE_UNKNOWN 

-1: The network type is unknown.

NETWORK_TYPE_DISCONNECTED 

0: The network type is disconnected.

NETWORK_TYPE_LAN 

1: The network type is LAN.

NETWORK_TYPE_WIFI 

2: The network type is Wi-Fi.

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.

◆ VOICE_BEAUTIFIER_PRESET

Preset local voice reverberation options. bitmap allocation:

bit31 bit30 - bit24 bit23 - bit16 bit15 - bit8 bit7 - bit0
reserved 0x1: voice beauty 0x1: chat beautification effect types effect settings
0x2: singing beautification
0x3: timbre transform
-----------------— --------------------------—
0x2: audio effect 0x1: space construction
0x2: voice changer effect
0x3: style transform
0x4: electronic sound
0x5: magic tone
-----------------— --------------------------—
0x3: voice changer 0x1: voice transform

The options for SDK preset voice beautifier effects.

Enumerator
VOICE_BEAUTIFIER_OFF 

Turn off voice beautifier effects and use the original voice.

CHAT_BEAUTIFIER_MAGNETIC 

A more magnetic voice.

Note
Agora recommends using this enumerator to process a male-sounding voice; otherwise, you may experience vocal distortion.
CHAT_BEAUTIFIER_FRESH 

A fresher voice.

Note
Agora recommends using this enumerator to process a female-sounding voice; otherwise, you may experience vocal distortion.
CHAT_BEAUTIFIER_VITALITY 

A more vital voice.

Note
Agora recommends using this enumerator to process a female-sounding voice; otherwise, you may experience vocal distortion.
SINGING_BEAUTIFIER 
Since
v3.3.0

Singing beautifier effect.

  • If you call setVoiceBeautifierPreset (SINGING_BEAUTIFIER), you can beautify a male-sounding voice and add a reverberation effect that sounds like singing in a small room. Agora recommends not using setVoiceBeautifierPreset (SINGING_BEAUTIFIER) to process a female-sounding voice; otherwise, you may experience vocal distortion.
  • If you call setVoiceBeautifierParameters(SINGING_BEAUTIFIER, param1, param2), you can beautify a male- or female-sounding voice and add a reverberation effect.
TIMBRE_TRANSFORMATION_VIGOROUS 

A more vigorous voice.

TIMBRE_TRANSFORMATION_DEEP 

A deeper voice.

TIMBRE_TRANSFORMATION_MELLOW 

A mellower voice.

TIMBRE_TRANSFORMATION_FALSETTO 

A falsetto voice.

TIMBRE_TRANSFORMATION_FULL 

A fuller voice.

TIMBRE_TRANSFORMATION_CLEAR 

A clearer voice.

TIMBRE_TRANSFORMATION_RESOUNDING 

A more resounding voice.

TIMBRE_TRANSFORMATION_RINGING 

A more ringing voice.

◆ AUDIO_EFFECT_PRESET

The options for SDK preset audio effects.

Enumerator
AUDIO_EFFECT_OFF 

Turn off audio effects and use the original voice.

ROOM_ACOUSTICS_KTV 

An audio effect typical of a KTV venue.

Note
To achieve better audio effect quality, Agora recommends calling setAudioProfile and setting the profile parameter to AUDIO_PROFILE_MUSIC_HIGH_QUALITY(4) or AUDIO_PROFILE_MUSIC_HIGH_QUALITY_STEREO(5) before setting this enumerator.
ROOM_ACOUSTICS_VOCAL_CONCERT 

An audio effect typical of a concert hall.

Note
To achieve better audio effect quality, Agora recommends calling setAudioProfile and setting the profile parameter to AUDIO_PROFILE_MUSIC_HIGH_QUALITY(4) or AUDIO_PROFILE_MUSIC_HIGH_QUALITY_STEREO(5) before setting this enumerator.
ROOM_ACOUSTICS_STUDIO 

An audio effect typical of a recording studio.

Note
To achieve better audio effect quality, Agora recommends calling setAudioProfile and setting the profile parameter to AUDIO_PROFILE_MUSIC_HIGH_QUALITY(4) or AUDIO_PROFILE_MUSIC_HIGH_QUALITY_STEREO(5) before setting this enumerator.
ROOM_ACOUSTICS_PHONOGRAPH 

An audio effect typical of a vintage phonograph.

Note
To achieve better audio effect quality, Agora recommends calling setAudioProfile and setting the profile parameter to AUDIO_PROFILE_MUSIC_HIGH_QUALITY(4) or AUDIO_PROFILE_MUSIC_HIGH_QUALITY_STEREO(5) before setting this enumerator.
ROOM_ACOUSTICS_VIRTUAL_STEREO 

A virtual stereo effect that renders monophonic audio as stereo audio.

Note
Call setAudioProfile and set the profile parameter to AUDIO_PROFILE_MUSIC_STANDARD_STEREO(3) or AUDIO_PROFILE_MUSIC_HIGH_QUALITY_STEREO(5) before setting this enumerator; otherwise, the enumerator setting does not take effect.
ROOM_ACOUSTICS_SPACIAL 

A more spatial audio effect.

Note
To achieve better audio effect quality, Agora recommends calling setAudioProfile and setting the profile parameter to AUDIO_PROFILE_MUSIC_HIGH_QUALITY(4) or AUDIO_PROFILE_MUSIC_HIGH_QUALITY_STEREO(5) before setting this enumerator.
ROOM_ACOUSTICS_ETHEREAL 

A more ethereal audio effect.

Note
To achieve better audio effect quality, Agora recommends calling setAudioProfile and setting the profile parameter to AUDIO_PROFILE_MUSIC_HIGH_QUALITY(4) or AUDIO_PROFILE_MUSIC_HIGH_QUALITY_STEREO(5) before setting this enumerator.
ROOM_ACOUSTICS_3D_VOICE 

A 3D voice effect that makes the voice appear to be moving around the user. The default cycle period of the 3D voice effect is 10 seconds. To change the cycle period, call setAudioEffectParameters after this method.

Note
  • Call setAudioProfile and set the profile parameter to AUDIO_PROFILE_MUSIC_STANDARD_STEREO(3) or AUDIO_PROFILE_MUSIC_HIGH_QUALITY_STEREO(5) before setting this enumerator; otherwise, the enumerator setting does not take effect.
  • If the 3D voice effect is enabled, users need to use stereo audio playback devices to hear the anticipated voice effect.
VOICE_CHANGER_EFFECT_UNCLE 

The voice of an uncle.

Note
  • Agora recommends using this enumerator to process a male-sounding voice; otherwise, you may not hear the anticipated voice effect.
  • To achieve better audio effect quality, Agora recommends calling setAudioProfile and setting the profile parameter to AUDIO_PROFILE_MUSIC_HIGH_QUALITY(4) or AUDIO_PROFILE_MUSIC_HIGH_QUALITY_STEREO(5) before setting this enumerator.
VOICE_CHANGER_EFFECT_OLDMAN 

The voice of an old man.

Note
  • Agora recommends using this enumerator to process a male-sounding voice; otherwise, you may not hear the anticipated voice effect.
  • To achieve better audio effect quality, Agora recommends calling setAudioProfile and setting the profile parameter to AUDIO_PROFILE_MUSIC_HIGH_QUALITY(4) or AUDIO_PROFILE_MUSIC_HIGH_QUALITY_STEREO(5) before setting this enumerator.
VOICE_CHANGER_EFFECT_BOY 

The voice of a boy.

Note
  • Agora recommends using this enumerator to process a male-sounding voice; otherwise, you may not hear the anticipated voice effect.
  • To achieve better audio effect quality, Agora recommends calling setAudioProfile and setting the profile parameter to AUDIO_PROFILE_MUSIC_HIGH_QUALITY(4) or AUDIO_PROFILE_MUSIC_HIGH_QUALITY_STEREO(5) before setting this enumerator.
VOICE_CHANGER_EFFECT_SISTER 

The voice of a young woman.

Note
  • Agora recommends using this enumerator to process a female-sounding voice; otherwise, you may not hear the anticipated voice effect.
  • To achieve better audio effect quality, Agora recommends calling setAudioProfile and setting the profile parameter to AUDIO_PROFILE_MUSIC_HIGH_QUALITY(4) or AUDIO_PROFILE_MUSIC_HIGH_QUALITY_STEREO(5) before setting this enumerator.
VOICE_CHANGER_EFFECT_GIRL 

The voice of a girl.

Note
  • Agora recommends using this enumerator to process a female-sounding voice; otherwise, you may not hear the anticipated voice effect.
  • To achieve better audio effect quality, Agora recommends calling setAudioProfile and setting the profile parameter to AUDIO_PROFILE_MUSIC_HIGH_QUALITY(4) or AUDIO_PROFILE_MUSIC_HIGH_QUALITY_STEREO(5) before setting this enumerator.
VOICE_CHANGER_EFFECT_PIGKING 

The voice of Pig King, a character in Journey to the West who has a voice like a growling bear.

Note
To achieve better audio effect quality, Agora recommends calling setAudioProfile and setting the profile parameter to AUDIO_PROFILE_MUSIC_HIGH_QUALITY(4) or AUDIO_PROFILE_MUSIC_HIGH_QUALITY_STEREO(5) before setting this enumerator.
VOICE_CHANGER_EFFECT_HULK 

The voice of Hulk.

Note
To achieve better audio effect quality, Agora recommends calling setAudioProfile and setting the profile parameter to AUDIO_PROFILE_MUSIC_HIGH_QUALITY(4) or AUDIO_PROFILE_MUSIC_HIGH_QUALITY_STEREO(5) before setting this enumerator.
STYLE_TRANSFORMATION_RNB 

An audio effect typical of R&B music.

Note
To achieve better audio effect quality, Agora recommends calling setAudioProfile and setting the profile parameter to AUDIO_PROFILE_MUSIC_HIGH_QUALITY(4) or AUDIO_PROFILE_MUSIC_HIGH_QUALITY_STEREO(5) before setting this enumerator.
STYLE_TRANSFORMATION_POPULAR 

An audio effect typical of popular music.

Note
To achieve better audio effect quality, Agora recommends calling setAudioProfile and setting the profile parameter to AUDIO_PROFILE_MUSIC_HIGH_QUALITY(4) or AUDIO_PROFILE_MUSIC_HIGH_QUALITY_STEREO(5) before setting this enumerator.
PITCH_CORRECTION 

A pitch correction effect that corrects the user's pitch based on the pitch of the natural C major scale. To change the basic mode and tonic pitch, call setAudioEffectParameters after this method.

Note
To achieve better audio effect quality, Agora recommends calling setAudioProfile and setting the profile parameter to AUDIO_PROFILE_MUSIC_HIGH_QUALITY(4) or AUDIO_PROFILE_MUSIC_HIGH_QUALITY_STEREO(5) before setting this enumerator.

◆ VOICE_CONVERSION_PRESET

The options for SDK preset voice conversion.

Enumerator
VOICE_CONVERSION_OFF 

Turn off voice conversion and use the original voice.

VOICE_CHANGER_NEUTRAL 

A neutral voice.

VOICE_CHANGER_SWEET 

A sweet voice.

VOICE_CHANGER_SOLID 

A solid voice.

VOICE_CHANGER_BASS 

A bass voice.

◆ AUDIO_REVERB_PRESET

Enumerator
AUDIO_REVERB_OFF 

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

AUDIO_REVERB_FX_KTV 

0x02010100: KTV venue (enhanced).

AUDIO_REVERB_FX_VOCAL_CONCERT 

0x02010200: Concert hall (enhanced).

AUDIO_REVERB_FX_UNCLE 

0x02020100: Uncle's voice.

AUDIO_REVERB_FX_SISTER 

0x02020400: Little sister's voice.

AUDIO_REVERB_FX_STUDIO 

0x02010300: Recording studio (enhanced).

AUDIO_REVERB_FX_POPULAR 

0x02030200: Pop music (enhanced).

AUDIO_REVERB_FX_RNB 

0x02030100: R&B music (enhanced).

AUDIO_REVERB_FX_PHONOGRAPH 

0x02010400: Vintage phonograph.

◆ AUDIO_RECORDING_QUALITY_TYPE

The audio recording quality type.

Enumerator
AUDIO_RECORDING_QUALITY_LOW 

0: Low audio recording quality.

AUDIO_RECORDING_QUALITY_MEDIUM 

1: Medium audio recording quality.

AUDIO_RECORDING_QUALITY_HIGH 

2: High audio recording quality.

◆ AUDIO_FILE_RECORDING_TYPE

The audio file record type.

Enumerator
AUDIO_FILE_RECORDING_MIC 

1: mic audio file recording.

AUDIO_FILE_RECORDING_PLAYBACK 

2: playback audio file recording.

AUDIO_FILE_RECORDING_MIXED 

3: mixed audio file recording, include mic and playback.

◆ AUDIO_ENCODED_FRAME_OBSERVER_POSITION

audio encoded frame observer position.

Enumerator
AUDIO_ENCODED_FRAME_OBSERVER_POSITION_RECORD 

1: mic

AUDIO_ENCODED_FRAME_OBSERVER_POSITION_PLAYBACK 

2: playback audio file recording.

AUDIO_ENCODED_FRAME_OBSERVER_POSITION_MIXED 

3: mixed audio file recording, include mic and playback.

◆ VOICE_CHANGER_PRESET

Preset local voice changer options.

Enumerator
VOICE_CHANGER_OFF 

0: Turn off the local voice changer, that is, to use the original voice.

VOICE_CHANGER_OLDMAN 

0x02020200: The voice of an old man.

VOICE_CHANGER_BABYBOY 

0x02020300: The voice of a little boy.

VOICE_CHANGER_BABYGIRL 

0x02020500: The voice of a little girl.

VOICE_CHANGER_ZHUBAJIE 

0x02020600: The voice of Zhu Bajie, a character in Journey to the West who has a voice like that of a growling bear.

VOICE_CHANGER_ETHEREAL 

0x02010700: The ethereal voice.

VOICE_CHANGER_HULK 

0x02020700: The voice of Hulk.

VOICE_BEAUTY_VIGOROUS 

0x01030100: A more vigorous voice.

VOICE_BEAUTY_DEEP 

0x01030200: A deeper voice.

VOICE_BEAUTY_MELLOW 

0x01030300: A mellower voice.

VOICE_BEAUTY_FALSETTO 

0x01030400: Falsetto.

VOICE_BEAUTY_FULL 

0x01030500: A fuller voice.

VOICE_BEAUTY_CLEAR 

0x01030600: A clearer voice.

VOICE_BEAUTY_RESOUNDING 

0x01030700: A more resounding voice.

VOICE_BEAUTY_RINGING 

0x01030800: A more ringing voice.

VOICE_BEAUTY_SPACIAL 

0x02010600: A more spatially resonant voice.

GENERAL_BEAUTY_VOICE_MALE 

0x01010100: (For male only) A more magnetic voice. Do not use it when the speaker is a female; otherwise, voice distortion occurs.

GENERAL_BEAUTY_VOICE_FEMALE_FRESH 

0x01010200: (For female only) A fresher voice. Do not use it when the speaker is a male; otherwise, voice distortion occurs.

GENERAL_BEAUTY_VOICE_FEMALE_VITALITY 

0x01010300: (For female only) A more vital voice. Do not use it when the speaker is a male; otherwise, voice distortion occurs.

◆ AREA_CODE

IP areas.

Enumerator
AREA_CODE_CN 

Mainland China.

AREA_CODE_NA 

North America.

AREA_CODE_EU 

Europe.

AREA_CODE_AS 

Asia, excluding Mainland China.

AREA_CODE_JP 

Japan.

AREA_CODE_IN 

India.

AREA_CODE_GLOB 

(Default) Global.

◆ AREA_CODE_EX

Enumerator
AREA_CODE_OC 

Oceania

AREA_CODE_SA 

South-American

AREA_CODE_AF 

Africa

AREA_CODE_OVS 

The global area (except China)

◆ 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: Fails to send the relay request.

RELAY_ERROR_FAILED_JOIN_DEST 

5: Fails to accept the relay request.

RELAY_ERROR_FAILED_PACKET_RECEIVED_FROM_SRC 

6: The server fails to receive the media stream.

RELAY_ERROR_FAILED_PACKET_SENT_TO_DEST 

7: The server fails to send the media stream.

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

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

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.

◆ ENCRYPTION_MODE

Encryption mode.

Enumerator
SM4_128_ECB 

4: 128-bit SM4 encryption, ECB mode.

AES_128_GCM2 

7: (Default) 128-bit AES encryption, GCM mode, with KDF salt.

AES_256_GCM2 

8: 256-bit AES encryption, GCM mode, with KDF salt.

MODE_END 

Enumerator boundary.

◆ ENCRYPTION_ERROR_TYPE

Encryption error type.

Enumerator
ENCRYPTION_ERROR_INTERNAL_FAILURE 
ENCRYPTION_ERROR_DECRYPTION_FAILURE 
ENCRYPTION_ERROR_ENCRYPTION_FAILURE 

◆ PERMISSION_TYPE

Type of permission.

Enumerator
RECORD_AUDIO 
CAMERA 

◆ MAX_USER_ACCOUNT_LENGTH_TYPE

Maximum length of user account.

Enumerator
MAX_USER_ACCOUNT_LENGTH 

The maximum length of user account is 255 bytes.

◆ STREAM_SUBSCRIBE_STATE

The stream subscribe state.

Enumerator
SUB_STATE_IDLE 
SUB_STATE_NO_SUBSCRIBED 
SUB_STATE_SUBSCRIBING 
SUB_STATE_SUBSCRIBED 

◆ STREAM_PUBLISH_STATE

The stream publish state.

Enumerator
PUB_STATE_IDLE 
PUB_STATE_NO_PUBLISHED 
PUB_STATE_PUBLISHING 
PUB_STATE_PUBLISHED 

◆ EAR_MONITORING_FILTER_TYPE

Type of ear monitoring filter.

Enumerator
EAR_MONITORING_FILTER_NONE 

1: Do not add an audio filter to the in-ear monitor.

EAR_MONITORING_FILTER_BUILT_IN_AUDIO_FILTERS 

2: Enable audio filters to the in-ear monitor.

EAR_MONITORING_FILTER_NOISE_SUPPRESSION 

4: Enable noise suppression to the in-ear monitor.

◆ AudioRoute

Audio routes.

Enumerator
ROUTE_DEFAULT 

-1: The default audio route.

ROUTE_HEADSET 

The headset.

ROUTE_EARPIECE 

The earpiece.

ROUTE_HEADSETNOMIC 

The headset with no microphone.

ROUTE_SPEAKERPHONE 

The speakerphone.

ROUTE_LOUDSPEAKER 

The loudspeaker.

ROUTE_HEADSETBLUETOOTH 

The Bluetooth headset.

ROUTE_HDMI 

The HDMI

ROUTE_USB 

The USB

◆ BYTES_PER_SAMPLE

Bytes per sample

Enumerator
TWO_BYTES_PER_SAMPLE 

two bytes per sample

◆ RAW_AUDIO_FRAME_OP_MODE_TYPE

Enumerator
RAW_AUDIO_FRAME_OP_MODE_READ_ONLY 

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

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 do some voice pre-processing such as a voice change.

◆ STREAMING_SRC_ERR

The error code of streaming source.

Enumerator
STREAMING_SRC_ERR_NONE 

no error

STREAMING_SRC_ERR_UNKNOWN 

unknown error

STREAMING_SRC_ERR_INVALID_PARAM 

invalid parameter

STREAMING_SRC_ERR_BAD_STATE 

bad status

STREAMING_SRC_ERR_NO_MEM 

not enough memory

STREAMING_SRC_ERR_BUFFER_OVERFLOW 

buffer overflow

STREAMING_SRC_ERR_BUFFER_UNDERFLOW 

buffer underflow

STREAMING_SRC_ERR_NOT_FOUND 

buffer underflow

STREAMING_SRC_ERR_TIMEOUT 

buffer underflow

STREAMING_SRC_ERR_EXPIRED 

expired

STREAMING_SRC_ERR_UNSUPPORTED 

unsupported

STREAMING_SRC_ERR_NOT_EXIST 

component not exist

STREAMING_SRC_ERR_EXIST 

component already exist

STREAMING_SRC_ERR_OPEN 

fail to IO open

STREAMING_SRC_ERR_CLOSE 

fail to IO close

STREAMING_SRC_ERR_READ 

fail to IO read

STREAMING_SRC_ERR_WRITE 

fail to IO write

STREAMING_SRC_ERR_SEEK 

fail to IO seek

STREAMING_SRC_ERR_EOF 

reach to IO EOF, can do nothing

STREAMING_SRC_ERR_CODECOPEN 

fail to codec open

STREAMING_SRC_ERR_CODECCLOSE 

fail to codec close

STREAMING_SRC_ERR_CODECPROC 

fail to codec process

◆ STREAMING_SRC_STATE

The state machine of Streaming Source.

Enumerator
STREAMING_SRC_STATE_CLOSED 

streaming source still closed, can do nothing

STREAMING_SRC_STATE_OPENING 

after call open() method and start parsing streaming source

STREAMING_SRC_STATE_IDLE 

streaming source is ready waiting for play

STREAMING_SRC_STATE_PLAYING 

after call play() method, playing & pushing the AV data

STREAMING_SRC_STATE_SEEKING 

after call seek() method, start seeking poisition

STREAMING_SRC_STATE_EOF 

The position is located at end, can NOT playing.

STREAMING_SRC_STATE_ERROR 

The error status and can do nothing except close.

◆ MEDIA_DEVICE_TYPE

The media device types.

Enumerator
UNKNOWN_AUDIO_DEVICE 

-1: Unknown device type.

AUDIO_PLAYOUT_DEVICE 

0: The audio playback device.

AUDIO_RECORDING_DEVICE 

1: The audio recording device.

VIDEO_RENDER_DEVICE 

2: The video renderer.

VIDEO_CAPTURE_DEVICE 

3: The video capturer.

AUDIO_APPLICATION_PLAYOUT_DEVICE 

4: The audio playback device of the app.

◆ 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_STATE_COMPLETED 

715: The audio mixing file is played once.

AUDIO_MIXING_STATE_ALL_LOOPS_COMPLETED 

716: The audio mixing file is all played out.

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

◆ INJECT_STREAM_STATUS

The status of importing an external video stream in a live broadcast.

Enumerator
INJECT_STREAM_STATUS_START_SUCCESS 

0: The media stream is injected successfully.

INJECT_STREAM_STATUS_START_ALREADY_EXISTS 

1: The media stream already exists.

INJECT_STREAM_STATUS_START_UNAUTHORIZED 

2: The media stream injection is unauthorized.

INJECT_STREAM_STATUS_START_TIMEDOUT 

3: Timeout occurs when injecting a media stream.

INJECT_STREAM_STATUS_START_FAILED 

4: The media stream injection fails.

INJECT_STREAM_STATUS_STOP_SUCCESS 

5: The media stream stops being injected successfully.

INJECT_STREAM_STATUS_STOP_NOT_FOUND 

6: The media stream injection that you want to stop is found.

INJECT_STREAM_STATUS_STOP_UNAUTHORIZED 

7: You are not authorized to stop the media stream injection.

INJECT_STREAM_STATUS_STOP_TIMEDOUT 

8: Timeout occurs when you stop injecting the media stream.

INJECT_STREAM_STATUS_STOP_FAILED 

9: Stopping injecting the media stream fails.

INJECT_STREAM_STATUS_BROKEN 

10: The media stream is broken.

◆ AUDIO_EQUALIZATION_BAND_FREQUENCY

The audio equalization band frequency.

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

The audio reverberation type.

Enumerator
AUDIO_REVERB_DRY_LEVEL 

0: (-20 to 10 dB), the level of the dry signal.

AUDIO_REVERB_WET_LEVEL 

1: (-20 to 10 dB), the level of the early reflection signal (wet signal).

AUDIO_REVERB_ROOM_SIZE 

2: (0 to 100 dB), the room size of the reflection.

AUDIO_REVERB_WET_DELAY 

3: (0 to 200 ms), the length of the initial delay of the wet signal in ms.

AUDIO_REVERB_STRENGTH 

4: (0 to 100), the strength of the late reverberation.

◆ STREAM_FALLBACK_OPTIONS

Enumerator
STREAM_FALLBACK_OPTION_DISABLED 

0: (Default) No fallback operation for the stream when the network condition is poor. The stream quality cannot be guaranteed.

STREAM_FALLBACK_OPTION_VIDEO_STREAM_LOW 

1: Under poor network conditions, the SDK will send or receive agora::rtc::VIDEO_STREAM_LOW. You can only set this option in RtcEngineParameters::setRemoteSubscribeFallbackOption. Nothing happens when you set this in RtcEngineParameters::setLocalPublishFallbackOption.

STREAM_FALLBACK_OPTION_AUDIO_ONLY 

2: Under poor network conditions, the SDK may receive agora::rtc::VIDEO_STREAM_LOW first, but if the network still does not allow displaying the video, the SDK will send or receive audio only.

◆ PRIORITY_TYPE

Enumerator
PRIORITY_HIGH 

50: High priority.

PRIORITY_NORMAL 

100: (Default) normal priority.

◆ RTMP_STREAM_LIFE_CYCLE_TYPE

The video stream lifecycle of CDN Live.

Enumerator
RTMP_STREAM_LIFE_CYCLE_BIND2CHANNEL 

Bound to the channel lifecycle.

RTMP_STREAM_LIFE_CYCLE_BIND2OWNER 

Bound to the owner identity of the RTMP stream.

◆ CAMERA_DIRECTION

Enumerator
CAMERA_REAR 

The rear camera.

CAMERA_FRONT 

The front camera.

◆ DIRECT_CDN_STREAMING_ERROR

Enumerator
DIRECT_CDN_STREAMING_ERROR_OK 
DIRECT_CDN_STREAMING_ERROR_FAILED 
DIRECT_CDN_STREAMING_ERROR_AUDIO_PUBLICATION 
DIRECT_CDN_STREAMING_ERROR_VIDEO_PUBLICATION 
DIRECT_CDN_STREAMING_ERROR_NET_CONNECT 

◆ DIRECT_CDN_STREAMING_STATE

Enumerator
DIRECT_CDN_STREAMING_STATE_IDLE 
DIRECT_CDN_STREAMING_STATE_STARTED 
DIRECT_CDN_STREAMING_STATE_STOPPED 
DIRECT_CDN_STREAMING_STATE_FAILED 

◆ QUALITY_REPORT_FORMAT_TYPE

Enumerator
QUALITY_REPORT_JSON 

0: The quality report in JSON format,

QUALITY_REPORT_HTML 

1: The quality report in HTML format.

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

◆ VIDEO_PROFILE_TYPE

Enumerator
VIDEO_PROFILE_LANDSCAPE_120P 

0: 160 x 120 @ 15 fps

VIDEO_PROFILE_LANDSCAPE_120P_3 

2: 120 x 120 @ 15 fps

VIDEO_PROFILE_LANDSCAPE_180P 

10: 320 x 180 @ 15 fps

VIDEO_PROFILE_LANDSCAPE_180P_3 

12: 180 x 180 @ 15 fps

VIDEO_PROFILE_LANDSCAPE_180P_4 

13: 240 x 180 @ 15 fps

VIDEO_PROFILE_LANDSCAPE_240P 

20: 320 x 240 @ 15 fps

VIDEO_PROFILE_LANDSCAPE_240P_3 

22: 240 x 240 @ 15 fps

VIDEO_PROFILE_LANDSCAPE_240P_4 

23: 424 x 240 @ 15 fps

VIDEO_PROFILE_LANDSCAPE_360P 

30: 640 x 360 @ 15 fps

VIDEO_PROFILE_LANDSCAPE_360P_3 

32: 360 x 360 @ 15 fps

VIDEO_PROFILE_LANDSCAPE_360P_4 

33: 640 x 360 @ 30 fps

VIDEO_PROFILE_LANDSCAPE_360P_6 

35: 360 x 360 @ 30 fps

VIDEO_PROFILE_LANDSCAPE_360P_7 

36: 480 x 360 @ 15 fps

VIDEO_PROFILE_LANDSCAPE_360P_8 

37: 480 x 360 @ 30 fps

VIDEO_PROFILE_LANDSCAPE_360P_9 

38: 640 x 360 @ 15 fps

VIDEO_PROFILE_LANDSCAPE_360P_10 

39: 640 x 360 @ 24 fps

VIDEO_PROFILE_LANDSCAPE_360P_11 

100: 640 x 360 @ 24 fps

VIDEO_PROFILE_LANDSCAPE_480P 

40: 640 x 480 @ 15 fps

VIDEO_PROFILE_LANDSCAPE_480P_3 

42: 480 x 480 @ 15 fps

VIDEO_PROFILE_LANDSCAPE_480P_4 

43: 640 x 480 @ 30 fps

VIDEO_PROFILE_LANDSCAPE_480P_6 

45: 480 x 480 @ 30 fps

VIDEO_PROFILE_LANDSCAPE_480P_8 

47: 848 x 480 @ 15 fps

VIDEO_PROFILE_LANDSCAPE_480P_9 

48: 848 x 480 @ 30 fps

VIDEO_PROFILE_LANDSCAPE_480P_10 

49: 640 x 480 @ 10 fps

VIDEO_PROFILE_LANDSCAPE_720P 

50: 1280 x 720 @ 15 fps

VIDEO_PROFILE_LANDSCAPE_720P_3 

52: 1280 x 720 @ 30 fps

VIDEO_PROFILE_LANDSCAPE_720P_5 

54: 960 x 720 @ 15 fps

VIDEO_PROFILE_LANDSCAPE_720P_6 

55: 960 x 720 @ 30 fps

VIDEO_PROFILE_LANDSCAPE_1080P 

60: 1920 x 1080 @ 15 fps

VIDEO_PROFILE_LANDSCAPE_1080P_3 

62: 1920 x 1080 @ 30 fps

VIDEO_PROFILE_LANDSCAPE_1080P_5 

64: 1920 x 1080 @ 60 fps

VIDEO_PROFILE_LANDSCAPE_1440P 

66: 2560 x 1440 @ 30 fps

VIDEO_PROFILE_LANDSCAPE_1440P_2 

67: 2560 x 1440 @ 60 fps

VIDEO_PROFILE_LANDSCAPE_4K 

70: 3840 x 2160 @ 30 fps

VIDEO_PROFILE_LANDSCAPE_4K_3 

72: 3840 x 2160 @ 60 fps

VIDEO_PROFILE_PORTRAIT_120P 

1000: 120 x 160 @ 15 fps

VIDEO_PROFILE_PORTRAIT_120P_3 

1002: 120 x 120 @ 15 fps

VIDEO_PROFILE_PORTRAIT_180P 

1010: 180 x 320 @ 15 fps

VIDEO_PROFILE_PORTRAIT_180P_3 

1012: 180 x 180 @ 15 fps

VIDEO_PROFILE_PORTRAIT_180P_4 

1013: 180 x 240 @ 15 fps

VIDEO_PROFILE_PORTRAIT_240P 

1020: 240 x 320 @ 15 fps

VIDEO_PROFILE_PORTRAIT_240P_3 

1022: 240 x 240 @ 15 fps

VIDEO_PROFILE_PORTRAIT_240P_4 

1023: 240 x 424 @ 15 fps

VIDEO_PROFILE_PORTRAIT_360P 

1030: 360 x 640 @ 15 fps

VIDEO_PROFILE_PORTRAIT_360P_3 

1032: 360 x 360 @ 15 fps

VIDEO_PROFILE_PORTRAIT_360P_4 

1033: 360 x 640 @ 30 fps

VIDEO_PROFILE_PORTRAIT_360P_6 

1035: 360 x 360 @ 30 fps

VIDEO_PROFILE_PORTRAIT_360P_7 

1036: 360 x 480 @ 15 fps

VIDEO_PROFILE_PORTRAIT_360P_8 

1037: 360 x 480 @ 30 fps

VIDEO_PROFILE_PORTRAIT_360P_9 

1038: 360 x 640 @ 15 fps

VIDEO_PROFILE_PORTRAIT_360P_10 

1039: 360 x 640 @ 24 fps

VIDEO_PROFILE_PORTRAIT_360P_11 

1100: 360 x 640 @ 24 fps

VIDEO_PROFILE_PORTRAIT_480P 

1040: 480 x 640 @ 15 fps

VIDEO_PROFILE_PORTRAIT_480P_3 

1042: 480 x 480 @ 15 fps

VIDEO_PROFILE_PORTRAIT_480P_4 

1043: 480 x 640 @ 30 fps

VIDEO_PROFILE_PORTRAIT_480P_6 

1045: 480 x 480 @ 30 fps

VIDEO_PROFILE_PORTRAIT_480P_8 

1047: 480 x 848 @ 15 fps

VIDEO_PROFILE_PORTRAIT_480P_9 

1048: 480 x 848 @ 30 fps

VIDEO_PROFILE_PORTRAIT_480P_10 

1049: 480 x 640 @ 10 fps

VIDEO_PROFILE_PORTRAIT_720P 

1050: 720 x 1280 @ 15 fps

VIDEO_PROFILE_PORTRAIT_720P_3 

1052: 720 x 1280 @ 30 fps

VIDEO_PROFILE_PORTRAIT_720P_5 

1054: 720 x 960 @ 15 fps

VIDEO_PROFILE_PORTRAIT_720P_6 

1055: 720 x 960 @ 30 fps

VIDEO_PROFILE_PORTRAIT_1080P 

1060: 1080 x 1920 @ 15 fps

VIDEO_PROFILE_PORTRAIT_1080P_3 

1062: 1080 x 1920 @ 30 fps

VIDEO_PROFILE_PORTRAIT_1080P_5 

1064: 1080 x 1920 @ 60 fps

VIDEO_PROFILE_PORTRAIT_1440P 

1066: 1440 x 2560 @ 30 fps

VIDEO_PROFILE_PORTRAIT_1440P_2 

1067: 1440 x 2560 @ 60 fps

VIDEO_PROFILE_PORTRAIT_4K 

1070: 2160 x 3840 @ 30 fps

VIDEO_PROFILE_PORTRAIT_4K_3 

1072: 2160 x 3840 @ 60 fps

VIDEO_PROFILE_DEFAULT 

Default 640 x 360 @ 15 fps

◆ INTERFACE_ID_EX_TYPE

Enumerator
AGORA_IID_RTC_ENGINE_EX 

◆ SCREEN_SHARING_MODE

Enumerator
SCREEN_SHARING_NORMAL 
SCREEN_SHARING_MOVIE 

◆ RecordingEventType

enum agora::rtc::RecordingEventType : unsigned
strong
Enumerator
RECORDING_EVENT_UNKNOWN 
RECORDING_EVENT_START 
RECORDING_EVENT_JOIN 
RECORDING_EVENT_LEAVE 
RECORDING_EVENT_END 

◆ RecordingEventKeyIndex

Enumerator
RECORDING_JOIN_EVT_START 
RECORDING_JOIN_EVT_MIXMODE 
RECORDING_JOIN_EVT_MIXEDVIDEOAUDIOMODE 
RECORDING_JOIN_EVT_MIXHIGH 
RECORDING_JOIN_EVT_MIXLOW 
RECORDING_JOIN_EVT_MIXFPS 
RECORDING_JOIN_EVT_MIXKBPS 
RECORDING_JOIN_EVT_MINUDPPORT 
RECORDING_JOIN_EVT_MAXUDPPORT 
RECORDING_JOIN_EVT_DECODEAUDIOTYPE 
RECORDING_JOIN_EVT_DECODEVIDEOTYPE 
RECORDING_JOIN_EVT_LIVEMODE 
RECORDING_JOIN_EVT_IDLE 
RECORDING_JOIN_EVT_AUDIOONLY 
RECORDING_JOIN_EVT_VIDEOONLY 
RECORDING_JOIN_EVT_SYSLOGFACILITY 
RECORDING_JOIN_EVT_STREAMTYPE 
RECORDING_JOIN_EVT_TRIGGERMODE 
RECORDING_JOIN_EVT_LANGUAGE 
RECORDING_JOIN_EVT_RESERVE1 
MAX_RECORDING_JOIN_EVT_RESERVE15 
RECORDING_JOIN_EVT_MAX 
RECORDING_LEAVE_EVT_START 
RECORDING_LEAVE_EVT_LEAVEPATHCODE 
RECORDING_LEAVE_EVT_RESERVE1 
RECORDING_LEAVE_EVT_RESERVE5 
RECORDING_LEAVE_EVT_MAX 

Function Documentation

◆ MinPositive()

template<typename T >
static T agora::rtc::MinPositive ( a,
b 
)
static

◆ decode_sei_layout()

AGORA_API bool AGORA_CALL agora::rtc::decode_sei_layout ( const void *  data,
unsigned  size,
layout_info layout 
)

Variable Documentation

◆ kAudioStreamTrackId

const char* agora::rtc::kAudioStreamTrackId = "audio_stream_track_id"
static

◆ kVideoMajorStreamTrackId

const char* agora::rtc::kVideoMajorStreamTrackId = "video_major_stream_track_id"
static

◆ kVideoMinorStreamTrackId

const char* agora::rtc::kVideoMinorStreamTrackId = "video_minor_stream_track_id"
static

◆ AUDIO_PIPELINE_POS_RECORD_ORIGIN

const std::string agora::rtc::AUDIO_PIPELINE_POS_RECORD_ORIGIN

◆ AUDIO_PIPELINE_POS_PRE_APM_PROC

const std::string agora::rtc::AUDIO_PIPELINE_POS_PRE_APM_PROC

◆ AUDIO_PIPELINE_POS_APM

const std::string agora::rtc::AUDIO_PIPELINE_POS_APM

◆ AUDIO_PIPELINE_POS_PRE_SEND_PROC

const std::string agora::rtc::AUDIO_PIPELINE_POS_PRE_SEND_PROC

◆ AUDIO_PIPELINE_POS_FILTER

const std::string agora::rtc::AUDIO_PIPELINE_POS_FILTER

◆ AUDIO_PIPELINE_POS_ENC

const std::string agora::rtc::AUDIO_PIPELINE_POS_ENC

◆ AUDIO_PIPELINE_POS_TX_MIXER

const std::string agora::rtc::AUDIO_PIPELINE_POS_TX_MIXER

◆ AUDIO_PIPELINE_POS_AT_RECORD

const std::string agora::rtc::AUDIO_PIPELINE_POS_AT_RECORD

◆ AUDIO_PIPELINE_POS_ATW_RECORD

const std::string agora::rtc::AUDIO_PIPELINE_POS_ATW_RECORD

◆ AUDIO_PIPELINE_POS_DEC

const std::string agora::rtc::AUDIO_PIPELINE_POS_DEC

◆ AUDIO_PIPELINE_POS_MIXED

const std::string agora::rtc::AUDIO_PIPELINE_POS_MIXED

◆ AUDIO_PIPELINE_POS_PLAY

const std::string agora::rtc::AUDIO_PIPELINE_POS_PLAY

◆ AUDIO_PIPELINE_POS_RX_MIXER

const std::string agora::rtc::AUDIO_PIPELINE_POS_RX_MIXER

◆ AUDIO_PIPELINE_POS_PLAYBACK_MIXER

const std::string agora::rtc::AUDIO_PIPELINE_POS_PLAYBACK_MIXER

◆ AUDIO_PIPELINE_POS_PCM_SOURCE_PLAYBAC_MIXER

const std::string agora::rtc::AUDIO_PIPELINE_POS_PCM_SOURCE_PLAYBAC_MIXER

◆ AUDIO_PIPELINE_POS_PRE_PLAY_PROC

const std::string agora::rtc::AUDIO_PIPELINE_POS_PRE_PLAY_PROC

◆ AUDIO_PIPELINE_POS_AT_PLAYOUT

const std::string agora::rtc::AUDIO_PIPELINE_POS_AT_PLAYOUT

◆ AUDIO_PIPELINE_POS_ATW_PLAYOUT

const std::string agora::rtc::AUDIO_PIPELINE_POS_ATW_PLAYOUT

◆ AUDIO_FRAME_DUMP_MIN_DURATION_MS

const int64_t agora::rtc::AUDIO_FRAME_DUMP_MIN_DURATION_MS = 0

◆ AUDIO_FRAME_DUMP_MAX_DURATION_MS

const int64_t agora::rtc::AUDIO_FRAME_DUMP_MAX_DURATION_MS = 150000

◆ kVideoEngineFlagHasIntraRequest

const uint8_t agora::rtc::kVideoEngineFlagHasIntraRequest = 0x10
static

◆ kVideoEngineFlagStdCodec

const uint8_t agora::rtc::kVideoEngineFlagStdCodec = 0x8
static

◆ kVideoEngineFlagNasa

const uint8_t agora::rtc::kVideoEngineFlagNasa = 0x40
static

◆ kVideoEngineFlagScalableDelta

const uint8_t agora::rtc::kVideoEngineFlagScalableDelta = 0x80
static

◆ kVideoEngineFlagMajorStreamOnly

const uint8_t agora::rtc::kVideoEngineFlagMajorStreamOnly = 0x01
static

◆ kAgoraHeaderLength

const uint8_t agora::rtc::kAgoraHeaderLength = 3
static

◆ kAgoraAudioExtendLength

const uint8_t agora::rtc::kAgoraAudioExtendLength = 5
static

◆ AUDIO_MEDIA_PACKET_PAYLOAD_TYPE

const uint8_t agora::rtc::AUDIO_MEDIA_PACKET_PAYLOAD_TYPE = 127
static

◆ BUILT_IN_ADAPTER

const char* const agora::rtc::BUILT_IN_ADAPTER = "built-in-adapter"
static

◆ BUILT_IN_MIRROR_FILTER

const char* const agora::rtc::BUILT_IN_MIRROR_FILTER = "built-in-mirror"
static

◆ BUILT_IN_WATERMARK_FILTER

const char* const agora::rtc::BUILT_IN_WATERMARK_FILTER = "built-in-watermarker"
static

◆ BUILT_IN_ROTATOR

const char* const agora::rtc::BUILT_IN_ROTATOR = "built-in-rotator"
static

◆ BUILT_IN_PREVIEW_TEE

const char* const agora::rtc::BUILT_IN_PREVIEW_TEE = "built-in-preview-tee"
static

◆ BUILT_IN_MAJOR_TEE

const char* const agora::rtc::BUILT_IN_MAJOR_TEE = "built-in-major-tee"
static

◆ BUILT_IN_MINOR_TEE

const char* const agora::rtc::BUILT_IN_MINOR_TEE = "built-in-minor-tee"
static

◆ BUILT_IN_MINOR_ADAPTER

const char* const agora::rtc::BUILT_IN_MINOR_ADAPTER = "built-in-minor-adapter"
static

◆ kAdmMaxDeviceNameSize

const int agora::rtc::kAdmMaxDeviceNameSize = 128
static

◆ kAdmMaxGuidSize

const int agora::rtc::kAdmMaxGuidSize = 128
static

◆ kIntervalInMillseconds

const int agora::rtc::kIntervalInMillseconds = 200
static

◆ kDeviceIdSize

const int agora::rtc::kDeviceIdSize = 128
static

◆ VideoFrameMetaDataType

OPTIONAL_ENUM_CLASS agora::rtc::VideoFrameMetaDataType
Initial value:
{
kAlphaChannel,
}

◆ STANDARD_BITRATE

const int agora::rtc::STANDARD_BITRATE = 0

(Recommended) 0: Standard bitrate mode.

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

-1: Compatible bitrate mode.

In this mode, 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

-1: (For future use) The default minimum bitrate.

◆ DEFAULT_MIN_BITRATE_EQUAL_TO_TARGET_BITRATE

const int agora::rtc::DEFAULT_MIN_BITRATE_EQUAL_TO_TARGET_BITRATE = -2

-2: (For future use) Set minimum bitrate the same as target bitrate.

◆ DEFAULT_CONNECTION_ID

const unsigned int agora::rtc::DEFAULT_CONNECTION_ID = 0
static

◆ DUMMY_CONNECTION_ID

const unsigned int agora::rtc::DUMMY_CONNECTION_ID = (std::numeric_limits<unsigned int>::max)()
static