9#ifndef __AGORA_RTC_API_H__
10#define __AGORA_RTC_API_H__
21#if defined(__BUILDING_AGORA_SDK__)
22#define __agora_api__ __declspec(dllexport)
24#define __agora_api__ __declspec(dllimport)
30#define AGORA_RTC_CHANNEL_NAME_MAX_LEN (64)
31#define AGORA_RTC_USER_ID_MAX_LEN (255)
32#define AGORA_RTC_PRODUCT_ID_MAX_LEN (63)
33#define AGORA_RTM_UID_MAX_LEN 64
34#define AGORA_RTM_DATA_MAX_LEN (32 * 1024)
35#define AGORA_CREDENTIAL_MAX_LEN 256
36#define AGORA_CERTIFICATE_MAX_LEN 1024
37#define AGORA_LICENSE_VALUE_LEN 32
536 int (*log_printf)(
const char *fmt, ...);
749#define CONNECTION_ID_ALL ((connection_id_t)0)
753#define CONNECTION_ID_INVALID ((connection_id_t)-1)
776 void (*on_join_channel_success)(
connection_id_t conn_id, uint32_t uid,
int elapsed_ms);
791 void (*on_rejoin_channel_success)(
connection_id_t conn_id, uint32_t uid,
int elapsed_ms);
836#ifndef CONFIG_AUDIO_ONLY
857 void (*on_audio_data)(
connection_id_t conn_id, uint32_t uid, uint16_t sent_ts,
const void *data_ptr,
size_t data_len,
868 void (*on_mixed_audio_data)(
connection_id_t conn_id,
const void *data_ptr,
size_t data_len,
871#ifndef CONFIG_AUDIO_ONLY
882 void (*on_video_data)(
connection_id_t conn_id, uint32_t uid, uint16_t sent_ts,
const void *data_ptr,
size_t data_len,
904#ifdef CONFIG_RTC_STRING_UID
917 void (*on_local_user_registered)(
const char *uname, uint32_t uid);
931 void (*on_remote_user_registered)(
const char *uname, uint32_t uid);
952 void (*on_media_ctrl_receive)(
connection_id_t conn_id, uint32_t uid,
const void *payload,
size_t length);
1011 int credential_len);
1030extern __agora_api__ int agora_rtc_init(const char *app_id, const agora_rtc_event_handler_t *event_handler,
1171#ifndef CONFIG_AUDIO_ONLY
1201#ifndef CONFIG_AUDIO_ONLY
1249#ifndef CONFIG_AUDIO_ONLY
1278 uint32_t start_bps);
1282#ifdef CONFIG_RTC_PROXY
1326 const void *payload,
size_t length);
1383 void (*on_rtm_data)(
const char *rtm_uid,
const void *msg,
size_t msg_len);
__agora_api__ int agora_rtc_send_video_data(connection_id_t conn_id, const void *data_ptr, size_t data_len, video_frame_info_t *info_ptr)
__agora_api__ int agora_rtc_fini(void)
__agora_api__ int agora_rtc_send_audio_data(connection_id_t conn_id, const void *data_ptr, size_t data_len, audio_frame_info_t *info_ptr)
cloud_proxy_type_e
Definition: agora_rtc_api.h:702
@ CLOUD_PROXY_AUTO
Definition: agora_rtc_api.h:718
@ CLOUD_PROXY_NONE
Definition: agora_rtc_api.h:706
@ CLOUD_PROXY_TCP
Definition: agora_rtc_api.h:714
@ CLOUD_PROXY_UDP
Definition: agora_rtc_api.h:710
area_code_e
Definition: agora_rtc_api.h:444
@ AREA_CODE_JP
Definition: agora_rtc_api.h:468
@ AREA_CODE_GLOB
Definition: agora_rtc_api.h:496
@ AREA_CODE_EU
Definition: agora_rtc_api.h:460
@ AREA_CODE_CN
Definition: agora_rtc_api.h:452
@ AREA_CODE_KR
Definition: agora_rtc_api.h:488
@ AREA_CODE_IN
Definition: agora_rtc_api.h:472
@ AREA_CODE_AS
Definition: agora_rtc_api.h:464
@ AREA_CODE_SA
Definition: agora_rtc_api.h:480
@ AREA_CODE_OVS
Definition: agora_rtc_api.h:492
@ AREA_CODE_OC
Definition: agora_rtc_api.h:476
@ AREA_CODE_NA
Definition: agora_rtc_api.h:456
@ AREA_CODE_AF
Definition: agora_rtc_api.h:484
@ AREA_CODE_DEFAULT
Definition: agora_rtc_api.h:448
video_data_type_e
Definition: agora_rtc_api.h:183
@ VIDEO_DATA_TYPE_YUV420
Definition: agora_rtc_api.h:187
@ VIDEO_DATA_TYPE_H264
Definition: agora_rtc_api.h:191
@ VIDEO_DATA_TYPE_H265
Definition: agora_rtc_api.h:195
@ VIDEO_DATA_TYPE_GENERIC_JPEG
Definition: agora_rtc_api.h:203
@ VIDEO_DATA_TYPE_GENERIC
Definition: agora_rtc_api.h:199
__agora_api__ int agora_rtc_mute_local_audio(connection_id_t conn_id, bool mute)
audio_codec_type_e
Definition: agora_rtc_api.h:325
@ AUDIO_CODEC_TYPE_G722
Definition: agora_rtc_api.h:337
@ AUDIO_CODEC_TYPE_OPUS
Definition: agora_rtc_api.h:333
@ AUDIO_CODEC_TYPE_G711U
Definition: agora_rtc_api.h:345
@ AUDIO_CODEC_DISABLED
Definition: agora_rtc_api.h:329
@ AUDIO_CODEC_TYPE_G711A
Definition: agora_rtc_api.h:341
#define AGORA_RTC_PRODUCT_ID_MAX_LEN
Definition: agora_rtc_api.h:32
__agora_api__ int agora_rtc_config_log(int size_per_file, int max_file_count)
network_event_type_e
Definition: agora_rtc_api.h:724
@ NETWORK_EVENT_DOWN
Definition: agora_rtc_api.h:728
@ NETWORK_EVENT_UP
Definition: agora_rtc_api.h:732
@ NETWORK_EVENT_CHANGE
Definition: agora_rtc_api.h:736
__agora_api__ int agora_rtc_mute_local_video(connection_id_t conn_id, bool mute)
__agora_api__ const char * agora_rtc_err_2_str(int err)
__agora_api__ int agora_rtc_set_cloud_proxy(cloud_proxy_type_e type)
__agora_api__ int agora_rtc_login_rtm(const char *rtm_uid, const char *rtm_token, const agora_rtm_handler_t *handler)
audio_data_type_e
Definition: agora_rtc_api.h:351
@ AUDIO_DATA_TYPE_OPUS
Definition: agora_rtc_api.h:355
@ AUDIO_DATA_TYPE_PCMA
Definition: agora_rtc_api.h:363
@ AUDIO_DATA_TYPE_GENERIC
Definition: agora_rtc_api.h:387
@ AUDIO_DATA_TYPE_PCM
Definition: agora_rtc_api.h:383
@ AUDIO_DATA_TYPE_HEAAC
Definition: agora_rtc_api.h:379
@ AUDIO_DATA_TYPE_G722
Definition: agora_rtc_api.h:371
@ AUDIO_DATA_TYPE_PCMU
Definition: agora_rtc_api.h:367
@ AUDIO_DATA_TYPE_AACLC
Definition: agora_rtc_api.h:375
@ AUDIO_DATA_TYPE_OPUSFB
Definition: agora_rtc_api.h:359
video_frame_type_e
Definition: agora_rtc_api.h:209
@ VIDEO_FRAME_KEY
Definition: agora_rtc_api.h:218
@ VIDEO_FRAME_AUTO_DETECT
Definition: agora_rtc_api.h:214
@ VIDEO_FRAME_DELTA
Definition: agora_rtc_api.h:222
license_err_reason_e
Definition: agora_rtc_api.h:139
@ ERR_LICENSE_DIFF_DEVICES
Definition: agora_rtc_api.h:159
@ ERR_LICENSE_EXPIRE
Definition: agora_rtc_api.h:147
@ ERR_LICENSE_INVALID
Definition: agora_rtc_api.h:143
@ ERR_LICENSE_INTERNAL
Definition: agora_rtc_api.h:163
@ ERR_LICENSE_MINUTES_EXCEED
Definition: agora_rtc_api.h:151
@ ERR_LICENSE_LIMITED_PERIOD
Definition: agora_rtc_api.h:155
video_stream_type_e
Definition: agora_rtc_api.h:262
@ VIDEO_STREAM_HIGH
Definition: agora_rtc_api.h:266
@ VIDEO_STREAM_LOW
Definition: agora_rtc_api.h:270
__agora_api__ int agora_rtc_set_log_level(rtc_log_level_e level)
rtm_err_code_e
Definition: agora_rtc_api.h:1350
@ ERR_RTM_INVALID_RTM_UID
Definition: agora_rtc_api.h:1358
@ ERR_RTM_TOKEN_EXPIRED
Definition: agora_rtc_api.h:1368
@ ERR_RTM_LOGIN_INVALID_TOKEN
Definition: agora_rtc_api.h:1360
@ ERR_RTM_INVALID_APP_ID
Definition: agora_rtc_api.h:1364
@ ERR_RTM_INVALID_TOKEN
Definition: agora_rtc_api.h:1370
@ ERR_RTM_LOGIN_REJECTED
Definition: agora_rtc_api.h:1356
@ ERR_RTM_FAILED
Definition: agora_rtc_api.h:1354
@ WARN_RTM_LOOKUP_CHANNEL_REJECTED
Definition: agora_rtc_api.h:1366
@ ERR_RTM_LOGIN_NOT_AUTHORIZED
Definition: agora_rtc_api.h:1362
@ ERR_RTM_OK
Definition: agora_rtc_api.h:1352
#define AGORA_LICENSE_VALUE_LEN
Definition: agora_rtc_api.h:37
__agora_api__ int agora_rtc_join_channel(connection_id_t conn_id, const char *channel_name, uint32_t uid, const char *token, rtc_channel_options_t *options)
__agora_api__ int agora_rtc_send_rtm_data(const char *rtm_uid, uint32_t msg_id, const void *msg, size_t msg_len)
__agora_api__ int agora_rtc_license_gen_credential(char *credential, unsigned int *credential_len)
__agora_api__ int agora_rtc_request_video_key_frame(connection_id_t conn_id, uint32_t remote_uid, video_stream_type_e stream_type)
__agora_api__ int agora_rtc_renew_token(connection_id_t conn_id, const char *token)
__agora_api__ int agora_rtc_mute_remote_video(connection_id_t conn_id, uint32_t remote_uid, bool mute)
#define AGORA_RTC_CHANNEL_NAME_MAX_LEN
Definition: agora_rtc_api.h:30
__agora_api__ int agora_rtc_mute_remote_audio(connection_id_t conn_id, uint32_t remote_uid, bool mute)
__agora_api__ int agora_rtc_license_verify(const char *certificate, int certificate_len, const char *credential, int credential_len)
__agora_api__ int agora_rtc_leave_channel(connection_id_t conn_id)
__agora_api__ int agora_rtc_notify_network_event(network_event_type_e event)
__agora_api__ int agora_rtc_get_connection_info(connection_id_t conn_id, connection_info_t *conn_info)
获取 Connection 信息。
user_offline_reason_e
Definition: agora_rtc_api.h:169
@ USER_OFFLINE_DROPPED
Definition: agora_rtc_api.h:177
@ USER_OFFLINE_QUIT
Definition: agora_rtc_api.h:173
rtm_event_type_e
Definition: agora_rtc_api.h:1335
@ RTM_EVENT_TYPE_KICKOFF
Definition: agora_rtc_api.h:1343
@ RTM_EVENT_TYPE_EXIT
Definition: agora_rtc_api.h:1347
@ RTM_EVENT_TYPE_LOGIN
Definition: agora_rtc_api.h:1339
__agora_api__ int agora_rtc_logout_rtm(void)
video_orientation_e
Definition: agora_rtc_api.h:276
@ VIDEO_ORIENTATION_180
Definition: agora_rtc_api.h:288
@ VIDEO_ORIENTATION_0
Definition: agora_rtc_api.h:280
@ VIDEO_ORIENTATION_90
Definition: agora_rtc_api.h:284
@ VIDEO_ORIENTATION_270
Definition: agora_rtc_api.h:292
rtc_log_level_e
Definition: agora_rtc_api.h:403
@ RTC_LOG_DEFAULT
Definition: agora_rtc_api.h:407
@ RTC_LOG_ALERT
Definition: agora_rtc_api.h:415
@ RTC_LOG_WARNING
Definition: agora_rtc_api.h:427
@ RTC_LOG_EMERG
Definition: agora_rtc_api.h:411
@ RTC_LOG_DEBUG
Definition: agora_rtc_api.h:439
@ RTC_LOG_ERROR
Definition: agora_rtc_api.h:423
@ RTC_LOG_INFO
Definition: agora_rtc_api.h:435
@ RTC_LOG_NOTICE
Definition: agora_rtc_api.h:431
@ RTC_LOG_CRIT
Definition: agora_rtc_api.h:419
__agora_api__ int agora_rtc_destroy_connection(connection_id_t conn_id)
销毁 Connection。
const char * agora_rtc_get_version(void)
#define __agora_api__
Definition: agora_rtc_api.h:27
uint32_t connection_id_t
Definition: agora_rtc_api.h:743
__agora_api__ int agora_rtc_create_connection(connection_id_t *conn_id)
__agora_api__ int agora_rtc_set_params(const char *params)
__agora_api__ int agora_rtc_set_bwe_param(connection_id_t conn_id, uint32_t min_bps, uint32_t max_bps, uint32_t start_bps)
video_frame_rate_e
Definition: agora_rtc_api.h:228
@ VIDEO_FRAME_RATE_FPS_24
Definition: agora_rtc_api.h:248
@ VIDEO_FRAME_RATE_FPS_10
Definition: agora_rtc_api.h:240
@ VIDEO_FRAME_RATE_FPS_15
Definition: agora_rtc_api.h:244
@ VIDEO_FRAME_RATE_FPS_7
Definition: agora_rtc_api.h:236
@ VIDEO_FRAME_RATE_FPS_30
Definition: agora_rtc_api.h:252
@ VIDEO_FRAME_RATE_FPS_60
Definition: agora_rtc_api.h:256
@ VIDEO_FRAME_RATE_FPS_1
Definition: agora_rtc_api.h:232
agora_err_code_e
Definition: agora_rtc_api.h:39
@ ERR_SEND_VIDEO_OVER_BANDWIDTH_LIMIT
Definition: agora_rtc_api.h:124
@ ERR_OPEN_CHANNEL_TRY_NEXT_VOS
Definition: agora_rtc_api.h:114
@ ERR_INVALID_TOKEN
Definition: agora_rtc_api.h:89
@ ERR_INVALID_APP_ID
Definition: agora_rtc_api.h:59
@ ERR_JOIN_CHANNEL_REJECTED
Definition: agora_rtc_api.h:54
@ ERR_SET_CLIENT_ROLE_NOT_AUTHORIZED
Definition: agora_rtc_api.h:99
@ ERR_FAILED
Definition: agora_rtc_api.h:44
@ ERR_DECRYPTION_FAILED
Definition: agora_rtc_api.h:104
@ ERR_TOKEN_EXPIRED
Definition: agora_rtc_api.h:84
@ ERR_OPEN_CHANNEL_REJECTED
Definition: agora_rtc_api.h:79
@ ERR_AUDIO_DECODER_NOT_MATCH_AUDIO_FRAME
Definition: agora_rtc_api.h:129
@ ERR_OKAY
Definition: agora_rtc_api.h:41
@ ERR_OPEN_CHANNEL_INVALID_TICKET
Definition: agora_rtc_api.h:109
@ ERR_INVALID_CHANNEL_NAME
Definition: agora_rtc_api.h:64
@ ERR_NO_SERVER_RESOURCES
Definition: agora_rtc_api.h:69
@ ERR_DYNAMIC_TOKEN_BUT_USE_STATIC_KEY
Definition: agora_rtc_api.h:94
@ ERR_LOOKUP_CHANNEL_REJECTED
Definition: agora_rtc_api.h:74
@ ERR_NET_DOWN
Definition: agora_rtc_api.h:49
@ ERR_NO_AUDIO_DECODER_TO_HANDLE_AUDIO_FRAME
Definition: agora_rtc_api.h:133
@ ERR_CLIENT_IS_BANNED_BY_SERVER
Definition: agora_rtc_api.h:119
Definition: agora_rtc_api.h:769
Definition: agora_rtc_api.h:1376
Definition: agora_rtc_api.h:578
int pcm_channel_num
Definition: agora_rtc_api.h:595
int pcm_sample_rate
Definition: agora_rtc_api.h:589
audio_codec_type_e audio_codec_type
Definition: agora_rtc_api.h:582
Definition: agora_rtc_api.h:393
audio_data_type_e data_type
Definition: agora_rtc_api.h:397
Definition: agora_rtc_api.h:758
connection_id_t conn_id
Definition: agora_rtc_api.h:760
uint32_t uid
Definition: agora_rtc_api.h:762
Definition: agora_rtc_api.h:503
bool log_disable_desensitize
Definition: agora_rtc_api.h:515
const char * log_path
Definition: agora_rtc_api.h:523
bool log_disable
Definition: agora_rtc_api.h:509
rtc_log_level_e log_level
Definition: agora_rtc_api.h:519
const char * log_tag
Definition: agora_rtc_api.h:527
Definition: agora_rtc_api.h:610
bool ref_data_from_sdk
Definition: agora_rtc_api.h:642
bool enable_aec
Definition: agora_rtc_api.h:624
bool enable_audio_process
Definition: agora_rtc_api.h:616
bool enable_dump_data
Definition: agora_rtc_api.h:650
bool enable_ns
Definition: agora_rtc_api.h:632
Definition: agora_rtc_api.h:656
bool auto_subscribe_video
Definition: agora_rtc_api.h:668
bool auto_subscribe_audio
Definition: agora_rtc_api.h:662
audio_codec_option_t audio_codec_opt
Definition: agora_rtc_api.h:684
bool enable_audio_mixer
Definition: agora_rtc_api.h:680
bool enable_aut_encryption
Definition: agora_rtc_api.h:696
bool subscribe_local_user
Definition: agora_rtc_api.h:674
rtc_audio_process_options_t audio_process_opt
Definition: agora_rtc_api.h:690
Definition: agora_rtc_api.h:542
uint32_t area_code
Definition: agora_rtc_api.h:547
bool domain_limit
Definition: agora_rtc_api.h:572
log_config_t log_cfg
Definition: agora_rtc_api.h:555
Definition: agora_rtc_api.h:298
video_frame_type_e frame_type
Definition: agora_rtc_api.h:310
video_frame_rate_e frame_rate
Definition: agora_rtc_api.h:315
video_stream_type_e stream_type
Definition: agora_rtc_api.h:306
video_data_type_e data_type
Definition: agora_rtc_api.h:302
video_orientation_e rotation
Definition: agora_rtc_api.h:319