tav-media
Version:
Cross platform media editing framework
36 lines (35 loc) • 1.06 kB
TypeScript
import type { EmscriptenGL } from '../types';
export interface FrameData {
id: number;
data: ArrayBuffer;
width: number;
height: number;
}
export interface TimeRange {
start: number;
end: number;
}
export declare class VideoReader {
static isIOS: () => boolean;
static isAndroidMiniprogram: () => boolean;
private readonly frameRate;
private currentFrame;
private mp4Path;
private videoDecoder;
private videoDecoderPromise;
private frameData;
private frameDataBuffers;
private bufferIndex;
private getFrameDataLooping;
private getFrameDataResolve;
private getFrameDataLoopTimer;
private seeking;
constructor(mp4Data: Uint8Array, width: number, height: number, frameRate: number, staticTimeRanges: TimeRange[]);
prepare(targetFrame: number): Promise<boolean>;
renderToTexture(GL: EmscriptenGL, textureID: number): void;
onDestroy(): void;
private getFrameData;
private startGetFrameDataLoop;
private getFrameDataLoop;
private clearFrameDataLoop;
}