Skip to content

Commit 6b56659

Browse files
Use VideoFrame constructor (#251)
1 parent 99123cf commit 6b56659

File tree

1 file changed

+2
-26
lines changed
  • src/sample/videoUploadingWebCodecs

1 file changed

+2
-26
lines changed

src/sample/videoUploadingWebCodecs/main.ts

Lines changed: 2 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -61,35 +61,11 @@ const init: SampleInit = async ({ canvas, pageState }) => {
6161
minFilter: 'linear',
6262
});
6363

64-
function getVideoFrameFromVideoElement(video) {
65-
return new Promise((resolve) => {
66-
const videoTrack = video.captureStream().getVideoTracks()[0];
67-
const trackProcessor = new MediaStreamTrackProcessor({
68-
track: videoTrack,
69-
});
70-
const transformer = new TransformStream({
71-
transform(videoFrame) {
72-
videoTrack.stop();
73-
resolve(videoFrame);
74-
},
75-
flush(controller) {
76-
controller.terminate();
77-
},
78-
});
79-
const trackGenerator = new MediaStreamTrackGenerator({
80-
kind: 'video',
81-
});
82-
trackProcessor.readable
83-
.pipeThrough(transformer)
84-
.pipeTo(trackGenerator.writable);
85-
});
86-
}
87-
88-
async function frame() {
64+
function frame() {
8965
// Sample is no longer the active page.
9066
if (!pageState.active) return;
9167

92-
const videoFrame = await getVideoFrameFromVideoElement(video);
68+
const videoFrame = new VideoFrame(video);
9369

9470
const uniformBindGroup = device.createBindGroup({
9571
layout: pipeline.getBindGroupLayout(0),

0 commit comments

Comments
 (0)