/** * PlaybackController - Orchestrates demuxing, decoding, and rendering */ import { Demuxer } from '../demux'; import { Clock } from './Clock'; import { TrackManager } from './TrackManager'; export interface PlaybackControllerConfig { canvas: HTMLCanvasElement; demuxer: Demuxer; trackManager: TrackManager; clock: Clock; } export declare class PlaybackController { private demuxer; private trackManager; private clock; private videoDecoder; private audioDecoder; private canvasRenderer; private audioRenderer; private animationFrameId; private isRunning; constructor(config: PlaybackControllerConfig); /** * Initialize decoders for active tracks */ init(): Promise; /** * Render a video frame with timing */ private renderVideoFrame; /** * Start playback loop */ start(): Promise; /** * Main playback loop */ private runLoop; /** * Process a demuxed packet */ private processPacket; /** * Stop playback loop */ stop(): void; /** * Pause playback */ pause(): void; /** * Resume playback */ resume(): Promise; /** * Seek to a position */ seek(time: number): Promise; /** * Set volume */ setVolume(volume: number): void; /** * Get volume */ getVolume(): number; /** * Destroy controller */ destroy(): Promise; } //# sourceMappingURL=PlaybackController.d.ts.map