From 2fba909e63eb57d69cbe565b19ea1cd0abade4bf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fran=C3=A7ois=20Beaufort?= Date: Tue, 18 Apr 2023 09:33:59 +0200 Subject: [PATCH] Use VideoFrame constructor --- src/sample/videoUploadingWebCodecs/main.ts | 26 +--------------------- 1 file changed, 1 insertion(+), 25 deletions(-) diff --git a/src/sample/videoUploadingWebCodecs/main.ts b/src/sample/videoUploadingWebCodecs/main.ts index 82746f78..e45cd859 100644 --- a/src/sample/videoUploadingWebCodecs/main.ts +++ b/src/sample/videoUploadingWebCodecs/main.ts @@ -61,35 +61,11 @@ const init: SampleInit = async ({ canvas, pageState }) => { minFilter: 'linear', }); - function getVideoFrameFromVideoElement(video) { - return new Promise((resolve) => { - const videoTrack = video.captureStream().getVideoTracks()[0]; - const trackProcessor = new MediaStreamTrackProcessor({ - track: videoTrack, - }); - const transformer = new TransformStream({ - transform(videoFrame) { - videoTrack.stop(); - resolve(videoFrame); - }, - flush(controller) { - controller.terminate(); - }, - }); - const trackGenerator = new MediaStreamTrackGenerator({ - kind: 'video', - }); - trackProcessor.readable - .pipeThrough(transformer) - .pipeTo(trackGenerator.writable); - }); - } - async function frame() { // Sample is no longer the active page. if (!pageState.active) return; - const videoFrame = await getVideoFrameFromVideoElement(video); + const videoFrame = new VideoFrame(video); const uniformBindGroup = device.createBindGroup({ layout: pipeline.getBindGroupLayout(0),