@stream-io/video-react-sdk 0.6.9 → 0.6.11
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 +18 -0
- package/dist/index.cjs.js +11 -8
- package/dist/index.cjs.js.map +1 -1
- package/dist/index.es.js +11 -8
- package/dist/index.es.js.map +1 -1
- package/package.json +3 -3
- package/src/components/BackgroundFilters/BackgroundFilters.tsx +10 -7
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@stream-io/video-react-sdk",
|
|
3
|
-
"version": "0.6.
|
|
3
|
+
"version": "0.6.11",
|
|
4
4
|
"packageManager": "yarn@3.2.4",
|
|
5
5
|
"main": "./dist/index.cjs.js",
|
|
6
6
|
"module": "./dist/index.es.js",
|
|
@@ -29,9 +29,9 @@
|
|
|
29
29
|
],
|
|
30
30
|
"dependencies": {
|
|
31
31
|
"@floating-ui/react": "^0.26.5",
|
|
32
|
-
"@stream-io/video-client": "0.7.
|
|
32
|
+
"@stream-io/video-client": "0.7.7",
|
|
33
33
|
"@stream-io/video-filters-web": "0.1.0",
|
|
34
|
-
"@stream-io/video-react-bindings": "0.4.
|
|
34
|
+
"@stream-io/video-react-bindings": "0.4.18",
|
|
35
35
|
"chart.js": "^4.4.1",
|
|
36
36
|
"clsx": "^2.0.0",
|
|
37
37
|
"react-chartjs-2": "^5.2.0"
|
|
@@ -219,25 +219,28 @@ const BackgroundFilters = (props: { tfLite: TFLite }) => {
|
|
|
219
219
|
const [width, setWidth] = useState(1920);
|
|
220
220
|
const [height, setHeight] = useState(1080);
|
|
221
221
|
|
|
222
|
-
|
|
222
|
+
// Holds a ref to the `resolve` function of the returned Promise as part
|
|
223
|
+
// of the `camera.registerFilter()` API. Once the filter is initialized,
|
|
224
|
+
// it should be called with the filtered MediaStream as an argument.
|
|
225
|
+
const signalFilterReadyRef =
|
|
223
226
|
useRef<(value: MediaStream | PromiseLike<MediaStream>) => void>();
|
|
224
227
|
|
|
225
228
|
const [mediaStream, setMediaStream] = useState<MediaStream>();
|
|
226
|
-
const
|
|
229
|
+
const unregister = useRef<Promise<void>>();
|
|
227
230
|
useEffect(() => {
|
|
228
231
|
if (!call || !backgroundFilter) return;
|
|
229
|
-
|
|
232
|
+
const register = (unregister.current || Promise.resolve()).then(() =>
|
|
230
233
|
call.camera.registerFilter(async (ms) => {
|
|
231
234
|
return new Promise<MediaStream>((resolve) => {
|
|
232
235
|
setMediaStream(ms);
|
|
233
|
-
|
|
236
|
+
signalFilterReadyRef.current = resolve;
|
|
234
237
|
});
|
|
235
238
|
}),
|
|
236
239
|
);
|
|
237
240
|
|
|
238
241
|
return () => {
|
|
239
|
-
|
|
240
|
-
.then((
|
|
242
|
+
unregister.current = register
|
|
243
|
+
.then((unregisterFilter) => unregisterFilter())
|
|
241
244
|
.then(() => setMediaStream(undefined))
|
|
242
245
|
.catch((err) => console.error('Failed to unregister filter', err));
|
|
243
246
|
};
|
|
@@ -254,7 +257,7 @@ const BackgroundFilters = (props: { tfLite: TFLite }) => {
|
|
|
254
257
|
setHeight(h);
|
|
255
258
|
}
|
|
256
259
|
|
|
257
|
-
const resolveFilter =
|
|
260
|
+
const resolveFilter = signalFilterReadyRef.current;
|
|
258
261
|
if (!resolveFilter) return;
|
|
259
262
|
const filter = canvasRef.captureStream();
|
|
260
263
|
resolveFilter(filter);
|