UNPKG

@omnimedia/omnitool

Version:

open source video processing tools

39 lines (38 loc) 1.46 kB
import { Thread } from "@e280/comrade"; import { type StreamTargetChunk } from "mediabunny"; import { Machina } from "./parts/machina.js"; import { Compositor } from "./parts/compositor.js"; import { DecoderInput, DriverSchematic, Composition, EncoderInput, DecoderSource } from "./fns/schematic.js"; export type DriverOptions = { workerUrl: URL | string; }; export declare class Driver { machina: Machina; thread: Thread<DriverSchematic>; compositor: Compositor; static setup(options?: DriverOptions): Promise<Driver>; constructor(machina: Machina, thread: Thread<DriverSchematic>, compositor: Compositor); hello(): Promise<void>; getAudioDuration(source: DecoderSource): Promise<number>; getVideoDuration(source: DecoderSource): Promise<number | undefined>; decodeVideo(input: DecoderInput): { readable: ReadableStream<VideoFrame>; /** * use this to stop decoding (premature interruption) * */ cancel(): void; }; decodeAudio(input: DecoderInput): { readable: ReadableStream<AudioData>; /** * use this to stop decoding (premature interruption) * */ cancel(): void; }; encode({ audio, video, config }: EncoderInput): { readable: ReadableStream<StreamTargetChunk>; done: Promise<void>; }; composite(composition: Composition): Promise<VideoFrame>; resize(width: number, height: number): void; }