UNPKG

@meframe/core

Version:

Next generation media processing framework based on WebCodecs

89 lines 2.49 kB
/** * Utility functions for handling Transferable objects * Simplifies the process of transferring ownership of objects between workers */ /** * Check if an object is transferable */ export declare function isTransferable(obj: any): obj is Transferable; /** * Extract transferable objects from a payload */ export declare function extractTransferables(payload: any): Transferable[]; /** * Wrap VideoFrame for transfer with metadata */ export declare function wrapVideoFrame(frame: VideoFrame): { frame: VideoFrame; metadata: { timestamp: number; duration: number | null; codedWidth: number; codedHeight: number; displayWidth: number; displayHeight: number; format: VideoPixelFormat | null; }; }; /** * Wrap AudioData for transfer with metadata */ export declare function wrapAudioData(audio: AudioData): { audio: AudioData; metadata: { timestamp: number; duration: number; numberOfFrames: number; numberOfChannels: number; sampleRate: number; format: AudioSampleFormat | null; }; }; /** * Convert EncodedVideoChunk to transferable format */ export declare function encodedVideoChunkToTransferable(chunk: EncodedVideoChunk): { data: ArrayBuffer; type: EncodedVideoChunkType; timestamp: number; duration: number | null; }; /** * Convert EncodedAudioChunk to transferable format */ export declare function encodedAudioChunkToTransferable(chunk: EncodedAudioChunk): { data: ArrayBuffer; type: EncodedAudioChunkType; timestamp: number; duration: number | null; }; /** * Recreate EncodedVideoChunk from transferable format */ export declare function transferableToEncodedVideoChunk(transferable: { data: ArrayBuffer; type: 'key' | 'delta'; timestamp: number; duration?: number; }): EncodedVideoChunk; /** * Recreate EncodedAudioChunk from transferable format */ export declare function transferableToEncodedAudioChunk(transferable: { data: ArrayBuffer; type: 'key' | 'delta'; timestamp: number; duration?: number; }): EncodedAudioChunk; /** * Transfer OffscreenCanvas control to worker */ export declare function transferCanvas(canvas: HTMLCanvasElement): OffscreenCanvas; /** * Create a transferable stream pair */ export declare function createStreamPair<T>(): { readable: ReadableStream<T>; writable: WritableStream<T>; }; //# sourceMappingURL=transferable-helper.d.ts.map