livekit-client 0.17.5 → 0.17.6-rc1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (153) hide show
  1. package/CHANGELOG.md +1 -1
  2. package/README.md +26 -20
  3. package/dist/api/SignalClient.d.ts +1 -0
  4. package/dist/connect.d.ts +2 -0
  5. package/dist/index.d.ts +2 -2
  6. package/dist/livekit-client.esm.js +17344 -0
  7. package/dist/livekit-client.esm.js.map +1 -0
  8. package/dist/livekit-client.umd.js +17388 -0
  9. package/dist/livekit-client.umd.js.map +1 -0
  10. package/dist/logger.d.ts +22 -11
  11. package/dist/options.d.ts +4 -2
  12. package/dist/proto/google/protobuf/timestamp.d.ts +1 -1
  13. package/dist/proto/livekit_models.d.ts +4 -1
  14. package/dist/proto/livekit_rtc.d.ts +45 -2
  15. package/dist/room/DeviceManager.d.ts +1 -1
  16. package/dist/room/RTCEngine.d.ts +1 -1
  17. package/dist/room/Room.d.ts +2 -2
  18. package/dist/room/events.d.ts +1 -1
  19. package/dist/room/participant/LocalParticipant.d.ts +9 -5
  20. package/dist/room/participant/RemoteParticipant.d.ts +9 -0
  21. package/dist/room/track/RemoteAudioTrack.d.ts +11 -0
  22. package/dist/test/mocks.d.ts +11 -0
  23. package/package.json +40 -15
  24. package/.eslintrc.js +0 -17
  25. package/.gitmodules +0 -3
  26. package/dist/api/RequestQueue.js +0 -61
  27. package/dist/api/RequestQueue.js.map +0 -1
  28. package/dist/api/SignalClient.js +0 -428
  29. package/dist/api/SignalClient.js.map +0 -1
  30. package/dist/connect.js +0 -130
  31. package/dist/connect.js.map +0 -1
  32. package/dist/index.js +0 -71
  33. package/dist/index.js.map +0 -1
  34. package/dist/logger.js +0 -24
  35. package/dist/logger.js.map +0 -1
  36. package/dist/options.js +0 -3
  37. package/dist/options.js.map +0 -1
  38. package/dist/proto/google/protobuf/timestamp.js +0 -108
  39. package/dist/proto/google/protobuf/timestamp.js.map +0 -1
  40. package/dist/proto/livekit_models.js +0 -2262
  41. package/dist/proto/livekit_models.js.map +0 -1
  42. package/dist/proto/livekit_rtc.js +0 -2544
  43. package/dist/proto/livekit_rtc.js.map +0 -1
  44. package/dist/room/DeviceManager.js +0 -62
  45. package/dist/room/DeviceManager.js.map +0 -1
  46. package/dist/room/PCTransport.js +0 -91
  47. package/dist/room/PCTransport.js.map +0 -1
  48. package/dist/room/RTCEngine.js +0 -562
  49. package/dist/room/RTCEngine.js.map +0 -1
  50. package/dist/room/Room.js +0 -767
  51. package/dist/room/Room.js.map +0 -1
  52. package/dist/room/errors.js +0 -68
  53. package/dist/room/errors.js.map +0 -1
  54. package/dist/room/events.js +0 -385
  55. package/dist/room/events.js.map +0 -1
  56. package/dist/room/participant/LocalParticipant.js +0 -647
  57. package/dist/room/participant/LocalParticipant.js.map +0 -1
  58. package/dist/room/participant/Participant.js +0 -189
  59. package/dist/room/participant/Participant.js.map +0 -1
  60. package/dist/room/participant/ParticipantTrackPermission.js +0 -16
  61. package/dist/room/participant/ParticipantTrackPermission.js.map +0 -1
  62. package/dist/room/participant/RemoteParticipant.js +0 -194
  63. package/dist/room/participant/RemoteParticipant.js.map +0 -1
  64. package/dist/room/participant/publishUtils.js +0 -189
  65. package/dist/room/participant/publishUtils.js.map +0 -1
  66. package/dist/room/participant/publishUtils.test.d.ts +0 -1
  67. package/dist/room/participant/publishUtils.test.js +0 -118
  68. package/dist/room/participant/publishUtils.test.js.map +0 -1
  69. package/dist/room/stats.js +0 -26
  70. package/dist/room/stats.js.map +0 -1
  71. package/dist/room/track/LocalAudioTrack.js +0 -153
  72. package/dist/room/track/LocalAudioTrack.js.map +0 -1
  73. package/dist/room/track/LocalTrack.js +0 -158
  74. package/dist/room/track/LocalTrack.js.map +0 -1
  75. package/dist/room/track/LocalTrackPublication.js +0 -64
  76. package/dist/room/track/LocalTrackPublication.js.map +0 -1
  77. package/dist/room/track/LocalVideoTrack.js +0 -297
  78. package/dist/room/track/LocalVideoTrack.js.map +0 -1
  79. package/dist/room/track/LocalVideoTrack.test.d.ts +0 -1
  80. package/dist/room/track/LocalVideoTrack.test.js +0 -68
  81. package/dist/room/track/LocalVideoTrack.test.js.map +0 -1
  82. package/dist/room/track/RemoteAudioTrack.js +0 -64
  83. package/dist/room/track/RemoteAudioTrack.js.map +0 -1
  84. package/dist/room/track/RemoteTrack.js +0 -49
  85. package/dist/room/track/RemoteTrack.js.map +0 -1
  86. package/dist/room/track/RemoteTrackPublication.js +0 -178
  87. package/dist/room/track/RemoteTrackPublication.js.map +0 -1
  88. package/dist/room/track/RemoteVideoTrack.js +0 -201
  89. package/dist/room/track/RemoteVideoTrack.js.map +0 -1
  90. package/dist/room/track/Track.js +0 -283
  91. package/dist/room/track/Track.js.map +0 -1
  92. package/dist/room/track/TrackPublication.js +0 -92
  93. package/dist/room/track/TrackPublication.js.map +0 -1
  94. package/dist/room/track/create.js +0 -131
  95. package/dist/room/track/create.js.map +0 -1
  96. package/dist/room/track/defaults.js +0 -21
  97. package/dist/room/track/defaults.js.map +0 -1
  98. package/dist/room/track/options.js +0 -100
  99. package/dist/room/track/options.js.map +0 -1
  100. package/dist/room/track/types.js +0 -3
  101. package/dist/room/track/types.js.map +0 -1
  102. package/dist/room/track/utils.js +0 -113
  103. package/dist/room/track/utils.js.map +0 -1
  104. package/dist/room/track/utils.test.d.ts +0 -1
  105. package/dist/room/track/utils.test.js +0 -85
  106. package/dist/room/track/utils.test.js.map +0 -1
  107. package/dist/room/utils.js +0 -79
  108. package/dist/room/utils.js.map +0 -1
  109. package/dist/version.js +0 -6
  110. package/dist/version.js.map +0 -1
  111. package/jest.config.js +0 -6
  112. package/src/api/RequestQueue.ts +0 -53
  113. package/src/api/SignalClient.ts +0 -499
  114. package/src/connect.ts +0 -100
  115. package/src/index.ts +0 -47
  116. package/src/logger.ts +0 -22
  117. package/src/options.ts +0 -149
  118. package/src/proto/google/protobuf/timestamp.ts +0 -232
  119. package/src/proto/livekit_models.ts +0 -2676
  120. package/src/proto/livekit_rtc.ts +0 -3269
  121. package/src/room/DeviceManager.ts +0 -57
  122. package/src/room/PCTransport.ts +0 -86
  123. package/src/room/RTCEngine.ts +0 -652
  124. package/src/room/Room.ts +0 -951
  125. package/src/room/errors.ts +0 -65
  126. package/src/room/events.ts +0 -424
  127. package/src/room/participant/LocalParticipant.ts +0 -734
  128. package/src/room/participant/Participant.ts +0 -269
  129. package/src/room/participant/ParticipantTrackPermission.ts +0 -32
  130. package/src/room/participant/RemoteParticipant.ts +0 -243
  131. package/src/room/participant/publishUtils.test.ts +0 -145
  132. package/src/room/participant/publishUtils.ts +0 -225
  133. package/src/room/stats.ts +0 -130
  134. package/src/room/track/LocalAudioTrack.ts +0 -137
  135. package/src/room/track/LocalTrack.ts +0 -161
  136. package/src/room/track/LocalTrackPublication.ts +0 -66
  137. package/src/room/track/LocalVideoTrack.test.ts +0 -70
  138. package/src/room/track/LocalVideoTrack.ts +0 -293
  139. package/src/room/track/RemoteAudioTrack.ts +0 -58
  140. package/src/room/track/RemoteTrack.ts +0 -62
  141. package/src/room/track/RemoteTrackPublication.ts +0 -198
  142. package/src/room/track/RemoteVideoTrack.ts +0 -235
  143. package/src/room/track/Track.ts +0 -343
  144. package/src/room/track/TrackPublication.ts +0 -120
  145. package/src/room/track/create.ts +0 -121
  146. package/src/room/track/defaults.ts +0 -23
  147. package/src/room/track/options.ts +0 -281
  148. package/src/room/track/types.ts +0 -20
  149. package/src/room/track/utils.test.ts +0 -93
  150. package/src/room/track/utils.ts +0 -115
  151. package/src/room/utils.ts +0 -70
  152. package/src/version.ts +0 -2
  153. package/tsconfig.eslint.json +0 -11
@@ -1,2676 +0,0 @@
1
- /* eslint-disable */
2
- import Long from "long";
3
- import * as _m0 from "protobufjs/minimal";
4
- import { Timestamp } from "./google/protobuf/timestamp";
5
-
6
- export const protobufPackage = "livekit";
7
-
8
- export enum TrackType {
9
- AUDIO = 0,
10
- VIDEO = 1,
11
- DATA = 2,
12
- UNRECOGNIZED = -1,
13
- }
14
-
15
- export function trackTypeFromJSON(object: any): TrackType {
16
- switch (object) {
17
- case 0:
18
- case "AUDIO":
19
- return TrackType.AUDIO;
20
- case 1:
21
- case "VIDEO":
22
- return TrackType.VIDEO;
23
- case 2:
24
- case "DATA":
25
- return TrackType.DATA;
26
- case -1:
27
- case "UNRECOGNIZED":
28
- default:
29
- return TrackType.UNRECOGNIZED;
30
- }
31
- }
32
-
33
- export function trackTypeToJSON(object: TrackType): string {
34
- switch (object) {
35
- case TrackType.AUDIO:
36
- return "AUDIO";
37
- case TrackType.VIDEO:
38
- return "VIDEO";
39
- case TrackType.DATA:
40
- return "DATA";
41
- default:
42
- return "UNKNOWN";
43
- }
44
- }
45
-
46
- export enum TrackSource {
47
- UNKNOWN = 0,
48
- CAMERA = 1,
49
- MICROPHONE = 2,
50
- SCREEN_SHARE = 3,
51
- SCREEN_SHARE_AUDIO = 4,
52
- UNRECOGNIZED = -1,
53
- }
54
-
55
- export function trackSourceFromJSON(object: any): TrackSource {
56
- switch (object) {
57
- case 0:
58
- case "UNKNOWN":
59
- return TrackSource.UNKNOWN;
60
- case 1:
61
- case "CAMERA":
62
- return TrackSource.CAMERA;
63
- case 2:
64
- case "MICROPHONE":
65
- return TrackSource.MICROPHONE;
66
- case 3:
67
- case "SCREEN_SHARE":
68
- return TrackSource.SCREEN_SHARE;
69
- case 4:
70
- case "SCREEN_SHARE_AUDIO":
71
- return TrackSource.SCREEN_SHARE_AUDIO;
72
- case -1:
73
- case "UNRECOGNIZED":
74
- default:
75
- return TrackSource.UNRECOGNIZED;
76
- }
77
- }
78
-
79
- export function trackSourceToJSON(object: TrackSource): string {
80
- switch (object) {
81
- case TrackSource.UNKNOWN:
82
- return "UNKNOWN";
83
- case TrackSource.CAMERA:
84
- return "CAMERA";
85
- case TrackSource.MICROPHONE:
86
- return "MICROPHONE";
87
- case TrackSource.SCREEN_SHARE:
88
- return "SCREEN_SHARE";
89
- case TrackSource.SCREEN_SHARE_AUDIO:
90
- return "SCREEN_SHARE_AUDIO";
91
- default:
92
- return "UNKNOWN";
93
- }
94
- }
95
-
96
- export enum VideoQuality {
97
- LOW = 0,
98
- MEDIUM = 1,
99
- HIGH = 2,
100
- OFF = 3,
101
- UNRECOGNIZED = -1,
102
- }
103
-
104
- export function videoQualityFromJSON(object: any): VideoQuality {
105
- switch (object) {
106
- case 0:
107
- case "LOW":
108
- return VideoQuality.LOW;
109
- case 1:
110
- case "MEDIUM":
111
- return VideoQuality.MEDIUM;
112
- case 2:
113
- case "HIGH":
114
- return VideoQuality.HIGH;
115
- case 3:
116
- case "OFF":
117
- return VideoQuality.OFF;
118
- case -1:
119
- case "UNRECOGNIZED":
120
- default:
121
- return VideoQuality.UNRECOGNIZED;
122
- }
123
- }
124
-
125
- export function videoQualityToJSON(object: VideoQuality): string {
126
- switch (object) {
127
- case VideoQuality.LOW:
128
- return "LOW";
129
- case VideoQuality.MEDIUM:
130
- return "MEDIUM";
131
- case VideoQuality.HIGH:
132
- return "HIGH";
133
- case VideoQuality.OFF:
134
- return "OFF";
135
- default:
136
- return "UNKNOWN";
137
- }
138
- }
139
-
140
- export enum ConnectionQuality {
141
- POOR = 0,
142
- GOOD = 1,
143
- EXCELLENT = 2,
144
- UNRECOGNIZED = -1,
145
- }
146
-
147
- export function connectionQualityFromJSON(object: any): ConnectionQuality {
148
- switch (object) {
149
- case 0:
150
- case "POOR":
151
- return ConnectionQuality.POOR;
152
- case 1:
153
- case "GOOD":
154
- return ConnectionQuality.GOOD;
155
- case 2:
156
- case "EXCELLENT":
157
- return ConnectionQuality.EXCELLENT;
158
- case -1:
159
- case "UNRECOGNIZED":
160
- default:
161
- return ConnectionQuality.UNRECOGNIZED;
162
- }
163
- }
164
-
165
- export function connectionQualityToJSON(object: ConnectionQuality): string {
166
- switch (object) {
167
- case ConnectionQuality.POOR:
168
- return "POOR";
169
- case ConnectionQuality.GOOD:
170
- return "GOOD";
171
- case ConnectionQuality.EXCELLENT:
172
- return "EXCELLENT";
173
- default:
174
- return "UNKNOWN";
175
- }
176
- }
177
-
178
- export enum ClientConfigSetting {
179
- UNSET = 0,
180
- DISABLED = 1,
181
- ENABLED = 2,
182
- UNRECOGNIZED = -1,
183
- }
184
-
185
- export function clientConfigSettingFromJSON(object: any): ClientConfigSetting {
186
- switch (object) {
187
- case 0:
188
- case "UNSET":
189
- return ClientConfigSetting.UNSET;
190
- case 1:
191
- case "DISABLED":
192
- return ClientConfigSetting.DISABLED;
193
- case 2:
194
- case "ENABLED":
195
- return ClientConfigSetting.ENABLED;
196
- case -1:
197
- case "UNRECOGNIZED":
198
- default:
199
- return ClientConfigSetting.UNRECOGNIZED;
200
- }
201
- }
202
-
203
- export function clientConfigSettingToJSON(object: ClientConfigSetting): string {
204
- switch (object) {
205
- case ClientConfigSetting.UNSET:
206
- return "UNSET";
207
- case ClientConfigSetting.DISABLED:
208
- return "DISABLED";
209
- case ClientConfigSetting.ENABLED:
210
- return "ENABLED";
211
- default:
212
- return "UNKNOWN";
213
- }
214
- }
215
-
216
- export interface Room {
217
- sid: string;
218
- name: string;
219
- emptyTimeout: number;
220
- maxParticipants: number;
221
- creationTime: number;
222
- turnPassword: string;
223
- enabledCodecs: Codec[];
224
- metadata: string;
225
- numParticipants: number;
226
- activeRecording: boolean;
227
- }
228
-
229
- export interface Codec {
230
- mime: string;
231
- fmtpLine: string;
232
- }
233
-
234
- export interface ParticipantPermission {
235
- /** allow participant to subscribe to other tracks in the room */
236
- canSubscribe: boolean;
237
- /** allow participant to publish new tracks to room */
238
- canPublish: boolean;
239
- /** allow participant to publish data */
240
- canPublishData: boolean;
241
- /** indicates that it's hidden to others */
242
- hidden: boolean;
243
- /** indicates it's a recorder instance */
244
- recorder: boolean;
245
- }
246
-
247
- export interface ParticipantInfo {
248
- sid: string;
249
- identity: string;
250
- state: ParticipantInfo_State;
251
- tracks: TrackInfo[];
252
- metadata: string;
253
- /** timestamp when participant joined room, in seconds */
254
- joinedAt: number;
255
- name: string;
256
- version: number;
257
- permission?: ParticipantPermission;
258
- }
259
-
260
- export enum ParticipantInfo_State {
261
- /** JOINING - websocket' connected, but not offered yet */
262
- JOINING = 0,
263
- /** JOINED - server received client offer */
264
- JOINED = 1,
265
- /** ACTIVE - ICE connectivity established */
266
- ACTIVE = 2,
267
- /** DISCONNECTED - WS disconnected */
268
- DISCONNECTED = 3,
269
- UNRECOGNIZED = -1,
270
- }
271
-
272
- export function participantInfo_StateFromJSON(
273
- object: any
274
- ): ParticipantInfo_State {
275
- switch (object) {
276
- case 0:
277
- case "JOINING":
278
- return ParticipantInfo_State.JOINING;
279
- case 1:
280
- case "JOINED":
281
- return ParticipantInfo_State.JOINED;
282
- case 2:
283
- case "ACTIVE":
284
- return ParticipantInfo_State.ACTIVE;
285
- case 3:
286
- case "DISCONNECTED":
287
- return ParticipantInfo_State.DISCONNECTED;
288
- case -1:
289
- case "UNRECOGNIZED":
290
- default:
291
- return ParticipantInfo_State.UNRECOGNIZED;
292
- }
293
- }
294
-
295
- export function participantInfo_StateToJSON(
296
- object: ParticipantInfo_State
297
- ): string {
298
- switch (object) {
299
- case ParticipantInfo_State.JOINING:
300
- return "JOINING";
301
- case ParticipantInfo_State.JOINED:
302
- return "JOINED";
303
- case ParticipantInfo_State.ACTIVE:
304
- return "ACTIVE";
305
- case ParticipantInfo_State.DISCONNECTED:
306
- return "DISCONNECTED";
307
- default:
308
- return "UNKNOWN";
309
- }
310
- }
311
-
312
- export interface TrackInfo {
313
- sid: string;
314
- type: TrackType;
315
- name: string;
316
- muted: boolean;
317
- /**
318
- * original width of video (unset for audio)
319
- * clients may receive a lower resolution version with simulcast
320
- */
321
- width: number;
322
- /** original height of video (unset for audio) */
323
- height: number;
324
- /** true if track is simulcasted */
325
- simulcast: boolean;
326
- /** true if DTX (Discontinuous Transmission) is disabled for audio */
327
- disableDtx: boolean;
328
- /** source of media */
329
- source: TrackSource;
330
- layers: VideoLayer[];
331
- /** mime type of codec */
332
- mimeType: string;
333
- mid: string;
334
- }
335
-
336
- /** provide information about available spatial layers */
337
- export interface VideoLayer {
338
- /** for tracks with a single layer, this should be HIGH */
339
- quality: VideoQuality;
340
- width: number;
341
- height: number;
342
- /** target bitrate, server will measure actual */
343
- bitrate: number;
344
- ssrc: number;
345
- }
346
-
347
- /** new DataPacket API */
348
- export interface DataPacket {
349
- kind: DataPacket_Kind;
350
- user?: UserPacket | undefined;
351
- speaker?: ActiveSpeakerUpdate | undefined;
352
- }
353
-
354
- export enum DataPacket_Kind {
355
- RELIABLE = 0,
356
- LOSSY = 1,
357
- UNRECOGNIZED = -1,
358
- }
359
-
360
- export function dataPacket_KindFromJSON(object: any): DataPacket_Kind {
361
- switch (object) {
362
- case 0:
363
- case "RELIABLE":
364
- return DataPacket_Kind.RELIABLE;
365
- case 1:
366
- case "LOSSY":
367
- return DataPacket_Kind.LOSSY;
368
- case -1:
369
- case "UNRECOGNIZED":
370
- default:
371
- return DataPacket_Kind.UNRECOGNIZED;
372
- }
373
- }
374
-
375
- export function dataPacket_KindToJSON(object: DataPacket_Kind): string {
376
- switch (object) {
377
- case DataPacket_Kind.RELIABLE:
378
- return "RELIABLE";
379
- case DataPacket_Kind.LOSSY:
380
- return "LOSSY";
381
- default:
382
- return "UNKNOWN";
383
- }
384
- }
385
-
386
- export interface ActiveSpeakerUpdate {
387
- speakers: SpeakerInfo[];
388
- }
389
-
390
- export interface SpeakerInfo {
391
- sid: string;
392
- /** audio level, 0-1.0, 1 is loudest */
393
- level: number;
394
- /** true if speaker is currently active */
395
- active: boolean;
396
- }
397
-
398
- export interface UserPacket {
399
- /** participant ID of user that sent the message */
400
- participantSid: string;
401
- /** user defined payload */
402
- payload: Uint8Array;
403
- /** the ID of the participants who will receive the message (the message will be sent to all the people in the room if this variable is empty) */
404
- destinationSids: string[];
405
- }
406
-
407
- export interface ParticipantTracks {
408
- /** participant ID of participant to whom the tracks belong */
409
- participantSid: string;
410
- trackSids: string[];
411
- }
412
-
413
- /** details about the client */
414
- export interface ClientInfo {
415
- sdk: ClientInfo_SDK;
416
- version: string;
417
- protocol: number;
418
- os: string;
419
- osVersion: string;
420
- deviceModel: string;
421
- browser: string;
422
- browserVersion: string;
423
- address: string;
424
- }
425
-
426
- export enum ClientInfo_SDK {
427
- UNKNOWN = 0,
428
- JS = 1,
429
- SWIFT = 2,
430
- ANDROID = 3,
431
- FLUTTER = 4,
432
- GO = 5,
433
- UNITY = 6,
434
- UNRECOGNIZED = -1,
435
- }
436
-
437
- export function clientInfo_SDKFromJSON(object: any): ClientInfo_SDK {
438
- switch (object) {
439
- case 0:
440
- case "UNKNOWN":
441
- return ClientInfo_SDK.UNKNOWN;
442
- case 1:
443
- case "JS":
444
- return ClientInfo_SDK.JS;
445
- case 2:
446
- case "SWIFT":
447
- return ClientInfo_SDK.SWIFT;
448
- case 3:
449
- case "ANDROID":
450
- return ClientInfo_SDK.ANDROID;
451
- case 4:
452
- case "FLUTTER":
453
- return ClientInfo_SDK.FLUTTER;
454
- case 5:
455
- case "GO":
456
- return ClientInfo_SDK.GO;
457
- case 6:
458
- case "UNITY":
459
- return ClientInfo_SDK.UNITY;
460
- case -1:
461
- case "UNRECOGNIZED":
462
- default:
463
- return ClientInfo_SDK.UNRECOGNIZED;
464
- }
465
- }
466
-
467
- export function clientInfo_SDKToJSON(object: ClientInfo_SDK): string {
468
- switch (object) {
469
- case ClientInfo_SDK.UNKNOWN:
470
- return "UNKNOWN";
471
- case ClientInfo_SDK.JS:
472
- return "JS";
473
- case ClientInfo_SDK.SWIFT:
474
- return "SWIFT";
475
- case ClientInfo_SDK.ANDROID:
476
- return "ANDROID";
477
- case ClientInfo_SDK.FLUTTER:
478
- return "FLUTTER";
479
- case ClientInfo_SDK.GO:
480
- return "GO";
481
- case ClientInfo_SDK.UNITY:
482
- return "UNITY";
483
- default:
484
- return "UNKNOWN";
485
- }
486
- }
487
-
488
- /** server provided client configuration */
489
- export interface ClientConfiguration {
490
- video?: VideoConfiguration;
491
- screen?: VideoConfiguration;
492
- resumeConnection: ClientConfigSetting;
493
- }
494
-
495
- export interface VideoConfiguration {
496
- hardwareEncoder: ClientConfigSetting;
497
- }
498
-
499
- export interface RTPStats {
500
- startTime?: Date;
501
- endTime?: Date;
502
- duration: number;
503
- packets: number;
504
- packetRate: number;
505
- bytes: number;
506
- bitrate: number;
507
- packetsLost: number;
508
- packetLossRate: number;
509
- packetLossPercentage: number;
510
- packetsDuplicate: number;
511
- packetDuplicateRate: number;
512
- bytesDuplicate: number;
513
- bitrateDuplicate: number;
514
- packetsPadding: number;
515
- packetPaddingRate: number;
516
- bytesPadding: number;
517
- bitratePadding: number;
518
- packetsOutOfOrder: number;
519
- frames: number;
520
- frameRate: number;
521
- jitterCurrent: number;
522
- jitterMax: number;
523
- gapHistogram: { [key: number]: number };
524
- nacks: number;
525
- nackMisses: number;
526
- plis: number;
527
- lastPli?: Date;
528
- firs: number;
529
- lastFir?: Date;
530
- rttCurrent: number;
531
- rttMax: number;
532
- keyFrames: number;
533
- lastKeyFrame?: Date;
534
- layerLockPlis: number;
535
- lastLayerLockPli?: Date;
536
- }
537
-
538
- export interface RTPStats_GapHistogramEntry {
539
- key: number;
540
- value: number;
541
- }
542
-
543
- function createBaseRoom(): Room {
544
- return {
545
- sid: "",
546
- name: "",
547
- emptyTimeout: 0,
548
- maxParticipants: 0,
549
- creationTime: 0,
550
- turnPassword: "",
551
- enabledCodecs: [],
552
- metadata: "",
553
- numParticipants: 0,
554
- activeRecording: false,
555
- };
556
- }
557
-
558
- export const Room = {
559
- encode(message: Room, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer {
560
- if (message.sid !== "") {
561
- writer.uint32(10).string(message.sid);
562
- }
563
- if (message.name !== "") {
564
- writer.uint32(18).string(message.name);
565
- }
566
- if (message.emptyTimeout !== 0) {
567
- writer.uint32(24).uint32(message.emptyTimeout);
568
- }
569
- if (message.maxParticipants !== 0) {
570
- writer.uint32(32).uint32(message.maxParticipants);
571
- }
572
- if (message.creationTime !== 0) {
573
- writer.uint32(40).int64(message.creationTime);
574
- }
575
- if (message.turnPassword !== "") {
576
- writer.uint32(50).string(message.turnPassword);
577
- }
578
- for (const v of message.enabledCodecs) {
579
- Codec.encode(v!, writer.uint32(58).fork()).ldelim();
580
- }
581
- if (message.metadata !== "") {
582
- writer.uint32(66).string(message.metadata);
583
- }
584
- if (message.numParticipants !== 0) {
585
- writer.uint32(72).uint32(message.numParticipants);
586
- }
587
- if (message.activeRecording === true) {
588
- writer.uint32(80).bool(message.activeRecording);
589
- }
590
- return writer;
591
- },
592
-
593
- decode(input: _m0.Reader | Uint8Array, length?: number): Room {
594
- const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);
595
- let end = length === undefined ? reader.len : reader.pos + length;
596
- const message = createBaseRoom();
597
- while (reader.pos < end) {
598
- const tag = reader.uint32();
599
- switch (tag >>> 3) {
600
- case 1:
601
- message.sid = reader.string();
602
- break;
603
- case 2:
604
- message.name = reader.string();
605
- break;
606
- case 3:
607
- message.emptyTimeout = reader.uint32();
608
- break;
609
- case 4:
610
- message.maxParticipants = reader.uint32();
611
- break;
612
- case 5:
613
- message.creationTime = longToNumber(reader.int64() as Long);
614
- break;
615
- case 6:
616
- message.turnPassword = reader.string();
617
- break;
618
- case 7:
619
- message.enabledCodecs.push(Codec.decode(reader, reader.uint32()));
620
- break;
621
- case 8:
622
- message.metadata = reader.string();
623
- break;
624
- case 9:
625
- message.numParticipants = reader.uint32();
626
- break;
627
- case 10:
628
- message.activeRecording = reader.bool();
629
- break;
630
- default:
631
- reader.skipType(tag & 7);
632
- break;
633
- }
634
- }
635
- return message;
636
- },
637
-
638
- fromJSON(object: any): Room {
639
- return {
640
- sid: isSet(object.sid) ? String(object.sid) : "",
641
- name: isSet(object.name) ? String(object.name) : "",
642
- emptyTimeout: isSet(object.emptyTimeout)
643
- ? Number(object.emptyTimeout)
644
- : 0,
645
- maxParticipants: isSet(object.maxParticipants)
646
- ? Number(object.maxParticipants)
647
- : 0,
648
- creationTime: isSet(object.creationTime)
649
- ? Number(object.creationTime)
650
- : 0,
651
- turnPassword: isSet(object.turnPassword)
652
- ? String(object.turnPassword)
653
- : "",
654
- enabledCodecs: Array.isArray(object?.enabledCodecs)
655
- ? object.enabledCodecs.map((e: any) => Codec.fromJSON(e))
656
- : [],
657
- metadata: isSet(object.metadata) ? String(object.metadata) : "",
658
- numParticipants: isSet(object.numParticipants)
659
- ? Number(object.numParticipants)
660
- : 0,
661
- activeRecording: isSet(object.activeRecording)
662
- ? Boolean(object.activeRecording)
663
- : false,
664
- };
665
- },
666
-
667
- toJSON(message: Room): unknown {
668
- const obj: any = {};
669
- message.sid !== undefined && (obj.sid = message.sid);
670
- message.name !== undefined && (obj.name = message.name);
671
- message.emptyTimeout !== undefined &&
672
- (obj.emptyTimeout = Math.round(message.emptyTimeout));
673
- message.maxParticipants !== undefined &&
674
- (obj.maxParticipants = Math.round(message.maxParticipants));
675
- message.creationTime !== undefined &&
676
- (obj.creationTime = Math.round(message.creationTime));
677
- message.turnPassword !== undefined &&
678
- (obj.turnPassword = message.turnPassword);
679
- if (message.enabledCodecs) {
680
- obj.enabledCodecs = message.enabledCodecs.map((e) =>
681
- e ? Codec.toJSON(e) : undefined
682
- );
683
- } else {
684
- obj.enabledCodecs = [];
685
- }
686
- message.metadata !== undefined && (obj.metadata = message.metadata);
687
- message.numParticipants !== undefined &&
688
- (obj.numParticipants = Math.round(message.numParticipants));
689
- message.activeRecording !== undefined &&
690
- (obj.activeRecording = message.activeRecording);
691
- return obj;
692
- },
693
-
694
- fromPartial<I extends Exact<DeepPartial<Room>, I>>(object: I): Room {
695
- const message = createBaseRoom();
696
- message.sid = object.sid ?? "";
697
- message.name = object.name ?? "";
698
- message.emptyTimeout = object.emptyTimeout ?? 0;
699
- message.maxParticipants = object.maxParticipants ?? 0;
700
- message.creationTime = object.creationTime ?? 0;
701
- message.turnPassword = object.turnPassword ?? "";
702
- message.enabledCodecs =
703
- object.enabledCodecs?.map((e) => Codec.fromPartial(e)) || [];
704
- message.metadata = object.metadata ?? "";
705
- message.numParticipants = object.numParticipants ?? 0;
706
- message.activeRecording = object.activeRecording ?? false;
707
- return message;
708
- },
709
- };
710
-
711
- function createBaseCodec(): Codec {
712
- return { mime: "", fmtpLine: "" };
713
- }
714
-
715
- export const Codec = {
716
- encode(message: Codec, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer {
717
- if (message.mime !== "") {
718
- writer.uint32(10).string(message.mime);
719
- }
720
- if (message.fmtpLine !== "") {
721
- writer.uint32(18).string(message.fmtpLine);
722
- }
723
- return writer;
724
- },
725
-
726
- decode(input: _m0.Reader | Uint8Array, length?: number): Codec {
727
- const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);
728
- let end = length === undefined ? reader.len : reader.pos + length;
729
- const message = createBaseCodec();
730
- while (reader.pos < end) {
731
- const tag = reader.uint32();
732
- switch (tag >>> 3) {
733
- case 1:
734
- message.mime = reader.string();
735
- break;
736
- case 2:
737
- message.fmtpLine = reader.string();
738
- break;
739
- default:
740
- reader.skipType(tag & 7);
741
- break;
742
- }
743
- }
744
- return message;
745
- },
746
-
747
- fromJSON(object: any): Codec {
748
- return {
749
- mime: isSet(object.mime) ? String(object.mime) : "",
750
- fmtpLine: isSet(object.fmtpLine) ? String(object.fmtpLine) : "",
751
- };
752
- },
753
-
754
- toJSON(message: Codec): unknown {
755
- const obj: any = {};
756
- message.mime !== undefined && (obj.mime = message.mime);
757
- message.fmtpLine !== undefined && (obj.fmtpLine = message.fmtpLine);
758
- return obj;
759
- },
760
-
761
- fromPartial<I extends Exact<DeepPartial<Codec>, I>>(object: I): Codec {
762
- const message = createBaseCodec();
763
- message.mime = object.mime ?? "";
764
- message.fmtpLine = object.fmtpLine ?? "";
765
- return message;
766
- },
767
- };
768
-
769
- function createBaseParticipantPermission(): ParticipantPermission {
770
- return {
771
- canSubscribe: false,
772
- canPublish: false,
773
- canPublishData: false,
774
- hidden: false,
775
- recorder: false,
776
- };
777
- }
778
-
779
- export const ParticipantPermission = {
780
- encode(
781
- message: ParticipantPermission,
782
- writer: _m0.Writer = _m0.Writer.create()
783
- ): _m0.Writer {
784
- if (message.canSubscribe === true) {
785
- writer.uint32(8).bool(message.canSubscribe);
786
- }
787
- if (message.canPublish === true) {
788
- writer.uint32(16).bool(message.canPublish);
789
- }
790
- if (message.canPublishData === true) {
791
- writer.uint32(24).bool(message.canPublishData);
792
- }
793
- if (message.hidden === true) {
794
- writer.uint32(56).bool(message.hidden);
795
- }
796
- if (message.recorder === true) {
797
- writer.uint32(64).bool(message.recorder);
798
- }
799
- return writer;
800
- },
801
-
802
- decode(
803
- input: _m0.Reader | Uint8Array,
804
- length?: number
805
- ): ParticipantPermission {
806
- const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);
807
- let end = length === undefined ? reader.len : reader.pos + length;
808
- const message = createBaseParticipantPermission();
809
- while (reader.pos < end) {
810
- const tag = reader.uint32();
811
- switch (tag >>> 3) {
812
- case 1:
813
- message.canSubscribe = reader.bool();
814
- break;
815
- case 2:
816
- message.canPublish = reader.bool();
817
- break;
818
- case 3:
819
- message.canPublishData = reader.bool();
820
- break;
821
- case 7:
822
- message.hidden = reader.bool();
823
- break;
824
- case 8:
825
- message.recorder = reader.bool();
826
- break;
827
- default:
828
- reader.skipType(tag & 7);
829
- break;
830
- }
831
- }
832
- return message;
833
- },
834
-
835
- fromJSON(object: any): ParticipantPermission {
836
- return {
837
- canSubscribe: isSet(object.canSubscribe)
838
- ? Boolean(object.canSubscribe)
839
- : false,
840
- canPublish: isSet(object.canPublish) ? Boolean(object.canPublish) : false,
841
- canPublishData: isSet(object.canPublishData)
842
- ? Boolean(object.canPublishData)
843
- : false,
844
- hidden: isSet(object.hidden) ? Boolean(object.hidden) : false,
845
- recorder: isSet(object.recorder) ? Boolean(object.recorder) : false,
846
- };
847
- },
848
-
849
- toJSON(message: ParticipantPermission): unknown {
850
- const obj: any = {};
851
- message.canSubscribe !== undefined &&
852
- (obj.canSubscribe = message.canSubscribe);
853
- message.canPublish !== undefined && (obj.canPublish = message.canPublish);
854
- message.canPublishData !== undefined &&
855
- (obj.canPublishData = message.canPublishData);
856
- message.hidden !== undefined && (obj.hidden = message.hidden);
857
- message.recorder !== undefined && (obj.recorder = message.recorder);
858
- return obj;
859
- },
860
-
861
- fromPartial<I extends Exact<DeepPartial<ParticipantPermission>, I>>(
862
- object: I
863
- ): ParticipantPermission {
864
- const message = createBaseParticipantPermission();
865
- message.canSubscribe = object.canSubscribe ?? false;
866
- message.canPublish = object.canPublish ?? false;
867
- message.canPublishData = object.canPublishData ?? false;
868
- message.hidden = object.hidden ?? false;
869
- message.recorder = object.recorder ?? false;
870
- return message;
871
- },
872
- };
873
-
874
- function createBaseParticipantInfo(): ParticipantInfo {
875
- return {
876
- sid: "",
877
- identity: "",
878
- state: 0,
879
- tracks: [],
880
- metadata: "",
881
- joinedAt: 0,
882
- name: "",
883
- version: 0,
884
- permission: undefined,
885
- };
886
- }
887
-
888
- export const ParticipantInfo = {
889
- encode(
890
- message: ParticipantInfo,
891
- writer: _m0.Writer = _m0.Writer.create()
892
- ): _m0.Writer {
893
- if (message.sid !== "") {
894
- writer.uint32(10).string(message.sid);
895
- }
896
- if (message.identity !== "") {
897
- writer.uint32(18).string(message.identity);
898
- }
899
- if (message.state !== 0) {
900
- writer.uint32(24).int32(message.state);
901
- }
902
- for (const v of message.tracks) {
903
- TrackInfo.encode(v!, writer.uint32(34).fork()).ldelim();
904
- }
905
- if (message.metadata !== "") {
906
- writer.uint32(42).string(message.metadata);
907
- }
908
- if (message.joinedAt !== 0) {
909
- writer.uint32(48).int64(message.joinedAt);
910
- }
911
- if (message.name !== "") {
912
- writer.uint32(74).string(message.name);
913
- }
914
- if (message.version !== 0) {
915
- writer.uint32(80).uint32(message.version);
916
- }
917
- if (message.permission !== undefined) {
918
- ParticipantPermission.encode(
919
- message.permission,
920
- writer.uint32(90).fork()
921
- ).ldelim();
922
- }
923
- return writer;
924
- },
925
-
926
- decode(input: _m0.Reader | Uint8Array, length?: number): ParticipantInfo {
927
- const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);
928
- let end = length === undefined ? reader.len : reader.pos + length;
929
- const message = createBaseParticipantInfo();
930
- while (reader.pos < end) {
931
- const tag = reader.uint32();
932
- switch (tag >>> 3) {
933
- case 1:
934
- message.sid = reader.string();
935
- break;
936
- case 2:
937
- message.identity = reader.string();
938
- break;
939
- case 3:
940
- message.state = reader.int32() as any;
941
- break;
942
- case 4:
943
- message.tracks.push(TrackInfo.decode(reader, reader.uint32()));
944
- break;
945
- case 5:
946
- message.metadata = reader.string();
947
- break;
948
- case 6:
949
- message.joinedAt = longToNumber(reader.int64() as Long);
950
- break;
951
- case 9:
952
- message.name = reader.string();
953
- break;
954
- case 10:
955
- message.version = reader.uint32();
956
- break;
957
- case 11:
958
- message.permission = ParticipantPermission.decode(
959
- reader,
960
- reader.uint32()
961
- );
962
- break;
963
- default:
964
- reader.skipType(tag & 7);
965
- break;
966
- }
967
- }
968
- return message;
969
- },
970
-
971
- fromJSON(object: any): ParticipantInfo {
972
- return {
973
- sid: isSet(object.sid) ? String(object.sid) : "",
974
- identity: isSet(object.identity) ? String(object.identity) : "",
975
- state: isSet(object.state)
976
- ? participantInfo_StateFromJSON(object.state)
977
- : 0,
978
- tracks: Array.isArray(object?.tracks)
979
- ? object.tracks.map((e: any) => TrackInfo.fromJSON(e))
980
- : [],
981
- metadata: isSet(object.metadata) ? String(object.metadata) : "",
982
- joinedAt: isSet(object.joinedAt) ? Number(object.joinedAt) : 0,
983
- name: isSet(object.name) ? String(object.name) : "",
984
- version: isSet(object.version) ? Number(object.version) : 0,
985
- permission: isSet(object.permission)
986
- ? ParticipantPermission.fromJSON(object.permission)
987
- : undefined,
988
- };
989
- },
990
-
991
- toJSON(message: ParticipantInfo): unknown {
992
- const obj: any = {};
993
- message.sid !== undefined && (obj.sid = message.sid);
994
- message.identity !== undefined && (obj.identity = message.identity);
995
- message.state !== undefined &&
996
- (obj.state = participantInfo_StateToJSON(message.state));
997
- if (message.tracks) {
998
- obj.tracks = message.tracks.map((e) =>
999
- e ? TrackInfo.toJSON(e) : undefined
1000
- );
1001
- } else {
1002
- obj.tracks = [];
1003
- }
1004
- message.metadata !== undefined && (obj.metadata = message.metadata);
1005
- message.joinedAt !== undefined &&
1006
- (obj.joinedAt = Math.round(message.joinedAt));
1007
- message.name !== undefined && (obj.name = message.name);
1008
- message.version !== undefined &&
1009
- (obj.version = Math.round(message.version));
1010
- message.permission !== undefined &&
1011
- (obj.permission = message.permission
1012
- ? ParticipantPermission.toJSON(message.permission)
1013
- : undefined);
1014
- return obj;
1015
- },
1016
-
1017
- fromPartial<I extends Exact<DeepPartial<ParticipantInfo>, I>>(
1018
- object: I
1019
- ): ParticipantInfo {
1020
- const message = createBaseParticipantInfo();
1021
- message.sid = object.sid ?? "";
1022
- message.identity = object.identity ?? "";
1023
- message.state = object.state ?? 0;
1024
- message.tracks = object.tracks?.map((e) => TrackInfo.fromPartial(e)) || [];
1025
- message.metadata = object.metadata ?? "";
1026
- message.joinedAt = object.joinedAt ?? 0;
1027
- message.name = object.name ?? "";
1028
- message.version = object.version ?? 0;
1029
- message.permission =
1030
- object.permission !== undefined && object.permission !== null
1031
- ? ParticipantPermission.fromPartial(object.permission)
1032
- : undefined;
1033
- return message;
1034
- },
1035
- };
1036
-
1037
- function createBaseTrackInfo(): TrackInfo {
1038
- return {
1039
- sid: "",
1040
- type: 0,
1041
- name: "",
1042
- muted: false,
1043
- width: 0,
1044
- height: 0,
1045
- simulcast: false,
1046
- disableDtx: false,
1047
- source: 0,
1048
- layers: [],
1049
- mimeType: "",
1050
- mid: "",
1051
- };
1052
- }
1053
-
1054
- export const TrackInfo = {
1055
- encode(
1056
- message: TrackInfo,
1057
- writer: _m0.Writer = _m0.Writer.create()
1058
- ): _m0.Writer {
1059
- if (message.sid !== "") {
1060
- writer.uint32(10).string(message.sid);
1061
- }
1062
- if (message.type !== 0) {
1063
- writer.uint32(16).int32(message.type);
1064
- }
1065
- if (message.name !== "") {
1066
- writer.uint32(26).string(message.name);
1067
- }
1068
- if (message.muted === true) {
1069
- writer.uint32(32).bool(message.muted);
1070
- }
1071
- if (message.width !== 0) {
1072
- writer.uint32(40).uint32(message.width);
1073
- }
1074
- if (message.height !== 0) {
1075
- writer.uint32(48).uint32(message.height);
1076
- }
1077
- if (message.simulcast === true) {
1078
- writer.uint32(56).bool(message.simulcast);
1079
- }
1080
- if (message.disableDtx === true) {
1081
- writer.uint32(64).bool(message.disableDtx);
1082
- }
1083
- if (message.source !== 0) {
1084
- writer.uint32(72).int32(message.source);
1085
- }
1086
- for (const v of message.layers) {
1087
- VideoLayer.encode(v!, writer.uint32(82).fork()).ldelim();
1088
- }
1089
- if (message.mimeType !== "") {
1090
- writer.uint32(90).string(message.mimeType);
1091
- }
1092
- if (message.mid !== "") {
1093
- writer.uint32(98).string(message.mid);
1094
- }
1095
- return writer;
1096
- },
1097
-
1098
- decode(input: _m0.Reader | Uint8Array, length?: number): TrackInfo {
1099
- const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);
1100
- let end = length === undefined ? reader.len : reader.pos + length;
1101
- const message = createBaseTrackInfo();
1102
- while (reader.pos < end) {
1103
- const tag = reader.uint32();
1104
- switch (tag >>> 3) {
1105
- case 1:
1106
- message.sid = reader.string();
1107
- break;
1108
- case 2:
1109
- message.type = reader.int32() as any;
1110
- break;
1111
- case 3:
1112
- message.name = reader.string();
1113
- break;
1114
- case 4:
1115
- message.muted = reader.bool();
1116
- break;
1117
- case 5:
1118
- message.width = reader.uint32();
1119
- break;
1120
- case 6:
1121
- message.height = reader.uint32();
1122
- break;
1123
- case 7:
1124
- message.simulcast = reader.bool();
1125
- break;
1126
- case 8:
1127
- message.disableDtx = reader.bool();
1128
- break;
1129
- case 9:
1130
- message.source = reader.int32() as any;
1131
- break;
1132
- case 10:
1133
- message.layers.push(VideoLayer.decode(reader, reader.uint32()));
1134
- break;
1135
- case 11:
1136
- message.mimeType = reader.string();
1137
- break;
1138
- case 12:
1139
- message.mid = reader.string();
1140
- break;
1141
- default:
1142
- reader.skipType(tag & 7);
1143
- break;
1144
- }
1145
- }
1146
- return message;
1147
- },
1148
-
1149
- fromJSON(object: any): TrackInfo {
1150
- return {
1151
- sid: isSet(object.sid) ? String(object.sid) : "",
1152
- type: isSet(object.type) ? trackTypeFromJSON(object.type) : 0,
1153
- name: isSet(object.name) ? String(object.name) : "",
1154
- muted: isSet(object.muted) ? Boolean(object.muted) : false,
1155
- width: isSet(object.width) ? Number(object.width) : 0,
1156
- height: isSet(object.height) ? Number(object.height) : 0,
1157
- simulcast: isSet(object.simulcast) ? Boolean(object.simulcast) : false,
1158
- disableDtx: isSet(object.disableDtx) ? Boolean(object.disableDtx) : false,
1159
- source: isSet(object.source) ? trackSourceFromJSON(object.source) : 0,
1160
- layers: Array.isArray(object?.layers)
1161
- ? object.layers.map((e: any) => VideoLayer.fromJSON(e))
1162
- : [],
1163
- mimeType: isSet(object.mimeType) ? String(object.mimeType) : "",
1164
- mid: isSet(object.mid) ? String(object.mid) : "",
1165
- };
1166
- },
1167
-
1168
- toJSON(message: TrackInfo): unknown {
1169
- const obj: any = {};
1170
- message.sid !== undefined && (obj.sid = message.sid);
1171
- message.type !== undefined && (obj.type = trackTypeToJSON(message.type));
1172
- message.name !== undefined && (obj.name = message.name);
1173
- message.muted !== undefined && (obj.muted = message.muted);
1174
- message.width !== undefined && (obj.width = Math.round(message.width));
1175
- message.height !== undefined && (obj.height = Math.round(message.height));
1176
- message.simulcast !== undefined && (obj.simulcast = message.simulcast);
1177
- message.disableDtx !== undefined && (obj.disableDtx = message.disableDtx);
1178
- message.source !== undefined &&
1179
- (obj.source = trackSourceToJSON(message.source));
1180
- if (message.layers) {
1181
- obj.layers = message.layers.map((e) =>
1182
- e ? VideoLayer.toJSON(e) : undefined
1183
- );
1184
- } else {
1185
- obj.layers = [];
1186
- }
1187
- message.mimeType !== undefined && (obj.mimeType = message.mimeType);
1188
- message.mid !== undefined && (obj.mid = message.mid);
1189
- return obj;
1190
- },
1191
-
1192
- fromPartial<I extends Exact<DeepPartial<TrackInfo>, I>>(
1193
- object: I
1194
- ): TrackInfo {
1195
- const message = createBaseTrackInfo();
1196
- message.sid = object.sid ?? "";
1197
- message.type = object.type ?? 0;
1198
- message.name = object.name ?? "";
1199
- message.muted = object.muted ?? false;
1200
- message.width = object.width ?? 0;
1201
- message.height = object.height ?? 0;
1202
- message.simulcast = object.simulcast ?? false;
1203
- message.disableDtx = object.disableDtx ?? false;
1204
- message.source = object.source ?? 0;
1205
- message.layers = object.layers?.map((e) => VideoLayer.fromPartial(e)) || [];
1206
- message.mimeType = object.mimeType ?? "";
1207
- message.mid = object.mid ?? "";
1208
- return message;
1209
- },
1210
- };
1211
-
1212
- function createBaseVideoLayer(): VideoLayer {
1213
- return { quality: 0, width: 0, height: 0, bitrate: 0, ssrc: 0 };
1214
- }
1215
-
1216
- export const VideoLayer = {
1217
- encode(
1218
- message: VideoLayer,
1219
- writer: _m0.Writer = _m0.Writer.create()
1220
- ): _m0.Writer {
1221
- if (message.quality !== 0) {
1222
- writer.uint32(8).int32(message.quality);
1223
- }
1224
- if (message.width !== 0) {
1225
- writer.uint32(16).uint32(message.width);
1226
- }
1227
- if (message.height !== 0) {
1228
- writer.uint32(24).uint32(message.height);
1229
- }
1230
- if (message.bitrate !== 0) {
1231
- writer.uint32(32).uint32(message.bitrate);
1232
- }
1233
- if (message.ssrc !== 0) {
1234
- writer.uint32(40).uint32(message.ssrc);
1235
- }
1236
- return writer;
1237
- },
1238
-
1239
- decode(input: _m0.Reader | Uint8Array, length?: number): VideoLayer {
1240
- const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);
1241
- let end = length === undefined ? reader.len : reader.pos + length;
1242
- const message = createBaseVideoLayer();
1243
- while (reader.pos < end) {
1244
- const tag = reader.uint32();
1245
- switch (tag >>> 3) {
1246
- case 1:
1247
- message.quality = reader.int32() as any;
1248
- break;
1249
- case 2:
1250
- message.width = reader.uint32();
1251
- break;
1252
- case 3:
1253
- message.height = reader.uint32();
1254
- break;
1255
- case 4:
1256
- message.bitrate = reader.uint32();
1257
- break;
1258
- case 5:
1259
- message.ssrc = reader.uint32();
1260
- break;
1261
- default:
1262
- reader.skipType(tag & 7);
1263
- break;
1264
- }
1265
- }
1266
- return message;
1267
- },
1268
-
1269
- fromJSON(object: any): VideoLayer {
1270
- return {
1271
- quality: isSet(object.quality) ? videoQualityFromJSON(object.quality) : 0,
1272
- width: isSet(object.width) ? Number(object.width) : 0,
1273
- height: isSet(object.height) ? Number(object.height) : 0,
1274
- bitrate: isSet(object.bitrate) ? Number(object.bitrate) : 0,
1275
- ssrc: isSet(object.ssrc) ? Number(object.ssrc) : 0,
1276
- };
1277
- },
1278
-
1279
- toJSON(message: VideoLayer): unknown {
1280
- const obj: any = {};
1281
- message.quality !== undefined &&
1282
- (obj.quality = videoQualityToJSON(message.quality));
1283
- message.width !== undefined && (obj.width = Math.round(message.width));
1284
- message.height !== undefined && (obj.height = Math.round(message.height));
1285
- message.bitrate !== undefined &&
1286
- (obj.bitrate = Math.round(message.bitrate));
1287
- message.ssrc !== undefined && (obj.ssrc = Math.round(message.ssrc));
1288
- return obj;
1289
- },
1290
-
1291
- fromPartial<I extends Exact<DeepPartial<VideoLayer>, I>>(
1292
- object: I
1293
- ): VideoLayer {
1294
- const message = createBaseVideoLayer();
1295
- message.quality = object.quality ?? 0;
1296
- message.width = object.width ?? 0;
1297
- message.height = object.height ?? 0;
1298
- message.bitrate = object.bitrate ?? 0;
1299
- message.ssrc = object.ssrc ?? 0;
1300
- return message;
1301
- },
1302
- };
1303
-
1304
- function createBaseDataPacket(): DataPacket {
1305
- return { kind: 0, user: undefined, speaker: undefined };
1306
- }
1307
-
1308
- export const DataPacket = {
1309
- encode(
1310
- message: DataPacket,
1311
- writer: _m0.Writer = _m0.Writer.create()
1312
- ): _m0.Writer {
1313
- if (message.kind !== 0) {
1314
- writer.uint32(8).int32(message.kind);
1315
- }
1316
- if (message.user !== undefined) {
1317
- UserPacket.encode(message.user, writer.uint32(18).fork()).ldelim();
1318
- }
1319
- if (message.speaker !== undefined) {
1320
- ActiveSpeakerUpdate.encode(
1321
- message.speaker,
1322
- writer.uint32(26).fork()
1323
- ).ldelim();
1324
- }
1325
- return writer;
1326
- },
1327
-
1328
- decode(input: _m0.Reader | Uint8Array, length?: number): DataPacket {
1329
- const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);
1330
- let end = length === undefined ? reader.len : reader.pos + length;
1331
- const message = createBaseDataPacket();
1332
- while (reader.pos < end) {
1333
- const tag = reader.uint32();
1334
- switch (tag >>> 3) {
1335
- case 1:
1336
- message.kind = reader.int32() as any;
1337
- break;
1338
- case 2:
1339
- message.user = UserPacket.decode(reader, reader.uint32());
1340
- break;
1341
- case 3:
1342
- message.speaker = ActiveSpeakerUpdate.decode(reader, reader.uint32());
1343
- break;
1344
- default:
1345
- reader.skipType(tag & 7);
1346
- break;
1347
- }
1348
- }
1349
- return message;
1350
- },
1351
-
1352
- fromJSON(object: any): DataPacket {
1353
- return {
1354
- kind: isSet(object.kind) ? dataPacket_KindFromJSON(object.kind) : 0,
1355
- user: isSet(object.user) ? UserPacket.fromJSON(object.user) : undefined,
1356
- speaker: isSet(object.speaker)
1357
- ? ActiveSpeakerUpdate.fromJSON(object.speaker)
1358
- : undefined,
1359
- };
1360
- },
1361
-
1362
- toJSON(message: DataPacket): unknown {
1363
- const obj: any = {};
1364
- message.kind !== undefined &&
1365
- (obj.kind = dataPacket_KindToJSON(message.kind));
1366
- message.user !== undefined &&
1367
- (obj.user = message.user ? UserPacket.toJSON(message.user) : undefined);
1368
- message.speaker !== undefined &&
1369
- (obj.speaker = message.speaker
1370
- ? ActiveSpeakerUpdate.toJSON(message.speaker)
1371
- : undefined);
1372
- return obj;
1373
- },
1374
-
1375
- fromPartial<I extends Exact<DeepPartial<DataPacket>, I>>(
1376
- object: I
1377
- ): DataPacket {
1378
- const message = createBaseDataPacket();
1379
- message.kind = object.kind ?? 0;
1380
- message.user =
1381
- object.user !== undefined && object.user !== null
1382
- ? UserPacket.fromPartial(object.user)
1383
- : undefined;
1384
- message.speaker =
1385
- object.speaker !== undefined && object.speaker !== null
1386
- ? ActiveSpeakerUpdate.fromPartial(object.speaker)
1387
- : undefined;
1388
- return message;
1389
- },
1390
- };
1391
-
1392
- function createBaseActiveSpeakerUpdate(): ActiveSpeakerUpdate {
1393
- return { speakers: [] };
1394
- }
1395
-
1396
- export const ActiveSpeakerUpdate = {
1397
- encode(
1398
- message: ActiveSpeakerUpdate,
1399
- writer: _m0.Writer = _m0.Writer.create()
1400
- ): _m0.Writer {
1401
- for (const v of message.speakers) {
1402
- SpeakerInfo.encode(v!, writer.uint32(10).fork()).ldelim();
1403
- }
1404
- return writer;
1405
- },
1406
-
1407
- decode(input: _m0.Reader | Uint8Array, length?: number): ActiveSpeakerUpdate {
1408
- const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);
1409
- let end = length === undefined ? reader.len : reader.pos + length;
1410
- const message = createBaseActiveSpeakerUpdate();
1411
- while (reader.pos < end) {
1412
- const tag = reader.uint32();
1413
- switch (tag >>> 3) {
1414
- case 1:
1415
- message.speakers.push(SpeakerInfo.decode(reader, reader.uint32()));
1416
- break;
1417
- default:
1418
- reader.skipType(tag & 7);
1419
- break;
1420
- }
1421
- }
1422
- return message;
1423
- },
1424
-
1425
- fromJSON(object: any): ActiveSpeakerUpdate {
1426
- return {
1427
- speakers: Array.isArray(object?.speakers)
1428
- ? object.speakers.map((e: any) => SpeakerInfo.fromJSON(e))
1429
- : [],
1430
- };
1431
- },
1432
-
1433
- toJSON(message: ActiveSpeakerUpdate): unknown {
1434
- const obj: any = {};
1435
- if (message.speakers) {
1436
- obj.speakers = message.speakers.map((e) =>
1437
- e ? SpeakerInfo.toJSON(e) : undefined
1438
- );
1439
- } else {
1440
- obj.speakers = [];
1441
- }
1442
- return obj;
1443
- },
1444
-
1445
- fromPartial<I extends Exact<DeepPartial<ActiveSpeakerUpdate>, I>>(
1446
- object: I
1447
- ): ActiveSpeakerUpdate {
1448
- const message = createBaseActiveSpeakerUpdate();
1449
- message.speakers =
1450
- object.speakers?.map((e) => SpeakerInfo.fromPartial(e)) || [];
1451
- return message;
1452
- },
1453
- };
1454
-
1455
- function createBaseSpeakerInfo(): SpeakerInfo {
1456
- return { sid: "", level: 0, active: false };
1457
- }
1458
-
1459
- export const SpeakerInfo = {
1460
- encode(
1461
- message: SpeakerInfo,
1462
- writer: _m0.Writer = _m0.Writer.create()
1463
- ): _m0.Writer {
1464
- if (message.sid !== "") {
1465
- writer.uint32(10).string(message.sid);
1466
- }
1467
- if (message.level !== 0) {
1468
- writer.uint32(21).float(message.level);
1469
- }
1470
- if (message.active === true) {
1471
- writer.uint32(24).bool(message.active);
1472
- }
1473
- return writer;
1474
- },
1475
-
1476
- decode(input: _m0.Reader | Uint8Array, length?: number): SpeakerInfo {
1477
- const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);
1478
- let end = length === undefined ? reader.len : reader.pos + length;
1479
- const message = createBaseSpeakerInfo();
1480
- while (reader.pos < end) {
1481
- const tag = reader.uint32();
1482
- switch (tag >>> 3) {
1483
- case 1:
1484
- message.sid = reader.string();
1485
- break;
1486
- case 2:
1487
- message.level = reader.float();
1488
- break;
1489
- case 3:
1490
- message.active = reader.bool();
1491
- break;
1492
- default:
1493
- reader.skipType(tag & 7);
1494
- break;
1495
- }
1496
- }
1497
- return message;
1498
- },
1499
-
1500
- fromJSON(object: any): SpeakerInfo {
1501
- return {
1502
- sid: isSet(object.sid) ? String(object.sid) : "",
1503
- level: isSet(object.level) ? Number(object.level) : 0,
1504
- active: isSet(object.active) ? Boolean(object.active) : false,
1505
- };
1506
- },
1507
-
1508
- toJSON(message: SpeakerInfo): unknown {
1509
- const obj: any = {};
1510
- message.sid !== undefined && (obj.sid = message.sid);
1511
- message.level !== undefined && (obj.level = message.level);
1512
- message.active !== undefined && (obj.active = message.active);
1513
- return obj;
1514
- },
1515
-
1516
- fromPartial<I extends Exact<DeepPartial<SpeakerInfo>, I>>(
1517
- object: I
1518
- ): SpeakerInfo {
1519
- const message = createBaseSpeakerInfo();
1520
- message.sid = object.sid ?? "";
1521
- message.level = object.level ?? 0;
1522
- message.active = object.active ?? false;
1523
- return message;
1524
- },
1525
- };
1526
-
1527
- function createBaseUserPacket(): UserPacket {
1528
- return { participantSid: "", payload: new Uint8Array(), destinationSids: [] };
1529
- }
1530
-
1531
- export const UserPacket = {
1532
- encode(
1533
- message: UserPacket,
1534
- writer: _m0.Writer = _m0.Writer.create()
1535
- ): _m0.Writer {
1536
- if (message.participantSid !== "") {
1537
- writer.uint32(10).string(message.participantSid);
1538
- }
1539
- if (message.payload.length !== 0) {
1540
- writer.uint32(18).bytes(message.payload);
1541
- }
1542
- for (const v of message.destinationSids) {
1543
- writer.uint32(26).string(v!);
1544
- }
1545
- return writer;
1546
- },
1547
-
1548
- decode(input: _m0.Reader | Uint8Array, length?: number): UserPacket {
1549
- const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);
1550
- let end = length === undefined ? reader.len : reader.pos + length;
1551
- const message = createBaseUserPacket();
1552
- while (reader.pos < end) {
1553
- const tag = reader.uint32();
1554
- switch (tag >>> 3) {
1555
- case 1:
1556
- message.participantSid = reader.string();
1557
- break;
1558
- case 2:
1559
- message.payload = reader.bytes();
1560
- break;
1561
- case 3:
1562
- message.destinationSids.push(reader.string());
1563
- break;
1564
- default:
1565
- reader.skipType(tag & 7);
1566
- break;
1567
- }
1568
- }
1569
- return message;
1570
- },
1571
-
1572
- fromJSON(object: any): UserPacket {
1573
- return {
1574
- participantSid: isSet(object.participantSid)
1575
- ? String(object.participantSid)
1576
- : "",
1577
- payload: isSet(object.payload)
1578
- ? bytesFromBase64(object.payload)
1579
- : new Uint8Array(),
1580
- destinationSids: Array.isArray(object?.destinationSids)
1581
- ? object.destinationSids.map((e: any) => String(e))
1582
- : [],
1583
- };
1584
- },
1585
-
1586
- toJSON(message: UserPacket): unknown {
1587
- const obj: any = {};
1588
- message.participantSid !== undefined &&
1589
- (obj.participantSid = message.participantSid);
1590
- message.payload !== undefined &&
1591
- (obj.payload = base64FromBytes(
1592
- message.payload !== undefined ? message.payload : new Uint8Array()
1593
- ));
1594
- if (message.destinationSids) {
1595
- obj.destinationSids = message.destinationSids.map((e) => e);
1596
- } else {
1597
- obj.destinationSids = [];
1598
- }
1599
- return obj;
1600
- },
1601
-
1602
- fromPartial<I extends Exact<DeepPartial<UserPacket>, I>>(
1603
- object: I
1604
- ): UserPacket {
1605
- const message = createBaseUserPacket();
1606
- message.participantSid = object.participantSid ?? "";
1607
- message.payload = object.payload ?? new Uint8Array();
1608
- message.destinationSids = object.destinationSids?.map((e) => e) || [];
1609
- return message;
1610
- },
1611
- };
1612
-
1613
- function createBaseParticipantTracks(): ParticipantTracks {
1614
- return { participantSid: "", trackSids: [] };
1615
- }
1616
-
1617
- export const ParticipantTracks = {
1618
- encode(
1619
- message: ParticipantTracks,
1620
- writer: _m0.Writer = _m0.Writer.create()
1621
- ): _m0.Writer {
1622
- if (message.participantSid !== "") {
1623
- writer.uint32(10).string(message.participantSid);
1624
- }
1625
- for (const v of message.trackSids) {
1626
- writer.uint32(18).string(v!);
1627
- }
1628
- return writer;
1629
- },
1630
-
1631
- decode(input: _m0.Reader | Uint8Array, length?: number): ParticipantTracks {
1632
- const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);
1633
- let end = length === undefined ? reader.len : reader.pos + length;
1634
- const message = createBaseParticipantTracks();
1635
- while (reader.pos < end) {
1636
- const tag = reader.uint32();
1637
- switch (tag >>> 3) {
1638
- case 1:
1639
- message.participantSid = reader.string();
1640
- break;
1641
- case 2:
1642
- message.trackSids.push(reader.string());
1643
- break;
1644
- default:
1645
- reader.skipType(tag & 7);
1646
- break;
1647
- }
1648
- }
1649
- return message;
1650
- },
1651
-
1652
- fromJSON(object: any): ParticipantTracks {
1653
- return {
1654
- participantSid: isSet(object.participantSid)
1655
- ? String(object.participantSid)
1656
- : "",
1657
- trackSids: Array.isArray(object?.trackSids)
1658
- ? object.trackSids.map((e: any) => String(e))
1659
- : [],
1660
- };
1661
- },
1662
-
1663
- toJSON(message: ParticipantTracks): unknown {
1664
- const obj: any = {};
1665
- message.participantSid !== undefined &&
1666
- (obj.participantSid = message.participantSid);
1667
- if (message.trackSids) {
1668
- obj.trackSids = message.trackSids.map((e) => e);
1669
- } else {
1670
- obj.trackSids = [];
1671
- }
1672
- return obj;
1673
- },
1674
-
1675
- fromPartial<I extends Exact<DeepPartial<ParticipantTracks>, I>>(
1676
- object: I
1677
- ): ParticipantTracks {
1678
- const message = createBaseParticipantTracks();
1679
- message.participantSid = object.participantSid ?? "";
1680
- message.trackSids = object.trackSids?.map((e) => e) || [];
1681
- return message;
1682
- },
1683
- };
1684
-
1685
- function createBaseClientInfo(): ClientInfo {
1686
- return {
1687
- sdk: 0,
1688
- version: "",
1689
- protocol: 0,
1690
- os: "",
1691
- osVersion: "",
1692
- deviceModel: "",
1693
- browser: "",
1694
- browserVersion: "",
1695
- address: "",
1696
- };
1697
- }
1698
-
1699
- export const ClientInfo = {
1700
- encode(
1701
- message: ClientInfo,
1702
- writer: _m0.Writer = _m0.Writer.create()
1703
- ): _m0.Writer {
1704
- if (message.sdk !== 0) {
1705
- writer.uint32(8).int32(message.sdk);
1706
- }
1707
- if (message.version !== "") {
1708
- writer.uint32(18).string(message.version);
1709
- }
1710
- if (message.protocol !== 0) {
1711
- writer.uint32(24).int32(message.protocol);
1712
- }
1713
- if (message.os !== "") {
1714
- writer.uint32(34).string(message.os);
1715
- }
1716
- if (message.osVersion !== "") {
1717
- writer.uint32(42).string(message.osVersion);
1718
- }
1719
- if (message.deviceModel !== "") {
1720
- writer.uint32(50).string(message.deviceModel);
1721
- }
1722
- if (message.browser !== "") {
1723
- writer.uint32(58).string(message.browser);
1724
- }
1725
- if (message.browserVersion !== "") {
1726
- writer.uint32(66).string(message.browserVersion);
1727
- }
1728
- if (message.address !== "") {
1729
- writer.uint32(74).string(message.address);
1730
- }
1731
- return writer;
1732
- },
1733
-
1734
- decode(input: _m0.Reader | Uint8Array, length?: number): ClientInfo {
1735
- const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);
1736
- let end = length === undefined ? reader.len : reader.pos + length;
1737
- const message = createBaseClientInfo();
1738
- while (reader.pos < end) {
1739
- const tag = reader.uint32();
1740
- switch (tag >>> 3) {
1741
- case 1:
1742
- message.sdk = reader.int32() as any;
1743
- break;
1744
- case 2:
1745
- message.version = reader.string();
1746
- break;
1747
- case 3:
1748
- message.protocol = reader.int32();
1749
- break;
1750
- case 4:
1751
- message.os = reader.string();
1752
- break;
1753
- case 5:
1754
- message.osVersion = reader.string();
1755
- break;
1756
- case 6:
1757
- message.deviceModel = reader.string();
1758
- break;
1759
- case 7:
1760
- message.browser = reader.string();
1761
- break;
1762
- case 8:
1763
- message.browserVersion = reader.string();
1764
- break;
1765
- case 9:
1766
- message.address = reader.string();
1767
- break;
1768
- default:
1769
- reader.skipType(tag & 7);
1770
- break;
1771
- }
1772
- }
1773
- return message;
1774
- },
1775
-
1776
- fromJSON(object: any): ClientInfo {
1777
- return {
1778
- sdk: isSet(object.sdk) ? clientInfo_SDKFromJSON(object.sdk) : 0,
1779
- version: isSet(object.version) ? String(object.version) : "",
1780
- protocol: isSet(object.protocol) ? Number(object.protocol) : 0,
1781
- os: isSet(object.os) ? String(object.os) : "",
1782
- osVersion: isSet(object.osVersion) ? String(object.osVersion) : "",
1783
- deviceModel: isSet(object.deviceModel) ? String(object.deviceModel) : "",
1784
- browser: isSet(object.browser) ? String(object.browser) : "",
1785
- browserVersion: isSet(object.browserVersion)
1786
- ? String(object.browserVersion)
1787
- : "",
1788
- address: isSet(object.address) ? String(object.address) : "",
1789
- };
1790
- },
1791
-
1792
- toJSON(message: ClientInfo): unknown {
1793
- const obj: any = {};
1794
- message.sdk !== undefined && (obj.sdk = clientInfo_SDKToJSON(message.sdk));
1795
- message.version !== undefined && (obj.version = message.version);
1796
- message.protocol !== undefined &&
1797
- (obj.protocol = Math.round(message.protocol));
1798
- message.os !== undefined && (obj.os = message.os);
1799
- message.osVersion !== undefined && (obj.osVersion = message.osVersion);
1800
- message.deviceModel !== undefined &&
1801
- (obj.deviceModel = message.deviceModel);
1802
- message.browser !== undefined && (obj.browser = message.browser);
1803
- message.browserVersion !== undefined &&
1804
- (obj.browserVersion = message.browserVersion);
1805
- message.address !== undefined && (obj.address = message.address);
1806
- return obj;
1807
- },
1808
-
1809
- fromPartial<I extends Exact<DeepPartial<ClientInfo>, I>>(
1810
- object: I
1811
- ): ClientInfo {
1812
- const message = createBaseClientInfo();
1813
- message.sdk = object.sdk ?? 0;
1814
- message.version = object.version ?? "";
1815
- message.protocol = object.protocol ?? 0;
1816
- message.os = object.os ?? "";
1817
- message.osVersion = object.osVersion ?? "";
1818
- message.deviceModel = object.deviceModel ?? "";
1819
- message.browser = object.browser ?? "";
1820
- message.browserVersion = object.browserVersion ?? "";
1821
- message.address = object.address ?? "";
1822
- return message;
1823
- },
1824
- };
1825
-
1826
- function createBaseClientConfiguration(): ClientConfiguration {
1827
- return { video: undefined, screen: undefined, resumeConnection: 0 };
1828
- }
1829
-
1830
- export const ClientConfiguration = {
1831
- encode(
1832
- message: ClientConfiguration,
1833
- writer: _m0.Writer = _m0.Writer.create()
1834
- ): _m0.Writer {
1835
- if (message.video !== undefined) {
1836
- VideoConfiguration.encode(
1837
- message.video,
1838
- writer.uint32(10).fork()
1839
- ).ldelim();
1840
- }
1841
- if (message.screen !== undefined) {
1842
- VideoConfiguration.encode(
1843
- message.screen,
1844
- writer.uint32(18).fork()
1845
- ).ldelim();
1846
- }
1847
- if (message.resumeConnection !== 0) {
1848
- writer.uint32(24).int32(message.resumeConnection);
1849
- }
1850
- return writer;
1851
- },
1852
-
1853
- decode(input: _m0.Reader | Uint8Array, length?: number): ClientConfiguration {
1854
- const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);
1855
- let end = length === undefined ? reader.len : reader.pos + length;
1856
- const message = createBaseClientConfiguration();
1857
- while (reader.pos < end) {
1858
- const tag = reader.uint32();
1859
- switch (tag >>> 3) {
1860
- case 1:
1861
- message.video = VideoConfiguration.decode(reader, reader.uint32());
1862
- break;
1863
- case 2:
1864
- message.screen = VideoConfiguration.decode(reader, reader.uint32());
1865
- break;
1866
- case 3:
1867
- message.resumeConnection = reader.int32() as any;
1868
- break;
1869
- default:
1870
- reader.skipType(tag & 7);
1871
- break;
1872
- }
1873
- }
1874
- return message;
1875
- },
1876
-
1877
- fromJSON(object: any): ClientConfiguration {
1878
- return {
1879
- video: isSet(object.video)
1880
- ? VideoConfiguration.fromJSON(object.video)
1881
- : undefined,
1882
- screen: isSet(object.screen)
1883
- ? VideoConfiguration.fromJSON(object.screen)
1884
- : undefined,
1885
- resumeConnection: isSet(object.resumeConnection)
1886
- ? clientConfigSettingFromJSON(object.resumeConnection)
1887
- : 0,
1888
- };
1889
- },
1890
-
1891
- toJSON(message: ClientConfiguration): unknown {
1892
- const obj: any = {};
1893
- message.video !== undefined &&
1894
- (obj.video = message.video
1895
- ? VideoConfiguration.toJSON(message.video)
1896
- : undefined);
1897
- message.screen !== undefined &&
1898
- (obj.screen = message.screen
1899
- ? VideoConfiguration.toJSON(message.screen)
1900
- : undefined);
1901
- message.resumeConnection !== undefined &&
1902
- (obj.resumeConnection = clientConfigSettingToJSON(
1903
- message.resumeConnection
1904
- ));
1905
- return obj;
1906
- },
1907
-
1908
- fromPartial<I extends Exact<DeepPartial<ClientConfiguration>, I>>(
1909
- object: I
1910
- ): ClientConfiguration {
1911
- const message = createBaseClientConfiguration();
1912
- message.video =
1913
- object.video !== undefined && object.video !== null
1914
- ? VideoConfiguration.fromPartial(object.video)
1915
- : undefined;
1916
- message.screen =
1917
- object.screen !== undefined && object.screen !== null
1918
- ? VideoConfiguration.fromPartial(object.screen)
1919
- : undefined;
1920
- message.resumeConnection = object.resumeConnection ?? 0;
1921
- return message;
1922
- },
1923
- };
1924
-
1925
- function createBaseVideoConfiguration(): VideoConfiguration {
1926
- return { hardwareEncoder: 0 };
1927
- }
1928
-
1929
- export const VideoConfiguration = {
1930
- encode(
1931
- message: VideoConfiguration,
1932
- writer: _m0.Writer = _m0.Writer.create()
1933
- ): _m0.Writer {
1934
- if (message.hardwareEncoder !== 0) {
1935
- writer.uint32(8).int32(message.hardwareEncoder);
1936
- }
1937
- return writer;
1938
- },
1939
-
1940
- decode(input: _m0.Reader | Uint8Array, length?: number): VideoConfiguration {
1941
- const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);
1942
- let end = length === undefined ? reader.len : reader.pos + length;
1943
- const message = createBaseVideoConfiguration();
1944
- while (reader.pos < end) {
1945
- const tag = reader.uint32();
1946
- switch (tag >>> 3) {
1947
- case 1:
1948
- message.hardwareEncoder = reader.int32() as any;
1949
- break;
1950
- default:
1951
- reader.skipType(tag & 7);
1952
- break;
1953
- }
1954
- }
1955
- return message;
1956
- },
1957
-
1958
- fromJSON(object: any): VideoConfiguration {
1959
- return {
1960
- hardwareEncoder: isSet(object.hardwareEncoder)
1961
- ? clientConfigSettingFromJSON(object.hardwareEncoder)
1962
- : 0,
1963
- };
1964
- },
1965
-
1966
- toJSON(message: VideoConfiguration): unknown {
1967
- const obj: any = {};
1968
- message.hardwareEncoder !== undefined &&
1969
- (obj.hardwareEncoder = clientConfigSettingToJSON(
1970
- message.hardwareEncoder
1971
- ));
1972
- return obj;
1973
- },
1974
-
1975
- fromPartial<I extends Exact<DeepPartial<VideoConfiguration>, I>>(
1976
- object: I
1977
- ): VideoConfiguration {
1978
- const message = createBaseVideoConfiguration();
1979
- message.hardwareEncoder = object.hardwareEncoder ?? 0;
1980
- return message;
1981
- },
1982
- };
1983
-
1984
- function createBaseRTPStats(): RTPStats {
1985
- return {
1986
- startTime: undefined,
1987
- endTime: undefined,
1988
- duration: 0,
1989
- packets: 0,
1990
- packetRate: 0,
1991
- bytes: 0,
1992
- bitrate: 0,
1993
- packetsLost: 0,
1994
- packetLossRate: 0,
1995
- packetLossPercentage: 0,
1996
- packetsDuplicate: 0,
1997
- packetDuplicateRate: 0,
1998
- bytesDuplicate: 0,
1999
- bitrateDuplicate: 0,
2000
- packetsPadding: 0,
2001
- packetPaddingRate: 0,
2002
- bytesPadding: 0,
2003
- bitratePadding: 0,
2004
- packetsOutOfOrder: 0,
2005
- frames: 0,
2006
- frameRate: 0,
2007
- jitterCurrent: 0,
2008
- jitterMax: 0,
2009
- gapHistogram: {},
2010
- nacks: 0,
2011
- nackMisses: 0,
2012
- plis: 0,
2013
- lastPli: undefined,
2014
- firs: 0,
2015
- lastFir: undefined,
2016
- rttCurrent: 0,
2017
- rttMax: 0,
2018
- keyFrames: 0,
2019
- lastKeyFrame: undefined,
2020
- layerLockPlis: 0,
2021
- lastLayerLockPli: undefined,
2022
- };
2023
- }
2024
-
2025
- export const RTPStats = {
2026
- encode(
2027
- message: RTPStats,
2028
- writer: _m0.Writer = _m0.Writer.create()
2029
- ): _m0.Writer {
2030
- if (message.startTime !== undefined) {
2031
- Timestamp.encode(
2032
- toTimestamp(message.startTime),
2033
- writer.uint32(10).fork()
2034
- ).ldelim();
2035
- }
2036
- if (message.endTime !== undefined) {
2037
- Timestamp.encode(
2038
- toTimestamp(message.endTime),
2039
- writer.uint32(18).fork()
2040
- ).ldelim();
2041
- }
2042
- if (message.duration !== 0) {
2043
- writer.uint32(25).double(message.duration);
2044
- }
2045
- if (message.packets !== 0) {
2046
- writer.uint32(32).uint32(message.packets);
2047
- }
2048
- if (message.packetRate !== 0) {
2049
- writer.uint32(41).double(message.packetRate);
2050
- }
2051
- if (message.bytes !== 0) {
2052
- writer.uint32(48).uint64(message.bytes);
2053
- }
2054
- if (message.bitrate !== 0) {
2055
- writer.uint32(57).double(message.bitrate);
2056
- }
2057
- if (message.packetsLost !== 0) {
2058
- writer.uint32(64).uint32(message.packetsLost);
2059
- }
2060
- if (message.packetLossRate !== 0) {
2061
- writer.uint32(73).double(message.packetLossRate);
2062
- }
2063
- if (message.packetLossPercentage !== 0) {
2064
- writer.uint32(85).float(message.packetLossPercentage);
2065
- }
2066
- if (message.packetsDuplicate !== 0) {
2067
- writer.uint32(88).uint32(message.packetsDuplicate);
2068
- }
2069
- if (message.packetDuplicateRate !== 0) {
2070
- writer.uint32(97).double(message.packetDuplicateRate);
2071
- }
2072
- if (message.bytesDuplicate !== 0) {
2073
- writer.uint32(104).uint64(message.bytesDuplicate);
2074
- }
2075
- if (message.bitrateDuplicate !== 0) {
2076
- writer.uint32(113).double(message.bitrateDuplicate);
2077
- }
2078
- if (message.packetsPadding !== 0) {
2079
- writer.uint32(120).uint32(message.packetsPadding);
2080
- }
2081
- if (message.packetPaddingRate !== 0) {
2082
- writer.uint32(129).double(message.packetPaddingRate);
2083
- }
2084
- if (message.bytesPadding !== 0) {
2085
- writer.uint32(136).uint64(message.bytesPadding);
2086
- }
2087
- if (message.bitratePadding !== 0) {
2088
- writer.uint32(145).double(message.bitratePadding);
2089
- }
2090
- if (message.packetsOutOfOrder !== 0) {
2091
- writer.uint32(152).uint32(message.packetsOutOfOrder);
2092
- }
2093
- if (message.frames !== 0) {
2094
- writer.uint32(160).uint32(message.frames);
2095
- }
2096
- if (message.frameRate !== 0) {
2097
- writer.uint32(169).double(message.frameRate);
2098
- }
2099
- if (message.jitterCurrent !== 0) {
2100
- writer.uint32(177).double(message.jitterCurrent);
2101
- }
2102
- if (message.jitterMax !== 0) {
2103
- writer.uint32(185).double(message.jitterMax);
2104
- }
2105
- Object.entries(message.gapHistogram).forEach(([key, value]) => {
2106
- RTPStats_GapHistogramEntry.encode(
2107
- { key: key as any, value },
2108
- writer.uint32(194).fork()
2109
- ).ldelim();
2110
- });
2111
- if (message.nacks !== 0) {
2112
- writer.uint32(200).uint32(message.nacks);
2113
- }
2114
- if (message.nackMisses !== 0) {
2115
- writer.uint32(208).uint32(message.nackMisses);
2116
- }
2117
- if (message.plis !== 0) {
2118
- writer.uint32(216).uint32(message.plis);
2119
- }
2120
- if (message.lastPli !== undefined) {
2121
- Timestamp.encode(
2122
- toTimestamp(message.lastPli),
2123
- writer.uint32(226).fork()
2124
- ).ldelim();
2125
- }
2126
- if (message.firs !== 0) {
2127
- writer.uint32(232).uint32(message.firs);
2128
- }
2129
- if (message.lastFir !== undefined) {
2130
- Timestamp.encode(
2131
- toTimestamp(message.lastFir),
2132
- writer.uint32(242).fork()
2133
- ).ldelim();
2134
- }
2135
- if (message.rttCurrent !== 0) {
2136
- writer.uint32(248).uint32(message.rttCurrent);
2137
- }
2138
- if (message.rttMax !== 0) {
2139
- writer.uint32(256).uint32(message.rttMax);
2140
- }
2141
- if (message.keyFrames !== 0) {
2142
- writer.uint32(264).uint32(message.keyFrames);
2143
- }
2144
- if (message.lastKeyFrame !== undefined) {
2145
- Timestamp.encode(
2146
- toTimestamp(message.lastKeyFrame),
2147
- writer.uint32(274).fork()
2148
- ).ldelim();
2149
- }
2150
- if (message.layerLockPlis !== 0) {
2151
- writer.uint32(280).uint32(message.layerLockPlis);
2152
- }
2153
- if (message.lastLayerLockPli !== undefined) {
2154
- Timestamp.encode(
2155
- toTimestamp(message.lastLayerLockPli),
2156
- writer.uint32(290).fork()
2157
- ).ldelim();
2158
- }
2159
- return writer;
2160
- },
2161
-
2162
- decode(input: _m0.Reader | Uint8Array, length?: number): RTPStats {
2163
- const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);
2164
- let end = length === undefined ? reader.len : reader.pos + length;
2165
- const message = createBaseRTPStats();
2166
- while (reader.pos < end) {
2167
- const tag = reader.uint32();
2168
- switch (tag >>> 3) {
2169
- case 1:
2170
- message.startTime = fromTimestamp(
2171
- Timestamp.decode(reader, reader.uint32())
2172
- );
2173
- break;
2174
- case 2:
2175
- message.endTime = fromTimestamp(
2176
- Timestamp.decode(reader, reader.uint32())
2177
- );
2178
- break;
2179
- case 3:
2180
- message.duration = reader.double();
2181
- break;
2182
- case 4:
2183
- message.packets = reader.uint32();
2184
- break;
2185
- case 5:
2186
- message.packetRate = reader.double();
2187
- break;
2188
- case 6:
2189
- message.bytes = longToNumber(reader.uint64() as Long);
2190
- break;
2191
- case 7:
2192
- message.bitrate = reader.double();
2193
- break;
2194
- case 8:
2195
- message.packetsLost = reader.uint32();
2196
- break;
2197
- case 9:
2198
- message.packetLossRate = reader.double();
2199
- break;
2200
- case 10:
2201
- message.packetLossPercentage = reader.float();
2202
- break;
2203
- case 11:
2204
- message.packetsDuplicate = reader.uint32();
2205
- break;
2206
- case 12:
2207
- message.packetDuplicateRate = reader.double();
2208
- break;
2209
- case 13:
2210
- message.bytesDuplicate = longToNumber(reader.uint64() as Long);
2211
- break;
2212
- case 14:
2213
- message.bitrateDuplicate = reader.double();
2214
- break;
2215
- case 15:
2216
- message.packetsPadding = reader.uint32();
2217
- break;
2218
- case 16:
2219
- message.packetPaddingRate = reader.double();
2220
- break;
2221
- case 17:
2222
- message.bytesPadding = longToNumber(reader.uint64() as Long);
2223
- break;
2224
- case 18:
2225
- message.bitratePadding = reader.double();
2226
- break;
2227
- case 19:
2228
- message.packetsOutOfOrder = reader.uint32();
2229
- break;
2230
- case 20:
2231
- message.frames = reader.uint32();
2232
- break;
2233
- case 21:
2234
- message.frameRate = reader.double();
2235
- break;
2236
- case 22:
2237
- message.jitterCurrent = reader.double();
2238
- break;
2239
- case 23:
2240
- message.jitterMax = reader.double();
2241
- break;
2242
- case 24:
2243
- const entry24 = RTPStats_GapHistogramEntry.decode(
2244
- reader,
2245
- reader.uint32()
2246
- );
2247
- if (entry24.value !== undefined) {
2248
- message.gapHistogram[entry24.key] = entry24.value;
2249
- }
2250
- break;
2251
- case 25:
2252
- message.nacks = reader.uint32();
2253
- break;
2254
- case 26:
2255
- message.nackMisses = reader.uint32();
2256
- break;
2257
- case 27:
2258
- message.plis = reader.uint32();
2259
- break;
2260
- case 28:
2261
- message.lastPli = fromTimestamp(
2262
- Timestamp.decode(reader, reader.uint32())
2263
- );
2264
- break;
2265
- case 29:
2266
- message.firs = reader.uint32();
2267
- break;
2268
- case 30:
2269
- message.lastFir = fromTimestamp(
2270
- Timestamp.decode(reader, reader.uint32())
2271
- );
2272
- break;
2273
- case 31:
2274
- message.rttCurrent = reader.uint32();
2275
- break;
2276
- case 32:
2277
- message.rttMax = reader.uint32();
2278
- break;
2279
- case 33:
2280
- message.keyFrames = reader.uint32();
2281
- break;
2282
- case 34:
2283
- message.lastKeyFrame = fromTimestamp(
2284
- Timestamp.decode(reader, reader.uint32())
2285
- );
2286
- break;
2287
- case 35:
2288
- message.layerLockPlis = reader.uint32();
2289
- break;
2290
- case 36:
2291
- message.lastLayerLockPli = fromTimestamp(
2292
- Timestamp.decode(reader, reader.uint32())
2293
- );
2294
- break;
2295
- default:
2296
- reader.skipType(tag & 7);
2297
- break;
2298
- }
2299
- }
2300
- return message;
2301
- },
2302
-
2303
- fromJSON(object: any): RTPStats {
2304
- return {
2305
- startTime: isSet(object.startTime)
2306
- ? fromJsonTimestamp(object.startTime)
2307
- : undefined,
2308
- endTime: isSet(object.endTime)
2309
- ? fromJsonTimestamp(object.endTime)
2310
- : undefined,
2311
- duration: isSet(object.duration) ? Number(object.duration) : 0,
2312
- packets: isSet(object.packets) ? Number(object.packets) : 0,
2313
- packetRate: isSet(object.packetRate) ? Number(object.packetRate) : 0,
2314
- bytes: isSet(object.bytes) ? Number(object.bytes) : 0,
2315
- bitrate: isSet(object.bitrate) ? Number(object.bitrate) : 0,
2316
- packetsLost: isSet(object.packetsLost) ? Number(object.packetsLost) : 0,
2317
- packetLossRate: isSet(object.packetLossRate)
2318
- ? Number(object.packetLossRate)
2319
- : 0,
2320
- packetLossPercentage: isSet(object.packetLossPercentage)
2321
- ? Number(object.packetLossPercentage)
2322
- : 0,
2323
- packetsDuplicate: isSet(object.packetsDuplicate)
2324
- ? Number(object.packetsDuplicate)
2325
- : 0,
2326
- packetDuplicateRate: isSet(object.packetDuplicateRate)
2327
- ? Number(object.packetDuplicateRate)
2328
- : 0,
2329
- bytesDuplicate: isSet(object.bytesDuplicate)
2330
- ? Number(object.bytesDuplicate)
2331
- : 0,
2332
- bitrateDuplicate: isSet(object.bitrateDuplicate)
2333
- ? Number(object.bitrateDuplicate)
2334
- : 0,
2335
- packetsPadding: isSet(object.packetsPadding)
2336
- ? Number(object.packetsPadding)
2337
- : 0,
2338
- packetPaddingRate: isSet(object.packetPaddingRate)
2339
- ? Number(object.packetPaddingRate)
2340
- : 0,
2341
- bytesPadding: isSet(object.bytesPadding)
2342
- ? Number(object.bytesPadding)
2343
- : 0,
2344
- bitratePadding: isSet(object.bitratePadding)
2345
- ? Number(object.bitratePadding)
2346
- : 0,
2347
- packetsOutOfOrder: isSet(object.packetsOutOfOrder)
2348
- ? Number(object.packetsOutOfOrder)
2349
- : 0,
2350
- frames: isSet(object.frames) ? Number(object.frames) : 0,
2351
- frameRate: isSet(object.frameRate) ? Number(object.frameRate) : 0,
2352
- jitterCurrent: isSet(object.jitterCurrent)
2353
- ? Number(object.jitterCurrent)
2354
- : 0,
2355
- jitterMax: isSet(object.jitterMax) ? Number(object.jitterMax) : 0,
2356
- gapHistogram: isObject(object.gapHistogram)
2357
- ? Object.entries(object.gapHistogram).reduce<{ [key: number]: number }>(
2358
- (acc, [key, value]) => {
2359
- acc[Number(key)] = Number(value);
2360
- return acc;
2361
- },
2362
- {}
2363
- )
2364
- : {},
2365
- nacks: isSet(object.nacks) ? Number(object.nacks) : 0,
2366
- nackMisses: isSet(object.nackMisses) ? Number(object.nackMisses) : 0,
2367
- plis: isSet(object.plis) ? Number(object.plis) : 0,
2368
- lastPli: isSet(object.lastPli)
2369
- ? fromJsonTimestamp(object.lastPli)
2370
- : undefined,
2371
- firs: isSet(object.firs) ? Number(object.firs) : 0,
2372
- lastFir: isSet(object.lastFir)
2373
- ? fromJsonTimestamp(object.lastFir)
2374
- : undefined,
2375
- rttCurrent: isSet(object.rttCurrent) ? Number(object.rttCurrent) : 0,
2376
- rttMax: isSet(object.rttMax) ? Number(object.rttMax) : 0,
2377
- keyFrames: isSet(object.keyFrames) ? Number(object.keyFrames) : 0,
2378
- lastKeyFrame: isSet(object.lastKeyFrame)
2379
- ? fromJsonTimestamp(object.lastKeyFrame)
2380
- : undefined,
2381
- layerLockPlis: isSet(object.layerLockPlis)
2382
- ? Number(object.layerLockPlis)
2383
- : 0,
2384
- lastLayerLockPli: isSet(object.lastLayerLockPli)
2385
- ? fromJsonTimestamp(object.lastLayerLockPli)
2386
- : undefined,
2387
- };
2388
- },
2389
-
2390
- toJSON(message: RTPStats): unknown {
2391
- const obj: any = {};
2392
- message.startTime !== undefined &&
2393
- (obj.startTime = message.startTime.toISOString());
2394
- message.endTime !== undefined &&
2395
- (obj.endTime = message.endTime.toISOString());
2396
- message.duration !== undefined && (obj.duration = message.duration);
2397
- message.packets !== undefined &&
2398
- (obj.packets = Math.round(message.packets));
2399
- message.packetRate !== undefined && (obj.packetRate = message.packetRate);
2400
- message.bytes !== undefined && (obj.bytes = Math.round(message.bytes));
2401
- message.bitrate !== undefined && (obj.bitrate = message.bitrate);
2402
- message.packetsLost !== undefined &&
2403
- (obj.packetsLost = Math.round(message.packetsLost));
2404
- message.packetLossRate !== undefined &&
2405
- (obj.packetLossRate = message.packetLossRate);
2406
- message.packetLossPercentage !== undefined &&
2407
- (obj.packetLossPercentage = message.packetLossPercentage);
2408
- message.packetsDuplicate !== undefined &&
2409
- (obj.packetsDuplicate = Math.round(message.packetsDuplicate));
2410
- message.packetDuplicateRate !== undefined &&
2411
- (obj.packetDuplicateRate = message.packetDuplicateRate);
2412
- message.bytesDuplicate !== undefined &&
2413
- (obj.bytesDuplicate = Math.round(message.bytesDuplicate));
2414
- message.bitrateDuplicate !== undefined &&
2415
- (obj.bitrateDuplicate = message.bitrateDuplicate);
2416
- message.packetsPadding !== undefined &&
2417
- (obj.packetsPadding = Math.round(message.packetsPadding));
2418
- message.packetPaddingRate !== undefined &&
2419
- (obj.packetPaddingRate = message.packetPaddingRate);
2420
- message.bytesPadding !== undefined &&
2421
- (obj.bytesPadding = Math.round(message.bytesPadding));
2422
- message.bitratePadding !== undefined &&
2423
- (obj.bitratePadding = message.bitratePadding);
2424
- message.packetsOutOfOrder !== undefined &&
2425
- (obj.packetsOutOfOrder = Math.round(message.packetsOutOfOrder));
2426
- message.frames !== undefined && (obj.frames = Math.round(message.frames));
2427
- message.frameRate !== undefined && (obj.frameRate = message.frameRate);
2428
- message.jitterCurrent !== undefined &&
2429
- (obj.jitterCurrent = message.jitterCurrent);
2430
- message.jitterMax !== undefined && (obj.jitterMax = message.jitterMax);
2431
- obj.gapHistogram = {};
2432
- if (message.gapHistogram) {
2433
- Object.entries(message.gapHistogram).forEach(([k, v]) => {
2434
- obj.gapHistogram[k] = Math.round(v);
2435
- });
2436
- }
2437
- message.nacks !== undefined && (obj.nacks = Math.round(message.nacks));
2438
- message.nackMisses !== undefined &&
2439
- (obj.nackMisses = Math.round(message.nackMisses));
2440
- message.plis !== undefined && (obj.plis = Math.round(message.plis));
2441
- message.lastPli !== undefined &&
2442
- (obj.lastPli = message.lastPli.toISOString());
2443
- message.firs !== undefined && (obj.firs = Math.round(message.firs));
2444
- message.lastFir !== undefined &&
2445
- (obj.lastFir = message.lastFir.toISOString());
2446
- message.rttCurrent !== undefined &&
2447
- (obj.rttCurrent = Math.round(message.rttCurrent));
2448
- message.rttMax !== undefined && (obj.rttMax = Math.round(message.rttMax));
2449
- message.keyFrames !== undefined &&
2450
- (obj.keyFrames = Math.round(message.keyFrames));
2451
- message.lastKeyFrame !== undefined &&
2452
- (obj.lastKeyFrame = message.lastKeyFrame.toISOString());
2453
- message.layerLockPlis !== undefined &&
2454
- (obj.layerLockPlis = Math.round(message.layerLockPlis));
2455
- message.lastLayerLockPli !== undefined &&
2456
- (obj.lastLayerLockPli = message.lastLayerLockPli.toISOString());
2457
- return obj;
2458
- },
2459
-
2460
- fromPartial<I extends Exact<DeepPartial<RTPStats>, I>>(object: I): RTPStats {
2461
- const message = createBaseRTPStats();
2462
- message.startTime = object.startTime ?? undefined;
2463
- message.endTime = object.endTime ?? undefined;
2464
- message.duration = object.duration ?? 0;
2465
- message.packets = object.packets ?? 0;
2466
- message.packetRate = object.packetRate ?? 0;
2467
- message.bytes = object.bytes ?? 0;
2468
- message.bitrate = object.bitrate ?? 0;
2469
- message.packetsLost = object.packetsLost ?? 0;
2470
- message.packetLossRate = object.packetLossRate ?? 0;
2471
- message.packetLossPercentage = object.packetLossPercentage ?? 0;
2472
- message.packetsDuplicate = object.packetsDuplicate ?? 0;
2473
- message.packetDuplicateRate = object.packetDuplicateRate ?? 0;
2474
- message.bytesDuplicate = object.bytesDuplicate ?? 0;
2475
- message.bitrateDuplicate = object.bitrateDuplicate ?? 0;
2476
- message.packetsPadding = object.packetsPadding ?? 0;
2477
- message.packetPaddingRate = object.packetPaddingRate ?? 0;
2478
- message.bytesPadding = object.bytesPadding ?? 0;
2479
- message.bitratePadding = object.bitratePadding ?? 0;
2480
- message.packetsOutOfOrder = object.packetsOutOfOrder ?? 0;
2481
- message.frames = object.frames ?? 0;
2482
- message.frameRate = object.frameRate ?? 0;
2483
- message.jitterCurrent = object.jitterCurrent ?? 0;
2484
- message.jitterMax = object.jitterMax ?? 0;
2485
- message.gapHistogram = Object.entries(object.gapHistogram ?? {}).reduce<{
2486
- [key: number]: number;
2487
- }>((acc, [key, value]) => {
2488
- if (value !== undefined) {
2489
- acc[Number(key)] = Number(value);
2490
- }
2491
- return acc;
2492
- }, {});
2493
- message.nacks = object.nacks ?? 0;
2494
- message.nackMisses = object.nackMisses ?? 0;
2495
- message.plis = object.plis ?? 0;
2496
- message.lastPli = object.lastPli ?? undefined;
2497
- message.firs = object.firs ?? 0;
2498
- message.lastFir = object.lastFir ?? undefined;
2499
- message.rttCurrent = object.rttCurrent ?? 0;
2500
- message.rttMax = object.rttMax ?? 0;
2501
- message.keyFrames = object.keyFrames ?? 0;
2502
- message.lastKeyFrame = object.lastKeyFrame ?? undefined;
2503
- message.layerLockPlis = object.layerLockPlis ?? 0;
2504
- message.lastLayerLockPli = object.lastLayerLockPli ?? undefined;
2505
- return message;
2506
- },
2507
- };
2508
-
2509
- function createBaseRTPStats_GapHistogramEntry(): RTPStats_GapHistogramEntry {
2510
- return { key: 0, value: 0 };
2511
- }
2512
-
2513
- export const RTPStats_GapHistogramEntry = {
2514
- encode(
2515
- message: RTPStats_GapHistogramEntry,
2516
- writer: _m0.Writer = _m0.Writer.create()
2517
- ): _m0.Writer {
2518
- if (message.key !== 0) {
2519
- writer.uint32(8).int32(message.key);
2520
- }
2521
- if (message.value !== 0) {
2522
- writer.uint32(16).uint32(message.value);
2523
- }
2524
- return writer;
2525
- },
2526
-
2527
- decode(
2528
- input: _m0.Reader | Uint8Array,
2529
- length?: number
2530
- ): RTPStats_GapHistogramEntry {
2531
- const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);
2532
- let end = length === undefined ? reader.len : reader.pos + length;
2533
- const message = createBaseRTPStats_GapHistogramEntry();
2534
- while (reader.pos < end) {
2535
- const tag = reader.uint32();
2536
- switch (tag >>> 3) {
2537
- case 1:
2538
- message.key = reader.int32();
2539
- break;
2540
- case 2:
2541
- message.value = reader.uint32();
2542
- break;
2543
- default:
2544
- reader.skipType(tag & 7);
2545
- break;
2546
- }
2547
- }
2548
- return message;
2549
- },
2550
-
2551
- fromJSON(object: any): RTPStats_GapHistogramEntry {
2552
- return {
2553
- key: isSet(object.key) ? Number(object.key) : 0,
2554
- value: isSet(object.value) ? Number(object.value) : 0,
2555
- };
2556
- },
2557
-
2558
- toJSON(message: RTPStats_GapHistogramEntry): unknown {
2559
- const obj: any = {};
2560
- message.key !== undefined && (obj.key = Math.round(message.key));
2561
- message.value !== undefined && (obj.value = Math.round(message.value));
2562
- return obj;
2563
- },
2564
-
2565
- fromPartial<I extends Exact<DeepPartial<RTPStats_GapHistogramEntry>, I>>(
2566
- object: I
2567
- ): RTPStats_GapHistogramEntry {
2568
- const message = createBaseRTPStats_GapHistogramEntry();
2569
- message.key = object.key ?? 0;
2570
- message.value = object.value ?? 0;
2571
- return message;
2572
- },
2573
- };
2574
-
2575
- declare var self: any | undefined;
2576
- declare var window: any | undefined;
2577
- declare var global: any | undefined;
2578
- var globalThis: any = (() => {
2579
- if (typeof globalThis !== "undefined") return globalThis;
2580
- if (typeof self !== "undefined") return self;
2581
- if (typeof window !== "undefined") return window;
2582
- if (typeof global !== "undefined") return global;
2583
- throw "Unable to locate global object";
2584
- })();
2585
-
2586
- const atob: (b64: string) => string =
2587
- globalThis.atob ||
2588
- ((b64) => globalThis.Buffer.from(b64, "base64").toString("binary"));
2589
- function bytesFromBase64(b64: string): Uint8Array {
2590
- const bin = atob(b64);
2591
- const arr = new Uint8Array(bin.length);
2592
- for (let i = 0; i < bin.length; ++i) {
2593
- arr[i] = bin.charCodeAt(i);
2594
- }
2595
- return arr;
2596
- }
2597
-
2598
- const btoa: (bin: string) => string =
2599
- globalThis.btoa ||
2600
- ((bin) => globalThis.Buffer.from(bin, "binary").toString("base64"));
2601
- function base64FromBytes(arr: Uint8Array): string {
2602
- const bin: string[] = [];
2603
- for (const byte of arr) {
2604
- bin.push(String.fromCharCode(byte));
2605
- }
2606
- return btoa(bin.join(""));
2607
- }
2608
-
2609
- type Builtin =
2610
- | Date
2611
- | Function
2612
- | Uint8Array
2613
- | string
2614
- | number
2615
- | boolean
2616
- | undefined;
2617
-
2618
- export type DeepPartial<T> = T extends Builtin
2619
- ? T
2620
- : T extends Array<infer U>
2621
- ? Array<DeepPartial<U>>
2622
- : T extends ReadonlyArray<infer U>
2623
- ? ReadonlyArray<DeepPartial<U>>
2624
- : T extends {}
2625
- ? { [K in keyof T]?: DeepPartial<T[K]> }
2626
- : Partial<T>;
2627
-
2628
- type KeysOfUnion<T> = T extends T ? keyof T : never;
2629
- export type Exact<P, I extends P> = P extends Builtin
2630
- ? P
2631
- : P & { [K in keyof P]: Exact<P[K], I[K]> } & Record<
2632
- Exclude<keyof I, KeysOfUnion<P>>,
2633
- never
2634
- >;
2635
-
2636
- function toTimestamp(date: Date): Timestamp {
2637
- const seconds = date.getTime() / 1_000;
2638
- const nanos = (date.getTime() % 1_000) * 1_000_000;
2639
- return { seconds, nanos };
2640
- }
2641
-
2642
- function fromTimestamp(t: Timestamp): Date {
2643
- let millis = t.seconds * 1_000;
2644
- millis += t.nanos / 1_000_000;
2645
- return new Date(millis);
2646
- }
2647
-
2648
- function fromJsonTimestamp(o: any): Date {
2649
- if (o instanceof Date) {
2650
- return o;
2651
- } else if (typeof o === "string") {
2652
- return new Date(o);
2653
- } else {
2654
- return fromTimestamp(Timestamp.fromJSON(o));
2655
- }
2656
- }
2657
-
2658
- function longToNumber(long: Long): number {
2659
- if (long.gt(Number.MAX_SAFE_INTEGER)) {
2660
- throw new globalThis.Error("Value is larger than Number.MAX_SAFE_INTEGER");
2661
- }
2662
- return long.toNumber();
2663
- }
2664
-
2665
- if (_m0.util.Long !== Long) {
2666
- _m0.util.Long = Long as any;
2667
- _m0.configure();
2668
- }
2669
-
2670
- function isObject(value: any): boolean {
2671
- return typeof value === "object" && value !== null;
2672
- }
2673
-
2674
- function isSet(value: any): boolean {
2675
- return value !== null && value !== undefined;
2676
- }