@pexip/media-processor 20.3.5 → 21.0.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 +39 -0
- package/api-docs/README.mdx +33 -6
- package/api-docs/functions/createBenchmark.mdx +17 -5
- package/api-docs/functions/createWindowedStats.mdx +23 -0
- package/api-docs/functions/iou.mdx +19 -0
- package/api-docs/functions/labelComponents.mdx +20 -0
- package/api-docs/functions/nearestPowerOfTwo.mdx +21 -0
- package/api-docs/functions/playVideo.mdx +16 -0
- package/api-docs/functions/scoreComponent.mdx +22 -0
- package/api-docs/functions/setVideoElementSrc.mdx +14 -0
- package/api-docs/interfaces/Benchmark.mdx +12 -0
- package/api-docs/interfaces/RendererOptions.mdx +26 -9
- package/api-docs/interfaces/SegmentationParams.mdx +29 -12
- package/api-docs/interfaces/SelectionOptions.mdx +15 -0
- package/api-docs/interfaces/Stats.mdx +11 -0
- package/api-docs/interfaces/Weights.mdx +12 -0
- package/api-docs/type-aliases/OptionalKeys.mdx +10 -0
- package/api-docs/variables/BACKGROUND_THRESHOLD.mdx +3 -0
- package/api-docs/variables/DOWN_SAMPLE_FACTOR.mdx +3 -0
- package/api-docs/variables/EDGE_BLUR_AMOUNT.mdx +1 -1
- package/api-docs/variables/EXCLUDE_BYSTANDERS.mdx +3 -0
- package/api-docs/variables/FOREGROUND_THRESHOLD.mdx +1 -1
- package/api-docs/variables/LIGHT_WRAP_BLUR_AMOUNT.mdx +3 -0
- package/api-docs/variables/LIGHT_WRAP_EDGE_BAND.mdx +3 -0
- package/api-docs/variables/LIGHT_WRAP_INTENSITY.mdx +3 -0
- package/api-docs/variables/LIGHT_WRAP_TIGHTNESS.mdx +3 -0
- package/api-docs/variables/MASK_COMBINE_RATIO.mdx +1 -1
- package/api-docs/variables/MORPH_DILATE_RADIUS_PX.mdx +3 -0
- package/api-docs/variables/MORPH_ERODE_RADIUS_PX.mdx +3 -0
- package/api-docs/variables/MORPH_PASS.mdx +3 -0
- package/api-docs/variables/PERSON_CENTER.mdx +3 -0
- package/api-docs/variables/SIGMA_RANGE.mdx +3 -0
- package/api-docs/variables/SIGMA_SPACE.mdx +3 -0
- package/api-docs/variables/STRONG_EDGE_BLUR_AMOUNT.mdx +3 -0
- package/api-docs/variables/getCanvasRenderingContext2D.mdx +14 -0
- package/api-docs/variables/getImageSize.mdx +13 -0
- package/dist/common/backends/webgl/binaryMask.d.ts +8 -0
- package/dist/common/backends/webgl/binaryMask.js +95 -0
- package/dist/common/backends/webgl/blender.d.ts +2 -1
- package/dist/common/backends/webgl/blender.js +18 -15
- package/dist/common/backends/webgl/blur.d.ts +1 -1
- package/dist/common/backends/webgl/blur.js +23 -16
- package/dist/common/backends/webgl/canvas.js +9 -4
- package/dist/common/backends/webgl/diffAbsMask.d.ts +10 -0
- package/dist/common/backends/webgl/diffAbsMask.js +103 -0
- package/dist/common/backends/webgl/geodesicReconstruction.d.ts +13 -0
- package/dist/common/backends/webgl/geodesicReconstruction.js +176 -0
- package/dist/common/backends/webgl/jointBilateralFilter.d.ts +12 -0
- package/dist/common/backends/webgl/jointBilateralFilter.js +108 -0
- package/dist/common/backends/webgl/morphErode.d.ts +13 -0
- package/dist/common/backends/webgl/morphErode.js +121 -0
- package/dist/common/backends/webgl/renderer.js +194 -34
- package/dist/common/backends/webgl/replace.d.ts +17 -0
- package/dist/common/backends/webgl/replace.js +126 -0
- package/dist/common/backends/webgl/selectComponent.d.ts +15 -0
- package/dist/common/backends/webgl/selectComponent.js +102 -0
- package/dist/common/backends/webgl/smoothingMask.d.ts +3 -3
- package/dist/common/backends/webgl/smoothingMask.js +22 -21
- package/dist/common/backends/webgl/tentBlur.d.ts +9 -0
- package/dist/common/backends/webgl/tentBlur.js +118 -0
- package/dist/common/backends/webgl/texture.d.ts +1 -1
- package/dist/common/backends/webgl/texture.js +19 -17
- package/dist/common/backends/webgl/textureToTexture.d.ts +1 -1
- package/dist/common/backends/webgl/textureToTexture.js +19 -16
- package/dist/common/backends/webgl/webglUtils.d.ts +7 -1
- package/dist/common/backends/webgl/webglUtils.js +64 -6
- package/dist/common/backends/webgpu/blender.d.ts +6 -1
- package/dist/common/backends/webgpu/blender.js +96 -51
- package/dist/common/backends/webgpu/constants.js +1 -1
- package/dist/common/backends/webgpu/dualFilterBlur.d.ts +2 -3
- package/dist/common/backends/webgpu/dualFilterBlur.js +146 -140
- package/dist/common/backends/webgpu/jointBilateralFilter.d.ts +7 -0
- package/dist/common/backends/webgpu/jointBilateralFilter.js +162 -0
- package/dist/common/backends/webgpu/renderer.js +211 -39
- package/dist/common/backends/webgpu/replace.d.ts +11 -0
- package/dist/common/backends/webgpu/replace.js +175 -0
- package/dist/common/backends/webgpu/resize.d.ts +4 -0
- package/dist/common/backends/webgpu/resize.js +76 -0
- package/dist/common/backends/webgpu/smoothingMask.d.ts +2 -2
- package/dist/common/backends/webgpu/smoothingMask.js +74 -40
- package/dist/common/backends/webgpu/tentBlur.d.ts +5 -0
- package/dist/common/backends/webgpu/tentBlur.js +131 -0
- package/dist/common/backends/webgpu/texture.d.ts +2 -2
- package/dist/common/backends/webgpu/texture.js +24 -19
- package/dist/common/backends/webgpu/textureToTexture.d.ts +1 -1
- package/dist/common/backends/webgpu/textureToTexture.js +28 -15
- package/dist/common/backends/webgpu/types.d.ts +2 -0
- package/dist/common/backends/webgpu/webgpuUtils.d.ts +24 -4
- package/dist/common/backends/webgpu/webgpuUtils.js +60 -11
- package/dist/common/constants.d.ts +19 -5
- package/dist/common/constants.js +19 -5
- package/dist/common/index.d.ts +1 -0
- package/dist/common/index.js +1 -0
- package/dist/common/tsconfig.tsbuildinfo +1 -1
- package/dist/common/types/render.d.ts +142 -13
- package/dist/common/types/utils.d.ts +21 -0
- package/dist/common/utils.d.ts +16 -0
- package/dist/common/utils.js +152 -0
- package/dist/main/benchUtils.d.ts +33 -1
- package/dist/main/benchUtils.js +145 -11
- package/dist/main/tsconfig.tsbuildinfo +1 -1
- package/dist/main/video/canvasTransform.d.ts +1 -1
- package/dist/main/video/canvasTransform.js +135 -47
- package/dist/main/video/index.d.ts +1 -1
- package/dist/main/video/index.js +1 -1
- package/dist/workers/mediaWorker.js +35 -162
- package/dist/workers/tsconfig.tsbuildinfo +1 -1
- package/package.json +8 -7
- package/dist/common/backends/webgl/shaders/blendFragmentShader.d.ts +0 -1
- package/dist/common/backends/webgl/shaders/blendFragmentShader.js +0 -21
- package/dist/common/backends/webgl/shaders/dualFilterBlurFragmentShader.d.ts +0 -1
- package/dist/common/backends/webgl/shaders/dualFilterBlurFragmentShader.js +0 -45
- package/dist/common/backends/webgl/shaders/smoothingMaskFragmentShader.d.ts +0 -1
- package/dist/common/backends/webgl/shaders/smoothingMaskFragmentShader.js +0 -57
- package/dist/common/backends/webgl/shaders/textureFragmentShader.d.ts +0 -1
- package/dist/common/backends/webgl/shaders/textureFragmentShader.js +0 -16
- package/dist/common/backends/webgl/shaders/vertexShader.d.ts +0 -1
- package/dist/common/backends/webgl/shaders/vertexShader.js +0 -19
|
@@ -1,27 +1,43 @@
|
|
|
1
|
-
import { PROCESSING_HEIGHT, PROCESSING_WIDTH, FOREGROUND_THRESHOLD, BACKGROUND_BLUR_AMOUNT, EDGE_BLUR_AMOUNT, MASK_COMBINE_RATIO, } from '../../common/constants';
|
|
1
|
+
import { PROCESSING_HEIGHT, PROCESSING_WIDTH, FOREGROUND_THRESHOLD, BACKGROUND_THRESHOLD, BACKGROUND_BLUR_AMOUNT, EDGE_BLUR_AMOUNT, MASK_COMBINE_RATIO, SIGMA_RANGE, SIGMA_SPACE, PERSON_CENTER, EXCLUDE_BYSTANDERS, MORPH_PASS, MORPH_DILATE_RADIUS_PX, MORPH_ERODE_RADIUS_PX, LIGHT_WRAP_INTENSITY, DOWN_SAMPLE_FACTOR, LIGHT_WRAP_TIGHTNESS, LIGHT_WRAP_BLUR_AMOUNT, LIGHT_WRAP_EDGE_BAND, } from '../../common/constants';
|
|
2
2
|
import { createCanvasRenderUtils } from '../../common/canvasRenderUtils';
|
|
3
|
-
import { clamping, createObjectUpdater } from '../../common/utils';
|
|
3
|
+
import { clamping, createObjectUpdater, nearestPowerOfTwo, } from '../../common/utils';
|
|
4
4
|
import { assert } from '@pexip/utils';
|
|
5
5
|
const clampInRangeFrom0To1 = clamping(0, 1);
|
|
6
6
|
const clampInRangeFrom0To9 = clamping(0, 9);
|
|
7
|
-
export const createTransform = (segmenter, { width = PROCESSING_WIDTH, height = PROCESSING_HEIGHT, foregroundThreshold = FOREGROUND_THRESHOLD, backgroundBlurAmount = BACKGROUND_BLUR_AMOUNT, edgeBlurAmount = EDGE_BLUR_AMOUNT, maskCombineRatio = MASK_COMBINE_RATIO, backgroundImageUrl = '', effects = 'none', backend = 'webgl', selfManageSegmenter, ...options } = {}) => {
|
|
7
|
+
export const createTransform = (segmenter, { width = PROCESSING_WIDTH, height = PROCESSING_HEIGHT, foregroundThreshold = FOREGROUND_THRESHOLD, backgroundThreshold = BACKGROUND_THRESHOLD, backgroundBlurAmount = BACKGROUND_BLUR_AMOUNT, edgeBlurAmount = EDGE_BLUR_AMOUNT, maskCombineRatio = MASK_COMBINE_RATIO, backgroundImageUrl = '', sigmaSpace = SIGMA_SPACE, sigmaRangeLo = SIGMA_RANGE[0], sigmaRangeHi = SIGMA_RANGE[1], effects = 'none', backend = 'webgl', selfManageSegmenter, personCenter = PERSON_CENTER, excludeBystanders = EXCLUDE_BYSTANDERS, morphPass = MORPH_PASS, morphErodeRadiusPx = MORPH_ERODE_RADIUS_PX, morphDilateRadiusPx = MORPH_DILATE_RADIUS_PX, lightWrapIntensity = LIGHT_WRAP_INTENSITY, downSampleFactor = DOWN_SAMPLE_FACTOR, lightWrapTightness = LIGHT_WRAP_TIGHTNESS, lightWrapBlurAmount = LIGHT_WRAP_BLUR_AMOUNT, lightWrapEdgeBand = LIGHT_WRAP_EDGE_BAND, ...options } = {}) => {
|
|
8
8
|
const props = {
|
|
9
9
|
segmenter,
|
|
10
10
|
processingWidth: width,
|
|
11
11
|
processingHeight: height,
|
|
12
|
-
foregroundThreshold,
|
|
13
|
-
backgroundBlurAmount,
|
|
14
|
-
edgeBlurAmount,
|
|
15
|
-
utils: undefined,
|
|
16
|
-
effects,
|
|
17
|
-
maskCombineRatio,
|
|
18
12
|
backgroundImage: options.backgroundImage,
|
|
19
13
|
status: 'new',
|
|
20
|
-
backgroundImageUrl,
|
|
21
14
|
outputCanvas: options.outputCanvas,
|
|
22
15
|
outputDelegate: options.outputDelegate,
|
|
23
|
-
backend,
|
|
24
16
|
unsubscribe: null,
|
|
17
|
+
utils: undefined,
|
|
18
|
+
renderOptions: {
|
|
19
|
+
foregroundThreshold,
|
|
20
|
+
backgroundThreshold,
|
|
21
|
+
backgroundBlurAmount,
|
|
22
|
+
edgeBlurAmount,
|
|
23
|
+
backgroundImageUrl,
|
|
24
|
+
effects,
|
|
25
|
+
backend,
|
|
26
|
+
maskCombineRatio,
|
|
27
|
+
sigmaRangeHi,
|
|
28
|
+
sigmaRangeLo,
|
|
29
|
+
sigmaSpace,
|
|
30
|
+
personCenter,
|
|
31
|
+
excludeBystanders,
|
|
32
|
+
morphPass,
|
|
33
|
+
morphErodeRadiusPx,
|
|
34
|
+
morphDilateRadiusPx,
|
|
35
|
+
lightWrapIntensity,
|
|
36
|
+
downSampleFactor,
|
|
37
|
+
lightWrapTightness,
|
|
38
|
+
lightWrapBlurAmount,
|
|
39
|
+
lightWrapEdgeBand,
|
|
40
|
+
},
|
|
25
41
|
};
|
|
26
42
|
const updateProps = createObjectUpdater(props);
|
|
27
43
|
const handleContextRestored = () => {
|
|
@@ -47,15 +63,6 @@ export const createTransform = (segmenter, { width = PROCESSING_WIDTH, height =
|
|
|
47
63
|
};
|
|
48
64
|
};
|
|
49
65
|
const processInput = async (input) => {
|
|
50
|
-
const renderOptions = {
|
|
51
|
-
foregroundThreshold: props.foregroundThreshold,
|
|
52
|
-
backgroundBlurAmount: props.backgroundBlurAmount,
|
|
53
|
-
edgeBlurAmount: props.edgeBlurAmount,
|
|
54
|
-
maskCombineRatio: props.maskCombineRatio,
|
|
55
|
-
backgroundImageUrl: props.backgroundImageUrl,
|
|
56
|
-
effects: props.effects,
|
|
57
|
-
backend: props.backend,
|
|
58
|
-
};
|
|
59
66
|
if (props.segmenter.status === 'new' ||
|
|
60
67
|
props.segmenter.status === 'closed') {
|
|
61
68
|
await props.segmenter.open({
|
|
@@ -63,7 +70,7 @@ export const createTransform = (segmenter, { width = PROCESSING_WIDTH, height =
|
|
|
63
70
|
processingWidth: props.processingWidth,
|
|
64
71
|
processingHeight: props.processingHeight,
|
|
65
72
|
backgroundImage: props.backgroundImage,
|
|
66
|
-
renderOptions,
|
|
73
|
+
renderOptions: props.renderOptions,
|
|
67
74
|
});
|
|
68
75
|
}
|
|
69
76
|
if (!props.utils) {
|
|
@@ -73,7 +80,7 @@ export const createTransform = (segmenter, { width = PROCESSING_WIDTH, height =
|
|
|
73
80
|
return undefined;
|
|
74
81
|
}
|
|
75
82
|
const inputFrame = toVideoFrameLike(input);
|
|
76
|
-
return props.segmenter.process(inputFrame, renderOptions);
|
|
83
|
+
return props.segmenter.process(inputFrame, props.renderOptions);
|
|
77
84
|
};
|
|
78
85
|
const canUpdate = () => props.segmenter.status !== 'new' &&
|
|
79
86
|
props.segmenter.status !== 'closed' &&
|
|
@@ -103,43 +110,132 @@ export const createTransform = (segmenter, { width = PROCESSING_WIDTH, height =
|
|
|
103
110
|
return props.status;
|
|
104
111
|
},
|
|
105
112
|
get foregroundThreshold() {
|
|
106
|
-
return props.foregroundThreshold;
|
|
113
|
+
return props.renderOptions.foregroundThreshold;
|
|
114
|
+
},
|
|
115
|
+
get backgroundThreshold() {
|
|
116
|
+
return props.renderOptions.backgroundThreshold;
|
|
107
117
|
},
|
|
108
118
|
get backgroundBlurAmount() {
|
|
109
|
-
return props.backgroundBlurAmount;
|
|
119
|
+
return props.renderOptions.backgroundBlurAmount;
|
|
110
120
|
},
|
|
111
121
|
get edgeBlurAmount() {
|
|
112
|
-
return props.edgeBlurAmount;
|
|
122
|
+
return props.renderOptions.edgeBlurAmount;
|
|
113
123
|
},
|
|
114
124
|
get effects() {
|
|
115
|
-
return props.effects;
|
|
125
|
+
return props.renderOptions.effects;
|
|
116
126
|
},
|
|
117
127
|
get maskCombineRatio() {
|
|
118
|
-
return props.maskCombineRatio;
|
|
128
|
+
return props.renderOptions.maskCombineRatio;
|
|
119
129
|
},
|
|
120
130
|
get backend() {
|
|
121
|
-
return props.backend;
|
|
131
|
+
return props.renderOptions.backend;
|
|
132
|
+
},
|
|
133
|
+
get sigmaSpace() {
|
|
134
|
+
return props.renderOptions.sigmaSpace;
|
|
135
|
+
},
|
|
136
|
+
get sigmaRangeLo() {
|
|
137
|
+
return props.renderOptions.sigmaRangeLo;
|
|
138
|
+
},
|
|
139
|
+
get sigmaRangeHi() {
|
|
140
|
+
return props.renderOptions.sigmaRangeHi;
|
|
141
|
+
},
|
|
142
|
+
get personCenter() {
|
|
143
|
+
return props.renderOptions.personCenter;
|
|
144
|
+
},
|
|
145
|
+
get excludeBystanders() {
|
|
146
|
+
return props.renderOptions.excludeBystanders;
|
|
147
|
+
},
|
|
148
|
+
get morphPass() {
|
|
149
|
+
return props.renderOptions.morphPass;
|
|
150
|
+
},
|
|
151
|
+
get morphErodeRadiusPx() {
|
|
152
|
+
return props.renderOptions.morphErodeRadiusPx;
|
|
153
|
+
},
|
|
154
|
+
get morphDilateRadiusPx() {
|
|
155
|
+
return props.renderOptions.morphDilateRadiusPx;
|
|
156
|
+
},
|
|
157
|
+
get lightWrapIntensity() {
|
|
158
|
+
return props.renderOptions.lightWrapIntensity;
|
|
159
|
+
},
|
|
160
|
+
get lightWrapTightness() {
|
|
161
|
+
return props.renderOptions.lightWrapTightness;
|
|
162
|
+
},
|
|
163
|
+
get lightWrapBlurAmount() {
|
|
164
|
+
return props.renderOptions.lightWrapBlurAmount;
|
|
165
|
+
},
|
|
166
|
+
get lightWrapEdgeBand() {
|
|
167
|
+
return props.renderOptions.lightWrapEdgeBand;
|
|
168
|
+
},
|
|
169
|
+
get downSampleFactor() {
|
|
170
|
+
return props.renderOptions.downSampleFactor;
|
|
171
|
+
},
|
|
172
|
+
set morphPass(value) {
|
|
173
|
+
props.renderOptions.morphPass = value;
|
|
174
|
+
},
|
|
175
|
+
set morphErodeRadiusPx(value) {
|
|
176
|
+
props.renderOptions.morphErodeRadiusPx = value;
|
|
177
|
+
},
|
|
178
|
+
set morphDilateRadiusPx(value) {
|
|
179
|
+
props.renderOptions.morphDilateRadiusPx = value;
|
|
180
|
+
},
|
|
181
|
+
set personCenter(value) {
|
|
182
|
+
props.renderOptions.personCenter = value;
|
|
183
|
+
},
|
|
184
|
+
set excludeBystanders(value) {
|
|
185
|
+
props.renderOptions.excludeBystanders = value;
|
|
122
186
|
},
|
|
123
187
|
set foregroundThreshold(value) {
|
|
124
|
-
props.
|
|
188
|
+
assert(value >= props.renderOptions.backgroundThreshold);
|
|
189
|
+
props.renderOptions.foregroundThreshold =
|
|
190
|
+
clampInRangeFrom0To1(value);
|
|
191
|
+
},
|
|
192
|
+
set backgroundThreshold(value) {
|
|
193
|
+
assert(value <= props.renderOptions.foregroundThreshold);
|
|
194
|
+
props.renderOptions.backgroundThreshold =
|
|
195
|
+
clampInRangeFrom0To1(value);
|
|
125
196
|
},
|
|
126
197
|
set backgroundBlurAmount(value) {
|
|
127
|
-
props.backgroundBlurAmount =
|
|
198
|
+
props.renderOptions.backgroundBlurAmount =
|
|
199
|
+
clampInRangeFrom0To9(value);
|
|
128
200
|
},
|
|
129
201
|
set edgeBlurAmount(value) {
|
|
130
|
-
props.edgeBlurAmount = clampInRangeFrom0To9(value);
|
|
202
|
+
props.renderOptions.edgeBlurAmount = clampInRangeFrom0To9(value);
|
|
131
203
|
},
|
|
132
204
|
set effects(value) {
|
|
133
|
-
props.effects = value;
|
|
205
|
+
props.renderOptions.effects = value;
|
|
134
206
|
},
|
|
135
207
|
set backgroundImageUrl(value) {
|
|
136
|
-
props.backgroundImageUrl = value;
|
|
208
|
+
props.renderOptions.backgroundImageUrl = value;
|
|
137
209
|
},
|
|
138
210
|
get backgroundImageUrl() {
|
|
139
|
-
return props.backgroundImageUrl;
|
|
211
|
+
return props.renderOptions.backgroundImageUrl;
|
|
140
212
|
},
|
|
141
213
|
set maskCombineRatio(value) {
|
|
142
|
-
props.maskCombineRatio = clampInRangeFrom0To1(value);
|
|
214
|
+
props.renderOptions.maskCombineRatio = clampInRangeFrom0To1(value);
|
|
215
|
+
},
|
|
216
|
+
set sigmaRangeLo(value) {
|
|
217
|
+
props.renderOptions.sigmaRangeLo = value;
|
|
218
|
+
},
|
|
219
|
+
set sigmaRangeHi(value) {
|
|
220
|
+
props.renderOptions.sigmaRangeHi = value;
|
|
221
|
+
},
|
|
222
|
+
set sigmaSpace(value) {
|
|
223
|
+
props.renderOptions.sigmaSpace = value;
|
|
224
|
+
},
|
|
225
|
+
set lightWrapIntensity(value) {
|
|
226
|
+
props.renderOptions.lightWrapIntensity = value;
|
|
227
|
+
},
|
|
228
|
+
set lightWrapTightness(value) {
|
|
229
|
+
props.renderOptions.lightWrapTightness = value;
|
|
230
|
+
},
|
|
231
|
+
set lightWrapBlurAmount(value) {
|
|
232
|
+
props.renderOptions.lightWrapBlurAmount = value;
|
|
233
|
+
},
|
|
234
|
+
set lightWrapEdgeBand(value) {
|
|
235
|
+
props.renderOptions.lightWrapEdgeBand = value;
|
|
236
|
+
},
|
|
237
|
+
set downSampleFactor(value) {
|
|
238
|
+
props.renderOptions.downSampleFactor = nearestPowerOfTwo(value, 0, 2);
|
|
143
239
|
},
|
|
144
240
|
get outputCanvas() {
|
|
145
241
|
return props.outputCanvas;
|
|
@@ -175,21 +271,13 @@ export const createTransform = (segmenter, { width = PROCESSING_WIDTH, height =
|
|
|
175
271
|
}
|
|
176
272
|
},
|
|
177
273
|
set backend(value) {
|
|
178
|
-
if (value === props.backend) {
|
|
274
|
+
if (value === props.renderOptions.backend) {
|
|
179
275
|
return;
|
|
180
276
|
}
|
|
181
|
-
props.backend = value;
|
|
277
|
+
props.renderOptions.backend = value;
|
|
182
278
|
if (canUpdate()) {
|
|
183
279
|
segmenter.update({
|
|
184
|
-
renderOptions:
|
|
185
|
-
backend: props.backend,
|
|
186
|
-
backgroundImageUrl: props.backgroundImageUrl,
|
|
187
|
-
foregroundThreshold: props.foregroundThreshold,
|
|
188
|
-
backgroundBlurAmount: props.backgroundBlurAmount,
|
|
189
|
-
edgeBlurAmount: props.edgeBlurAmount,
|
|
190
|
-
maskCombineRatio: props.maskCombineRatio,
|
|
191
|
-
effects: props.effects,
|
|
192
|
-
},
|
|
280
|
+
renderOptions: props.renderOptions,
|
|
193
281
|
});
|
|
194
282
|
}
|
|
195
283
|
},
|
|
@@ -208,7 +296,7 @@ export const createTransform = (segmenter, { width = PROCESSING_WIDTH, height =
|
|
|
208
296
|
}
|
|
209
297
|
},
|
|
210
298
|
transform: async (videoFrame, controller) => {
|
|
211
|
-
switch (props.effects) {
|
|
299
|
+
switch (props.renderOptions.effects) {
|
|
212
300
|
case 'overlay':
|
|
213
301
|
case 'blur': {
|
|
214
302
|
const result = await processInput(videoFrame);
|
|
@@ -3,7 +3,7 @@ export * from './video';
|
|
|
3
3
|
export * from './types';
|
|
4
4
|
export { createTransform as createCanvasTransform } from './canvasTransform';
|
|
5
5
|
export * from './videoStreamTrackProcessor';
|
|
6
|
-
export { createFrameCallbackRequest,
|
|
6
|
+
export { createCanvas, createFrameCallbackRequest, playVideo, setVideoElementSrc, } from './utils';
|
|
7
7
|
export * from './typeGuards';
|
|
8
8
|
export * from './constants';
|
|
9
9
|
export * from './segmenters/mediapipe';
|
package/dist/main/video/index.js
CHANGED
|
@@ -3,7 +3,7 @@ export * from './video';
|
|
|
3
3
|
export * from './types';
|
|
4
4
|
export { createTransform as createCanvasTransform } from './canvasTransform';
|
|
5
5
|
export * from './videoStreamTrackProcessor';
|
|
6
|
-
export { createFrameCallbackRequest,
|
|
6
|
+
export { createCanvas, createFrameCallbackRequest, playVideo, setVideoElementSrc, } from './utils';
|
|
7
7
|
export * from './typeGuards';
|
|
8
8
|
export * from './constants';
|
|
9
9
|
export * from './segmenters/mediapipe';
|