mirror of
https://github.com/yume-chan/ya-webadb.git
synced 2025-10-03 09:49:24 +02:00
refactor: code cleanup
This commit is contained in:
parent
f3d8ded9d2
commit
d8301a61f2
8 changed files with 38 additions and 34 deletions
|
@ -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;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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) {
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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;
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue