UNPKG

@yume-chan/scrcpy-decoder-webcodecs

Version:

Raw H.264 stream decoder and renderer using WebCodecs API (requires modern browser).

41 lines 1.32 kB
export class VideoFrameCapturer { #canvas; #context; constructor() { if (typeof OffscreenCanvas !== "undefined") { this.#canvas = new OffscreenCanvas(1, 1); } else { this.#canvas = document.createElement("canvas"); this.#canvas.width = 1; this.#canvas.height = 1; } this.#context = this.#canvas.getContext("bitmaprenderer", { alpha: false, }); } async capture(frame) { this.#canvas.width = frame.displayWidth; this.#canvas.height = frame.displayHeight; const bitmap = await createImageBitmap(frame); this.#context.transferFromImageBitmap(bitmap); if (this.#canvas instanceof OffscreenCanvas) { return await this.#canvas.convertToBlob({ type: "image/png", }); } else { return new Promise((resolve, reject) => { this.#canvas.toBlob((blob) => { if (!blob) { reject(new Error("Failed to convert canvas to blob")); } else { resolve(blob); } }, "image/png"); }); } } } //# sourceMappingURL=snapshot.js.map