@omnimedia/omnitool
Version:
open source video processing tools
36 lines (35 loc) • 1.67 kB
TypeScript
import { Ms } from "../../../../units/ms.js";
import { Driver } from "../../../../driver/driver.js";
import { TimelineFile } from "../../../parts/basics.js";
import { DecoderSource } from "../../../../driver/fns/schematic.js";
type StreamCursor<T> = {
next(target: number): Promise<T | undefined>;
cancel(): Promise<void>;
};
type VideoFrameCursor = StreamCursor<VideoFrame>;
declare abstract class BaseVisualSampler {
#private;
protected driver: Driver;
protected resolveMedia: (hash: string) => DecoderSource;
protected timeline: TimelineFile;
constructor(driver: Driver, resolveMedia: (hash: string) => DecoderSource, timeline: TimelineFile);
protected abstract createCursor(source: DecoderSource, startUs: number, endUs: number): VideoFrameCursor;
protected sample(timecode: Ms): Promise<import("../../../../driver/fns/schematic.js").Layer[]>;
cancel(): Promise<void>;
}
/**
* forward-only frame cursor optimized for export purposes.
* it uses mediabunny internally so the support for non-clients
* should be done from mediabunny custom decoder/encoder
*/
export declare class CursorVisualSampler extends BaseVisualSampler {
#private;
next(timecode: Ms): Promise<import("../../../../driver/fns/schematic.js").Layer[]>;
protected createCursor(source: DecoderSource, startUs: number, _endUs: number): VideoFrameCursor;
}
export declare class ReverseCursorVisualSampler extends BaseVisualSampler {
#private;
next(timecode: Ms): Promise<import("../../../../driver/fns/schematic.js").Layer[]>;
protected createCursor(source: DecoderSource, startUs: number, endUs: number): VideoFrameCursor;
}
export {};