@webex/ladon-ts 4.2.4 → 4.4.0
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/CHANGELOG.md +19 -0
- package/build/module/index.d.ts +1 -0
- package/build/module/index.js +2 -1
- package/build/module/lib/config.d.ts +54 -18
- package/build/module/lib/config.js +58 -32
- package/build/module/lib/generator.d.ts +19 -10
- package/build/module/lib/generator.js +107 -79
- package/build/module/lib/pipeline.d.ts +38 -6
- package/build/module/lib/pipeline.js +68 -22
- package/build/module/lib/renderer/blur-renderer.d.ts +2 -2
- package/build/module/lib/renderer/blur-renderer.js +24 -34
- package/build/module/lib/renderer/ladon-renderer.d.ts +2 -2
- package/build/module/lib/renderer/passthrough-renderer.d.ts +2 -2
- package/build/module/lib/renderer/passthrough-renderer.js +1 -1
- package/build/module/lib/renderer/replacement-renderer.d.ts +2 -2
- package/build/module/lib/renderer/replacement-renderer.js +20 -14
- package/build/module/lib/renderer/webgl-renderer.js +8 -6
- package/build/module/lib/shared-resource-manager.d.ts +84 -0
- package/build/module/lib/shared-resource-manager.js +189 -0
- package/build/module/lib/util.d.ts +32 -10
- package/build/module/lib/util.js +139 -61
- package/build/module/lib/version.d.ts +1 -1
- package/build/module/lib/version.js +1 -1
- package/package.json +4 -3
package/CHANGELOG.md
CHANGED
|
@@ -2,6 +2,25 @@
|
|
|
2
2
|
|
|
3
3
|
All notable changes to this project will be documented in this file. See [standard-version](https://github.com/conventional-changelog/standard-version) for commit guidelines.
|
|
4
4
|
|
|
5
|
+
## [4.4.0](https://github.com/beyonddunbar/ladon-ts/compare/v4.3.0...v4.4.0) (2024-09-03)
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
### Features
|
|
9
|
+
|
|
10
|
+
* 0.7.7.1 model updates and mask edge fix ([#12](https://github.com/beyonddunbar/ladon-ts/issues/12)) ([00c5584](https://github.com/beyonddunbar/ladon-ts/commit/00c5584b6f2f86803ddb70027c010d2ef00f79db))
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
### Bug Fixes
|
|
14
|
+
|
|
15
|
+
* lint ([e19d2de](https://github.com/beyonddunbar/ladon-ts/commit/e19d2de5146da979dcba82b659ab2802b9c8ea49))
|
|
16
|
+
|
|
17
|
+
## [4.3.0](https://github.com/beyonddunbar/ladon-ts/compare/v4.2.4...v4.3.0) (2024-03-25)
|
|
18
|
+
|
|
19
|
+
|
|
20
|
+
### Features
|
|
21
|
+
|
|
22
|
+
* preload model and dependencies ([#9](https://github.com/beyonddunbar/ladon-ts/issues/9)) ([14fa92c](https://github.com/beyonddunbar/ladon-ts/commit/14fa92cb44d47100ff95da3abd2c763fcc87376d))
|
|
23
|
+
|
|
5
24
|
### [4.2.4](https://github.com/beyonddunbar/ladon-ts/compare/v4.2.3...v4.2.4) (2023-09-08)
|
|
6
25
|
|
|
7
26
|
### [4.2.3](https://github.com/beyonddunbar/ladon-ts/compare/v4.2.2...v4.2.3) (2023-08-10)
|
package/build/module/index.d.ts
CHANGED
package/build/module/index.js
CHANGED
|
@@ -4,4 +4,5 @@ export * from './lib/pipeline';
|
|
|
4
4
|
export * from './lib/renderer';
|
|
5
5
|
export * from './lib/util';
|
|
6
6
|
export * from './lib/version';
|
|
7
|
-
|
|
7
|
+
export * from './lib/shared-resource-manager';
|
|
8
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxjQUFjLENBQUM7QUFDN0IsY0FBYyxpQkFBaUIsQ0FBQztBQUNoQyxjQUFjLGdCQUFnQixDQUFDO0FBQy9CLGNBQWMsZ0JBQWdCLENBQUM7QUFDL0IsY0FBYyxZQUFZLENBQUM7QUFDM0IsY0FBYyxlQUFlLENBQUM7QUFDOUIsY0FBYywrQkFBK0IsQ0FBQyJ9
|
|
@@ -1,3 +1,23 @@
|
|
|
1
|
+
export declare const BASE_URL = "https://models.intelligence.webex.com/ladon";
|
|
2
|
+
export declare const LOCAL_BASE_URL = "https://localhost";
|
|
3
|
+
export declare const LOCAL_WORKER_URI = "/segmentation.js";
|
|
4
|
+
export declare const LOCAL_PORT = 1235;
|
|
5
|
+
export declare const MODEL_VERSION = "0.7.7.1";
|
|
6
|
+
export declare const WASM_URI = "/wasm/1.15.1b/";
|
|
7
|
+
export declare enum Quality {
|
|
8
|
+
TINY = "TINY",
|
|
9
|
+
LOW = "LOW",
|
|
10
|
+
MEDIUM = "MEDIUM",
|
|
11
|
+
HIGH = "HIGH",
|
|
12
|
+
ULTRA = "ULTRA"
|
|
13
|
+
}
|
|
14
|
+
export declare enum BlurStrength {
|
|
15
|
+
WEAK = "WEAK",
|
|
16
|
+
MODERATE = "MODERATE",
|
|
17
|
+
STRONG = "STRONG",
|
|
18
|
+
STRONGER = "STRONGER",
|
|
19
|
+
STRONGEST = "STRONGEST"
|
|
20
|
+
}
|
|
1
21
|
export declare type SizeConfig = {
|
|
2
22
|
readonly height: number;
|
|
3
23
|
readonly width: number;
|
|
@@ -19,15 +39,26 @@ export interface ReplacementConfig extends RenderConfig {
|
|
|
19
39
|
readonly static: boolean;
|
|
20
40
|
}
|
|
21
41
|
export declare type Generator = 'local' | 'worker';
|
|
22
|
-
export declare type
|
|
42
|
+
export declare type BaseMaskConfig = {
|
|
23
43
|
readonly generator: Generator;
|
|
24
44
|
readonly generation_interval_ms: number;
|
|
25
45
|
readonly model_rank: number;
|
|
26
46
|
readonly model_url_resolver: ModelUrlResolver;
|
|
27
47
|
readonly model_uri: string;
|
|
28
48
|
readonly worker_uri: string;
|
|
49
|
+
readonly input_size?: SizeConfig;
|
|
50
|
+
readonly output_size?: SizeConfig;
|
|
51
|
+
readonly upscaled_size?: SizeConfig;
|
|
52
|
+
};
|
|
53
|
+
export declare type MaskConfig = BaseMaskConfig & {
|
|
29
54
|
readonly input_size: SizeConfig;
|
|
30
55
|
readonly output_size: SizeConfig;
|
|
56
|
+
readonly upscaled_size: SizeConfig;
|
|
57
|
+
};
|
|
58
|
+
export declare type PreloadConfig = {
|
|
59
|
+
readonly base_url?: string;
|
|
60
|
+
readonly wasm_uri?: string;
|
|
61
|
+
readonly mask: BaseMaskConfig;
|
|
31
62
|
};
|
|
32
63
|
export declare type PipelineConfig = {
|
|
33
64
|
readonly base_url?: string;
|
|
@@ -36,22 +67,8 @@ export declare type PipelineConfig = {
|
|
|
36
67
|
readonly input: InputConfig;
|
|
37
68
|
readonly mask: MaskConfig;
|
|
38
69
|
};
|
|
39
|
-
export declare enum Quality {
|
|
40
|
-
TINY = "TINY",
|
|
41
|
-
LOW = "LOW",
|
|
42
|
-
MEDIUM = "MEDIUM",
|
|
43
|
-
HIGH = "HIGH",
|
|
44
|
-
ULTRA = "ULTRA"
|
|
45
|
-
}
|
|
46
|
-
export declare enum BlurStrength {
|
|
47
|
-
WEAK = "WEAK",
|
|
48
|
-
MODERATE = "MODERATE",
|
|
49
|
-
STRONG = "STRONG",
|
|
50
|
-
STRONGER = "STRONGER",
|
|
51
|
-
STRONGEST = "STRONGEST"
|
|
52
|
-
}
|
|
53
70
|
export declare const getBlurConfig: (blur_strength: BlurStrength, horizontal_mirror?: boolean) => BlurConfig;
|
|
54
|
-
export declare const
|
|
71
|
+
export declare const getPreloadConfig: (quality?: Quality, generator?: Generator, model_url_resolver?: ModelUrlResolver, base_url?: string, useLocalWorker?: boolean) => {
|
|
55
72
|
mask: {
|
|
56
73
|
generator: Generator;
|
|
57
74
|
generation_interval_ms: number;
|
|
@@ -59,11 +76,30 @@ export declare const getConfig: (height: number, width: number, quality?: Qualit
|
|
|
59
76
|
model_url_resolver: ModelUrlResolver;
|
|
60
77
|
model_uri: string;
|
|
61
78
|
worker_uri: string;
|
|
79
|
+
input_size?: SizeConfig | undefined;
|
|
80
|
+
output_size?: SizeConfig | undefined;
|
|
81
|
+
upscaled_size?: SizeConfig | undefined;
|
|
82
|
+
};
|
|
83
|
+
base_url?: string | undefined;
|
|
84
|
+
wasm_uri?: string | undefined;
|
|
85
|
+
};
|
|
86
|
+
export declare const getConfig: (height: number, width: number, quality?: Quality, generator?: Generator, renderConfig?: BlurConfig | RenderConfig | ReplacementConfig, modelUrlResolver?: ModelUrlResolver, baseUrl?: string, useLocalWorker?: boolean) => {
|
|
87
|
+
render: RenderConfig | BlurConfig | ReplacementConfig;
|
|
88
|
+
input: {
|
|
89
|
+
height: number;
|
|
90
|
+
width: number;
|
|
91
|
+
};
|
|
92
|
+
mask: {
|
|
62
93
|
input_size: SizeConfig;
|
|
63
94
|
output_size: SizeConfig;
|
|
95
|
+
upscaled_size: SizeConfig;
|
|
96
|
+
generator: Generator;
|
|
97
|
+
generation_interval_ms: number;
|
|
98
|
+
model_rank: number;
|
|
99
|
+
model_url_resolver: ModelUrlResolver;
|
|
100
|
+
model_uri: string;
|
|
101
|
+
worker_uri: string;
|
|
64
102
|
};
|
|
65
103
|
base_url?: string | undefined;
|
|
66
104
|
wasm_uri?: string | undefined;
|
|
67
|
-
render: BlurConfig | RenderConfig | ReplacementConfig;
|
|
68
|
-
input: InputConfig;
|
|
69
105
|
};
|
|
@@ -1,5 +1,11 @@
|
|
|
1
1
|
import { toAbsoluteURI } from './util';
|
|
2
2
|
import { LIB_VERSION } from './version';
|
|
3
|
+
export const BASE_URL = 'https://models.intelligence.webex.com/ladon';
|
|
4
|
+
export const LOCAL_BASE_URL = 'https://localhost';
|
|
5
|
+
export const LOCAL_WORKER_URI = '/segmentation.js';
|
|
6
|
+
export const LOCAL_PORT = 1235;
|
|
7
|
+
export const MODEL_VERSION = '0.7.7.1';
|
|
8
|
+
export const WASM_URI = '/wasm/1.15.1b/';
|
|
3
9
|
export var Quality;
|
|
4
10
|
(function (Quality) {
|
|
5
11
|
Quality["TINY"] = "TINY";
|
|
@@ -50,36 +56,27 @@ export const getBlurConfig = (blur_strength, horizontal_mirror) => {
|
|
|
50
56
|
sigma,
|
|
51
57
|
};
|
|
52
58
|
};
|
|
53
|
-
export const
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
59
|
+
export const getPreloadConfig = (quality = Quality.LOW, generator = 'local', model_url_resolver = (model_path) => Promise.resolve(toAbsoluteURI(model_path, BASE_URL)), base_url = BASE_URL, useLocalWorker = false) => {
|
|
60
|
+
const model_version = MODEL_VERSION;
|
|
61
|
+
const localBaseUrl = `${LOCAL_BASE_URL}:${LOCAL_PORT}`;
|
|
62
|
+
const workerBaseUrl = useLocalWorker ? localBaseUrl : base_url;
|
|
63
|
+
const workerScriptPath = useLocalWorker
|
|
64
|
+
? LOCAL_WORKER_URI
|
|
65
|
+
: `/${LIB_VERSION}/worker/segmentation.js`;
|
|
66
|
+
const worker_uri = toAbsoluteURI(workerScriptPath, workerBaseUrl);
|
|
60
67
|
const base_config = {
|
|
61
68
|
base_url,
|
|
62
|
-
wasm_uri:
|
|
63
|
-
render: render_config,
|
|
64
|
-
input: {
|
|
65
|
-
height,
|
|
66
|
-
width,
|
|
67
|
-
},
|
|
69
|
+
wasm_uri: WASM_URI,
|
|
68
70
|
mask: {
|
|
69
|
-
generation_interval_ms: 48,
|
|
70
71
|
generator,
|
|
72
|
+
generation_interval_ms: 48,
|
|
73
|
+
model_uri: `/models/${model_version}/tiny-256x144-256x144.onnx`,
|
|
74
|
+
input_size: { height: 144, width: 256 },
|
|
75
|
+
output_size: { height: 144, width: 256 },
|
|
76
|
+
upscaled_size: { height: 360, width: 640 },
|
|
77
|
+
model_rank: 4,
|
|
71
78
|
model_url_resolver,
|
|
72
|
-
|
|
73
|
-
worker_uri: `/${LIB_VERSION}/worker/segmentation.js`,
|
|
74
|
-
model_rank: 3,
|
|
75
|
-
input_size: {
|
|
76
|
-
height,
|
|
77
|
-
width,
|
|
78
|
-
},
|
|
79
|
-
output_size: {
|
|
80
|
-
height,
|
|
81
|
-
width,
|
|
82
|
-
},
|
|
79
|
+
worker_uri,
|
|
83
80
|
},
|
|
84
81
|
};
|
|
85
82
|
let mask_quality_config = {};
|
|
@@ -87,34 +84,51 @@ export const getConfig = (height, width, quality = Quality.LOW, generator = 'loc
|
|
|
87
84
|
case Quality.TINY:
|
|
88
85
|
mask_quality_config = {
|
|
89
86
|
generation_interval_ms: 48,
|
|
90
|
-
model_uri: `/models/${model_version}/
|
|
87
|
+
model_uri: `/models/${model_version}/tiny-256x144-256x144.onnx`,
|
|
91
88
|
input_size: { height: 144, width: 256 },
|
|
92
|
-
output_size: { height:
|
|
89
|
+
output_size: { height: 144, width: 256 },
|
|
90
|
+
upscaled_size: { height: 360, width: 640 },
|
|
93
91
|
model_rank: 4,
|
|
94
92
|
};
|
|
95
93
|
break;
|
|
96
94
|
case Quality.LOW:
|
|
97
95
|
mask_quality_config = {
|
|
98
96
|
generation_interval_ms: 48,
|
|
99
|
-
model_uri: `/models/${model_version}/
|
|
97
|
+
model_uri: `/models/${model_version}/low-256x144-256x144.onnx`,
|
|
98
|
+
input_size: { height: 144, width: 256 },
|
|
99
|
+
output_size: { height: 144, width: 256 },
|
|
100
|
+
upscaled_size: { height: 360, width: 640 },
|
|
101
|
+
model_rank: 4,
|
|
100
102
|
};
|
|
101
103
|
break;
|
|
102
104
|
case Quality.MEDIUM:
|
|
103
105
|
mask_quality_config = {
|
|
104
106
|
generation_interval_ms: 24,
|
|
105
|
-
model_uri: `/models/${model_version}/
|
|
107
|
+
model_uri: `/models/${model_version}/medium-256x144-256x144.onnx`,
|
|
108
|
+
input_size: { height: 144, width: 256 },
|
|
109
|
+
output_size: { height: 144, width: 256 },
|
|
110
|
+
upscaled_size: { height: 360, width: 640 },
|
|
111
|
+
model_rank: 4,
|
|
106
112
|
};
|
|
107
113
|
break;
|
|
108
114
|
case Quality.HIGH:
|
|
109
115
|
mask_quality_config = {
|
|
110
116
|
generation_interval_ms: 36,
|
|
111
|
-
model_uri: `/models/${model_version}/
|
|
117
|
+
model_uri: `/models/${model_version}/medium-640x360-256x144.onnx`,
|
|
118
|
+
input_size: { height: 360, width: 640 },
|
|
119
|
+
output_size: { height: 360, width: 640 },
|
|
120
|
+
upscaled_size: { height: 360, width: 640 },
|
|
121
|
+
model_rank: 4,
|
|
112
122
|
};
|
|
113
123
|
break;
|
|
114
124
|
case Quality.ULTRA:
|
|
115
125
|
mask_quality_config = {
|
|
116
126
|
generation_interval_ms: 0,
|
|
117
|
-
model_uri: `/models/${model_version}/
|
|
127
|
+
model_uri: `/models/${model_version}/medium-640x360-256x144.onnx`,
|
|
128
|
+
input_size: { height: 360, width: 640 },
|
|
129
|
+
output_size: { height: 360, width: 640 },
|
|
130
|
+
upscaled_size: { height: 360, width: 640 },
|
|
131
|
+
model_rank: 4,
|
|
118
132
|
};
|
|
119
133
|
break;
|
|
120
134
|
default:
|
|
@@ -122,4 +136,16 @@ export const getConfig = (height, width, quality = Quality.LOW, generator = 'loc
|
|
|
122
136
|
}
|
|
123
137
|
return Object.assign(Object.assign({}, base_config), { mask: Object.assign(Object.assign({}, base_config.mask), mask_quality_config) });
|
|
124
138
|
};
|
|
125
|
-
|
|
139
|
+
export const getConfig = (height, width, quality = Quality.LOW, generator = 'local', renderConfig = {
|
|
140
|
+
type: 'blur',
|
|
141
|
+
horizontal_mirror: false,
|
|
142
|
+
kernel_size: 37,
|
|
143
|
+
sigma: 17,
|
|
144
|
+
}, modelUrlResolver = (model_path) => Promise.resolve(toAbsoluteURI(model_path, BASE_URL)), baseUrl = BASE_URL, useLocalWorker = false) => {
|
|
145
|
+
const basePreloadConfig = getPreloadConfig(quality, generator, modelUrlResolver, baseUrl, useLocalWorker);
|
|
146
|
+
const maskConfig = basePreloadConfig.mask;
|
|
147
|
+
return Object.assign(Object.assign({}, basePreloadConfig), { render: renderConfig, input: { height, width }, mask: Object.assign(Object.assign({}, maskConfig), {
|
|
148
|
+
// Need to ensure we don't override the tiny model's input and output sizes.
|
|
149
|
+
input_size: maskConfig.input_size || { height, width }, output_size: maskConfig.output_size || { height, width }, upscaled_size: maskConfig.upscaled_size || { height, width } }) });
|
|
150
|
+
};
|
|
151
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlnLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2xpYi9jb25maWcudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLFFBQVEsQ0FBQztBQUN2QyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBRXhDLE1BQU0sQ0FBQyxNQUFNLFFBQVEsR0FBRyw2Q0FBNkMsQ0FBQztBQUN0RSxNQUFNLENBQUMsTUFBTSxjQUFjLEdBQUcsbUJBQW1CLENBQUM7QUFDbEQsTUFBTSxDQUFDLE1BQU0sZ0JBQWdCLEdBQUcsa0JBQWtCLENBQUM7QUFDbkQsTUFBTSxDQUFDLE1BQU0sVUFBVSxHQUFHLElBQUksQ0FBQztBQUMvQixNQUFNLENBQUMsTUFBTSxhQUFhLEdBQUcsU0FBUyxDQUFDO0FBQ3ZDLE1BQU0sQ0FBQyxNQUFNLFFBQVEsR0FBRyxnQkFBZ0IsQ0FBQztBQUV6QyxNQUFNLENBQU4sSUFBWSxPQU1YO0FBTkQsV0FBWSxPQUFPO0lBQ2Ysd0JBQWEsQ0FBQTtJQUNiLHNCQUFXLENBQUE7SUFDWCw0QkFBaUIsQ0FBQTtJQUNqQix3QkFBYSxDQUFBO0lBQ2IsMEJBQWUsQ0FBQTtBQUNuQixDQUFDLEVBTlcsT0FBTyxLQUFQLE9BQU8sUUFNbEI7QUFFRCxNQUFNLENBQU4sSUFBWSxZQU1YO0FBTkQsV0FBWSxZQUFZO0lBQ3BCLDZCQUFhLENBQUE7SUFDYixxQ0FBcUIsQ0FBQTtJQUNyQixpQ0FBaUIsQ0FBQTtJQUNqQixxQ0FBcUIsQ0FBQTtJQUNyQix1Q0FBdUIsQ0FBQTtBQUMzQixDQUFDLEVBTlcsWUFBWSxLQUFaLFlBQVksUUFNdkI7QUFrRUQsTUFBTSxDQUFDLE1BQU0sYUFBYSxHQUFHLENBQ3pCLGFBQTJCLEVBQzNCLGlCQUEyQixFQUNqQixFQUFFO0lBQ1osSUFBSSxXQUFXLEdBQUcsRUFBRSxDQUFDO0lBQ3JCLElBQUksS0FBSyxHQUFHLEVBQUUsQ0FB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
|
|
@@ -4,12 +4,19 @@ declare global {
|
|
|
4
4
|
url: string;
|
|
5
5
|
}
|
|
6
6
|
}
|
|
7
|
-
export interface
|
|
7
|
+
export interface FacesAndLandmarks {
|
|
8
8
|
data: Float32Array;
|
|
9
|
+
dims: readonly number[];
|
|
10
|
+
}
|
|
11
|
+
export interface LadonOutput {
|
|
12
|
+
data: Float32Array;
|
|
13
|
+
facesAndLandmarks: FacesAndLandmarks;
|
|
14
|
+
gesture: Float32Array;
|
|
15
|
+
motion: number;
|
|
9
16
|
warm: boolean;
|
|
10
17
|
}
|
|
11
18
|
export interface MaskGenerator {
|
|
12
|
-
|
|
19
|
+
getLadonOutput(input: Uint8ClampedArray): Promise<LadonOutput>;
|
|
13
20
|
load(): Promise<void>;
|
|
14
21
|
isLoaded(): boolean;
|
|
15
22
|
postRender(input: Uint8ClampedArray): Promise<void>;
|
|
@@ -17,8 +24,9 @@ export interface MaskGenerator {
|
|
|
17
24
|
}
|
|
18
25
|
export declare class LocalGenerator implements MaskGenerator {
|
|
19
26
|
readonly config: PipelineConfig;
|
|
20
|
-
private
|
|
21
|
-
private
|
|
27
|
+
private lastResult;
|
|
28
|
+
private lastMask;
|
|
29
|
+
private maskModel?;
|
|
22
30
|
private last_mask_generation;
|
|
23
31
|
private output?;
|
|
24
32
|
constructor(config: PipelineConfig);
|
|
@@ -32,7 +40,7 @@ export declare class LocalGenerator implements MaskGenerator {
|
|
|
32
40
|
* @returns {Float32Array} - The processed data
|
|
33
41
|
*/
|
|
34
42
|
private preprocess;
|
|
35
|
-
|
|
43
|
+
getLadonOutput(input: Uint8ClampedArray): Promise<LadonOutput>;
|
|
36
44
|
load(): Promise<void>;
|
|
37
45
|
isLoaded(): boolean;
|
|
38
46
|
postRender(_: Uint8ClampedArray): Promise<void>;
|
|
@@ -40,9 +48,9 @@ export declare class LocalGenerator implements MaskGenerator {
|
|
|
40
48
|
}
|
|
41
49
|
export declare class NullGenerator implements MaskGenerator {
|
|
42
50
|
readonly config: PipelineConfig;
|
|
43
|
-
private
|
|
51
|
+
private lastMask;
|
|
44
52
|
constructor(config: PipelineConfig);
|
|
45
|
-
|
|
53
|
+
getLadonOutput(_: Uint8ClampedArray): Promise<LadonOutput>;
|
|
46
54
|
load(): Promise<void>;
|
|
47
55
|
isLoaded(): boolean;
|
|
48
56
|
postRender(_: Uint8ClampedArray): Promise<void>;
|
|
@@ -50,11 +58,12 @@ export declare class NullGenerator implements MaskGenerator {
|
|
|
50
58
|
}
|
|
51
59
|
export declare class WorkerGenerator implements MaskGenerator {
|
|
52
60
|
readonly config: PipelineConfig;
|
|
53
|
-
private
|
|
61
|
+
private lastMask;
|
|
62
|
+
private newMask;
|
|
54
63
|
private worker?;
|
|
55
|
-
private
|
|
64
|
+
private lastResult;
|
|
56
65
|
constructor(config: PipelineConfig);
|
|
57
|
-
|
|
66
|
+
getLadonOutput(_: Uint8ClampedArray): Promise<LadonOutput>;
|
|
58
67
|
load(): Promise<void>;
|
|
59
68
|
isLoaded(): boolean;
|
|
60
69
|
postRender(input: Uint8ClampedArray): Promise<void>;
|