/** * MSE Intercept — Patches MediaSource to transparently transcode HEVC → H.264. * * Creates a proxy SourceBuffer that: * 1. Reports updating=true while transcoding is in progress (blocks dash.js) * 2. Fires proper updatestart/update/updateend events after transcoding * 3. Passes audio and other non-HEVC tracks through untouched */ import type { LogLevel } from "./log.js"; import type { SegmentTranscoderConfig } from "./segment-transcoder.js"; /** * The MSE constructor available in this browser: classic `MediaSource`, * `ManagedMediaSource` (the only one on iPhone Safari, iOS 17.1+), or null. */ export declare function getMediaSourceConstructor(): typeof MediaSource | null; export interface MSEInterceptConfig extends SegmentTranscoderConfig { /** URL to the transcode worker script. When provided, transcoding runs off main thread. */ workerUrl?: string; /** Called when video transcoding starts — use to pause player buffering. */ onTranscodeStart?: () => void; /** Called when video transcoding ends — use to resume player buffering. */ onTranscodeEnd?: () => void; /** Log verbosity: 'debug' | 'info' | 'warn' (default) | 'error' | 'silent'. */ logLevel?: LogLevel; } /** * Install the MSE intercept. Call before dash.js initializes. */ export declare function installMSEIntercept(config?: MSEInterceptConfig): void; /** * Remove the MSE intercept and restore original methods. */ export declare function uninstallMSEIntercept(): void; //# sourceMappingURL=mse-intercept.d.ts.map