UNPKG

frameflow

Version:

Audio/Video stream processing library for JavaScript world

70 lines (69 loc) 2.25 kB
/// <reference types="dom-webcodecs" /> import { SourceStream } from './globals'; import { FFWorker } from "./message"; import { ChunkData, SourceNode, SourceType, TargetNode, WriteChunkData } from "./types/graph"; import { BufferPool } from './utils'; declare type SourceStreamCreator = (seekPos: number) => Promise<SourceStream<ChunkData>>; export declare function getSourceInfo(src: SourceType): Promise<{ size: number; url?: string; isHLS?: boolean; }>; export declare const sourceToStreamCreator: (src: SourceType) => SourceStreamCreator; export declare class FileReader { #private; source: SourceType; streamCreator: SourceStreamCreator; stream: SourceStream<ChunkData> | undefined; worker: FFWorker; constructor(id: string, source: SourceType, worker: FFWorker); get url(): string; get end(): boolean; } export declare class StreamReader { #private; cacheData: ChunkData[]; worker: FFWorker; stream: SourceStream<ChunkData>; bufferPool: BufferPool; constructor(id: string, cacheData: ChunkData[], stream: SourceStream<ChunkData>, worker: FFWorker); get end(): boolean; probe(): Promise<ChunkData | undefined>; read(): Promise<Uint8Array | VideoFrame | AudioData | undefined>; close(source: SourceNode): void; } declare type Reader = FileReader | StreamReader; /** * Generic data type for all data buffer with unified API. */ export declare class Chunk { #private; worker: FFWorker; id: string; constructor(data: ChunkData | WriteChunkData, worker: FFWorker, id: string); get data(): Uint8Array | undefined; get videoFrame(): VideoFrame | undefined; get audioData(): AudioData | undefined; get offset(): number; close(): void; } /** * stream output handler */ export declare function newExporter(node: TargetNode, worker: FFWorker): Promise<Exporter>; /** * Exporter is a class that exports data from a graph. */ export declare class Exporter { id: string; worker: FFWorker; readers: Reader[]; constructor(id: string, worker: FFWorker, readers: Reader[]); next(): Promise<{ output: Chunk[]; progress: number; done: boolean; }>; close(): Promise<void>; } export {};