jassub
Version:
The Fastest JavaScript SSA/ASS Subtitle Renderer For Browsers
68 lines (67 loc) • 3.09 kB
TypeScript
import { finalizer } from 'abslink';
import { Canvas2DRenderer } from './renderers/2d-renderer.ts';
import { WebGL1Renderer } from './renderers/webgl1-renderer.ts';
import { WebGL2Renderer } from './renderers/webgl2-renderer.ts';
import { type ASSEvent, type ASSStyle, type WeightValue } from './util.ts';
import type { JASSUB } from '../wasm/types.d.ts';
interface opts {
wasmUrl: string;
width: number;
height: number;
subUrl: string | undefined;
subContent: string | null;
fonts: Array<string | Uint8Array>;
availableFonts: Record<string, Uint8Array | string>;
defaultFont: string;
debug: boolean;
libassMemoryLimit: number;
libassGlyphLimit: number;
queryFonts: 'local' | 'localandremote' | false;
}
export declare class ASSRenderer {
_offCanvas?: OffscreenCanvas;
_wasm: JASSUB;
_subtitleColorSpace?: 'BT601' | 'BT709' | 'SMPTE240M' | 'FCC' | null;
_videoColorSpace?: 'BT709' | 'BT601';
_malloc: (size: number) => number;
_gpurender: WebGL2Renderer | WebGL1Renderer | Canvas2DRenderer;
debug: boolean;
_ready: Promise<void>;
constructor(data: opts, getFont: (font: string, weight: WeightValue) => Promise<Uint8Array<ArrayBuffer> | undefined>);
ready(): Promise<void>;
createEvent(event: ASSEvent): void;
getEvents(): Partial<ASSEvent>[];
setEvent(event: ASSEvent, index: number): void;
removeEvent(index: number): void;
createStyle(style: ASSStyle): import("../wasm/types.d.ts").ASS_Style;
getStyles(): ASSStyle[];
setStyle(style: ASSStyle, index: number): void;
removeStyle(index: number): void;
styleOverride(style: ASSStyle): void;
disableStyleOverride(): void;
setTrack(content: string): void;
freeTrack(): void;
setTrackByUrl(url: string): Promise<void>;
_checkColorSpace(): void;
_defaultFont: string;
setDefaultFont(fontName: string): void;
_log(log: string): Promise<void>;
addFonts(fontOrURLs: Array<Uint8Array | string>): Promise<PromiseSettledResult<void>[] | undefined>;
_loadedInitialFonts: boolean;
_loadInitialFonts(fontOrURLs: Array<Uint8Array | string>): Promise<void>;
_getFont: (font: string, weight: WeightValue) => Promise<Uint8Array<ArrayBuffer> | undefined>;
_availableFonts: Record<string, Uint8Array | string>;
_checkedFonts: Set<string>;
_findAvailableFont(fontName: string, weight?: WeightValue): Promise<PromiseSettledResult<void>[] | undefined>;
queryFonts: false | "local" | "localandremote";
_queryLocalFont(fontName: string, weight: WeightValue): Promise<Uint8Array<ArrayBuffer> | undefined>;
_queryRemoteFont(postscriptNames: string[]): Promise<Uint8Array<ArrayBuffer> | undefined>;
_asyncWrite(font: string): Promise<void>;
_fontId: number;
_allocFonts(uint8s: Uint8Array[]): void;
_resizeCanvas(width: number, height: number, videoWidth: number, videoHeight: number): void;
[finalizer](): Promise<void>;
_draw(time: number, repaint?: boolean): void;
_setColorSpace(videoColorSpace: 'RGB' | 'BT709' | 'BT601'): void;
}
export {};