@ylink-sdk/mobile-web 0.1.6 → 0.1.9-beta.1

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 (55) hide show
  1. package/dist/e30037b8/VERSION +6 -0
  2. package/dist/e30037b8/libipvp-simd.d.ts +474 -0
  3. package/dist/e30037b8/libipvp-simd.js +3267 -0
  4. package/dist/e30037b8/libipvp-simd.prod.d.ts +474 -0
  5. package/dist/e30037b8/libipvp-simd.prod.js +184 -0
  6. package/dist/e30037b8/libipvp-simd.prod.wasm +0 -0
  7. package/dist/e30037b8/libipvp-simd.wasm +0 -0
  8. package/dist/e30037b8/libipvp.d.ts +474 -0
  9. package/dist/e30037b8/libipvp.js +3267 -0
  10. package/dist/e30037b8/libipvp.prod.d.ts +474 -0
  11. package/dist/e30037b8/libipvp.prod.js +184 -0
  12. package/dist/e30037b8/libipvp.prod.wasm +0 -0
  13. package/dist/e30037b8/libipvp.wasm +0 -0
  14. package/dist/e30037b8/librtc.d.ts +438 -0
  15. package/dist/e30037b8/librtc.global.js +5863 -0
  16. package/dist/e30037b8/librtc.global.prod.js +15 -0
  17. package/dist/e30037b8/libsfu-simd.d.ts +767 -0
  18. package/dist/e30037b8/libsfu-simd.js +4822 -0
  19. package/dist/e30037b8/libsfu-simd.prod.d.ts +767 -0
  20. package/dist/e30037b8/libsfu-simd.prod.js +209 -0
  21. package/dist/e30037b8/libsfu-simd.prod.wasm +0 -0
  22. package/dist/e30037b8/libsfu-simd.wasm +0 -0
  23. package/dist/e30037b8/libsfu.d.ts +767 -0
  24. package/dist/e30037b8/libsfu.js +4822 -0
  25. package/dist/e30037b8/libsfu.prod.d.ts +767 -0
  26. package/dist/e30037b8/libsfu.prod.js +209 -0
  27. package/dist/e30037b8/libsfu.prod.wasm +0 -0
  28. package/dist/e30037b8/libsfu.wasm +0 -0
  29. package/dist/e30037b8/libsvc-simd-m1.d.ts +767 -0
  30. package/dist/e30037b8/libsvc-simd-m1.js +4921 -0
  31. package/dist/e30037b8/libsvc-simd-m1.prod.d.ts +767 -0
  32. package/dist/e30037b8/libsvc-simd-m1.prod.js +209 -0
  33. package/dist/e30037b8/libsvc-simd-m1.prod.wasm +0 -0
  34. package/dist/e30037b8/libsvc-simd-m1.wasm +0 -0
  35. package/dist/e30037b8/libsvc-simd.d.ts +767 -0
  36. package/dist/e30037b8/libsvc-simd.js +4857 -0
  37. package/dist/e30037b8/libsvc-simd.prod.d.ts +767 -0
  38. package/dist/e30037b8/libsvc-simd.prod.js +209 -0
  39. package/dist/e30037b8/libsvc-simd.prod.wasm +0 -0
  40. package/dist/e30037b8/libsvc-simd.wasm +0 -0
  41. package/dist/e30037b8/libsvc.d.ts +767 -0
  42. package/dist/e30037b8/libsvc.js +4857 -0
  43. package/dist/e30037b8/libsvc.prod.d.ts +767 -0
  44. package/dist/e30037b8/libsvc.prod.js +209 -0
  45. package/dist/e30037b8/libsvc.prod.wasm +0 -0
  46. package/dist/e30037b8/libsvc.wasm +0 -0
  47. package/dist/e30037b8/native-audio-worker.global.js +1583 -0
  48. package/dist/e30037b8/native-audio-worker.global.prod.js +15 -0
  49. package/dist/e30037b8/native-video-worker.global.js +1960 -0
  50. package/dist/e30037b8/native-video-worker.global.prod.js +15 -0
  51. package/dist/e30037b8/worklet-audio-worker.global.js +900 -0
  52. package/dist/e30037b8/worklet-audio-worker.global.prod.js +15 -0
  53. package/dist/style.css +1 -1
  54. package/dist/ylink-sdk-mobile.umd.js +70 -70
  55. package/package.json +1 -1
Binary file
Binary file
@@ -0,0 +1,438 @@
1
+ import { AudioChannelInterface } from '@line-ui/line-rtc';
2
+ import { AudioEngineInterface } from '@line-ui/line-rtc';
3
+ import { AudioFrameBufferBuilder } from '@line-ui/line-media';
4
+ import { AudioReceiverInterface } from '@line-ui/line-rtc';
5
+ import { AudioRecvParameters } from '@line-ui/line-rtc';
6
+ import { AudioRecvStats } from '@line-ui/line-rtc';
7
+ import { AudioSenderInterface } from '@line-ui/line-rtc';
8
+ import { AudioSendParameters } from '@line-ui/line-rtc';
9
+ import { AudioSendStats } from '@line-ui/line-rtc';
10
+ import { AudioSourceLike } from '@line-ui/line-rtc';
11
+ import { AudioStats } from '@line-ui/line-rtc';
12
+ import { AudioTransportInterface } from '@line-ui/line-media';
13
+ import { DataChannelConfig } from '@vc-webassembly/libsvc';
14
+ import { DataTraits } from '@vc-webassembly/libsvc';
15
+ import { DataType } from '@vc-webassembly/libsvc';
16
+ import { DTMFSender } from '@line-ui/line-rtc';
17
+ import { FrameDecryptorInterface } from '@line-ui/line-rtc';
18
+ import { FrameEncryptorInterface } from '@line-ui/line-rtc';
19
+ import { IPVPAudioAdvanceStatsRX } from '@vc-webassembly/libipvp';
20
+ import { IPVPAudioAdvanceStatsTX } from '@vc-webassembly/libipvp';
21
+ import { IPVPAudioStatsReport } from '@vc-webassembly/libipvp';
22
+ import { IPVPAudioStatsRX } from '@vc-webassembly/libipvp';
23
+ import { IPVPAudioStatsTX } from '@vc-webassembly/libipvp';
24
+ import { IPVPBandwidth } from '@vc-webassembly/libipvp';
25
+ import { IPVPDspStats } from '@vc-webassembly/libipvp';
26
+ import { MediaEngine } from '@line-ui/line-rtc';
27
+ import { MediaType } from '@line-ui/line-rtc';
28
+ import { Memory } from '@line-ui/line-wasm';
29
+ import { MemoryAllocator } from '@line-ui/line-wasm';
30
+ import { MemoryViewer } from '@line-ui/line-wasm';
31
+ import { MojoChannel } from '@line-ui/line-mojo';
32
+ import { MojoPendingReceiver } from '@line-ui/line-mojo';
33
+ import { MojoReceiver } from '@line-ui/line-mojo';
34
+ import { MojoRemote } from '@line-ui/line-mojo';
35
+ import { OffscreenRenderer } from '@line-ui/line-rtc';
36
+ import { RealtimeSubtitleInfo } from '@vc-webassembly/libsvc';
37
+ import { RGBBufferBuilder } from '@line-ui/line-media';
38
+ import { SFUEndpointConfig } from '@vc-webassembly/libsvc';
39
+ import { SFUEndpointInterface } from '@vc-webassembly/libsvc';
40
+ import { SFUNetworkAudioStats } from '@vc-webassembly/libsvc';
41
+ import { SFUNetworkInfo } from '@vc-webassembly/libsvc';
42
+ import { SFUNetworkStats } from '@vc-webassembly/libsvc';
43
+ import { SFUReason } from '@vc-webassembly/libsvc';
44
+ import { SFUSubscribeConfig } from '@vc-webassembly/libsvc';
45
+ import { SFUTimestamp } from '@vc-webassembly/libsvc';
46
+ import { SFUTransportInterface } from '@vc-webassembly/libsvc';
47
+ import { SFUTransportStatus } from '@vc-webassembly/libsvc';
48
+ import { SFUTransportType } from '@vc-webassembly/libsvc';
49
+ import { SFUUserRole } from '@vc-webassembly/libsvc';
50
+ import { TransportFactoryInterface } from '@vc-webassembly/libsvc';
51
+ import { VideoChannelConfig } from '@vc-webassembly/libsvc';
52
+ import { VideoChannelInterface } from '@line-ui/line-rtc';
53
+ import { VideoChannelOrient } from '@vc-webassembly/libsvc';
54
+ import { VideoChannelRecvReport } from '@vc-webassembly/libsvc';
55
+ import { VideoChannelSendReport } from '@vc-webassembly/libsvc';
56
+ import { VideoChannelStats } from '@vc-webassembly/libsvc';
57
+ import { VideoChannelType } from '@vc-webassembly/libsvc';
58
+ import { VideoEncodeMode } from '@vc-webassembly/libsvc';
59
+ import { VideoEngineInterface } from '@line-ui/line-rtc';
60
+ import { VideoReceiverInterface } from '@line-ui/line-rtc';
61
+ import { VideoRecvParameters } from '@line-ui/line-rtc';
62
+ import { VideoRecvStats } from '@line-ui/line-rtc';
63
+ import { VideoSenderInterface } from '@line-ui/line-rtc';
64
+ import { VideoSendParameters } from '@line-ui/line-rtc';
65
+ import { VideoSendStats } from '@line-ui/line-rtc';
66
+ import { VideoSinkLike } from '@line-ui/line-rtc';
67
+ import { VideoSourceLike } from '@line-ui/line-rtc';
68
+ import { VideoStats } from '@line-ui/line-rtc';
69
+ import { VideoSubscribeConfig } from '@vc-webassembly/libsvc';
70
+
71
+ declare interface AudioEngineEventHost {
72
+ speaking(id: number, ccid: number[]): void;
73
+ focusing(id: number, ccid: number[]): void;
74
+ decodestart(ccid: number): void;
75
+ decodestop(ccid: number): void;
76
+ gainchange(gain: number, track: number): void;
77
+ }
78
+
79
+ declare interface AudioEngineHost {
80
+ init(url: string, transportPR: MojoPendingReceiver, eventPR: MojoPendingReceiver, verbose?: boolean): void;
81
+ exit(): void;
82
+ mos(lossrate: number, rtt: number, realtime?: boolean): number;
83
+ aec(level: 0 | 1 | 2): void;
84
+ agc(enable: 0 | 1): void;
85
+ ans(ans: 0 | 1 | 2 | 3, tns?: 0 | 1 | 2 | 3): void;
86
+ mute(enable: boolean): void;
87
+ bypass(enable: boolean): void;
88
+ dtmf(tones: string): void;
89
+ sendstats(): IPVPAudioStatsTX;
90
+ recvstats(ccid: number): IPVPAudioStatsRX;
91
+ bandwidth(): IPVPBandwidth;
92
+ jitter(): [value: number, max: number];
93
+ sendstatsadv(): IPVPAudioAdvanceStatsTX;
94
+ recvstatsadv(ccid: number): IPVPAudioAdvanceStatsRX;
95
+ report(): IPVPAudioStatsReport;
96
+ micschedule(): IPVPDspStats;
97
+ spkschedule(): IPVPDspStats;
98
+ process(buffer?: Required<AudioFrameBufferBuilder>): Required<AudioFrameBufferBuilder> | void;
99
+ processdelay(samples: number): void;
100
+ push(buffer: Required<AudioFrameBufferBuilder>): void;
101
+ pushref(buffer: Required<AudioFrameBufferBuilder>): void;
102
+ pull(samples: number, channels: number, sampleRate: number): Required<AudioFrameBufferBuilder> | void;
103
+ pulldelay(samples: number): void;
104
+ receive(ccid: number, data: Uint8Array, channel: number): void;
105
+ setup(ccid: number, samplerate: number, type?: number): void;
106
+ trackgain(gain: number, track?: number): void;
107
+ fec(lossrate: number): void;
108
+ dumpstats(): void;
109
+ dumptalk(): void;
110
+ vtuner(host?: string, port?: number): void;
111
+ }
112
+
113
+ declare type AudioEngineHostFactory = () => Promise<[
114
+ MojoChannel,
115
+ MojoRemote<AudioEngineHost>,
116
+ MojoReceiver<AudioEngineTransportHost>,
117
+ MojoReceiver<AudioEngineEventHost>,
118
+ () => Promise<void>
119
+ ]>;
120
+
121
+ declare interface AudioEngineTransportHost {
122
+ send(id: number, data: Uint8Array): void;
123
+ }
124
+
125
+ export declare function bootstrap(): Promise<void>;
126
+
127
+ export { DataChannelConfig }
128
+
129
+ declare interface DataChannelHost extends VideoTransportEventHost {
130
+ open(config: DataChannelConfig): void;
131
+ datastream(type: DataType, listener: MojoPendingReceiver): MojoPendingReceiver;
132
+ subtitlestream(type: DataType, listener: MojoPendingReceiver): MojoPendingReceiver;
133
+ }
134
+
135
+ declare interface DataStreamHost {
136
+ write(data: Uint8Array, dest: number[], traits: DataTraits): void;
137
+ subscribe(request: number[], remove: number[]): void;
138
+ }
139
+
140
+ export { DataType }
141
+
142
+ export declare class NativeAudioChannel implements AudioChannelInterface {
143
+ readonly type: MediaType;
144
+ readonly track: number;
145
+ readonly ssrc: number;
146
+ transport: SFUTransportInterface;
147
+ config: SFUEndpointConfig;
148
+ alloc: MemoryAllocator;
149
+ view: MemoryViewer;
150
+ description: Memory<Uint8Array>;
151
+ factory: AudioEngineHostFactory;
152
+ encoder: MojoRemote<AudioEngineHost>;
153
+ decoder: MojoRemote<AudioEngineHost>;
154
+ context: AudioContext;
155
+ audioTransport: AudioTransportInterface;
156
+ audioElement?: HTMLAudioElement;
157
+ audioStream?: MediaStream;
158
+ senders: Map<string | number, NativeAudioSender>;
159
+ receivers: Map<string | number, NativeAudioReceiver>;
160
+ stats: {
161
+ send: SFUNetworkStats;
162
+ recv: SFUNetworkStats;
163
+ audiosend: SFUNetworkAudioStats;
164
+ audiorecv: SFUNetworkAudioStats;
165
+ };
166
+ cleanup: (() => void)[];
167
+ onopen?: () => void;
168
+ onclose?: () => void;
169
+ onspeaking?: (ssrc: number[]) => void;
170
+ onfocusing?: (ssrc: number[]) => void;
171
+ constructor(transport: SFUTransportInterface, factory: AudioEngineHostFactory, context?: AudioContext);
172
+ createSender(ssrc?: number): NativeAudioSender;
173
+ removeSender(ssrc?: number): void;
174
+ createReceiver(ssrc?: number): NativeAudioReceiver;
175
+ removeReceiver(ssrc?: number): void;
176
+ addTrack(id: number): void;
177
+ removeTrack(id: number): void;
178
+ getStats(): Promise<AudioStats>;
179
+ open(): Promise<void>;
180
+ close(): Promise<void>;
181
+ ans(enable: boolean): void;
182
+ dsp(): Promise<unknown>;
183
+ trackgain(value: number, track?: number): void;
184
+ }
185
+
186
+ export declare class NativeAudioEngine implements AudioEngineInterface {
187
+ init(): Promise<void>;
188
+ createChannel(transport: SFUTransportInterface): NativeAudioChannel;
189
+ }
190
+
191
+ export declare class NativeAudioReceiver implements AudioReceiverInterface {
192
+ readonly ssrc: number;
193
+ sink?: HTMLMediaElement;
194
+ engine: MojoRemote<AudioEngineHost>;
195
+ transport: AudioTransportInterface;
196
+ stream?: MediaStream;
197
+ element?: HTMLAudioElement;
198
+ cleanup?: () => void;
199
+ ondecodestart?: (ccid: number) => void;
200
+ ondecodestop?: (ccid: number) => void;
201
+ ongainchange?: (gain: number, track: number) => void;
202
+ constructor(ssrc: number, engine: MojoRemote<AudioEngineHost>, transport: AudioTransportInterface, stream?: MediaStream, element?: HTMLAudioElement);
203
+ setParameters(parameters: AudioRecvParameters): void;
204
+ getParameters(): AudioRecvParameters;
205
+ setFrameDecryptor(decryptor: FrameDecryptorInterface): void;
206
+ setSink(sink: HTMLMediaElement): void;
207
+ getStats(): Promise<AudioRecvStats>;
208
+ getStatsDetail(): Promise<AudioRecvStats>;
209
+ getStatsReport(): Promise<AudioRecvStats>;
210
+ start(): void;
211
+ stop(): void;
212
+ }
213
+
214
+ export declare class NativeAudioSender implements AudioSenderInterface {
215
+ readonly ssrc: number;
216
+ readonly dtmf: DTMFSender;
217
+ source?: AudioSourceLike;
218
+ engine: MojoRemote<AudioEngineHost>;
219
+ transport: AudioTransportInterface;
220
+ nodes: WeakMap<AudioSourceLike, MediaStreamAudioSourceNode | MediaElementAudioSourceNode>;
221
+ cleanup?: () => void;
222
+ constructor(ssrc: number, engine: MojoRemote<AudioEngineHost>, transport: AudioTransportInterface, dtmf: DTMFSender);
223
+ setParameters(parameters: AudioSendParameters): void;
224
+ getParameters(): AudioSendParameters;
225
+ setFrameEncryptor(encryptor: FrameEncryptorInterface): void;
226
+ setSource(source: AudioSourceLike): void;
227
+ getStats(): Promise<AudioSendStats>;
228
+ getStatsDetail(): Promise<AudioSendStats>;
229
+ getStatsReport(): Promise<AudioSendStats>;
230
+ stop(): void;
231
+ }
232
+
233
+ export declare class NativeDataChannel {
234
+ readonly type: MediaType;
235
+ transport: SFUTransportInterface;
236
+ config: SFUEndpointConfig;
237
+ alloc: MemoryAllocator;
238
+ view: MemoryViewer;
239
+ factory: VideoEngineHostFactory;
240
+ internal: MojoRemote<DataChannelHost>;
241
+ streams: Map<number, NativeDataStream | NativeSubtitleStream>;
242
+ cleanup: (() => void)[];
243
+ onopen?: () => void;
244
+ onclose?: () => void;
245
+ constructor(transport: SFUTransportInterface, factory: VideoEngineHostFactory);
246
+ createStream(type: DataType): Promise<NativeDataStream>;
247
+ closeStream(stream: NativeDataStream): Promise<void>;
248
+ createSubtitleStream(type?: DataType): Promise<NativeSubtitleStream>;
249
+ closeSubtitleStream(stream: NativeDataStream): Promise<void>;
250
+ open(channelConfig?: Partial<Omit<DataChannelConfig, 'ccid' | 'confid'>>): Promise<void>;
251
+ close(): Promise<void>;
252
+ }
253
+
254
+ export declare class NativeDataStream {
255
+ readonly type: DataType;
256
+ host: MojoRemote<DataStreamHost>;
257
+ ondata?: (data: Uint8Array, from: number[]) => void;
258
+ constructor(type: DataType, host: MojoRemote<DataStreamHost>);
259
+ write(data: Uint8Array, to?: number[], transfer?: boolean): void;
260
+ subscribe(request: number[], remove?: number[]): void;
261
+ }
262
+
263
+ export declare class NativeMediaEndpoint {
264
+ mss: string[];
265
+ transports: TransportLike[];
266
+ transport_factory: TransportFactoryInterface;
267
+ endpoint: SFUEndpointInterface;
268
+ config: SFUEndpointConfig;
269
+ onrefresh?: () => string[] | Promise<string[]>;
270
+ constructor(mss?: string[]);
271
+ init(): Promise<void>;
272
+ destroy(): void;
273
+ start(config: SFUEndpointConfig): Promise<void>;
274
+ stop(): void;
275
+ createTransport(type: SFUTransportType): SFUTransportInterface;
276
+ }
277
+
278
+ export declare class NativeMediaEngine implements MediaEngine {
279
+ audio: NativeAudioEngine;
280
+ video: NativeVideoEngine;
281
+ data: unknown;
282
+ constructor();
283
+ init(): Promise<void>;
284
+ }
285
+
286
+ export declare class NativeSubtitleStream {
287
+ readonly type: DataType;
288
+ host: MojoRemote<SubtitleStreamHost>;
289
+ ondata?: (data: RealtimeSubtitleInfo, from: number[]) => void;
290
+ constructor(type: DataType, host: MojoRemote<SubtitleStreamHost>);
291
+ write(data: RealtimeSubtitleInfo, to?: number[]): void;
292
+ subscribe(request: number[], remove?: number[]): void;
293
+ }
294
+
295
+ export declare class NativeVideoChannel implements VideoChannelInterface {
296
+ readonly type: MediaType;
297
+ readonly offscreen: OffscreenRenderer;
298
+ transport: SFUTransportInterface;
299
+ config: SFUEndpointConfig;
300
+ alloc: MemoryAllocator;
301
+ view: MemoryViewer;
302
+ factory: VideoEngineHostFactory;
303
+ encoder: MojoRemote<VideoChannelHost>;
304
+ decoder: MojoRemote<VideoChannelHost>;
305
+ senders: Map<number, NativeVideoSender>;
306
+ receivers: Map<number, NativeVideoReceiver>;
307
+ stats: {
308
+ send: SFUNetworkStats;
309
+ recv: SFUNetworkStats;
310
+ };
311
+ cleanup: (() => void)[];
312
+ onopen?: () => void;
313
+ onclose?: () => void;
314
+ constructor(transport: SFUTransportInterface, factory: VideoEngineHostFactory);
315
+ createSender(ssrc?: number): NativeVideoSender;
316
+ removeSender(ssrc?: number): void;
317
+ createReceiver(ssrc: number): NativeVideoReceiver;
318
+ removeReceiver(ssrc: number): void;
319
+ getStats(): Promise<VideoStats>;
320
+ open(channelConfig?: Partial<Omit<VideoChannelConfig, 'ccid' | 'confid' | 'orient'>>): Promise<void>;
321
+ close(): Promise<void>;
322
+ }
323
+
324
+ export declare class NativeVideoEngine implements VideoEngineInterface {
325
+ init(): Promise<void>;
326
+ createChannel(transport: SFUTransportInterface): NativeVideoChannel;
327
+ createDataChannel(transport: SFUTransportInterface): NativeDataChannel;
328
+ }
329
+
330
+ export declare class NativeVideoReceiver implements VideoReceiverInterface {
331
+ readonly ssrc: number;
332
+ sink?: VideoSinkLike;
333
+ channel: MojoChannel;
334
+ decoder: MojoRemote<VideoChannelHost>;
335
+ parameters: VideoRecvParameters;
336
+ loadeddata: boolean;
337
+ width?: number;
338
+ height?: number;
339
+ onloadeddata?: () => void;
340
+ onframechanged?: (width: number, height: number) => void;
341
+ onready?: () => void;
342
+ onfailed?: () => void;
343
+ constructor(ssrc: number, decoder: MojoRemote<VideoChannelHost>);
344
+ setParameters(parameters: VideoRecvParameters): void;
345
+ getParameters(): VideoRecvParameters;
346
+ setFrameDecryptor(decryptor: FrameDecryptorInterface): void;
347
+ setSink(sink?: VideoSinkLike, webgl?: boolean): void;
348
+ start(): void;
349
+ stop(): void;
350
+ getStats(): Promise<VideoRecvStats>;
351
+ getStatsDetail(): Promise<VideoRecvStats>;
352
+ }
353
+
354
+ export declare class NativeVideoSender implements VideoSenderInterface {
355
+ readonly ssrc: number;
356
+ readonly dtmf: void;
357
+ source?: VideoSourceLike;
358
+ channel: MojoChannel;
359
+ encoder: MojoRemote<VideoChannelHost>;
360
+ parameters: VideoSendParameters;
361
+ running: boolean;
362
+ onstart?: () => void;
363
+ onstop?: () => void;
364
+ onbusy?: (state: boolean) => void;
365
+ constructor(ssrc: number, encoder: MojoRemote<VideoChannelHost>);
366
+ setParameters(parameters: Partial<VideoSendParameters>): void;
367
+ getParameters(): VideoSendParameters;
368
+ setFrameEncryptor(encryptor: FrameEncryptorInterface): void;
369
+ setSource(source: VideoSourceLike): void;
370
+ stop(): void;
371
+ getStats(): Promise<VideoSendStats>;
372
+ getStatsDetail(): Promise<VideoSendStats>;
373
+ }
374
+
375
+ export declare function setupRemoteControl(stream: NativeDataStream, viewport: HTMLCanvasElement, remote: number[]): () => void;
376
+
377
+ export { SFUEndpointConfig }
378
+
379
+ export { SFUTransportType }
380
+
381
+ export { SFUUserRole }
382
+
383
+ declare interface SubtitleStreamHost {
384
+ write(data: RealtimeSubtitleInfo, dest: number[]): void;
385
+ subscribe(request: number[], remove: number[]): void;
386
+ }
387
+
388
+ declare type TransportLike = WebSocket | RTCPeerConnection;
389
+
390
+ declare interface VideoChannelHost extends VideoTransportEventHost {
391
+ mode(value: VideoEncodeMode): void;
392
+ open(config: VideoChannelConfig): void;
393
+ encode(buffer: RGBBufferBuilder): void;
394
+ setsource(source?: MojoPendingReceiver, frameRate?: number): boolean;
395
+ setsink(ccid: number, sink?: MojoPendingReceiver, rendererId?: number): void;
396
+ setframerate(frameRate: number): void;
397
+ setorient(orient: VideoChannelOrient): void;
398
+ load(canvas: OffscreenCanvas, webgl?: boolean): number;
399
+ unload(id: number): void;
400
+ subscribe(request: VideoSubscribeConfig[], remove: number[]): void;
401
+ sendstats(): VideoChannelStats;
402
+ recvstats(ccid: number): VideoChannelStats;
403
+ sendreport(): VideoChannelSendReport;
404
+ recvreport(ccid: number): VideoChannelRecvReport;
405
+ }
406
+
407
+ declare interface VideoEngineHost {
408
+ init(url: string, verbose?: boolean): void;
409
+ exit(): void;
410
+ suspend(): void;
411
+ resume(): void;
412
+ setup(transport: string, type?: VideoChannelType): MojoPendingReceiver;
413
+ setup2(transport: MojoPendingReceiver, type?: DataType): MojoPendingReceiver;
414
+ }
415
+
416
+ declare type VideoEngineHostFactory = () => Promise<[
417
+ MojoChannel,
418
+ MojoRemote<VideoEngineHost>,
419
+ () => Promise<void>
420
+ ]>;
421
+
422
+ declare interface VideoTransportEventHost {
423
+ onjoin(reason: SFUReason, data: Uint8Array): void;
424
+ onleave(reason: SFUReason): void;
425
+ onstatus(status: SFUTransportStatus, reason: SFUReason): void;
426
+ onsubscribe(ccid: number, reason: SFUReason, data: Uint8Array): void;
427
+ onsubscribeupdated(requests: SFUSubscribeConfig[]): void;
428
+ onbitrate(info: SFUNetworkInfo): void;
429
+ onsendstats(stats: SFUNetworkStats): void;
430
+ onrecvstats(stats: SFUNetworkStats): void;
431
+ onsendreport: (stats: SFUNetworkStats) => void;
432
+ ontimestamps(): void;
433
+ onmediasync(timestamps: SFUTimestamp[]): void;
434
+ onsignal(data: Uint8Array): void;
435
+ ondata(data: Uint8Array, ccid: number, time: string): void;
436
+ }
437
+
438
+ export { }