IoT SDK for Linux v1.9.7
Loading...
Searching...
No Matches
agora_rtc_api.h
Go to the documentation of this file.
1/*************************************************************
2 *
3 * This is a part of the Agora RTC Service SDK.
4 * Copyright (C) 2020 Agora IO
5 * All rights reserved.
6 *
7 *************************************************************/
8
9#ifndef __AGORA_RTC_API_H__
10#define __AGORA_RTC_API_H__
11
12#include <stdint.h>
13#include <stddef.h>
14#include <stdbool.h>
15
16#ifdef __cplusplus
17extern "C"
18{
19#endif
20
21#if defined(_MSC_VER)
22#if defined(__BUILDING_AGORA_SDK__)
23#define __agora_api__ __declspec(dllexport)
24#else
25#define __agora_api__ __declspec(dllimport)
26#endif
27#else
28#define __agora_api__
29#endif
30
31#define AGORA_RTC_CHANNEL_NAME_MAX_LEN (64)
32#define AGORA_RTC_PRODUCT_ID_MAX_LEN (63)
33#define AGORA_RTC_USER_ACCOUNT_MAX_LEN (256)
34#define AGORA_RTC_DATA_STREAM_MAX_LEN (1024)
35#define AGORA_RTM_UID_MAX_LEN (64)
36#define AGORA_RTM_DATA_MAX_LEN (31 * 1024)
37#define AGORA_CREDENTIAL_MAX_LEN (256)
38#define AGORA_CERTIFICATE_MAX_LEN (1024)
39#define AGORA_LICENSE_VALUE_LEN (32)
41typedef enum {
42/******************************************************************************|
43| Common(0~99) |
44*******************************************************************************/
45#if 1 // Common Start
91 // Custom packet length failed
92 ERR_CUSTOM_PACKET_LENGTH_FAILED = 32,
94
95#endif // Common End
96
97/******************************************************************************|
98| RTN(100~199) |
99*******************************************************************************/
100#if 1 // RTN Start
149#endif // RTN End
150
151/******************************************************************************|
152| Audio(200~299) |
153*******************************************************************************/
154#if 1 // Audio Start
161#endif // Audio End
162
163/******************************************************************************|
164| Video(300~399) |
165*******************************************************************************/
166#if 1 // Video Start
173#endif // Video End
174
175/******************************************************************************|
176| RDT(600~620) |
177*******************************************************************************/
178#if 1 // RDT Start
189#endif // RDT End
190
191/******************************************************************************|
192| DataStream(621~630) |
193*******************************************************************************/
194#if 1 // DataStream Start
219#endif // DataStream End
220
221/******************************************************************************|
222| RTM(1000~1099) |
223*******************************************************************************/
224#if 1 // RTM Start
237#endif // RTM End
238
240
270
288
314
333
337typedef uint16_t video_frame_rate_e;
338
352
374
403
429
527
537
579
583typedef enum {
587 AREA_CODE_DEFAULT = 0x00000000,
591 AREA_CODE_CN = 0x00000001,
595 AREA_CODE_NA = 0x00000002,
599 AREA_CODE_EU = 0x00000004,
603 AREA_CODE_AS = 0x00000008,
607 AREA_CODE_JP = 0x00000010,
611 AREA_CODE_IN = 0x00000020,
615 AREA_CODE_GLOB = (0xFFFFFFFF),
616
618
619
621
625typedef enum {
626 /* Oceania */
627 AREA_CODE_OC = 0x00000040,
628 /* South-American */
629 AREA_CODE_SA = 0x00000080,
630 /* Africa */
631 AREA_CODE_AF = 0x00000100,
632 /* South Korea */
633 AREA_CODE_KR = 0x00000200,
634 /* Hong Kong and Macou */
635 AREA_CODE_HKMC = 0x00000400,
636 /* United States */
637 AREA_CODE_US = 0x00000800,
638 /* Russia */
639 AREA_CODE_RU = 0x00001000,
640 /* The global area (except China) */
641 AREA_CODE_OVS = 0xFFFFFFFE,
642} area_code_ex_e;
644
648typedef struct {
668 const char *log_path;
672 const char *log_tag;
681 int (*log_printf)(const char *fmt, ...);
683
687typedef struct {
693 uint32_t area_code;
721
722#ifdef CONFIG_RTC_STRING_UID
731#endif
733
763
764#ifdef CONFIG_RTC_CRYPT
770typedef enum {
784 AES_128_GCM2 = 7, // C has no default value; the Java default is AES_128_GCM2.
790
794typedef struct {
800 bool enable;
810 char key[128 + 1];
816 uint8_t salt[32];
818
819#endif // End CONFIG_RTC_CRYPT
820
822
826typedef enum {
827 // 1: audio packet type.
828 RTC_PACKET_TYPE_AUDIO = 1,
829 // 2: video packet type.
830 RTC_PACKET_TYPE_VIDEO,
831 // 3: rdt packet type.
832 RTC_PACKET_TYPE_RDT,
833 // 4. rtm packet type
834 RTC_PACKET_TYPE_RTM,
835 // 5. stream message type
836 RTC_PACKET_TYPE_STREAM_MESSAGE,
837} rtc_packet_type_e;
838
843typedef struct {
844 rtc_packet_type_e type;
845 // The packet data. [in/out]
846 void *data;
847 // The packet data size. [in/out]
848 uint16_t size;
849} rtc_packet_info_t;
850
852
856typedef struct {
891
895 bool enable_audio_ai_qos;
897
913
914#ifdef CONFIG_RTC_CRYPT
919#endif
920
921#ifdef CONFIG_RDT
928#endif
929
931#ifdef CONFIG_RTC_P2P
932 // whether to enable lan accelerate feature
933 bool enable_lan_accelerate;
934#endif
936
938
940#ifdef CONFIG_RTC_PROXY
946typedef enum {
950 CLOUD_PROXY_NONE = 0,
954 CLOUD_PROXY_UDP = 1,
958 CLOUD_PROXY_TCP = 3,
962 CLOUD_PROXY_AUTO = 100,
963} cloud_proxy_type_e;
964#endif
965
971typedef enum {
975 NETWORK_EVENT_DOWN = 0,
979 NETWORK_EVENT_UP,
983 NETWORK_EVENT_CHANGE,
984} network_event_e;
986
987
988#ifdef CONFIG_RDT
989
1007
1035
1061
1062#endif // CONFIG_RDT
1066typedef uint32_t connection_id_t;
1070#define CONNECTION_ID_ALL ((connection_id_t)0)
1074#define CONNECTION_ID_INVALID ((connection_id_t)-1)
1075
1087
1088
1089#ifdef CONFIG_RTC_STRING_UID
1105#endif
1106
1108
1113typedef struct rtc_stats_s {
1114 uint16_t tx_audio_kbitrate;
1115 uint16_t tx_video_kbitrate;
1116 uint16_t rx_audio_kbitrate;
1117 uint16_t rx_video_kbitrate;
1118 uint16_t tx_video_input_kbitrate;
1119 uint16_t lastmile_delay;
1120 uint16_t user_count;
1121 bool lan_accelerate_state;
1122} rtc_stats_t;
1124
1125
1129typedef struct {
1139 void (*on_error)(connection_id_t conn_id, int code, const char *msg);
1140
1148 void (*on_join_channel_success)(connection_id_t conn_id, uint32_t uid, int elapsed_ms);
1173 void (*on_rejoin_channel_success)(connection_id_t conn_id, uint32_t uid, int elapsed_ms);
1183
1192 void (*on_token_privilege_will_expire)(connection_id_t conn_id, const char *token);
1193
1203 void (*on_user_joined)(connection_id_t conn_id, uint32_t uid, int elapsed_ms);
1213 void (*on_user_offline)(connection_id_t conn_id, uint32_t uid, int reason);
1214
1215#ifdef CONFIG_RTC_STRING_UID
1230 void (*on_user_joined_with_user_account)(connection_id_t conn_id, const user_info_t *user, int elapsed_ms);
1231
1239 void (*on_user_offline_with_user_account)(connection_id_t conn_id, const user_info_t *user, int reason);
1240
1252 void (*on_user_info_updated)(connection_id_t conn_id, const user_info_t *user);
1253#endif
1254
1264 void (*on_user_mute_audio)(connection_id_t conn_id, uint32_t uid, bool muted);
1265
1275 void (*on_user_mute_video)(connection_id_t conn_id, uint32_t uid, bool muted);
1276
1287 void (*on_audio_data)(connection_id_t conn_id, uint32_t uid, uint16_t sent_ts, const void *data_ptr, size_t data_len,
1288 const audio_frame_info_t *info_ptr);
1289
1298 void (*on_mixed_audio_data)(connection_id_t conn_id, const void *data_ptr, size_t data_len,
1299 const audio_frame_info_t *info_ptr);
1300
1301#ifndef CONFIG_AUDIO_ONLY
1312 void (*on_video_data)(connection_id_t conn_id, uint32_t uid, uint16_t sent_ts, const void *data_ptr, size_t data_len,
1313 const video_frame_info_t *info_ptr);
1314
1321 void (*on_target_bitrate_changed)(connection_id_t conn_id, uint32_t target_bps);
1330 void (*on_key_frame_gen_req)(connection_id_t conn_id, uint32_t uid, video_stream_type_e stream_type);
1331#endif
1332
1334
1341 void (*on_rtc_stats)(connection_id_t conn_id, rtc_stats_t stats);
1343
1344
1345#ifdef CONFIG_RTCM
1356 void (*on_media_ctrl_msg)(connection_id_t conn_id, uint32_t uid, const void *payload, size_t length);
1357#endif
1358
1359
1360#ifdef CONFIG_RTC_STRING_UID
1374 void (*on_local_user_registered)(const char *uname, uint32_t uid);
1388 void (*on_remote_user_registered)(const char *uname, uint32_t uid);
1389#endif // End of CONFIG_RTC_STRING_UID
1390
1391#ifdef CONFIG_RDT
1402 void (*on_rdt_state)(connection_id_t conn_id, uint32_t uid, rdt_state_e state);
1413 void (*on_rdt_msg)(connection_id_t conn_id, uint32_t uid, rdt_stream_type_e type, const void *msg, size_t len);
1414#endif
1415
1416#ifdef CONFIG_DATA_STREAM
1432 void (*on_stream_message)(connection_id_t conn_id, uint32_t uid, int stream_id, const char* data, size_t length, uint64_t sent_ts);
1433#endif
1434
1436
1443 void (*on_packet_incoming)(connection_id_t conn_id, rtc_packet_info_t *pkt_info);
1444
1452 void (*on_packet_outgoing)(connection_id_t conn_id, rtc_packet_info_t *pkt_info);
1454
1456
1461extern const char *agora_rtc_get_version(void);
1462
1469extern __agora_api__ const char *agora_rtc_err_2_str(int err);
1470
1471
1473#ifdef CONFIG_AHPL_MEM_STAT
1482extern __agora_api__ int agora_rtc_get_memory_used();
1483
1484#ifdef CONFIG_AHPL_MEM_DUMP
1492extern __agora_api__ int agora_rtc_dump_memory_info();
1493#endif // CONFIG_AHPL_MEM_DUMP
1494#endif // CONFIG_AHPL_MEM_STAT
1496
1497#ifdef CONFIG_LICENSE
1511extern __agora_api__ int agora_rtc_license_gen_credential(char *credential, unsigned int *credential_len);
1512
1534extern __agora_api__ int agora_rtc_license_verify(const char *certificate, int certificate_len, const char *credential,
1535 int credential_len);
1536
1542extern __agora_api__ const char* agora_rtc_license_strerror(int err);
1543
1544#endif // End CONFIG_LICENSE
1559extern __agora_api__ int agora_rtc_init(const char *app_id, const agora_rtc_event_handler_t *event_handler,
1560 rtc_service_option_t *option);
1568
1577
1590extern __agora_api__ int agora_rtc_config_log(int size_per_file, int max_file_count);
1591
1603
1612
1622
1623#ifdef CONFIG_RTC_STRING_UID
1635extern __agora_api__ int agora_rtc_get_user_info_by_user_account(connection_id_t conn_id, const char *user_account, user_info_t *user);
1636
1649#endif
1650
1678extern __agora_api__ int agora_rtc_join_channel(connection_id_t conn_id, const char *channel_name, uint32_t uid,
1679 const char *token, rtc_channel_options_t *options);
1680
1681
1682#ifdef CONFIG_RTC_STRING_UID
1713 const char *user_account, const char *token,
1714 rtc_channel_options_t *options);
1715#endif
1716
1717
1728
1738extern __agora_api__ int agora_rtc_renew_token(connection_id_t conn_id, const char *token);
1739
1741
1749extern __agora_api__ int agora_rtc_notify_network_event(network_event_e event);
1751
1763
1764#ifndef CONFIG_AUDIO_ONLY
1776#endif
1790extern __agora_api__ int agora_rtc_mute_remote_audio(connection_id_t conn_id, uint32_t remote_uid, bool mute);
1791
1792#ifndef CONFIG_AUDIO_ONLY
1806extern __agora_api__ int agora_rtc_mute_remote_video(connection_id_t conn_id, uint32_t remote_uid, bool mute);
1807
1820 video_stream_type_e stream_type);
1821#endif
1835extern __agora_api__ int agora_rtc_send_audio_data(connection_id_t conn_id, const void *data_ptr, size_t data_len,
1836 audio_frame_info_t *info_ptr);
1837
1838#ifndef CONFIG_AUDIO_ONLY
1852extern __agora_api__ int agora_rtc_send_video_data(connection_id_t conn_id, const void *data_ptr, size_t data_len,
1853 video_frame_info_t *info_ptr);
1865extern __agora_api__ int agora_rtc_set_bwe_param(connection_id_t conn_id, uint32_t min_bps, uint32_t max_bps,
1866 uint32_t start_bps);
1867
1869#ifdef CONFIG_FEC_ENABLE
1884extern __agora_api__ int agora_rtc_set_fec_config(connection_id_t conn_id, bool enable, int ratio);
1885#endif // End CONFIG_FEC_ENABLE
1887
1888#endif // End CONFIG_AUDIO_ONLY
1889
1891#ifdef CONFIG_RTC_PROXY
1898extern __agora_api__ int agora_rtc_set_cloud_proxy(cloud_proxy_type_e type);
1899#endif // End CONFIG_RTC_PROXY
1901
1902
1912extern __agora_api__ int agora_rtc_set_params(connection_id_t conn_id, const char *params);
1913
1914#ifdef CONFIG_RTCM
1936extern __agora_api__ int agora_rtc_send_media_ctrl_msg(connection_id_t conn_id, uint32_t remote_uid,
1937 const void *payload, size_t length);
1938#endif // End of CONFIG_RTCM
1939
1940#ifdef CONFIG_RDT
1971extern __agora_api__ int agora_rtc_send_rdt_msg(connection_id_t conn_id, uint32_t remote_uid, rdt_stream_type_e type,
1972 const void *msg, size_t length);
1973
1991
1992#endif // end CONFIG_RDT
1993
1994#ifdef CONFIG_DATA_STREAM
2013extern __agora_api__ int agora_rtc_create_data_stream(connection_id_t conn_id, int* stream_id, bool reliable, bool ordered);
2014
2035extern __agora_api__ int agora_rtc_send_stream_message(connection_id_t conn_id, int stream_id, const char* data, size_t length);
2036
2037#endif // end CONFIG_DATA_STREAM
2038
2039#ifdef CONFIG_RTM
2041
2065
2087
2121
2123#ifdef CONFIG_RTM_STAT
2128typedef struct rtm_stats_s {
2129 // connection
2130 uint32_t connection_lost_cnt;
2131 uint16_t connection_delay_min;
2132 uint16_t connection_delay_max;
2133 uint16_t connection_delay_avg;
2134
2135 struct {
2136 // tx-total
2137 uint32_t tx_cnts;
2138 uint32_t tx_cnts_received;
2139 uint32_t tx_cnts_unreachable;
2140 uint32_t tx_cnts_timeout;
2141
2142 float tx_ratio_received;
2143 float tx_ratio_unreachable;
2144 float tx_ratio_timeout;
2145
2146 uint16_t tx_delay_min;
2147 uint16_t tx_delay_max;
2148 uint16_t tx_delay_avg;
2149
2150 // rx-total
2151 uint32_t rx_cnts;
2152 } total;
2153
2154 struct {
2155 // tx-interval
2156 uint32_t tx_cnts;
2157 uint32_t tx_cnts_received;
2158 uint32_t tx_cnts_unreachable;
2159 uint32_t tx_cnts_timeout;
2160
2161 uint32_t tx_kbps;
2162 uint32_t tx_kbps_received;
2163 uint32_t tx_kbps_unreachable;
2164 uint32_t tx_kbps_timeout;
2165
2166 float tx_ratio_received;
2167 float tx_ratio_unreachable;
2168 float tx_ratio_timeout;
2169
2170 uint16_t tx_delay_min;
2171 uint16_t tx_delay_max;
2172 uint16_t tx_delay_avg;
2173
2174 // rx-interval-cal
2175 uint32_t rx_cnts;
2176 uint32_t rx_kbps;
2177 } interval;
2178
2179} rtm_stats_t;
2180#endif
2182
2186typedef struct {
2193 void (*on_rtm_event)(const char *rtm_uid, rtm_event_type_e event_type, rtm_err_code_e err_code);
2194
2201 void (*on_rtm_data)(const char *rtm_uid, const void *msg, size_t msg_len);
2202
2209 void (*on_rtm_send_data_result)(const char *rtm_uid, uint32_t msg_id, rtm_msg_state_e state);
2210
2212#ifdef CONFIG_RTM_STAT
2218 void (*on_rtm_stats)(rtm_stats_t stats);
2219#endif
2222
2244extern __agora_api__ int agora_rtc_login_rtm(const char *rtm_uid, const char *rtm_token,
2245 const agora_rtm_handler_t *handler);
2246
2274extern __agora_api__ int agora_rtc_send_rtm_data(const char *rtm_uid, const void *msg, size_t msg_len, uint32_t msg_id);
2275#endif // End CONFIG_RTM
2276
2277#ifdef __cplusplus
2278}
2279#endif
2280
2281#endif /* __AGORA_RTC_API_H__ */
__agora_api__ int agora_rtc_send_rdt_msg(connection_id_t conn_id, uint32_t remote_uid, rdt_stream_type_e type, const void *msg, size_t length)
__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)
Send a video frame to all channels OR specific channel. All remote users in the channel will receive ...
__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)
Send an audio frame to all channels OR specific channel. All remote users in this channel will receiv...
enum rdt_stream_type rdt_stream_type_e
area_code_e
Definition agora_rtc_api.h:583
@ AREA_CODE_JP
Definition agora_rtc_api.h:607
@ AREA_CODE_GLOB
Definition agora_rtc_api.h:615
@ AREA_CODE_EU
Definition agora_rtc_api.h:599
@ AREA_CODE_CN
Definition agora_rtc_api.h:591
@ AREA_CODE_IN
Definition agora_rtc_api.h:611
@ AREA_CODE_AS
Definition agora_rtc_api.h:603
@ AREA_CODE_NA
Definition agora_rtc_api.h:595
@ AREA_CODE_DEFAULT
Definition agora_rtc_api.h:587
video_data_type_e
Definition agora_rtc_api.h:292
@ VIDEO_DATA_TYPE_YUV420
Definition agora_rtc_api.h:296
@ VIDEO_DATA_TYPE_H264
Definition agora_rtc_api.h:300
@ VIDEO_DATA_TYPE_H265
Definition agora_rtc_api.h:304
@ VIDEO_DATA_TYPE_GENERIC_JPEG
Definition agora_rtc_api.h:312
@ VIDEO_DATA_TYPE_GENERIC
Definition agora_rtc_api.h:308
crypto_mode_e
Definition agora_rtc_api.h:770
@ AES_256_GCM2
Definition agora_rtc_api.h:786
@ AES_128_GCM2
Definition agora_rtc_api.h:784
@ AES_128_GCM
Definition agora_rtc_api.h:780
@ CRYPTO_MODE_END
Definition agora_rtc_api.h:788
@ SM4_128_ECB
Definition agora_rtc_api.h:778
@ AES_256_GCM
Definition agora_rtc_api.h:782
@ AES_128_XTS
Definition agora_rtc_api.h:772
@ AES_128_ECB
Definition agora_rtc_api.h:774
@ AES_256_XTS
Definition agora_rtc_api.h:776
__agora_api__ int agora_rtc_send_rtm_data(const char *rtm_uid, const void *msg, size_t msg_len, uint32_t msg_id)
__agora_api__ int agora_rtc_mute_local_audio(connection_id_t conn_id, bool mute)
rdt_state
Definition agora_rtc_api.h:1011
@ RDT_STATE_BROKEN
Definition agora_rtc_api.h:1033
@ RDT_STATE_CLOSED
Definition agora_rtc_api.h:1015
@ RDT_STATE_OPENED
Definition agora_rtc_api.h:1019
@ RDT_STATE_PENDING
Definition agora_rtc_api.h:1029
@ RDT_STATE_BLOCKED
Definition agora_rtc_api.h:1023
uint16_t video_frame_rate_e
Definition agora_rtc_api.h:337
audio_codec_type_e
Definition agora_rtc_api.h:407
@ AUDIO_CODEC_TYPE_G722
Definition agora_rtc_api.h:419
@ AUDIO_CODEC_TYPE_OPUS
Definition agora_rtc_api.h:415
@ AUDIO_CODEC_TYPE_G711U
Definition agora_rtc_api.h:427
@ AUDIO_CODEC_DISABLED
Definition agora_rtc_api.h:411
@ AUDIO_CODEC_TYPE_G711A
Definition agora_rtc_api.h:423
#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)
Sets the log file configuration.
rdt_stream_type
Definition agora_rtc_api.h:993
@ RDT_STREAM_DATA
Definition agora_rtc_api.h:1001
@ RDT_STREAM_CMD
Definition agora_rtc_api.h:997
@ RDT_STREAM_COUNT
Definition agora_rtc_api.h:1005
__agora_api__ int agora_rtc_set_params(connection_id_t conn_id, const char *params)
__agora_api__ int agora_rtc_mute_local_video(connection_id_t conn_id, bool mute)
#define AGORA_RTC_USER_ACCOUNT_MAX_LEN
Definition agora_rtc_api.h:33
__agora_api__ const char * agora_rtc_err_2_str(int err)
Convert error code to const static string.
__agora_api__ int agora_rtc_login_rtm(const char *rtm_uid, const char *rtm_token, const agora_rtm_handler_t *handler)
struct user_info_s user_info_t
audio_data_type_e
Definition agora_rtc_api.h:433
@ AUDIO_DATA_TYPE_AACLC_8K_2CH
Definition agora_rtc_api.h:477
@ AUDIO_DATA_TYPE_OPUS
Definition agora_rtc_api.h:437
@ AUDIO_DATA_TYPE_PCMA
Definition agora_rtc_api.h:445
@ AUDIO_DATA_TYPE_AACLC_16K_2CH
Definition agora_rtc_api.h:481
@ AUDIO_DATA_TYPE_AACLC1
Definition agora_rtc_api.h:497
@ AUDIO_DATA_TYPE_GENERIC
Definition agora_rtc_api.h:521
@ AUDIO_DATA_TYPE_AACLC1_2CH
Definition agora_rtc_api.h:501
@ AUDIO_DATA_TYPE_OPUSFB_2CH
Definition agora_rtc_api.h:513
@ AUDIO_DATA_TYPE_PCM
Definition agora_rtc_api.h:517
@ AUDIO_DATA_TYPE_HEAAC
Definition agora_rtc_api.h:469
@ AUDIO_DATA_TYPE_HEAAC_2CH
Definition agora_rtc_api.h:489
@ AUDIO_DATA_TYPE_AACLC_2CH
Definition agora_rtc_api.h:485
@ AUDIO_DATA_TYPE_HEAAC2_2CH
Definition agora_rtc_api.h:493
@ AUDIO_DATA_TYPE_HEAAC2
Definition agora_rtc_api.h:473
@ AUDIO_DATA_TYPE_G722
Definition agora_rtc_api.h:453
@ AUDIO_DATA_TYPE_AACLC_8K
Definition agora_rtc_api.h:457
@ AUDIO_DATA_TYPE_UNKNOW
Definition agora_rtc_api.h:525
@ AUDIO_DATA_TYPE_PCMU
Definition agora_rtc_api.h:449
@ AUDIO_DATA_TYPE_HWAAC
Definition agora_rtc_api.h:505
@ AUDIO_DATA_TYPE_AACLC
Definition agora_rtc_api.h:465
@ AUDIO_DATA_TYPE_OPUSSWB
Definition agora_rtc_api.h:509
@ AUDIO_DATA_TYPE_OPUSFB
Definition agora_rtc_api.h:441
@ AUDIO_DATA_TYPE_AACLC_16K
Definition agora_rtc_api.h:461
video_frame_type_e
Definition agora_rtc_api.h:318
@ VIDEO_FRAME_KEY
Definition agora_rtc_api.h:327
@ VIDEO_FRAME_AUTO_DETECT
Definition agora_rtc_api.h:323
@ VIDEO_FRAME_DELTA
Definition agora_rtc_api.h:331
__agora_api__ int agora_rtc_init(const char *app_id, const agora_rtc_event_handler_t *event_handler, rtc_service_option_t *option)
license_err_reason_e
Definition agora_rtc_api.h:244
@ ERR_LICENSE_DIFF_DEVICES
Definition agora_rtc_api.h:264
@ ERR_LICENSE_EXPIRE
Definition agora_rtc_api.h:252
@ ERR_LICENSE_INVALID
Definition agora_rtc_api.h:248
@ ERR_LICENSE_INTERNAL
Definition agora_rtc_api.h:268
@ ERR_LICENSE_MINUTES_EXCEED
Definition agora_rtc_api.h:256
@ ERR_LICENSE_LIMITED_PERIOD
Definition agora_rtc_api.h:260
__agora_api__ int agora_rtc_join_channel_with_user_account(connection_id_t conn_id, const char *channel_name, const char *user_account, const char *token, rtc_channel_options_t *options)
video_stream_type_e
Definition agora_rtc_api.h:342
@ VIDEO_STREAM_HIGH
Definition agora_rtc_api.h:346
@ VIDEO_STREAM_LOW
Definition agora_rtc_api.h:350
__agora_api__ int agora_rtc_set_log_level(rtc_log_level_e level)
rtm_err_code_e
Definition agora_rtc_api.h:2091
@ ERR_RTM_INVALID_RTM_UID
Definition agora_rtc_api.h:2099
@ ERR_RTM_TOKEN_EXPIRED
Definition agora_rtc_api.h:2117
@ ERR_RTM_LOCAL_INTERRUPT
Definition agora_rtc_api.h:2107
@ ERR_RTM_LOGIN_INVALID_TOKEN
Definition agora_rtc_api.h:2101
@ ERR_RTM_LOCAL_TIMEOUT
Definition agora_rtc_api.h:2109
@ ERR_RTM_SERVER_TIMEOUT
Definition agora_rtc_api.h:2111
@ ERR_RTM_INVALID_APP_ID
Definition agora_rtc_api.h:2113
@ ERR_RTM_INVALID_TOKEN
Definition agora_rtc_api.h:2119
@ ERR_RTM_LOGIN_REJECTED
Definition agora_rtc_api.h:2097
@ ERR_RTM_FAILED
Definition agora_rtc_api.h:2095
@ WARN_RTM_LOOKUP_CHANNEL_REJECTED
Definition agora_rtc_api.h:2115
@ ERR_RTM_LOGIN_NOT_AUTHORIZED
Definition agora_rtc_api.h:2103
@ ERR_RTM_OK
Definition agora_rtc_api.h:2093
@ ERR_RTM_LOCAL_NETDOWN
Definition agora_rtc_api.h:2105
__agora_api__ int agora_rtc_get_user_info_by_user_account(connection_id_t conn_id, const char *user_account, user_info_t *user)
#define AGORA_LICENSE_VALUE_LEN
Definition agora_rtc_api.h:39
__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_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_get_rdt_status_info(connection_id_t conn_id, uint32_t remote_uid, rdt_status_info_t *info)
__agora_api__ int agora_rtc_send_media_ctrl_msg(connection_id_t conn_id, uint32_t remote_uid, const void *payload, size_t length)
__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:31
__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__ const char * agora_rtc_license_strerror(int err)
__agora_api__ int agora_rtc_get_connection_info(connection_id_t conn_id, connection_info_t *conn_info)
__agora_api__ int agora_rtc_create_data_stream(connection_id_t conn_id, int *stream_id, bool reliable, bool ordered)
struct rdt_status_info rdt_status_info_t
user_offline_reason_e
Definition agora_rtc_api.h:274
@ USER_OFFLINE_DROPPED
Definition agora_rtc_api.h:282
@ USER_OFFLINE_QUIT
Definition agora_rtc_api.h:278
@ USER_OFFLINE_BECOME_AUDIENCE
Definition agora_rtc_api.h:286
rtm_event_type_e
Definition agora_rtc_api.h:2045
@ RTM_EVENT_TYPE_KICKOFF
Definition agora_rtc_api.h:2053
@ RTM_EVENT_TYPE_EXIT
Definition agora_rtc_api.h:2063
@ RTM_EVENT_TYPE_LOGIN
Definition agora_rtc_api.h:2049
__agora_api__ int agora_rtc_logout_rtm(void)
enum rdt_state rdt_state_e
video_orientation_e
Definition agora_rtc_api.h:356
@ VIDEO_ORIENTATION_180
Definition agora_rtc_api.h:368
@ VIDEO_ORIENTATION_0
Definition agora_rtc_api.h:360
@ VIDEO_ORIENTATION_90
Definition agora_rtc_api.h:364
@ VIDEO_ORIENTATION_270
Definition agora_rtc_api.h:372
rtc_log_level_e
Definition agora_rtc_api.h:541
@ RTC_LOG_DEFAULT
Definition agora_rtc_api.h:545
@ RTC_LOG_ALERT
Definition agora_rtc_api.h:553
@ RTC_LOG_WARNING
Definition agora_rtc_api.h:565
@ RTC_LOG_EMERG
Definition agora_rtc_api.h:549
@ RTC_LOG_DEBUG
Definition agora_rtc_api.h:577
@ RTC_LOG_ERROR
Definition agora_rtc_api.h:561
@ RTC_LOG_INFO
Definition agora_rtc_api.h:573
@ RTC_LOG_NOTICE
Definition agora_rtc_api.h:569
@ RTC_LOG_CRIT
Definition agora_rtc_api.h:557
__agora_api__ int agora_rtc_destroy_connection(connection_id_t conn_id)
const char * agora_rtc_get_version(void)
Get SDK version.
#define __agora_api__
Definition agora_rtc_api.h:28
__agora_api__ int agora_rtc_get_user_info_by_uid(connection_id_t conn_id, uint32_t uid, user_info_t *user)
uint32_t connection_id_t
Definition agora_rtc_api.h:1066
__agora_api__ int agora_rtc_create_connection(connection_id_t *conn_id)
__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)
agora_err_code_e
Definition agora_rtc_api.h:41
@ ERR_RTM_EXCEED_MSG_SIZE
Definition agora_rtc_api.h:232
@ ERR_DATA_STREAM_BITRATE_LIMIT
Definition agora_rtc_api.h:210
@ ERR_ENCRYPTION
Definition agora_rtc_api.h:87
@ ERR_OPEN_CHANNEL_TRY_NEXT_VOS
Definition agora_rtc_api.h:146
@ ERR_INVALID_TOKEN
Definition agora_rtc_api.h:127
@ ERR_INVALID_APP_ID
Definition agora_rtc_api.h:102
@ ERR_RDT_DATA_BLOCKED
Definition agora_rtc_api.h:184
@ ERR_JOIN_CHANNEL_REJECTED
Definition agora_rtc_api.h:78
@ ERR_RTM_SEND_TO_SELF
Definition agora_rtc_api.h:230
@ ERR_AUDIO_INVALID_CODEC_PARAM
Definition agora_rtc_api.h:160
@ ERR_RTM_EXCEED_SND_BUFFER
Definition agora_rtc_api.h:236
@ ERR_LICENSE_VERIFICATION_FAILURE
Definition agora_rtc_api.h:85
@ ERR_TIMEDOUT
Definition agora_rtc_api.h:67
@ ERR_NOT_IN_CHANNEL
Definition agora_rtc_api.h:57
@ ERR_NO_MEMORY
Definition agora_rtc_api.h:69
@ ERR_RDT_USER_NOT_EXIST
Definition agora_rtc_api.h:180
@ ERR_DATA_STREAM_SIZE_TOO_LARGE
Definition agora_rtc_api.h:202
@ ERR_SET_CLIENT_ROLE_NOT_AUTHORIZED
Definition agora_rtc_api.h:134
@ ERR_RTM_HAD_LOGINED
Definition agora_rtc_api.h:228
@ ERR_FAILED
Definition agora_rtc_api.h:49
@ ERR_RDT_USER_NOT_READY
Definition agora_rtc_api.h:182
@ ERR_VIDEO_SEND_OVER_BANDWIDTH_LIMIT
Definition agora_rtc_api.h:170
@ ERR_AUDIO_CODEC_NOT_SUPPORT
Definition agora_rtc_api.h:156
@ ERR_RTM_NOT_LOGINED
Definition agora_rtc_api.h:226
@ ERR_DECRYPTION
Definition agora_rtc_api.h:89
@ ERR_DECRYPTION_FAILED
Definition agora_rtc_api.h:138
@ ERR_NOT_SUPPORTED
Definition agora_rtc_api.h:55
@ ERR_TOO_MANY_DATA_STREAMS
Definition agora_rtc_api.h:198
@ ERR_TOKEN_EXPIRED
Definition agora_rtc_api.h:118
@ ERR_OPEN_CHANNEL_REJECTED
Definition agora_rtc_api.h:110
@ ERR_DATA_STREAM_TIME_OUT
Definition agora_rtc_api.h:218
@ ERR_CALL_FAILED
Definition agora_rtc_api.h:71
@ ERR_OKAY
Definition agora_rtc_api.h:47
@ ERR_OPEN_CHANNEL_INVALID_TICKET
Definition agora_rtc_api.h:142
@ ERR_VIDEO_SEND_PACKETIZE_FAILED
Definition agora_rtc_api.h:172
@ ERR_INVALID_PARAM
Definition agora_rtc_api.h:51
@ ERR_INVALID_STATE
Definition agora_rtc_api.h:53
@ ERR_INVALID_CHANNEL_NAME
Definition agora_rtc_api.h:104
@ ERR_NOT_EXIST_STREAM_ID
Definition agora_rtc_api.h:206
@ ERR_RTM_EXCEED_MSG_CNT
Definition agora_rtc_api.h:234
@ ERR_RDT_DATA_EXCEED_LIMIT
Definition agora_rtc_api.h:188
@ ERR_NO_SERVER_RESOURCES
Definition agora_rtc_api.h:106
@ ERR_AUDIO_INVALID_PCM_LEN
Definition agora_rtc_api.h:158
@ ERR_DYNAMIC_TOKEN_BUT_USE_STATIC_KEY
Definition agora_rtc_api.h:131
@ ERR_NOT_INITIALIZED
Definition agora_rtc_api.h:59
@ ERR_DATA_STREAM_SEND_TOO_OFTEN
Definition agora_rtc_api.h:214
@ ERR_NOT_EXIST_CONNECTION
Definition agora_rtc_api.h:61
@ ERR_LOOKUP_CHANNEL_REJECTED
Definition agora_rtc_api.h:108
@ ERR_NET_DOWN
Definition agora_rtc_api.h:73
@ ERR_RDT_CMD_EXCEED_LIMIT
Definition agora_rtc_api.h:186
@ ERR_LEAVE_CHANNEL_REJECTED
Definition agora_rtc_api.h:83
@ ERR_CLIENT_IS_BANNED_BY_SERVER
Definition agora_rtc_api.h:148
__agora_api__ int agora_rtc_send_stream_message(connection_id_t conn_id, int stream_id, const char *data, size_t length)
rtm_msg_state_e
Definition agora_rtc_api.h:2069
@ RTM_MSG_STATE_TIMEOUT
Definition agora_rtc_api.h:2085
@ RTM_MSG_STATE_INIT
Definition agora_rtc_api.h:2073
@ RTM_MSG_STATE_RECEIVED
Definition agora_rtc_api.h:2077
@ RTM_MSG_STATE_UNREACHABLE
Definition agora_rtc_api.h:2081
Definition agora_rtc_api.h:1129
void(*) on_rejoin_channel_success(connection_id_t conn_id, uint32_t uid, int elapsed_ms)
Definition agora_rtc_api.h:1173
void(*) on_local_user_registered(const char *uname, uint32_t uid)
Definition agora_rtc_api.h:1374
void(*) on_target_bitrate_changed(connection_id_t conn_id, uint32_t target_bps)
Definition agora_rtc_api.h:1321
void(*) on_media_ctrl_msg(connection_id_t conn_id, uint32_t uid, const void *payload, size_t length)
Definition agora_rtc_api.h:1356
void(*) on_user_info_updated(connection_id_t conn_id, const user_info_t *user)
Definition agora_rtc_api.h:1252
void(*) on_user_mute_audio(connection_id_t conn_id, uint32_t uid, bool muted)
Definition agora_rtc_api.h:1264
void(*) on_remote_user_registered(const char *uname, uint32_t uid)
Definition agora_rtc_api.h:1388
void(*) on_stream_message(connection_id_t conn_id, uint32_t uid, int stream_id, const char *data, size_t length, uint64_t sent_ts)
Definition agora_rtc_api.h:1432
void(*) on_reconnecting(connection_id_t conn_id)
Definition agora_rtc_api.h:1156
void(*) on_key_frame_gen_req(connection_id_t conn_id, uint32_t uid, video_stream_type_e stream_type)
Definition agora_rtc_api.h:1330
void(*) on_token_privilege_will_expire(connection_id_t conn_id, const char *token)
Definition agora_rtc_api.h:1192
void(*) on_user_joined(connection_id_t conn_id, uint32_t uid, int elapsed_ms)
Definition agora_rtc_api.h:1203
void(*) on_error(connection_id_t conn_id, int code, const char *msg)
Definition agora_rtc_api.h:1139
void(*) on_rdt_msg(connection_id_t conn_id, uint32_t uid, rdt_stream_type_e type, const void *msg, size_t len)
Definition agora_rtc_api.h:1413
void(*) on_connection_lost(connection_id_t conn_id)
Definition agora_rtc_api.h:1162
void(*) on_mixed_audio_data(connection_id_t conn_id, const void *data_ptr, size_t data_len, const audio_frame_info_t *info_ptr)
Definition agora_rtc_api.h:1298
void(*) on_user_joined_with_user_account(connection_id_t conn_id, const user_info_t *user, int elapsed_ms)
Definition agora_rtc_api.h:1230
void(*) on_user_offline_with_user_account(connection_id_t conn_id, const user_info_t *user, int reason)
Definition agora_rtc_api.h:1239
void(*) on_user_offline(connection_id_t conn_id, uint32_t uid, int reason)
Definition agora_rtc_api.h:1213
void(*) on_video_data(connection_id_t conn_id, uint32_t uid, uint16_t sent_ts, const void *data_ptr, size_t data_len, const video_frame_info_t *info_ptr)
Definition agora_rtc_api.h:1312
void(*) on_user_mute_video(connection_id_t conn_id, uint32_t uid, bool muted)
Definition agora_rtc_api.h:1275
void(*) on_join_channel_success(connection_id_t conn_id, uint32_t uid, int elapsed_ms)
Definition agora_rtc_api.h:1148
void(*) on_license_validation_failure(connection_id_t conn_id, int error)
Definition agora_rtc_api.h:1182
void(*) on_audio_data(connection_id_t conn_id, uint32_t uid, uint16_t sent_ts, const void *data_ptr, size_t data_len, const audio_frame_info_t *info_ptr)
Definition agora_rtc_api.h:1287
void(*) on_rdt_state(connection_id_t conn_id, uint32_t uid, rdt_state_e state)
Definition agora_rtc_api.h:1402
Definition agora_rtc_api.h:2186
void(*) on_rtm_send_data_result(const char *rtm_uid, uint32_t msg_id, rtm_msg_state_e state)
Definition agora_rtc_api.h:2209
void(*) on_rtm_event(const char *rtm_uid, rtm_event_type_e event_type, rtm_err_code_e err_code)
Definition agora_rtc_api.h:2193
void(*) on_rtm_data(const char *rtm_uid, const void *msg, size_t msg_len)
Definition agora_rtc_api.h:2201
Definition agora_rtc_api.h:737
int pcm_duration
Definition agora_rtc_api.h:761
int pcm_channel_num
Definition agora_rtc_api.h:757
int pcm_sample_rate
Definition agora_rtc_api.h:751
audio_codec_type_e audio_codec_type
Definition agora_rtc_api.h:744
Definition agora_rtc_api.h:531
audio_data_type_e data_type
Definition agora_rtc_api.h:535
Definition agora_rtc_api.h:1079
connection_id_t conn_id
Definition agora_rtc_api.h:1081
uint32_t uid
Definition agora_rtc_api.h:1083
char channel_name[AGORA_RTC_CHANNEL_NAME_MAX_LEN+1]
Definition agora_rtc_api.h:1085
Definition agora_rtc_api.h:794
crypto_mode_e mode
Definition agora_rtc_api.h:804
uint8_t salt[32]
Definition agora_rtc_api.h:816
bool enable
Definition agora_rtc_api.h:800
char key[128+1]
Definition agora_rtc_api.h:810
Definition agora_rtc_api.h:648
int(*) log_printf(const char *fmt,...)
Definition agora_rtc_api.h:681
bool log_disable_desensitize
Definition agora_rtc_api.h:660
const char * log_path
Definition agora_rtc_api.h:668
bool log_disable
Definition agora_rtc_api.h:654
rtc_log_level_e log_level
Definition agora_rtc_api.h:664
const char * log_tag
Definition agora_rtc_api.h:672
Definition agora_rtc_api.h:1039
int recv_queue_size[RDT_STREAM_COUNT]
Definition agora_rtc_api.h:1059
uint32_t peer_uid
Definition agora_rtc_api.h:1047
uint32_t conn_id
Definition agora_rtc_api.h:1043
rdt_state_e state
Definition agora_rtc_api.h:1051
int send_queue_size[RDT_STREAM_COUNT]
Definition agora_rtc_api.h:1055
Definition agora_rtc_api.h:856
bool auto_subscribe_video
Definition agora_rtc_api.h:868
bool auto_subscribe_audio
Definition agora_rtc_api.h:862
bool enable_audio_decode
Definition agora_rtc_api.h:889
audio_codec_option_t audio_codec_opt
Definition agora_rtc_api.h:912
bool enable_audio_mixer
Definition agora_rtc_api.h:883
bool enable_audio_jitter_buffer
Definition agora_rtc_api.h:875
bool enable_audio_downlink_aec_pcm_dump
Definition agora_rtc_api.h:908
bool enable_audio_downlink_aec
Definition agora_rtc_api.h:902
bool enable_rdt
Definition agora_rtc_api.h:927
crypto_option_t crypto_opt
Definition agora_rtc_api.h:918
Definition agora_rtc_api.h:687
uint32_t area_code
Definition agora_rtc_api.h:693
bool domain_limit
Definition agora_rtc_api.h:720
char license_value[AGORA_LICENSE_VALUE_LEN+1]
Definition agora_rtc_api.h:708
log_config_t log_cfg
Definition agora_rtc_api.h:701
char product_id[AGORA_RTC_PRODUCT_ID_MAX_LEN+1]
Definition agora_rtc_api.h:697
bool use_string_uid
Definition agora_rtc_api.h:730
Definition agora_rtc_api.h:1095
uint32_t uid
Definition agora_rtc_api.h:1099
char user_account[AGORA_RTC_USER_ACCOUNT_MAX_LEN]
Definition agora_rtc_api.h:1103
Definition agora_rtc_api.h:378
video_frame_type_e frame_type
Definition agora_rtc_api.h:390
video_frame_rate_e frame_rate
Definition agora_rtc_api.h:397
video_stream_type_e stream_type
Definition agora_rtc_api.h:386
video_data_type_e data_type
Definition agora_rtc_api.h:382
video_orientation_e rotation
Definition agora_rtc_api.h:401