manifest
Fetches and parses mpdUrl. Confined to Dispatchers.Default for the same reason DashMediaIo confines its fetches: on Kotlin/Native the Darwin engine resumes onto the main queue, which a plain runBlocking main thread never serves, and the fetch deadlocks.
readerPolicy limits the wait: a server that sends no headers within its connect timeout, or no bytes within its read timeout, fails the call with KtorMediaIoException.
policy judges the manifest's own redirects too, against mpdUrl, and refuses one with DashUrlRefusedException before it is requested. A request follows at most five redirects.
A manifest within maxManifestBytes is never refused for its length. One with more than 262,144 elements or 1,048,576 attributes, or with an element that carries more than 128 attributes, is refused with io.github.yuroyami.kiteplayer.network.xml.XmlException whatever the ceiling. The URL ceilings that DashManifestParser.parse states grow in proportion once maxManifestBytes passes 8 MiB.