UNPKG

jassub

Version:

The Fastest JavaScript SSA/ASS Subtitle Renderer For Browsers

87 lines (86 loc) 2.83 kB
import 'rvfc-polyfill'; import { Debug } from './debug.ts'; import type { WeightValue } from './worker/util.ts'; import type { ASSRenderer } from './worker/worker'; import type { Remote } from 'abslink'; export declare const webYCbCrMap: { readonly rgb: "RGB"; readonly bt709: "BT709"; readonly bt470bg: "BT601"; readonly smpte170m: "BT601"; }; export type JASSUBOptions = { timeOffset?: number; debug?: boolean; prescaleFactor?: number; prescaleHeightLimit?: number; maxRenderHeight?: number; workerUrl?: string; wasmUrl?: string; modernWasmUrl?: string; fonts?: Array<string | Uint8Array>; availableFonts?: Record<string, Uint8Array | string>; defaultFont?: string; queryFonts?: 'local' | 'localandremote' | false; libassMemoryLimit?: number; libassGlyphLimit?: number; } & ({ video: HTMLVideoElement; canvas?: HTMLCanvasElement; } | { video?: HTMLVideoElement; canvas: HTMLCanvasElement; }) & ({ subUrl: string; subContent?: string; } | { subUrl?: string; subContent: string; }); export default class JASSUB { timeOffset: number; prescaleFactor: number; prescaleHeightLimit: number; maxRenderHeight: number; debug: Debug | null; renderer: Remote<ASSRenderer>; ready: Promise<void>; busy: boolean; _video: HTMLVideoElement | undefined; _videoWidth: number; _videoHeight: number; _videoColorSpace: string | null; _canvas: HTMLCanvasElement; _ro: ResizeObserver; _destroyed: boolean; _lastDemandTime: Pick<VideoFrameCallbackMetadata, 'expectedDisplayTime' | 'width' | 'height' | 'mediaTime'>; _skipped: boolean; _worker: Worker; constructor(opts: JASSUBOptions); static _supportsSIMD?: boolean; static _test(): void; resize(forceRepaint?: boolean, renderWidth?: number, renderHeight?: number): Promise<void>; _getElementBoundingBox(el: HTMLElement, videoWidth: number, videoHeight: number): { x: number; y: number; width: number; height: number; }; _computeRenderSize(width?: number, height?: number): { width: number; height: number; }; setVideo(target: HTMLVideoElement): Promise<void>; _getLocalFont(font: string, weight?: WeightValue): Promise<Uint8Array<ArrayBuffer> | undefined>; _handleRVFC(data: VideoFrameCallbackMetadata): void; manualRender(data: Pick<VideoFrameCallbackMetadata, 'expectedDisplayTime' | 'width' | 'height' | 'mediaTime'>): Promise<void>; _demandRender(repaint?: boolean): Promise<void>; _boundUpdateColorSpace: ({ target }: { target: EventTarget | null; }) => void; _updateColorSpace({ target }: { target: EventTarget | null; }): void; _removeListeners(): void; destroy(): Promise<void>; }