/** * H.264 to JPEG frame decoder using a persistent ffmpeg subprocess. * * Spawns ffmpeg with H.264 stdin → MJPEG stdout, extracts individual * JPEG frames by scanning for SOI (FF D8) / EOI (FF D9) markers. */ import { EventEmitter } from "node:events"; /** * Extract complete JPEG frames from a buffer. * Returns extracted frames and the remaining unprocessed bytes. */ export declare function extractJpegFrames(buf: Buffer): { frames: Buffer[]; remainder: Buffer; }; export interface FrameDecoderEvents { frame: [jpeg: Buffer]; error: [err: Error]; } /** * Persistent ffmpeg-based H.264 → JPEG decoder. * * Usage: * const decoder = new FrameDecoder(); * decoder.start(); * decoder.feed(nalData); * const jpeg = decoder.getFrame(); * decoder.stop(); */ export declare class FrameDecoder extends EventEmitter { private proc; private latestFrame; private readBuffer; private running; /** Check that ffmpeg is available on PATH. */ static checkFfmpeg(): void; /** Start the persistent ffmpeg decoder process. */ start(): void; /** Feed H.264 NAL data to the decoder. */ feed(nalData: Buffer): void; /** Get the latest decoded JPEG frame, or null if none available. */ getFrame(): Buffer | null; /** Stop the decoder and kill the ffmpeg process. */ stop(): void; /** Whether the decoder is currently running. */ get isRunning(): boolean; } //# sourceMappingURL=decoder.d.ts.map