@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.
- package/dist/e30037b8/VERSION +6 -0
- package/dist/e30037b8/libipvp-simd.d.ts +474 -0
- package/dist/e30037b8/libipvp-simd.js +3267 -0
- package/dist/e30037b8/libipvp-simd.prod.d.ts +474 -0
- package/dist/e30037b8/libipvp-simd.prod.js +184 -0
- package/dist/e30037b8/libipvp-simd.prod.wasm +0 -0
- package/dist/e30037b8/libipvp-simd.wasm +0 -0
- package/dist/e30037b8/libipvp.d.ts +474 -0
- package/dist/e30037b8/libipvp.js +3267 -0
- package/dist/e30037b8/libipvp.prod.d.ts +474 -0
- package/dist/e30037b8/libipvp.prod.js +184 -0
- package/dist/e30037b8/libipvp.prod.wasm +0 -0
- package/dist/e30037b8/libipvp.wasm +0 -0
- package/dist/e30037b8/librtc.d.ts +438 -0
- package/dist/e30037b8/librtc.global.js +5863 -0
- package/dist/e30037b8/librtc.global.prod.js +15 -0
- package/dist/e30037b8/libsfu-simd.d.ts +767 -0
- package/dist/e30037b8/libsfu-simd.js +4822 -0
- package/dist/e30037b8/libsfu-simd.prod.d.ts +767 -0
- package/dist/e30037b8/libsfu-simd.prod.js +209 -0
- package/dist/e30037b8/libsfu-simd.prod.wasm +0 -0
- package/dist/e30037b8/libsfu-simd.wasm +0 -0
- package/dist/e30037b8/libsfu.d.ts +767 -0
- package/dist/e30037b8/libsfu.js +4822 -0
- package/dist/e30037b8/libsfu.prod.d.ts +767 -0
- package/dist/e30037b8/libsfu.prod.js +209 -0
- package/dist/e30037b8/libsfu.prod.wasm +0 -0
- package/dist/e30037b8/libsfu.wasm +0 -0
- package/dist/e30037b8/libsvc-simd-m1.d.ts +767 -0
- package/dist/e30037b8/libsvc-simd-m1.js +4921 -0
- package/dist/e30037b8/libsvc-simd-m1.prod.d.ts +767 -0
- package/dist/e30037b8/libsvc-simd-m1.prod.js +209 -0
- package/dist/e30037b8/libsvc-simd-m1.prod.wasm +0 -0
- package/dist/e30037b8/libsvc-simd-m1.wasm +0 -0
- package/dist/e30037b8/libsvc-simd.d.ts +767 -0
- package/dist/e30037b8/libsvc-simd.js +4857 -0
- package/dist/e30037b8/libsvc-simd.prod.d.ts +767 -0
- package/dist/e30037b8/libsvc-simd.prod.js +209 -0
- package/dist/e30037b8/libsvc-simd.prod.wasm +0 -0
- package/dist/e30037b8/libsvc-simd.wasm +0 -0
- package/dist/e30037b8/libsvc.d.ts +767 -0
- package/dist/e30037b8/libsvc.js +4857 -0
- package/dist/e30037b8/libsvc.prod.d.ts +767 -0
- package/dist/e30037b8/libsvc.prod.js +209 -0
- package/dist/e30037b8/libsvc.prod.wasm +0 -0
- package/dist/e30037b8/libsvc.wasm +0 -0
- package/dist/e30037b8/native-audio-worker.global.js +1583 -0
- package/dist/e30037b8/native-audio-worker.global.prod.js +15 -0
- package/dist/e30037b8/native-video-worker.global.js +1960 -0
- package/dist/e30037b8/native-video-worker.global.prod.js +15 -0
- package/dist/e30037b8/worklet-audio-worker.global.js +900 -0
- package/dist/e30037b8/worklet-audio-worker.global.prod.js +15 -0
- package/dist/style.css +1 -1
- package/dist/ylink-sdk-mobile.umd.js +70 -70
- 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 { }
|