refactor: code cleanup

This commit is contained in:
Simon Chan 2024-12-02 10:26:21 +08:00
parent f3d8ded9d2
commit d8301a61f2
No known key found for this signature in database
GPG key ID: A8B69F750B9BCEDD
8 changed files with 38 additions and 34 deletions

View file

@ -96,15 +96,6 @@ const VideoFrameCapturerPool =
/* #__PURE__ */
new Pool(() => new VideoFrameCapturer(), 4);
export interface WebCodecsVideoDecoderInit {
/**
* The video codec to decode
*/
codec: ScrcpyVideoCodecId;
renderer: WebCodecsVideoDecoderRenderer;
}
export class WebCodecsVideoDecoder implements ScrcpyVideoDecoder {
static get isSupported() {
return typeof globalThis.VideoDecoder !== "undefined";
@ -164,7 +155,7 @@ export class WebCodecsVideoDecoder implements ScrcpyVideoDecoder {
/**
* Create a new WebCodecs video decoder.
*/
constructor({ codec, renderer }: WebCodecsVideoDecoderInit) {
constructor({ codec, renderer }: WebCodecsVideoDecoder.Options) {
this.#codec = codec;
this.#renderer = renderer;
@ -303,3 +294,14 @@ export class WebCodecsVideoDecoder implements ScrcpyVideoDecoder {
this.#captureFrame?.close();
}
}
export namespace WebCodecsVideoDecoder {
export interface Options {
/**
* The video codec to decode
*/
codec: ScrcpyVideoCodecId;
renderer: WebCodecsVideoDecoderRenderer;
}
}

View file

@ -1,6 +1,6 @@
import { CanvasWebCodecsVideoDecoderRenderer } from "./canvas.js";
import { CanvasWebCodecsDecoderRenderer } from "./canvas.js";
export class BitmapWebCodecsDecoderRenderer extends CanvasWebCodecsVideoDecoderRenderer {
export class BitmapWebCodecsDecoderRenderer extends CanvasWebCodecsDecoderRenderer {
#context: ImageBitmapRenderingContext;
constructor(canvas?: HTMLCanvasElement | OffscreenCanvas) {

View file

@ -2,7 +2,7 @@ import { createCanvas } from "@yume-chan/scrcpy-decoder-tinyh264";
import type { WebCodecsVideoDecoderRenderer } from "./type.js";
export abstract class CanvasWebCodecsVideoDecoderRenderer
export abstract class CanvasWebCodecsDecoderRenderer
implements WebCodecsVideoDecoderRenderer
{
#canvas: HTMLCanvasElement | OffscreenCanvas;

View file

@ -1,6 +1,6 @@
import { createCanvas } from "@yume-chan/scrcpy-decoder-tinyh264";
import { CanvasWebCodecsVideoDecoderRenderer } from "./canvas.js";
import { CanvasWebCodecsDecoderRenderer } from "./canvas.js";
const Resolved = Promise.resolve();
@ -24,7 +24,7 @@ function createContext(
);
}
export class WebGLWebCodecsDecoderRenderer extends CanvasWebCodecsVideoDecoderRenderer {
export class WebGLWebCodecsDecoderRenderer extends CanvasWebCodecsDecoderRenderer {
static vertexShaderSource = `
attribute vec2 xy;