/** * Fallback resolver for MPEG-DASH manifests the MSE engines (Shaka / hls.js / * dash.js) refuse or can't play — so movi's own FFmpeg-WASM demuxer takes over. * * It targets the "single file per Representation" shape: each Representation is * one complete (fragmented) MP4 addressed by a , either with NO segment * addressing at all, or with a that merely indexes the sidx INSIDE * that one file. Both are ordinary MP4s the FFmpeg demuxer reads whole via range * requests. (SegmentTemplate / SegmentList split media across many separate * files and are NOT handled here — that needs a segment-streaming source.) * * Two failure modes this recovers: * - Shaka is strict and skips single-file-with-SegmentBase Representations * ("does not contain a segment information source"), failing the load with * DASH_EMPTY_PERIOD (4004). * - The browser's MSE can't decode the stream's codec (e.g. Safari + HE-AAC), * so Shaka loads the manifest but appendBuffer fails (error 3014). The WASM * demuxer decodes every codec, so routing the same file through it plays. * * This module probes the manifest and, when it finds the single-file case, * resolves the best video file URL plus (for demuxed content) the separate * audio file URL, so the caller can play them through the demuxer (+ a native *