Package-level declarations
Types
One AdaptationSet: the interchangeable representations of one kind of content.
One location of a manifest's segments, resolved. serviceLocation names the network it is on, so a player that loses one location leaves the others on the same network for last; priority and weight are DVB-DASH's (ETSI TS 103 285, 10.8.2.1), null when the manifest states none, which DVB reads as 1.
One base address and its other locations (#440). primary is the resolved base that the segments' addresses below it are built from, and locations every location of the same segments, primary first, in the order the manifest asks for: DVB's priority, the lowest first, then its weight, the highest first, then the document's order.
A DASH MPD parsed in pure commonMain Kotlin, because libxml2 was refused as a dependency. The model keeps what segment resolution needs and nothing else: periods, adaptation sets, representations, the three segment addressing forms (template with number or timeline, an explicit list, and one file with a segment index), BaseURL chains, and the clock of a live presentation.
Parses a DASH MPD into a DashManifest.
One representation's segments read as a single forward stream (the adaptive layer's first tier): the initialization segment when one exists, then every media segment in plan order, byte-concatenated. FFmpeg demuxes the join exactly as it demuxes a file, which is the media3 shape chosen here: Kotlin segment logic FEEDING the decoder, never FFmpeg's own dash demuxer.
One Period of a manifest, with its BaseURL already resolved.
One Representation: one encoding of the content, with its segments addressed by a template or a list.
A response that passed the size ceiling before it was fully read.
A SegmentBase: one file at the representation's BaseURL, whose own segment index (sidx) names its segments. indexRange says where the index is; without it the index is looked for at the start of the file.
A SegmentList, with every URL base-resolved. A SegmentURL without media names a byte range of the representation's own BaseURL.
The resolved segment plan for one representation: what to fetch, in order.
A SegmentTemplate, merged from every level that declares one, the lowest level winning each attribute.
One SegmentURL: a URL, and the bytes of it that hold the segment, or null for all of it.
A manifest that the DASH door does not play: an encrypted one, whose every picture and sound set has a ContentProtection element, because digital rights management is out of scope, or one whose segments the HLS path cannot carry, in a container other than fragmented MP4, MPEG-TS or WebM, when it has several Periods, is live or carries its audio in an adaptation set of its own. It is refused rather than played wrong, so an application can fall back to another route.
What a manifest is allowed to point this player at.
A URL a manifest asked for and DashUrlPolicy refused.
One UTCTiming element (ISO/IEC 23009-1, 5.8.4.11): a schemeIdUri that says how to read the time, such as urn:mpeg:dash:utc:http-xsdate:2014 or urn:mpeg:dash:utc:direct:2014, and its value, an address to fetch or the time itself.