NERecord Linux SDK 5.5.3103
Loading...
Searching...
No Matches
nerecord_engine_defines.h
Go to the documentation of this file.
1
8#ifndef NERECORD_ENGINE_DEFINES_H
9#define NERECORD_ENGINE_DEFINES_H
10
11#include "nerecord_base_types.h"
12#include <string>
13#include <cstring>
14
15#define kNERtcMaxPlaneCount 4
16#define kNERtcMaxDeviceIDLength 256
17#define kNERtcMaxDeviceNameLength 256
18#define kNERtcMaxURILength 256
19#define kNERtcMaxTaskIDLength 64
20#define kNERtcMaxBuffLength 1024
22#ifndef NULL
23#define NULL nullptr
24#endif
25
30namespace nerecord
31{
32
33typedef uint64_t uid_t;
34typedef uint64_t channel_id_t;
45
55
58{
60 unsigned int volume;
61};
62
74
75
82
104
106typedef enum
107{
110
118
126
137
144
145
155
164
165
168{
170 uint32_t width;
171 uint32_t height;
172 uint32_t count;
173 uint32_t *offset;
174 uint32_t *stride;
176 uint64_t timestamp;
177 void* buffer;
178};
179
180
188
195
196
199{
200 int border;
201 char color[32];
202 double alpha;
203};
204
207{
210 double x;
211 double y;
212 double width;
213 double height;
214 double alpha;
217 {
218 substream = false;
219 }
220};
221
222
230
231
242
252
255{
256 const char *image_path;
257 uint32_t offset_x;
258 uint32_t offset_y;
259 uint32_t wm_width;
260 uint32_t wm_height;
261};
262
263
271
272
279
280
287
290{
293 int fps;
294 int bps;
297 : vanvasWidth(360)
298 , vanvasHeight(640)
299 , fps(15)
300 , bps(400000)
301 { }
302};
303
304
307{
309 const char *backgroundColor;
310 uint32_t regionCount;
312 const char *appData;
314 uint32_t wm_num;
319 , backgroundColor(NULL)
320 , regionCount(0)
321 , regions(NULL)
322 , appData(NULL)
323 , appDataLength(0)
324 , wm_num(0)
325 , wm_configs(NULL)
326 {}
327};
328
329typedef VideoLayout VideoMixingLayout;
330
331
343
379
405
422
430
436
448
455
476
477
480{
481 const char *storage_dir;
482};
483
490
507 bool use_ipv6;
508
509 NERtcServerAddresses() : use_ipv6(false) {
510 memset(channel_server, 0, sizeof(channel_server));
512 memset(statistics_server, 0, sizeof(statistics_server));
515 memset(room_server, 0, sizeof(room_server));
516 memset(compat_server, 0, sizeof(compat_server));
517 memset(nos_lbs_server, 0, sizeof(nos_lbs_server));
518 memset(nos_upload_sever, 0, sizeof(nos_upload_sever));
519 memset(nos_token_server, 0, sizeof(nos_token_server));
520 memset(cloud_proxy_server, 0, sizeof(cloud_proxy_server));
522 memset(quic_proxy_server, 0, sizeof(quic_proxy_server));
523 memset(media_proxy_server, 0, sizeof(media_proxy_server));
524 }
525};
526
532
541#define kNERecordEncryptByteLength 128
547#define kNERecordCustomInfoLength 128
548
577
584 // 需要发送或接收的数据的缓存地址
585 const unsigned char* buffer;
586 // 需要发送或接收的数据的缓存大小
587 long size;
588};
589
596 public:
597 virtual ~INERecordPacketObserver() {}
598
599 virtual bool onSendAudioPacket(NERecordMediaPacket& packet) = 0;
600 virtual bool onSendVideoPacket(NERecordMediaPacket& packet) = 0;
601 virtual bool onReceiveAudioPacket(NERecordMediaPacket& packet) = 0;
602 virtual bool onReceiveVideoPacket(NERecordMediaPacket& packet) = 0;
603};
604
637
638 void reInit(){
640 memset(key, 0, sizeof(key));
641 }
642
643 NERecordEncryptionConfig() : mode(kNERecordGMCryptoSM4ECB) { memset(key, 0, sizeof(key)); }
644};
645
647#define kNERtcKeyAutoSubscribeAudio "auto_subscribe_audio"
648#define kNERtcKeyVideoSubscribeAudio "auto_subscribe_vedio"
650} // namespace nerecord
651
652#endif
Definition nerecord_engine_defines.h:595
namespace nerecord
uint64_t channel_id_t
Definition nerecord_engine_defines.h:34
NERtcAudioStreamType
Definition nerecord_engine_defines.h:432
@ kNERtcAudioStreamTypeSub
Definition nerecord_engine_defines.h:434
@ kNERtcAudioStreamTypeMain
Definition nerecord_engine_defines.h:433
uint64_t uid_t
Definition nerecord_engine_defines.h:33
NERtcConnectionStateType
Definition nerecord_engine_defines.h:48
@ kNERtcConnectionStateFailed
Definition nerecord_engine_defines.h:53
@ kNERtcConnectionStateConnecting
Definition nerecord_engine_defines.h:50
@ kNERtcConnectionStateConnected
Definition nerecord_engine_defines.h:51
@ kNERtcConnectionStateDisconnected
Definition nerecord_engine_defines.h:49
@ kNERtcConnectionStateReconnecting
Definition nerecord_engine_defines.h:52
NERtcRecordFileDirMode
Definition nerecord_engine_defines.h:486
@ kNERtcRecordFileDirModeDefault
Definition nerecord_engine_defines.h:487
@ kNERtcRecordFileDirModeCustom
Definition nerecord_engine_defines.h:488
NERtcVideoStreamType
Definition nerecord_engine_defines.h:83
@ kNERTCVideoStreamMain
Definition nerecord_engine_defines.h:92
@ kNERTCVideoStreamSub
Definition nerecord_engine_defines.h:101
NERtcAudioType
Definition nerecord_engine_defines.h:107
@ kNERtcAudioTypePCM16
Definition nerecord_engine_defines.h:108
NERtcAudioFormatType
Definition nerecord_engine_defines.h:113
@ kNERtcAudioFormatDefault
Definition nerecord_engine_defines.h:114
@ kNERtcAudioFormatPCM
Definition nerecord_engine_defines.h:116
@ kNERtcAudioFormatAAC
Definition nerecord_engine_defines.h:115
NERtcRemoteVideoStreamType
Definition nerecord_engine_defines.h:77
@ kNERtcRemoteVideoStreamTypeLow
Definition nerecord_engine_defines.h:79
@ kNERtcRemoteVideoStreamTypeNone
Definition nerecord_engine_defines.h:80
@ kNERtcRemoteVideoStreamTypeHigh
Definition nerecord_engine_defines.h:78
NERtcVideoFormatType
Definition nerecord_engine_defines.h:121
@ kNERtcVideoFormatDefault
Definition nerecord_engine_defines.h:122
@ kNERtcVideoFormatH264
Definition nerecord_engine_defines.h:123
@ kNERtcVideoFormatYUV
Definition nerecord_engine_defines.h:124
NERtcWatermarkType
Definition nerecord_engine_defines.h:225
@ kNERtcWatermarkTypeLitera
Definition nerecord_engine_defines.h:226
@ kNERtcWatermarkTypeImage
Definition nerecord_engine_defines.h:228
@ kNERtcWatermarkTypeTimestamp
Definition nerecord_engine_defines.h:227
NERtcAudioProfileType
Definition nerecord_engine_defines.h:183
@ kNERtcAudioProfileHight
Definition nerecord_engine_defines.h:185
@ kNERtcAudioProfileStero
Definition nerecord_engine_defines.h:186
@ kNERtcAudioProfileDefault
Definition nerecord_engine_defines.h:184
NERtcVideoType
Definition nerecord_engine_defines.h:148
@ kNERtcVideoTypeNV21
Definition nerecord_engine_defines.h:151
@ kNERtcVideoTypeCVPixelBuffer
Definition nerecord_engine_defines.h:153
@ kNERtcVideoTypeI420
Definition nerecord_engine_defines.h:149
@ kNERtcVideoTypeNV12
Definition nerecord_engine_defines.h:150
@ kNERtcVideoTypeBGRA
Definition nerecord_engine_defines.h:152
NERtcVideoProfileType
Definition nerecord_engine_defines.h:65
@ kNERtcVideoProfileHD720P
Definition nerecord_engine_defines.h:69
@ kNERtcVideoProfileNone
Definition nerecord_engine_defines.h:71
@ kNERtcVideoProfileMAX
Definition nerecord_engine_defines.h:72
@ kNERtcVideoProfileHD1080P
Definition nerecord_engine_defines.h:70
@ kNERtcVideoProfileStandard
Definition nerecord_engine_defines.h:68
@ kNERtcVideoProfileLowest
Definition nerecord_engine_defines.h:66
@ kNERtcVideoProfileLow
Definition nerecord_engine_defines.h:67
NERtcVideoRotation
Definition nerecord_engine_defines.h:158
@ kNERtcVideoRotation_90
Definition nerecord_engine_defines.h:160
@ kNERtcVideoRotation_180
Definition nerecord_engine_defines.h:161
@ kNERtcVideoRotation_270
Definition nerecord_engine_defines.h:162
@ kNERtcVideoRotation_0
Definition nerecord_engine_defines.h:159
NERecordEncryptionMode
Definition nerecord_engine_defines.h:557
@ NERecordEncryptionModeCustom
Definition nerecord_engine_defines.h:575
@ kNERecordGMCryptoSM4ECB
Definition nerecord_engine_defines.h:566
NERtcLayoutType
Definition nerecord_engine_defines.h:283
@ kNERtcLayoutGrid
Definition nerecord_engine_defines.h:284
@ kNERtcLayoutCustom
Definition nerecord_engine_defines.h:285
NERtcSessionLeaveReason
Definition nerecord_engine_defines.h:38
@ kNERtcSessionLeaveForFailOver
Definition nerecord_engine_defines.h:40
@ kNERtcSessionLeaveUpdate
Definition nerecord_engine_defines.h:41
@ kNERtcSessionLeaveNormal
Definition nerecord_engine_defines.h:39
@ kNERtcSessionLeaveForKick
Definition nerecord_engine_defines.h:42
@ kNERtcSessionLeaveTimeOut
Definition nerecord_engine_defines.h:43
NERtcLogLevel
Definition nerecord_engine_defines.h:333
@ kNERtcLogLevelError
Definition nerecord_engine_defines.h:335
@ kNERtcLogLevelOff
Definition nerecord_engine_defines.h:341
@ kNERtcLogLevelDetailInfo
Definition nerecord_engine_defines.h:338
@ kNERtcLogLevelInfo
Definition nerecord_engine_defines.h:337
@ kNERtcLogLevelWarning
Definition nerecord_engine_defines.h:336
@ kNERtcLogLevelFatal
Definition nerecord_engine_defines.h:334
@ kNERtcLogLevelDebug
Definition nerecord_engine_defines.h:340
@ kNERtcLogLevelVerbos
Definition nerecord_engine_defines.h:339
NERtcRenderMode
Definition nerecord_engine_defines.h:191
@ kNERtcRenderModeFit
Definition nerecord_engine_defines.h:193
@ kNERtcRenderModeHidden
Definition nerecord_engine_defines.h:192
SDK 基本类型定义
#define kNERecordEncryptByteLength
Definition nerecord_engine_defines.h:541
#define kNERtcMaxURILength
Definition nerecord_engine_defines.h:18
#define kNERtcMaxDeviceNameLength
Definition nerecord_engine_defines.h:17
Definition nerecord_engine_defines.h:613
INERecordPacketObserver * observer
Definition nerecord_engine_defines.h:636
NERecordEncryptionMode mode
Definition nerecord_engine_defines.h:622
char key[kNERecordEncryptByteLength]
Definition nerecord_engine_defines.h:632
Definition nerecord_engine_defines.h:583
Definition nerecord_engine_defines.h:528
char relay_server[kNERtcMaxURILength]
Definition nerecord_engine_defines.h:530
char signal_server[kNERtcMaxURILength]
Definition nerecord_engine_defines.h:529
Definition nerecord_engine_defines.h:129
uint32_t sample_rate
Definition nerecord_engine_defines.h:132
uint32_t samples_per_channel
Definition nerecord_engine_defines.h:134
uint64_t timestamp
Definition nerecord_engine_defines.h:135
uint32_t channels
Definition nerecord_engine_defines.h:131
NERtcAudioType type
Definition nerecord_engine_defines.h:130
uint32_t bytes_per_sample
Definition nerecord_engine_defines.h:133
Definition nerecord_engine_defines.h:140
void * data
Definition nerecord_engine_defines.h:142
NERtcAudioFormat format
Definition nerecord_engine_defines.h:141
Definition nerecord_engine_defines.h:459
int av_timestamp_diff
Definition nerecord_engine_defines.h:466
int total_frozen_time
Definition nerecord_engine_defines.h:462
NERtcAudioStreamType stream_type
Definition nerecord_engine_defines.h:460
int audio_loss_rate
Definition nerecord_engine_defines.h:464
unsigned int volume
Definition nerecord_engine_defines.h:465
int frozen_rate
Definition nerecord_engine_defines.h:463
int peer_to_peer_delay
Definition nerecord_engine_defines.h:467
int received_bitrate
Definition nerecord_engine_defines.h:461
Definition nerecord_engine_defines.h:438
int64_t rtt
Definition nerecord_engine_defines.h:444
int audio_loss_rate
Definition nerecord_engine_defines.h:443
int sent_sample_rate
Definition nerecord_engine_defines.h:441
int sent_bitrate
Definition nerecord_engine_defines.h:442
NERtcAudioStreamType stream_type
Definition nerecord_engine_defines.h:439
unsigned int volume
Definition nerecord_engine_defines.h:445
int num_channels
Definition nerecord_engine_defines.h:440
unsigned int cap_volume
Definition nerecord_engine_defines.h:446
Definition nerecord_engine_defines.h:471
NERtcAudioLayerRecvStats * audio_layers_list
Definition nerecord_engine_defines.h:473
uid_t uid
Definition nerecord_engine_defines.h:472
int audio_layers_count
Definition nerecord_engine_defines.h:474
Definition nerecord_engine_defines.h:451
NERtcAudioLayerSendStats * audio_layers_list
Definition nerecord_engine_defines.h:452
int audio_layers_count
Definition nerecord_engine_defines.h:453
Definition nerecord_engine_defines.h:58
uid_t uid
Definition nerecord_engine_defines.h:59
unsigned int volume
Definition nerecord_engine_defines.h:60
Definition nerecord_engine_defines.h:199
double alpha
Definition nerecord_engine_defines.h:202
char color[32]
Definition nerecord_engine_defines.h:201
int border
Definition nerecord_engine_defines.h:200
Definition nerecord_engine_defines.h:255
uint32_t offset_y
Definition nerecord_engine_defines.h:258
uint32_t offset_x
Definition nerecord_engine_defines.h:257
uint32_t wm_height
Definition nerecord_engine_defines.h:260
uint32_t wm_width
Definition nerecord_engine_defines.h:259
const char * image_path
Definition nerecord_engine_defines.h:256
Definition nerecord_engine_defines.h:234
uint32_t font_size
Definition nerecord_engine_defines.h:237
NERtcBackground background
Definition nerecord_engine_defines.h:240
uint32_t offset_y
Definition nerecord_engine_defines.h:239
uint32_t offset_x
Definition nerecord_engine_defines.h:238
const char * font_file_path
Definition nerecord_engine_defines.h:236
const char * wm_litera
Definition nerecord_engine_defines.h:235
Definition nerecord_engine_defines.h:480
const char * storage_dir
Definition nerecord_engine_defines.h:481
Definition nerecord_engine_defines.h:207
double width
Definition nerecord_engine_defines.h:212
double height
Definition nerecord_engine_defines.h:213
double alpha
Definition nerecord_engine_defines.h:214
double x
Definition nerecord_engine_defines.h:210
uid_t uid
Definition nerecord_engine_defines.h:208
bool substream
Definition nerecord_engine_defines.h:209
NERtcRenderMode renderMode
Definition nerecord_engine_defines.h:215
double y
Definition nerecord_engine_defines.h:211
Definition nerecord_engine_defines.h:492
char nos_upload_sever[kNERtcMaxURILength]
Definition nerecord_engine_defines.h:501
char nos_token_server[kNERtcMaxURILength]
Definition nerecord_engine_defines.h:502
char statistics_dispatch_server[kNERtcMaxURILength]
Definition nerecord_engine_defines.h:496
char nos_lbs_server[kNERtcMaxURILength]
Definition nerecord_engine_defines.h:500
char statistics_server[kNERtcMaxURILength]
Definition nerecord_engine_defines.h:495
char compat_server[kNERtcMaxURILength]
Definition nerecord_engine_defines.h:499
char statistics_backup_server[kNERtcMaxURILength]
Definition nerecord_engine_defines.h:497
char media_proxy_server[kNERtcMaxURILength]
Definition nerecord_engine_defines.h:506
char cloud_proxy_server[kNERtcMaxURILength]
Definition nerecord_engine_defines.h:503
char channel_server[kNERtcMaxURILength]
Definition nerecord_engine_defines.h:493
char websocket_proxy_server[kNERtcMaxURILength]
Definition nerecord_engine_defines.h:504
char record_channel_server[kNERtcMaxURILength]
Definition nerecord_engine_defines.h:494
char quic_proxy_server[kNERtcMaxURILength]
Definition nerecord_engine_defines.h:505
char room_server[kNERtcMaxURILength]
Definition nerecord_engine_defines.h:498
Definition nerecord_engine_defines.h:346
uint32_t cpu_app_usage
Definition nerecord_engine_defines.h:347
uint32_t memory_app_kbytes
Definition nerecord_engine_defines.h:352
uint32_t cpu_idle_usage
Definition nerecord_engine_defines.h:348
int tx_audio_packet_loss_rate
Definition nerecord_engine_defines.h:366
uint32_t memory_total_usage
Definition nerecord_engine_defines.h:351
int rx_audio_kbitrate
Definition nerecord_engine_defines.h:361
int tx_video_packet_loss_sum
Definition nerecord_engine_defines.h:369
int tx_audio_packet_loss_sum
Definition nerecord_engine_defines.h:368
uint64_t rx_bytes
Definition nerecord_engine_defines.h:355
int rx_video_jitter
Definition nerecord_engine_defines.h:377
int tx_video_packet_loss_rate
Definition nerecord_engine_defines.h:367
int tx_audio_jitter
Definition nerecord_engine_defines.h:370
int rx_audio_packet_loss_sum
Definition nerecord_engine_defines.h:374
int up_rtt
Definition nerecord_engine_defines.h:364
int down_rtt
Definition nerecord_engine_defines.h:365
int rx_video_packet_loss_rate
Definition nerecord_engine_defines.h:373
uint64_t tx_video_bytes
Definition nerecord_engine_defines.h:357
uint64_t tx_bytes
Definition nerecord_engine_defines.h:354
int rx_audio_packet_loss_rate
Definition nerecord_engine_defines.h:372
int tx_audio_kbitrate
Definition nerecord_engine_defines.h:360
int rx_video_packet_loss_sum
Definition nerecord_engine_defines.h:375
int total_duration
Definition nerecord_engine_defines.h:353
uint64_t rx_video_bytes
Definition nerecord_engine_defines.h:359
uint32_t cpu_total_usage
Definition nerecord_engine_defines.h:349
uint32_t memory_app_usage
Definition nerecord_engine_defines.h:350
int tx_video_kbitrate
Definition nerecord_engine_defines.h:362
uint64_t tx_audio_bytes
Definition nerecord_engine_defines.h:356
int rx_audio_jitter
Definition nerecord_engine_defines.h:376
int tx_video_jitter
Definition nerecord_engine_defines.h:371
uint64_t rx_audio_bytes
Definition nerecord_engine_defines.h:358
int rx_video_kbitrate
Definition nerecord_engine_defines.h:363
Definition nerecord_engine_defines.h:245
uint32_t offset_x
Definition nerecord_engine_defines.h:248
const char * font_file_path
Definition nerecord_engine_defines.h:246
uint32_t font_size
Definition nerecord_engine_defines.h:247
NERtcBackground background
Definition nerecord_engine_defines.h:250
uint32_t offset_y
Definition nerecord_engine_defines.h:249
Definition nerecord_engine_defines.h:168
uint32_t count
Definition nerecord_engine_defines.h:172
uint32_t width
Definition nerecord_engine_defines.h:170
uint32_t * offset
Definition nerecord_engine_defines.h:173
void * buffer
Definition nerecord_engine_defines.h:177
NERtcVideoRotation rotation
Definition nerecord_engine_defines.h:175
NERtcVideoType format
Definition nerecord_engine_defines.h:169
uint32_t * stride
Definition nerecord_engine_defines.h:174
uint32_t height
Definition nerecord_engine_defines.h:171
uint64_t timestamp
Definition nerecord_engine_defines.h:176
Definition nerecord_engine_defines.h:408
int height
Definition nerecord_engine_defines.h:411
int layer_type
Definition nerecord_engine_defines.h:409
int packet_loss_rate
Definition nerecord_engine_defines.h:416
int render_frame_rate
Definition nerecord_engine_defines.h:415
int peer_to_peer_delay
Definition nerecord_engine_defines.h:420
int decoder_frame_rate
Definition nerecord_engine_defines.h:414
int frozen_rate
Definition nerecord_engine_defines.h:418
int received_frame_rate
Definition nerecord_engine_defines.h:413
int width
Definition nerecord_engine_defines.h:410
char codec_name[kNERtcMaxDeviceNameLength]
Definition nerecord_engine_defines.h:419
int total_frozen_time
Definition nerecord_engine_defines.h:417
int received_bitrate
Definition nerecord_engine_defines.h:412
Definition nerecord_engine_defines.h:383
int encoder_bitrate
Definition nerecord_engine_defines.h:395
int height
Definition nerecord_engine_defines.h:386
int width
Definition nerecord_engine_defines.h:385
int layer_type
Definition nerecord_engine_defines.h:384
int target_bitrate
Definition nerecord_engine_defines.h:394
int render_frame_rate
Definition nerecord_engine_defines.h:390
int encoder_frame_rate
Definition nerecord_engine_defines.h:391
int sent_frame_rate
Definition nerecord_engine_defines.h:392
char codec_name[kNERtcMaxDeviceNameLength]
Definition nerecord_engine_defines.h:396
int capture_width
Definition nerecord_engine_defines.h:387
bool drop_bandwidth_strategy_enabled
Definition nerecord_engine_defines.h:397
int capture_frame_rate
Definition nerecord_engine_defines.h:389
int capture_height
Definition nerecord_engine_defines.h:388
int sent_bitrate
Definition nerecord_engine_defines.h:393
Definition nerecord_engine_defines.h:290
int bps
Definition nerecord_engine_defines.h:294
int vanvasWidth
Definition nerecord_engine_defines.h:291
int fps
Definition nerecord_engine_defines.h:293
int vanvasHeight
Definition nerecord_engine_defines.h:292
Definition nerecord_engine_defines.h:425
int video_layers_count
Definition nerecord_engine_defines.h:428
NERtcVideoLayerRecvStats * video_layers_list
Definition nerecord_engine_defines.h:427
uid_t uid
Definition nerecord_engine_defines.h:426
Definition nerecord_engine_defines.h:401
NERtcVideoLayerSendStats * video_layers_list
Definition nerecord_engine_defines.h:402
int video_layers_count
Definition nerecord_engine_defines.h:403
Definition nerecord_engine_defines.h:307
const char * appData
Definition nerecord_engine_defines.h:312
const char * backgroundColor
Definition nerecord_engine_defines.h:309
int appDataLength
Definition nerecord_engine_defines.h:313
NERtcRegion * regions
Definition nerecord_engine_defines.h:311
NERtcLayoutType layout
Definition nerecord_engine_defines.h:308
uint32_t wm_num
Definition nerecord_engine_defines.h:314
uint32_t regionCount
Definition nerecord_engine_defines.h:310
WatermarkConfig * wm_configs
Definition nerecord_engine_defines.h:315
Definition nerecord_engine_defines.h:275
NERtcWatermarkType type
Definition nerecord_engine_defines.h:276
NERtcWatermarkConfigUnion config
Definition nerecord_engine_defines.h:277
Definition nerecord_engine_defines.h:266
NERtcImageWatermarkConfig image
Definition nerecord_engine_defines.h:269
NERtcLiteraWatermarkConfig litera
Definition nerecord_engine_defines.h:267
NERtcTimestampWatermarkConfig timestamp
Definition nerecord_engine_defines.h:268