@webex/web-media-effects-types 2.20.6
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/index.d.ts +284 -0
- package/package.json +23 -0
package/index.d.ts
ADDED
|
@@ -0,0 +1,284 @@
|
|
|
1
|
+
import TypedEmitter from 'typed-emitter';
|
|
2
|
+
import * as js_logger from 'js-logger';
|
|
3
|
+
export { default as Logger } from 'js-logger';
|
|
4
|
+
import { Generator, Quality, BlurStrength, Pipeline } from '@webex/ladon-ts';
|
|
5
|
+
export { BlurStrength, Generator, Quality } from '@webex/ladon-ts';
|
|
6
|
+
|
|
7
|
+
declare const EventEmitter_base: new <TT>() => TypedEmitter<TT>;
|
|
8
|
+
declare class EventEmitter<T> extends EventEmitter_base<T> {
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
type MediaStreamOrTrack = MediaStream | MediaStreamTrack;
|
|
12
|
+
interface TrackEffect {
|
|
13
|
+
getUnderlyingStream(): MediaStream | undefined;
|
|
14
|
+
getOutputTrack(): MediaStreamTrack | undefined;
|
|
15
|
+
load(input: MediaStreamOrTrack): Promise<MediaStreamOrTrack>;
|
|
16
|
+
loadMediaStream(stream: MediaStream): Promise<MediaStream>;
|
|
17
|
+
loadMediaStreamTrack(track: MediaStreamTrack): Promise<MediaStreamTrack>;
|
|
18
|
+
replaceInputTrack(track: MediaStreamTrack): Promise<void>;
|
|
19
|
+
setEnabled(enable: boolean): Promise<void>;
|
|
20
|
+
enable(): Promise<void | boolean>;
|
|
21
|
+
disable(): Promise<void | boolean>;
|
|
22
|
+
dispose(): void;
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
declare enum EffectEnv {
|
|
26
|
+
Prod = "prod",
|
|
27
|
+
Int = "int"
|
|
28
|
+
}
|
|
29
|
+
declare enum EffectEvent {
|
|
30
|
+
TrackUpdated = "track-updated",
|
|
31
|
+
Enabled = "enabled",
|
|
32
|
+
Disabled = "disabled",
|
|
33
|
+
Disposed = "disposed"
|
|
34
|
+
}
|
|
35
|
+
interface EffectEventCallback {
|
|
36
|
+
[EffectEvent.TrackUpdated]: (track: MediaStreamTrack) => void;
|
|
37
|
+
[EffectEvent.Enabled]: () => void;
|
|
38
|
+
[EffectEvent.Disabled]: () => void;
|
|
39
|
+
[EffectEvent.Disposed]: () => void;
|
|
40
|
+
}
|
|
41
|
+
interface EffectOptions {
|
|
42
|
+
[key: string]: unknown;
|
|
43
|
+
}
|
|
44
|
+
declare abstract class BaseEffect extends EventEmitter<EffectEventCallback> implements TrackEffect {
|
|
45
|
+
protected effectTrack?: MediaStreamTrack;
|
|
46
|
+
protected outputTrack?: MediaStreamTrack;
|
|
47
|
+
protected inputStream?: MediaStream;
|
|
48
|
+
protected outputStream?: MediaStream;
|
|
49
|
+
readonly id: string;
|
|
50
|
+
readonly kind: string;
|
|
51
|
+
isEnabled: boolean;
|
|
52
|
+
get underlyingStream(): MediaStream | undefined;
|
|
53
|
+
get inputTrack(): MediaStreamTrack | undefined;
|
|
54
|
+
constructor();
|
|
55
|
+
getOutputTrack(): MediaStreamTrack | undefined;
|
|
56
|
+
getOutputStream(): MediaStream | undefined;
|
|
57
|
+
getUnderlyingStream(): MediaStream | undefined;
|
|
58
|
+
preloadAssets(): Promise<void>;
|
|
59
|
+
load(stream: MediaStream): Promise<MediaStream>;
|
|
60
|
+
load(track: MediaStreamTrack): Promise<MediaStreamTrack>;
|
|
61
|
+
loadMediaStream(input: MediaStream): Promise<MediaStream>;
|
|
62
|
+
loadMediaStreamTrack(input: MediaStreamTrack): Promise<MediaStreamTrack>;
|
|
63
|
+
loadMedia(inputTrack: MediaStreamTrack, inputStream?: MediaStream): Promise<void>;
|
|
64
|
+
replaceInputTrack(track: MediaStreamTrack): Promise<void>;
|
|
65
|
+
enable(): Promise<void | boolean>;
|
|
66
|
+
disable(): Promise<void | boolean>;
|
|
67
|
+
dispose(): Promise<void>;
|
|
68
|
+
setEnabled(enable: boolean): Promise<void>;
|
|
69
|
+
}
|
|
70
|
+
declare const createEffect: <T extends BaseEffect, O>(EffectClass: new (opts?: O | undefined) => T, options?: EffectOptions & O, preloadAssets?: boolean) => Promise<T>;
|
|
71
|
+
|
|
72
|
+
declare abstract class BaseCameraEffect extends BaseEffect {
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
declare abstract class BaseMicrophoneEffect extends BaseEffect {
|
|
76
|
+
audioContext: AudioContext;
|
|
77
|
+
constructor(audioCtx?: AudioContext);
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
interface GainEffectOptions {
|
|
81
|
+
audioContext: AudioContext;
|
|
82
|
+
maxGain: number;
|
|
83
|
+
rampTime: number;
|
|
84
|
+
}
|
|
85
|
+
declare class GainEffect extends BaseMicrophoneEffect {
|
|
86
|
+
static readonly kind = "gain-effect";
|
|
87
|
+
gainNode: GainNode;
|
|
88
|
+
gainValue: number;
|
|
89
|
+
options: GainEffectOptions;
|
|
90
|
+
constructor(options: GainEffectOptions);
|
|
91
|
+
loadMediaStream(input: MediaStream): Promise<MediaStream>;
|
|
92
|
+
loadMediaStreamTrack(input: MediaStreamTrack): Promise<MediaStreamTrack>;
|
|
93
|
+
createOutputStream(): Promise<MediaStream>;
|
|
94
|
+
setGainValue(value: number): void;
|
|
95
|
+
enable(): Promise<void>;
|
|
96
|
+
disable(): Promise<void>;
|
|
97
|
+
dispose(): Promise<void>;
|
|
98
|
+
}
|
|
99
|
+
|
|
100
|
+
declare enum NoiseReductionMode {
|
|
101
|
+
Legacy = "LEGACY",
|
|
102
|
+
Worklet = "WORKLET"
|
|
103
|
+
}
|
|
104
|
+
interface NoiseReductionEffectOptions extends EffectOptions {
|
|
105
|
+
authToken: string;
|
|
106
|
+
audioContext?: AudioContext;
|
|
107
|
+
mode?: NoiseReductionMode;
|
|
108
|
+
env?: EffectEnv;
|
|
109
|
+
avoidSimd?: boolean;
|
|
110
|
+
workletProcessorUrl?: string;
|
|
111
|
+
legacyProcessorUrl?: string;
|
|
112
|
+
}
|
|
113
|
+
declare class NoiseReductionEffect extends BaseMicrophoneEffect {
|
|
114
|
+
static readonly kind = "noise-reduction-effect";
|
|
115
|
+
static supportsSimd: () => Promise<boolean>;
|
|
116
|
+
static Events: {
|
|
117
|
+
Ready: string;
|
|
118
|
+
Disabled: string;
|
|
119
|
+
Disposed: string;
|
|
120
|
+
Enabled: string;
|
|
121
|
+
Error: string;
|
|
122
|
+
};
|
|
123
|
+
sourceNode?: MediaStreamAudioSourceNode;
|
|
124
|
+
workletNode?: AudioWorkletNode;
|
|
125
|
+
legacyProcessor?: typeof window.WebMediaEffects.NoiseReductionLegacyProcessor;
|
|
126
|
+
legacyScriptNode?: ScriptProcessorNode;
|
|
127
|
+
isReady: boolean;
|
|
128
|
+
options: Partial<NoiseReductionEffectOptions>;
|
|
129
|
+
private disableFuture;
|
|
130
|
+
private enableFuture;
|
|
131
|
+
private preloadFuture?;
|
|
132
|
+
private loadFuture?;
|
|
133
|
+
private disposeFuture?;
|
|
134
|
+
get isLoaded(): boolean;
|
|
135
|
+
constructor(options?: Partial<NoiseReductionEffectOptions>);
|
|
136
|
+
private fetchUrl;
|
|
137
|
+
loadMediaStream(input: MediaStream): Promise<MediaStream>;
|
|
138
|
+
loadMediaStreamTrack(input: MediaStreamTrack): Promise<MediaStreamTrack>;
|
|
139
|
+
createOutputStream(): Promise<MediaStream>;
|
|
140
|
+
preloadAssets(): Promise<void>;
|
|
141
|
+
private fetchAndLoadWorkletProcessor;
|
|
142
|
+
private fetchAndLoadLegacyProcessor;
|
|
143
|
+
loadWorklet(stream: MediaStream, destination: MediaStreamAudioDestinationNode): Promise<MediaStream>;
|
|
144
|
+
loadLegacy(stream: MediaStream, destination: MediaStreamAudioDestinationNode): Promise<MediaStream>;
|
|
145
|
+
enable(): Promise<void>;
|
|
146
|
+
disable(): Promise<void>;
|
|
147
|
+
dispose(): Promise<void>;
|
|
148
|
+
handleDisabled(): Promise<void>;
|
|
149
|
+
handleEnabled(): Promise<void>;
|
|
150
|
+
}
|
|
151
|
+
declare const createNoiseReductionEffect: (options?: NoiseReductionEffectOptions, preloadAssets?: boolean) => Promise<NoiseReductionEffect>;
|
|
152
|
+
|
|
153
|
+
declare const logger: js_logger.ILogger;
|
|
154
|
+
//# sourceMappingURL=logger.d.ts.map
|
|
155
|
+
|
|
156
|
+
interface RateEstimatorOptions {
|
|
157
|
+
hysteresisMargin: number;
|
|
158
|
+
lowDuration: number;
|
|
159
|
+
lowThreshold: number;
|
|
160
|
+
minSamples: number;
|
|
161
|
+
maxSamples: number;
|
|
162
|
+
}
|
|
163
|
+
declare enum RateEstimatorEvent {
|
|
164
|
+
RateOk = "rate-ok",
|
|
165
|
+
RateLow = "rate-low",
|
|
166
|
+
RateLagging = "rate-lagging"
|
|
167
|
+
}
|
|
168
|
+
interface RateEstimatorEventCallback {
|
|
169
|
+
[RateEstimatorEvent.RateLow]: (rate: number) => void;
|
|
170
|
+
[RateEstimatorEvent.RateOk]: (rate: number) => void;
|
|
171
|
+
[RateEstimatorEvent.RateLagging]: (rate: number) => void;
|
|
172
|
+
}
|
|
173
|
+
declare enum RateEstimatorStatus {
|
|
174
|
+
Idle = "idle",
|
|
175
|
+
Init = "init",
|
|
176
|
+
Lagging = "lagging",
|
|
177
|
+
Low = "low",
|
|
178
|
+
Ok = "ok"
|
|
179
|
+
}
|
|
180
|
+
interface RateEstimatedValues {
|
|
181
|
+
rate?: number;
|
|
182
|
+
status: RateEstimatorStatus;
|
|
183
|
+
threshold: number;
|
|
184
|
+
}
|
|
185
|
+
declare class RateEstimator extends EventEmitter<RateEstimatorEventCallback> {
|
|
186
|
+
private timestamps;
|
|
187
|
+
private targetRate?;
|
|
188
|
+
private estimatedRate?;
|
|
189
|
+
private lowRateStartTime?;
|
|
190
|
+
private options;
|
|
191
|
+
status: RateEstimatorStatus;
|
|
192
|
+
constructor(targetRate: number, options?: Partial<RateEstimatorOptions>);
|
|
193
|
+
getEstimatedValues(): RateEstimatedValues;
|
|
194
|
+
getOptions(): Readonly<RateEstimatorOptions>;
|
|
195
|
+
getTimestamps(): Readonly<number[]>;
|
|
196
|
+
addTimestamp(timestamp: DOMHighResTimeStamp): void;
|
|
197
|
+
private calculateAndUpdateRate;
|
|
198
|
+
private evaluateRate;
|
|
199
|
+
private isRateLow;
|
|
200
|
+
private handleLowRate;
|
|
201
|
+
private handleReturnToNormalRate;
|
|
202
|
+
reset(): void;
|
|
203
|
+
updateOptions(newOptions: Partial<RateEstimatorOptions>): void;
|
|
204
|
+
}
|
|
205
|
+
|
|
206
|
+
declare function debounce<F extends (...args: Parameters<F>) => ReturnType<F>>(func: F, delay: number): (...args: Parameters<F>) => void;
|
|
207
|
+
|
|
208
|
+
declare const DEFAULT_FRAME_RATE = 24;
|
|
209
|
+
|
|
210
|
+
declare enum VirtualBackgroundMode {
|
|
211
|
+
Blur = "BLUR",
|
|
212
|
+
Image = "IMAGE",
|
|
213
|
+
Video = "VIDEO"
|
|
214
|
+
}
|
|
215
|
+
interface VirtualBackgroundEffectOptions extends EffectOptions {
|
|
216
|
+
generator: Generator;
|
|
217
|
+
mode: VirtualBackgroundMode;
|
|
218
|
+
quality: Quality;
|
|
219
|
+
frameRate?: number;
|
|
220
|
+
blurStrength?: BlurStrength;
|
|
221
|
+
bgImageUrl?: string;
|
|
222
|
+
bgVideoUrl?: string;
|
|
223
|
+
authToken: string;
|
|
224
|
+
mirror: boolean;
|
|
225
|
+
env?: EffectEnv;
|
|
226
|
+
preventBackgroundThrottling?: boolean;
|
|
227
|
+
}
|
|
228
|
+
declare const defaultOptions: VirtualBackgroundEffectOptions;
|
|
229
|
+
declare class VirtualBackgroundEffect extends BaseCameraEffect {
|
|
230
|
+
static readonly kind = "virtual-background-effect";
|
|
231
|
+
static readonly BlurStrength: typeof BlurStrength;
|
|
232
|
+
static readonly Quality: typeof Quality;
|
|
233
|
+
readonly defaultOptions: VirtualBackgroundEffectOptions;
|
|
234
|
+
inputEl?: HTMLCanvasElement;
|
|
235
|
+
outputEl?: HTMLCanvasElement;
|
|
236
|
+
videoEl?: HTMLVideoElement;
|
|
237
|
+
virtualVideoEl?: HTMLVideoElement;
|
|
238
|
+
backgroundEl?: HTMLCanvasElement;
|
|
239
|
+
options: VirtualBackgroundEffectOptions;
|
|
240
|
+
model?: Pipeline;
|
|
241
|
+
uniqueId: number;
|
|
242
|
+
requestFrame?: ReturnType<typeof debounce>;
|
|
243
|
+
trackSettings?: MediaTrackSettings;
|
|
244
|
+
private preloadFuture?;
|
|
245
|
+
private loadFuture?;
|
|
246
|
+
private disposeFuture?;
|
|
247
|
+
private onFrameProcessedCallback?;
|
|
248
|
+
private lastFrameTime;
|
|
249
|
+
private frameInterval;
|
|
250
|
+
private restoreEffectOnTrackEnable;
|
|
251
|
+
private timerId?;
|
|
252
|
+
get isReady(): boolean;
|
|
253
|
+
get isLoaded(): boolean;
|
|
254
|
+
get frameRate(): number;
|
|
255
|
+
constructor(options?: Partial<VirtualBackgroundEffectOptions>);
|
|
256
|
+
preloadAssets(): Promise<void>;
|
|
257
|
+
loadMediaStream(input: MediaStream): Promise<MediaStream>;
|
|
258
|
+
loadMediaStreamTrack(input: MediaStreamTrack): Promise<MediaStreamTrack>;
|
|
259
|
+
loadDomAndModel(): Promise<void>;
|
|
260
|
+
private setupVisibilityChange;
|
|
261
|
+
private handleVisibilityChange;
|
|
262
|
+
private requestAnimationFrameWrapper;
|
|
263
|
+
private setTimeoutWrapper;
|
|
264
|
+
private clearTimers;
|
|
265
|
+
private createPipeline;
|
|
266
|
+
private loadModel;
|
|
267
|
+
private handleFrame;
|
|
268
|
+
private manageEffectRestoration;
|
|
269
|
+
private setupDom;
|
|
270
|
+
private detectQuirks;
|
|
271
|
+
private handleOrientationChange;
|
|
272
|
+
private handleVideoLoadedMetadata;
|
|
273
|
+
private handleVideoResize;
|
|
274
|
+
private handleModelResolver;
|
|
275
|
+
enable(): Promise<boolean>;
|
|
276
|
+
disable(): Promise<boolean>;
|
|
277
|
+
dispose(): Promise<void>;
|
|
278
|
+
setOnFrameProcessedCallback(callback: (timestamp: number) => void): void;
|
|
279
|
+
updateOptions(options: Partial<VirtualBackgroundEffectOptions>): Promise<void>;
|
|
280
|
+
updateSize(width: number, height: number): Promise<void>;
|
|
281
|
+
}
|
|
282
|
+
declare const createVirtualBackgroundEffect: (options?: VirtualBackgroundEffectOptions, preloadAssets?: boolean) => Promise<VirtualBackgroundEffect>;
|
|
283
|
+
|
|
284
|
+
export { BaseCameraEffect, BaseEffect, BaseMicrophoneEffect, DEFAULT_FRAME_RATE, EffectEnv, EffectEvent, EffectEventCallback, EffectOptions, GainEffect, MediaStreamOrTrack, NoiseReductionEffect, NoiseReductionEffectOptions, NoiseReductionMode, RateEstimatedValues, RateEstimator, RateEstimatorEvent, RateEstimatorEventCallback, RateEstimatorOptions, RateEstimatorStatus, TrackEffect, VirtualBackgroundEffect, VirtualBackgroundEffectOptions, VirtualBackgroundMode, createEffect, createNoiseReductionEffect, createVirtualBackgroundEffect, defaultOptions, logger };
|
package/package.json
ADDED
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@webex/web-media-effects-types",
|
|
3
|
+
"version": "2.20.6",
|
|
4
|
+
"description": "TypeScript definitions for @webex/web-media-effects",
|
|
5
|
+
"main": "",
|
|
6
|
+
"types": "index.d.ts",
|
|
7
|
+
"files": [
|
|
8
|
+
"index.d.ts"
|
|
9
|
+
],
|
|
10
|
+
"scripts": {
|
|
11
|
+
"prepare": "cp ../dist/types/index.d.ts ./index.d.ts"
|
|
12
|
+
},
|
|
13
|
+
"repository": {
|
|
14
|
+
"type": "git",
|
|
15
|
+
"url": "https://github.com/webex/web-media-effects"
|
|
16
|
+
},
|
|
17
|
+
"author": "Andi Wilson <andiwils@cisco.com>",
|
|
18
|
+
"license": "SEE LICENSE IN LICENSE.md",
|
|
19
|
+
"publishConfig": {
|
|
20
|
+
"registry": "https://registry.npmjs.org/",
|
|
21
|
+
"access": "public"
|
|
22
|
+
}
|
|
23
|
+
}
|