mfx
Version:
In-browser video editing toolkit, with effects accelerated by WebGL
64 lines (63 loc) • 1.86 kB
TypeScript
/// <reference types="dom-webcodecs" />
import { type ContainerContext, ExtendedVideoFrame } from "./frame";
import { MFXTransformStream } from "./stream";
import { type GenericTrack, Track } from "./container/Track";
import type { MFXEncodedChunk } from "./types";
/**
* @group Decode
*/
export interface MFXDecodableChunk<Sample = any> extends MFXEncodedChunk {
context?: ContainerContext;
track?: GenericTrack<Sample>;
video?: MFXEncodedChunk["video"] & {
config: VideoDecoderConfig;
};
audio?: MFXEncodedChunk["audio"] & {
config: AudioDecoderConfig;
};
}
/**
* @group Decode
* @note Forces a VideoFrame to be copied to Software (CPU)
*/
export declare const forceCopyFrame: (frame: VideoFrame, canvas?: OffscreenCanvas) => Promise<ExtendedVideoFrame>;
/**
* @group Decode
*/
export interface DecodeOptions {
trim?: {
start?: number;
end?: number;
};
frameRate?: number;
forceDecodeToSoftware?: boolean;
}
/**
* @group Decode
*/
export declare const decode: (input: ReadableStream<Uint8Array>, mimeType: string, opt?: DecodeOptions) => Promise<{
video: Track<any>;
audio: Track<any>;
videoTracks: Track<any>[];
audioTracks: Track<any>[];
}>;
/**
* @group Decode
*/
export declare class MFXAudioDecoder extends MFXTransformStream<MFXDecodableChunk, AudioData> {
config: AudioDecoderConfig;
get identifier(): string;
constructor(config?: Partial<AudioDecoderConfig>);
}
/**
* @group Decode
*/
export declare class MFXVideoDecoder extends MFXTransformStream<MFXDecodableChunk, ExtendedVideoFrame> {
config: VideoDecoderConfig & {
forceDecodeToSoftware: boolean;
};
get identifier(): string;
constructor(config?: Partial<VideoDecoderConfig>, { forceDecodeToSoftware, }?: {
forceDecodeToSoftware?: boolean;
});
}