# DashManifestParser

Artifact: [androidx.media3:media3-exoplayer-dash](https://developer.android.com/jetpack/androidx/releases/media3) [View Source](https://cs.android.com/search?q=file:androidx/media3/exoplayer/dash/manifest/DashManifestParser.java+class:androidx.media3.exoplayer.dash.manifest.DashManifestParser)

*** ** * ** ***


```
@UnstableApi
public class DashManifestParser extends DefaultHandler implements ParsingLoadable.Parser<DashManifest>
```

<br />

|---|---|---|
| [java.lang.Object](https://developer.android.com/reference/java/lang/Object.html) |||
| ↳ | [org.xml.sax.helpers.DefaultHandler](https://developer.android.com/reference/org/xml/sax/helpers/DefaultHandler.html) ||
|   | ↳ | [androidx.media3.exoplayer.dash.manifest.DashManifestParser](https://developer.android.com/reference/androidx/media3/exoplayer/dash/manifest/DashManifestParser) |

*** ** * ** ***

A parser of media presentation description files.

## Summary

| ### Nested types |
|---|
| `protected final class https://developer.android.com/reference/androidx/media3/exoplayer/dash/manifest/DashManifestParser.RepresentationInfo` A parsed Representation element. |

| ### Public constructors |
|---|
| `https://developer.android.com/reference/androidx/media3/exoplayer/dash/manifest/DashManifestParser#DashManifestParser()()` |

| ### Public methods |
|---|---|
| `static void` | `https://developer.android.com/reference/androidx/media3/exoplayer/dash/manifest/DashManifestParser#maybeSkipTag(org.xmlpull.v1.XmlPullParser)(https://developer.android.com/reference/org/xmlpull/v1/XmlPullParser.html xpp)` If the provided `https://developer.android.com/reference/org/xmlpull/v1/XmlPullParser.html` is currently positioned at the start of a tag, skips forward to the end of that tag. |
| `https://developer.android.com/reference/androidx/media3/exoplayer/dash/manifest/DashManifest` | `https://developer.android.com/reference/androidx/media3/exoplayer/dash/manifest/DashManifestParser#parse(android.net.Uri,java.io.InputStream)(https://developer.android.com/reference/android/net/Uri.html uri, https://developer.android.com/reference/java/io/InputStream.html inputStream)` Parses an object from a response. |

| ### Protected methods |
|---|---|
| `https://developer.android.com/reference/androidx/media3/exoplayer/dash/manifest/AdaptationSet` | `https://developer.android.com/reference/androidx/media3/exoplayer/dash/manifest/DashManifestParser#buildAdaptationSet(long,int,java.util.List<androidx.media3.exoplayer.dash.manifest.Representation>,java.util.List<androidx.media3.exoplayer.dash.manifest.Descriptor>,java.util.List<androidx.media3.exoplayer.dash.manifest.Descriptor>,java.util.List<androidx.media3.exoplayer.dash.manifest.Descriptor>,com.google.common.collect.ImmutableList<androidx.media3.exoplayer.dash.manifest.ProducerReferenceTime>)( long id, @https://developer.android.com/reference/androidx/media3/common/C.TrackType int contentType, https://developer.android.com/reference/java/util/List.html<https://developer.android.com/reference/androidx/media3/exoplayer/dash/manifest/Representation> representations, https://developer.android.com/reference/java/util/List.html<https://developer.android.com/reference/androidx/media3/exoplayer/dash/manifest/Descriptor> accessibilityDescriptors, https://developer.android.com/reference/java/util/List.html<https://developer.android.com/reference/androidx/media3/exoplayer/dash/manifest/Descriptor> essentialProperties, https://developer.android.com/reference/java/util/List.html<https://developer.android.com/reference/androidx/media3/exoplayer/dash/manifest/Descriptor> supplementalProperties, https://guava.dev/releases/snapshot-android/api/docs/com/google/common/collect/ImmutableList.html<https://developer.android.com/reference/androidx/media3/exoplayer/dash/manifest/ProducerReferenceTime> producerReferenceTimes )` |
| `https://developer.android.com/reference/androidx/media3/extractor/metadata/emsg/EventMessage` | `https://developer.android.com/reference/androidx/media3/exoplayer/dash/manifest/DashManifestParser#buildEvent(java.lang.String,java.lang.String,long,long,byte[])( https://developer.android.com/reference/java/lang/String.html schemeIdUri, https://developer.android.com/reference/java/lang/String.html value, long id, long durationMs, byte[] messageData )` |
| `https://developer.android.com/reference/androidx/media3/exoplayer/dash/manifest/EventStream` | `https://developer.android.com/reference/androidx/media3/exoplayer/dash/manifest/DashManifestParser#buildEventStream(java.lang.String,java.lang.String,long,long[],androidx.media3.extractor.metadata.emsg.EventMessage[])( https://developer.android.com/reference/java/lang/String.html schemeIdUri, https://developer.android.com/reference/java/lang/String.html value, long timescale, long[] presentationTimesUs, EventMessage[] events )` |
| `https://developer.android.com/reference/androidx/media3/common/Format` | `https://developer.android.com/reference/androidx/media3/exoplayer/dash/manifest/DashManifestParser#buildFormat(java.lang.String,java.lang.String,int,int,float,int,int,int,java.lang.String,java.util.List<androidx.media3.exoplayer.dash.manifest.Descriptor>,java.util.List<androidx.media3.exoplayer.dash.manifest.Descriptor>,java.lang.String,java.lang.String,java.lang.String,java.util.List<androidx.media3.exoplayer.dash.manifest.Descriptor>,java.util.List<androidx.media3.exoplayer.dash.manifest.Descriptor>)( @https://developer.android.com/reference/androidx/annotation/Nullable https://developer.android.com/reference/java/lang/String.html id, @https://developer.android.com/reference/androidx/annotation/Nullable https://developer.android.com/reference/java/lang/String.html containerMimeType, int width, int height, float frameRate, int audioChannels, int audioSamplingRate, int bitrate, @https://developer.android.com/reference/androidx/annotation/Nullable https://developer.android.com/reference/java/lang/String.html language, https://developer.android.com/reference/java/util/List.html<https://developer.android.com/reference/androidx/media3/exoplayer/dash/manifest/Descriptor> roleDescriptors, https://developer.android.com/reference/java/util/List.html<https://developer.android.com/reference/androidx/media3/exoplayer/dash/manifest/Descriptor> accessibilityDescriptors, @https://developer.android.com/reference/androidx/annotation/Nullable https://developer.android.com/reference/java/lang/String.html codecs, @https://developer.android.com/reference/androidx/annotation/Nullable https://developer.android.com/reference/java/lang/String.html supplementalCodecs, @https://developer.android.com/reference/androidx/annotation/Nullable https://developer.android.com/reference/java/lang/String.html supplementalProfiles, https://developer.android.com/reference/java/util/List.html<https://developer.android.com/reference/androidx/media3/exoplayer/dash/manifest/Descriptor> essentialProperties, https://developer.android.com/reference/java/util/List.html<https://developer.android.com/reference/androidx/media3/exoplayer/dash/manifest/Descriptor> supplementalProperties )` |
| `https://developer.android.com/reference/androidx/media3/exoplayer/dash/manifest/DashManifest` | `[buildMediaPresentationDescription](https://developer.android.com/reference/androidx/media3/exoplayer/dash/manifest/DashManifestParser#buildMediaPresentationDescription(long,long,long,boolean,long,long,long,long,androidx.media3.exoplayer.dash.manifest.ProgramInformation,androidx.media3.exoplayer.dash.manifest.UtcTimingElement,androidx.media3.exoplayer.dash.manifest.ServiceDescriptionElement,android.net.Uri,java.util.List<androidx.media3.exoplayer.dash.manifest.Period>))( long availabilityStartTime, long durationMs, long minBufferTimeMs, boolean dynamic, long minUpdateTimeMs, long timeShiftBufferDepthMs, long suggestedPresentationDelayMs, long publishTimeMs, @https://developer.android.com/reference/androidx/annotation/Nullable https://developer.android.com/reference/androidx/media3/exoplayer/dash/manifest/ProgramInformation programInformation, @https://developer.android.com/reference/androidx/annotation/Nullable https://developer.android.com/reference/androidx/media3/exoplayer/dash/manifest/UtcTimingElement utcTiming, @https://developer.android.com/reference/androidx/annotation/Nullable https://developer.android.com/reference/androidx/media3/exoplayer/dash/manifest/ServiceDescriptionElement serviceDescription, @https://developer.android.com/reference/androidx/annotation/Nullable https://developer.android.com/reference/android/net/Uri.html location, https://developer.android.com/reference/java/util/List.html<https://developer.android.com/reference/androidx/media3/exoplayer/dash/manifest/Period> periods )` **This method is deprecated.** Use `https://developer.android.com/reference/androidx/media3/exoplayer/dash/manifest/DashManifestParser#buildMediaPresentationDescription(long,long,long,boolean,long,long,long,long,androidx.media3.exoplayer.dash.manifest.ProgramInformation,androidx.media3.exoplayer.dash.manifest.UtcTimingElement,androidx.media3.exoplayer.dash.manifest.ServiceDescriptionElement,java.util.List<androidx.media3.exoplayer.dash.manifest.Period>,java.util.List<androidx.media3.exoplayer.dash.manifest.Location>,androidx.media3.exoplayer.dash.manifest.ContentSteering)` instead. <br /> |
| `https://developer.android.com/reference/androidx/media3/exoplayer/dash/manifest/DashManifest` | `[buildMediaPresentationDescription](https://developer.android.com/reference/androidx/media3/exoplayer/dash/manifest/DashManifestParser#buildMediaPresentationDescription(long,long,long,boolean,long,long,long,long,androidx.media3.exoplayer.dash.manifest.ProgramInformation,androidx.media3.exoplayer.dash.manifest.UtcTimingElement,androidx.media3.exoplayer.dash.manifest.ServiceDescriptionElement,java.util.List<androidx.media3.exoplayer.dash.manifest.Period>,java.util.List<androidx.media3.exoplayer.dash.manifest.Location>))( long availabilityStartTime, long durationMs, long minBufferTimeMs, boolean dynamic, long minUpdateTimeMs, long timeShiftBufferDepthMs, long suggestedPresentationDelayMs, long publishTimeMs, @https://developer.android.com/reference/androidx/annotation/Nullable https://developer.android.com/reference/androidx/media3/exoplayer/dash/manifest/ProgramInformation programInformation, @https://developer.android.com/reference/androidx/annotation/Nullable https://developer.android.com/reference/androidx/media3/exoplayer/dash/manifest/UtcTimingElement utcTiming, @https://developer.android.com/reference/androidx/annotation/Nullable https://developer.android.com/reference/androidx/media3/exoplayer/dash/manifest/ServiceDescriptionElement serviceDescription, https://developer.android.com/reference/java/util/List.html<https://developer.android.com/reference/androidx/media3/exoplayer/dash/manifest/Period> periods, https://developer.android.com/reference/java/util/List.html<https://developer.android.com/reference/androidx/media3/exoplayer/dash/manifest/Location> locations )` **This method is deprecated.** Use `https://developer.android.com/reference/androidx/media3/exoplayer/dash/manifest/DashManifestParser#buildMediaPresentationDescription(long,long,long,boolean,long,long,long,long,androidx.media3.exoplayer.dash.manifest.ProgramInformation,androidx.media3.exoplayer.dash.manifest.UtcTimingElement,androidx.media3.exoplayer.dash.manifest.ServiceDescriptionElement,java.util.List<androidx.media3.exoplayer.dash.manifest.Period>,java.util.List<androidx.media3.exoplayer.dash.manifest.Location>,androidx.media3.exoplayer.dash.manifest.ContentSteering)` instead. <br /> |
| `https://developer.android.com/reference/androidx/media3/exoplayer/dash/manifest/DashManifest` | `https://developer.android.com/reference/androidx/media3/exoplayer/dash/manifest/DashManifestParser#buildMediaPresentationDescription(long,long,long,boolean,long,long,long,long,androidx.media3.exoplayer.dash.manifest.ProgramInformation,androidx.media3.exoplayer.dash.manifest.UtcTimingElement,androidx.media3.exoplayer.dash.manifest.ServiceDescriptionElement,java.util.List<androidx.media3.exoplayer.dash.manifest.Period>,java.util.List<androidx.media3.exoplayer.dash.manifest.Location>,androidx.media3.exoplayer.dash.manifest.ContentSteering)( long availabilityStartTime, long durationMs, long minBufferTimeMs, boolean dynamic, long minUpdateTimeMs, long timeShiftBufferDepthMs, long suggestedPresentationDelayMs, long publishTimeMs, @https://developer.android.com/reference/androidx/annotation/Nullable https://developer.android.com/reference/androidx/media3/exoplayer/dash/manifest/ProgramInformation programInformation, @https://developer.android.com/reference/androidx/annotation/Nullable https://developer.android.com/reference/androidx/media3/exoplayer/dash/manifest/UtcTimingElement utcTiming, @https://developer.android.com/reference/androidx/annotation/Nullable https://developer.android.com/reference/androidx/media3/exoplayer/dash/manifest/ServiceDescriptionElement serviceDescription, https://developer.android.com/reference/java/util/List.html<https://developer.android.com/reference/androidx/media3/exoplayer/dash/manifest/Period> periods, https://developer.android.com/reference/java/util/List.html<https://developer.android.com/reference/androidx/media3/exoplayer/dash/manifest/Location> locations, @https://developer.android.com/reference/androidx/annotation/Nullable https://developer.android.com/reference/androidx/media3/exoplayer/dash/manifest/ContentSteering contentSteering )` |
| `https://developer.android.com/reference/androidx/media3/exoplayer/dash/manifest/Period` | `https://developer.android.com/reference/androidx/media3/exoplayer/dash/manifest/DashManifestParser#buildPeriod(java.lang.String,long,java.util.List<androidx.media3.exoplayer.dash.manifest.AdaptationSet>,java.util.List<androidx.media3.exoplayer.dash.manifest.EventStream>,androidx.media3.exoplayer.dash.manifest.Descriptor,java.util.List<androidx.media3.exoplayer.dash.manifest.AlternativeMpdEvent>)( @https://developer.android.com/reference/androidx/annotation/Nullable https://developer.android.com/reference/java/lang/String.html id, long startMs, https://developer.android.com/reference/java/util/List.html<https://developer.android.com/reference/androidx/media3/exoplayer/dash/manifest/AdaptationSet> adaptationSets, https://developer.android.com/reference/java/util/List.html<https://developer.android.com/reference/androidx/media3/exoplayer/dash/manifest/EventStream> eventStreams, @https://developer.android.com/reference/androidx/annotation/Nullable https://developer.android.com/reference/androidx/media3/exoplayer/dash/manifest/Descriptor assetIdentifier, https://developer.android.com/reference/java/util/List.html<https://developer.android.com/reference/androidx/media3/exoplayer/dash/manifest/AlternativeMpdEvent> alternativeMpdEvents )` |
| `https://developer.android.com/reference/androidx/media3/exoplayer/dash/manifest/ProducerReferenceTime` | `https://developer.android.com/reference/androidx/media3/exoplayer/dash/manifest/DashManifestParser#buildProducerReferenceTime(long,boolean,int,java.lang.String,long,long,androidx.media3.exoplayer.dash.manifest.UtcTimingElement)( long id, boolean inband, @https://developer.android.com/reference/androidx/media3/exoplayer/dash/manifest/ProducerReferenceTime.ProducerReferenceTimeType int type, @https://developer.android.com/reference/androidx/annotation/Nullable https://developer.android.com/reference/java/lang/String.html applicationScheme, long wallClockTimeMs, long presentationTime, @https://developer.android.com/reference/androidx/annotation/Nullable https://developer.android.com/reference/androidx/media3/exoplayer/dash/manifest/UtcTimingElement utcTiming )` |
| `https://developer.android.com/reference/androidx/media3/exoplayer/dash/manifest/RangedUri` | `https://developer.android.com/reference/androidx/media3/exoplayer/dash/manifest/DashManifestParser#buildRangedUri(java.lang.String,long,long)( @https://developer.android.com/reference/androidx/annotation/Nullable https://developer.android.com/reference/java/lang/String.html urlText, long rangeStart, long rangeLength )` |
| `https://developer.android.com/reference/androidx/media3/exoplayer/dash/manifest/Representation` | `https://developer.android.com/reference/androidx/media3/exoplayer/dash/manifest/DashManifestParser#buildRepresentation(androidx.media3.exoplayer.dash.manifest.DashManifestParser.RepresentationInfo,java.lang.String,java.util.List<androidx.media3.common.Label>,java.lang.String,java.util.ArrayList<androidx.media3.common.DrmInitData.SchemeData>,java.util.ArrayList<androidx.media3.exoplayer.dash.manifest.Descriptor>)( https://developer.android.com/reference/androidx/media3/exoplayer/dash/manifest/DashManifestParser.RepresentationInfo representationInfo, @https://developer.android.com/reference/androidx/annotation/Nullable https://developer.android.com/reference/java/lang/String.html label, https://developer.android.com/reference/java/util/List.html<https://developer.android.com/reference/androidx/media3/common/Label> labels, @https://developer.android.com/reference/androidx/annotation/Nullable https://developer.android.com/reference/java/lang/String.html extraDrmSchemeType, https://developer.android.com/reference/java/util/ArrayList.html<https://developer.android.com/reference/androidx/media3/common/DrmInitData.SchemeData> extraDrmSchemeDatas, https://developer.android.com/reference/java/util/ArrayList.html<https://developer.android.com/reference/androidx/media3/exoplayer/dash/manifest/Descriptor> extraInbandEventStreams )` |
| `https://developer.android.com/reference/androidx/media3/exoplayer/dash/manifest/SegmentBase.SegmentList` | `https://developer.android.com/reference/androidx/media3/exoplayer/dash/manifest/DashManifestParser#buildSegmentList(androidx.media3.exoplayer.dash.manifest.RangedUri,long,long,long,long,java.util.List<androidx.media3.exoplayer.dash.manifest.SegmentBase.SegmentTimelineElement>,long,java.util.List<androidx.media3.exoplayer.dash.manifest.RangedUri>,long,long)( @https://developer.android.com/reference/androidx/annotation/Nullable https://developer.android.com/reference/androidx/media3/exoplayer/dash/manifest/RangedUri initialization, long timescale, long presentationTimeOffset, long startNumber, long duration, @https://developer.android.com/reference/androidx/annotation/Nullable https://developer.android.com/reference/java/util/List.html<https://developer.android.com/reference/androidx/media3/exoplayer/dash/manifest/SegmentBase.SegmentTimelineElement> timeline, long availabilityTimeOffsetUs, @https://developer.android.com/reference/androidx/annotation/Nullable https://developer.android.com/reference/java/util/List.html<https://developer.android.com/reference/androidx/media3/exoplayer/dash/manifest/RangedUri> segments, long timeShiftBufferDepthMs, long periodStartUnixTimeMs )` |
| `https://developer.android.com/reference/androidx/media3/exoplayer/dash/manifest/SegmentBase.SegmentTemplate` | `https://developer.android.com/reference/androidx/media3/exoplayer/dash/manifest/DashManifestParser#buildSegmentTemplate(androidx.media3.exoplayer.dash.manifest.RangedUri,long,long,long,long,long,java.util.List<androidx.media3.exoplayer.dash.manifest.SegmentBase.SegmentTimelineElement>,long,androidx.media3.exoplayer.dash.manifest.UrlTemplate,androidx.media3.exoplayer.dash.manifest.UrlTemplate,long,long)( @https://developer.android.com/reference/androidx/annotation/Nullable https://developer.android.com/reference/androidx/media3/exoplayer/dash/manifest/RangedUri initialization, long timescale, long presentationTimeOffset, long startNumber, long endNumber, long duration, @https://developer.android.com/reference/androidx/annotation/Nullable https://developer.android.com/reference/java/util/List.html<https://developer.android.com/reference/androidx/media3/exoplayer/dash/manifest/SegmentBase.SegmentTimelineElement> timeline, long availabilityTimeOffsetUs, @https://developer.android.com/reference/androidx/annotation/Nullable https://developer.android.com/reference/androidx/media3/exoplayer/dash/manifest/UrlTemplate initializationTemplate, @https://developer.android.com/reference/androidx/annotation/Nullable https://developer.android.com/reference/androidx/media3/exoplayer/dash/manifest/UrlTemplate mediaTemplate, long timeShiftBufferDepthMs, long periodStartUnixTimeMs )` |
| `https://developer.android.com/reference/androidx/media3/exoplayer/dash/manifest/SegmentBase.SegmentTimelineElement` | `https://developer.android.com/reference/androidx/media3/exoplayer/dash/manifest/DashManifestParser#buildSegmentTimelineElement(long,long)(long startTime, long duration)` |
| `https://developer.android.com/reference/androidx/media3/exoplayer/dash/manifest/SegmentBase.SingleSegmentBase` | `https://developer.android.com/reference/androidx/media3/exoplayer/dash/manifest/DashManifestParser#buildSingleSegmentBase(androidx.media3.exoplayer.dash.manifest.RangedUri,long,long,long,long)( @https://developer.android.com/reference/androidx/annotation/Nullable https://developer.android.com/reference/androidx/media3/exoplayer/dash/manifest/RangedUri initialization, long timescale, long presentationTimeOffset, long indexStart, long indexLength )` |
| `https://developer.android.com/reference/androidx/media3/exoplayer/dash/manifest/UtcTimingElement` | `https://developer.android.com/reference/androidx/media3/exoplayer/dash/manifest/DashManifestParser#buildUtcTimingElement(java.lang.String,java.lang.String)(https://developer.android.com/reference/java/lang/String.html schemeIdUri, https://developer.android.com/reference/java/lang/String.html value)` |
| `https://developer.android.com/reference/androidx/media3/exoplayer/dash/manifest/AdaptationSet` | `https://developer.android.com/reference/androidx/media3/exoplayer/dash/manifest/DashManifestParser#parseAdaptationSet(org.xmlpull.v1.XmlPullParser,java.util.List<androidx.media3.exoplayer.dash.manifest.BaseUrl>,androidx.media3.exoplayer.dash.manifest.SegmentBase,long,long,long,long,long,boolean)( https://developer.android.com/reference/org/xmlpull/v1/XmlPullParser.html xpp, https://developer.android.com/reference/java/util/List.html<https://developer.android.com/reference/androidx/media3/exoplayer/dash/manifest/BaseUrl> parentBaseUrls, @https://developer.android.com/reference/androidx/annotation/Nullable https://developer.android.com/reference/androidx/media3/exoplayer/dash/manifest/SegmentBase segmentBase, long periodDurationMs, long baseUrlAvailabilityTimeOffsetUs, long segmentBaseAvailabilityTimeOffsetUs, long periodStartUnixTimeMs, long timeShiftBufferDepthMs, boolean dvbProfileDeclared )` |
| `void` | `https://developer.android.com/reference/androidx/media3/exoplayer/dash/manifest/DashManifestParser#parseAdaptationSetChild(org.xmlpull.v1.XmlPullParser)(https://developer.android.com/reference/org/xmlpull/v1/XmlPullParser.html xpp)` Parses a child of an `https://developer.android.com/reference/androidx/media3/exoplayer/dash/manifest/AdaptationSet` element. |
| `int` | `https://developer.android.com/reference/androidx/media3/exoplayer/dash/manifest/DashManifestParser#parseAudioChannelConfiguration(org.xmlpull.v1.XmlPullParser,java.lang.String)( https://developer.android.com/reference/org/xmlpull/v1/XmlPullParser.html xpp, @https://developer.android.com/reference/androidx/annotation/Nullable https://developer.android.com/reference/java/lang/String.html codecs )` |
| `long` | `https://developer.android.com/reference/androidx/media3/exoplayer/dash/manifest/DashManifestParser#parseAvailabilityTimeOffsetUs(org.xmlpull.v1.XmlPullParser,long)( https://developer.android.com/reference/org/xmlpull/v1/XmlPullParser.html xpp, long parentAvailabilityTimeOffsetUs )` Parses the availabilityTimeOffset value and returns the parsed value or the parent value if it doesn't exist. |
| `https://developer.android.com/reference/java/util/List.html<https://developer.android.com/reference/androidx/media3/exoplayer/dash/manifest/BaseUrl>` | `https://developer.android.com/reference/androidx/media3/exoplayer/dash/manifest/DashManifestParser#parseBaseUrl(org.xmlpull.v1.XmlPullParser,java.util.List<androidx.media3.exoplayer.dash.manifest.BaseUrl>,boolean)( https://developer.android.com/reference/org/xmlpull/v1/XmlPullParser.html xpp, https://developer.android.com/reference/java/util/List.html<https://developer.android.com/reference/androidx/media3/exoplayer/dash/manifest/BaseUrl> parentBaseUrls, boolean dvbProfileDeclared )` Parses a BaseURL element. |
| `static boolean` | `https://developer.android.com/reference/androidx/media3/exoplayer/dash/manifest/DashManifestParser#parseBoolean(org.xmlpull.v1.XmlPullParser,java.lang.String,boolean)(https://developer.android.com/reference/org/xmlpull/v1/XmlPullParser.html xpp, https://developer.android.com/reference/java/lang/String.html name, boolean defaultValue)` |
| `static int` | `https://developer.android.com/reference/androidx/media3/exoplayer/dash/manifest/DashManifestParser#parseCea608AccessibilityChannel(java.util.List<androidx.media3.exoplayer.dash.manifest.Descriptor>)( https://developer.android.com/reference/java/util/List.html<https://developer.android.com/reference/androidx/media3/exoplayer/dash/manifest/Descriptor> accessibilityDescriptors )` |
| `static int` | `https://developer.android.com/reference/androidx/media3/exoplayer/dash/manifest/DashManifestParser#parseCea708AccessibilityChannel(java.util.List<androidx.media3.exoplayer.dash.manifest.Descriptor>)( https://developer.android.com/reference/java/util/List.html<https://developer.android.com/reference/androidx/media3/exoplayer/dash/manifest/Descriptor> accessibilityDescriptors )` |
| `@https://developer.android.com/reference/androidx/annotation/Nullable https://developer.android.com/reference/androidx/media3/common/ColorInfo` | `https://developer.android.com/reference/androidx/media3/exoplayer/dash/manifest/DashManifestParser#parseColorInfoFromProperties(java.util.List<androidx.media3.exoplayer.dash.manifest.Descriptor>,java.util.List<androidx.media3.exoplayer.dash.manifest.Descriptor>)( https://developer.android.com/reference/java/util/List.html<https://developer.android.com/reference/androidx/media3/exoplayer/dash/manifest/Descriptor> essentialProperties, https://developer.android.com/reference/java/util/List.html<https://developer.android.com/reference/androidx/media3/exoplayer/dash/manifest/Descriptor> supplementalProperties )` Parses given descriptors for CICP color information (ISO/IEC 23091-2). |
| `static String[]` | `https://developer.android.com/reference/androidx/media3/exoplayer/dash/manifest/DashManifestParser#parseCommaSeparatedList(org.xmlpull.v1.XmlPullParser,java.lang.String,java.lang.String[])( https://developer.android.com/reference/org/xmlpull/v1/XmlPullParser.html xpp, https://developer.android.com/reference/java/lang/String.html attributeName, String[] defaultValue )` |
| `https://developer.android.com/reference/android/util/Pair.html<@https://developer.android.com/reference/androidx/media3/common/util/NullableType https://developer.android.com/reference/java/lang/String.html, @https://developer.android.com/reference/androidx/media3/common/util/NullableType https://developer.android.com/reference/androidx/media3/common/DrmInitData.SchemeData>` | `https://developer.android.com/reference/androidx/media3/exoplayer/dash/manifest/DashManifestParser#parseContentProtection(org.xmlpull.v1.XmlPullParser)(https://developer.android.com/reference/org/xmlpull/v1/XmlPullParser.html xpp)` Parses a ContentProtection element. |
| `https://developer.android.com/reference/androidx/media3/exoplayer/dash/manifest/ContentSteering` | `https://developer.android.com/reference/androidx/media3/exoplayer/dash/manifest/DashManifestParser#parseContentSteering(org.xmlpull.v1.XmlPullParser,android.net.Uri)(https://developer.android.com/reference/org/xmlpull/v1/XmlPullParser.html xpp, https://developer.android.com/reference/android/net/Uri.html documentBaseUri)` |
| `int` | `@https://developer.android.com/reference/androidx/media3/common/C.TrackType https://developer.android.com/reference/androidx/media3/exoplayer/dash/manifest/DashManifestParser#parseContentType(org.xmlpull.v1.XmlPullParser)(https://developer.android.com/reference/org/xmlpull/v1/XmlPullParser.html xpp)` |
| `static long` | `https://developer.android.com/reference/androidx/media3/exoplayer/dash/manifest/DashManifestParser#parseDateTime(org.xmlpull.v1.XmlPullParser,java.lang.String,long)(https://developer.android.com/reference/org/xmlpull/v1/XmlPullParser.html xpp, https://developer.android.com/reference/java/lang/String.html name, long defaultValue)` |
| `static https://developer.android.com/reference/androidx/media3/exoplayer/dash/manifest/Descriptor` | `https://developer.android.com/reference/androidx/media3/exoplayer/dash/manifest/DashManifestParser#parseDescriptor(org.xmlpull.v1.XmlPullParser,java.lang.String)(https://developer.android.com/reference/org/xmlpull/v1/XmlPullParser.html xpp, https://developer.android.com/reference/java/lang/String.html tag)` Parses a `https://developer.android.com/reference/androidx/media3/exoplayer/dash/manifest/Descriptor` from an element. |
| `static int` | `https://developer.android.com/reference/androidx/media3/exoplayer/dash/manifest/DashManifestParser#parseDolbyAC4ChannelConfiguration(org.xmlpull.v1.XmlPullParser,java.lang.String)( https://developer.android.com/reference/org/xmlpull/v1/XmlPullParser.html xpp, @https://developer.android.com/reference/androidx/annotation/Nullable https://developer.android.com/reference/java/lang/String.html codecs )` Parses the number of channels from the value attribute of an AudioChannelConfiguration with schemeIdUri "tag:dolby.com,2015:dash:audio_channel_configuration:2015" as defined by table A.27 in ETSI TS 103 190-2 v1.2.1. |
| `static int` | `https://developer.android.com/reference/androidx/media3/exoplayer/dash/manifest/DashManifestParser#parseDolbyChannelConfiguration(org.xmlpull.v1.XmlPullParser)(https://developer.android.com/reference/org/xmlpull/v1/XmlPullParser.html xpp)` Parses the number of channels from the value attribute of an AudioChannelConfiguration with schemeIdUri "tag:dolby.com,2014:dash:audio_channel_configuration:2011" as defined by table E.5 in ETSI TS 102 366, or by the legacy schemeIdUri "urn:dolby:dash:audio_channel_configuration:2011". |
| `static double` | `https://developer.android.com/reference/androidx/media3/exoplayer/dash/manifest/DashManifestParser#parseDouble(org.xmlpull.v1.XmlPullParser,java.lang.String,double)(https://developer.android.com/reference/org/xmlpull/v1/XmlPullParser.html xpp, https://developer.android.com/reference/java/lang/String.html name, double defaultValue)` |
| `static int` | `https://developer.android.com/reference/androidx/media3/exoplayer/dash/manifest/DashManifestParser#parseDtsChannelConfiguration(org.xmlpull.v1.XmlPullParser)(https://developer.android.com/reference/org/xmlpull/v1/XmlPullParser.html xpp)` Parses the number of channels from the value attribute of an AudioChannelConfiguration with schemeIdUri "tag:dts.com,2014:dash:audio_channel_configuration:2012" as defined by Annex G (3.2) in ETSI TS 102 114 V1.6.1, or by the legacy schemeIdUri "urn:dts:dash:audio_channel_configuration:2012". |
| `static int` | `https://developer.android.com/reference/androidx/media3/exoplayer/dash/manifest/DashManifestParser#parseDtsxChannelConfiguration(org.xmlpull.v1.XmlPullParser)(https://developer.android.com/reference/org/xmlpull/v1/XmlPullParser.html xpp)` Parses the number of channels from the value attribute of an AudioChannelConfiguration with schemeIdUri "tag:dts.com,2018:uhd:audio_channel_configuration" as defined by table B-5 in ETSI TS 103 491 v1.2.1. |
| `static long` | `https://developer.android.com/reference/androidx/media3/exoplayer/dash/manifest/DashManifestParser#parseDuration(org.xmlpull.v1.XmlPullParser,java.lang.String,long)(https://developer.android.com/reference/org/xmlpull/v1/XmlPullParser.html xpp, https://developer.android.com/reference/java/lang/String.html name, long defaultValue)` |
| `static https://developer.android.com/reference/java/lang/String.html` | `https://developer.android.com/reference/androidx/media3/exoplayer/dash/manifest/DashManifestParser#parseEac3SupplementalProperties(java.util.List<androidx.media3.exoplayer.dash.manifest.Descriptor>)( https://developer.android.com/reference/java/util/List.html<https://developer.android.com/reference/androidx/media3/exoplayer/dash/manifest/Descriptor> supplementalProperties )` |
| `https://developer.android.com/reference/android/util/Pair.html<https://developer.android.com/reference/java/lang/Long.html, https://developer.android.com/reference/androidx/media3/extractor/metadata/emsg/EventMessage>` | `https://developer.android.com/reference/androidx/media3/exoplayer/dash/manifest/DashManifestParser#parseEvent(org.xmlpull.v1.XmlPullParser,java.lang.String,java.lang.String,long,long,java.io.ByteArrayOutputStream)( https://developer.android.com/reference/org/xmlpull/v1/XmlPullParser.html xpp, https://developer.android.com/reference/java/lang/String.html schemeIdUri, https://developer.android.com/reference/java/lang/String.html value, long timescale, long presentationTimeOffset, https://developer.android.com/reference/java/io/ByteArrayOutputStream.html scratchOutputStream )` Parses a single Event node in the manifest. |
| `byte[]` | `https://developer.android.com/reference/androidx/media3/exoplayer/dash/manifest/DashManifestParser#parseEventObject(org.xmlpull.v1.XmlPullParser,java.io.ByteArrayOutputStream)( https://developer.android.com/reference/org/xmlpull/v1/XmlPullParser.html xpp, https://developer.android.com/reference/java/io/ByteArrayOutputStream.html scratchOutputStream )` Parses an event object. |
| `https://developer.android.com/reference/androidx/media3/exoplayer/dash/manifest/EventStream` | `[parseEventStream](https://developer.android.com/reference/androidx/media3/exoplayer/dash/manifest/DashManifestParser#parseEventStream(org.xmlpull.v1.XmlPullParser))(https://developer.android.com/reference/org/xmlpull/v1/XmlPullParser.html xpp)` **This method is deprecated.** Use `https://developer.android.com/reference/androidx/media3/exoplayer/dash/manifest/DashManifestParser#parseEventStream(org.xmlpull.v1.XmlPullParser,java.lang.String)` instead. <br /> |
| `https://developer.android.com/reference/android/util/Pair.html<https://developer.android.com/reference/androidx/media3/exoplayer/dash/manifest/EventStream, https://developer.android.com/reference/java/util/List.html<https://developer.android.com/reference/androidx/media3/exoplayer/dash/manifest/AlternativeMpdEvent>>` | `https://developer.android.com/reference/androidx/media3/exoplayer/dash/manifest/DashManifestParser#parseEventStream(org.xmlpull.v1.XmlPullParser,java.lang.String)(https://developer.android.com/reference/org/xmlpull/v1/XmlPullParser.html xpp, https://developer.android.com/reference/java/lang/String.html baseUri)` Parses an `EventStream` node in the manifest, also extracting any `https://developer.android.com/reference/androidx/media3/exoplayer/dash/manifest/AlternativeMpdEvent`s if the stream uses an Alternative MPD scheme. |
| `static float` | `https://developer.android.com/reference/androidx/media3/exoplayer/dash/manifest/DashManifestParser#parseFloat(org.xmlpull.v1.XmlPullParser,java.lang.String,float)(https://developer.android.com/reference/org/xmlpull/v1/XmlPullParser.html xpp, https://developer.android.com/reference/java/lang/String.html name, float defaultValue)` |
| `static float` | `https://developer.android.com/reference/androidx/media3/exoplayer/dash/manifest/DashManifestParser#parseFrameRate(org.xmlpull.v1.XmlPullParser,float)(https://developer.android.com/reference/org/xmlpull/v1/XmlPullParser.html xpp, float defaultValue)` |
| `https://developer.android.com/reference/androidx/media3/exoplayer/dash/manifest/RangedUri` | `https://developer.android.com/reference/androidx/media3/exoplayer/dash/manifest/DashManifestParser#parseInitialization(org.xmlpull.v1.XmlPullParser)(https://developer.android.com/reference/org/xmlpull/v1/XmlPullParser.html xpp)` |
| `static int` | `https://developer.android.com/reference/androidx/media3/exoplayer/dash/manifest/DashManifestParser#parseInt(org.xmlpull.v1.XmlPullParser,java.lang.String,int)(https://developer.android.com/reference/org/xmlpull/v1/XmlPullParser.html xpp, https://developer.android.com/reference/java/lang/String.html name, int defaultValue)` |
| `https://developer.android.com/reference/androidx/media3/common/Label` | `https://developer.android.com/reference/androidx/media3/exoplayer/dash/manifest/DashManifestParser#parseLabel(org.xmlpull.v1.XmlPullParser)(https://developer.android.com/reference/org/xmlpull/v1/XmlPullParser.html xpp)` Parses a Label element. |
| `static long` | `https://developer.android.com/reference/androidx/media3/exoplayer/dash/manifest/DashManifestParser#parseLastSegmentNumberSupplementalProperty(java.util.List<androidx.media3.exoplayer.dash.manifest.Descriptor>)( https://developer.android.com/reference/java/util/List.html<https://developer.android.com/reference/androidx/media3/exoplayer/dash/manifest/Descriptor> supplementalProperties )` |
| `static long` | `https://developer.android.com/reference/androidx/media3/exoplayer/dash/manifest/DashManifestParser#parseLong(org.xmlpull.v1.XmlPullParser,java.lang.String,long)(https://developer.android.com/reference/org/xmlpull/v1/XmlPullParser.html xpp, https://developer.android.com/reference/java/lang/String.html name, long defaultValue)` |
| `https://developer.android.com/reference/androidx/media3/exoplayer/dash/manifest/DashManifest` | `https://developer.android.com/reference/androidx/media3/exoplayer/dash/manifest/DashManifestParser#parseMediaPresentationDescription(org.xmlpull.v1.XmlPullParser,android.net.Uri)( https://developer.android.com/reference/org/xmlpull/v1/XmlPullParser.html xpp, https://developer.android.com/reference/android/net/Uri.html documentBaseUri )` |
| `static int` | `https://developer.android.com/reference/androidx/media3/exoplayer/dash/manifest/DashManifestParser#parseMpegChannelConfiguration(org.xmlpull.v1.XmlPullParser)(https://developer.android.com/reference/org/xmlpull/v1/XmlPullParser.html xpp)` Parses the number of channels from the value attribute of an AudioChannelConfiguration with schemeIdUri "urn:mpeg:mpegB:cicp:ChannelConfiguration", as defined by ISO 23091-3:2018 clause 6.2. |
| `https://developer.android.com/reference/android/util/Pair.html<https://developer.android.com/reference/androidx/media3/exoplayer/dash/manifest/Period, https://developer.android.com/reference/java/lang/Long.html>` | `https://developer.android.com/reference/androidx/media3/exoplayer/dash/manifest/DashManifestParser#parsePeriod(org.xmlpull.v1.XmlPullParser,java.util.List<androidx.media3.exoplayer.dash.manifest.BaseUrl>,long,long,long,long,boolean)( https://developer.android.com/reference/org/xmlpull/v1/XmlPullParser.html xpp, https://developer.android.com/reference/java/util/List.html<https://developer.android.com/reference/androidx/media3/exoplayer/dash/manifest/BaseUrl> parentBaseUrls, long defaultStartMs, long baseUrlAvailabilityTimeOffsetUs, long availabilityStartTimeMs, long timeShiftBufferDepthMs, boolean dvbProfileDeclared )` |
| `https://developer.android.com/reference/androidx/media3/exoplayer/dash/manifest/ProducerReferenceTime` | `https://developer.android.com/reference/androidx/media3/exoplayer/dash/manifest/DashManifestParser#parseProducerReferenceTime(org.xmlpull.v1.XmlPullParser)(https://developer.android.com/reference/org/xmlpull/v1/XmlPullParser.html xpp)` |
| `int` | `@https://developer.android.com/reference/androidx/media3/exoplayer/dash/manifest/ProducerReferenceTime.ProducerReferenceTimeType https://developer.android.com/reference/androidx/media3/exoplayer/dash/manifest/DashManifestParser#parseProducerReferenceTimeType(java.lang.String)(@https://developer.android.com/reference/androidx/annotation/Nullable https://developer.android.com/reference/java/lang/String.html type)` |
| `String[]` | `https://developer.android.com/reference/androidx/media3/exoplayer/dash/manifest/DashManifestParser#parseProfiles(org.xmlpull.v1.XmlPullParser,java.lang.String,java.lang.String[])( https://developer.android.com/reference/org/xmlpull/v1/XmlPullParser.html xpp, https://developer.android.com/reference/java/lang/String.html attributeName, String[] defaultValue )` |
| `https://developer.android.com/reference/androidx/media3/exoplayer/dash/manifest/ProgramInformation` | `https://developer.android.com/reference/androidx/media3/exoplayer/dash/manifest/DashManifestParser#parseProgramInformation(org.xmlpull.v1.XmlPullParser)(https://developer.android.com/reference/org/xmlpull/v1/XmlPullParser.html xpp)` |
| `https://developer.android.com/reference/androidx/media3/exoplayer/dash/manifest/RangedUri` | `https://developer.android.com/reference/androidx/media3/exoplayer/dash/manifest/DashManifestParser#parseRangedUrl(org.xmlpull.v1.XmlPullParser,java.lang.String,java.lang.String)( https://developer.android.com/reference/org/xmlpull/v1/XmlPullParser.html xpp, https://developer.android.com/reference/java/lang/String.html urlAttribute, https://developer.android.com/reference/java/lang/String.html rangeAttribute )` |
| `https://developer.android.com/reference/androidx/media3/exoplayer/dash/manifest/DashManifestParser.RepresentationInfo` | `https://developer.android.com/reference/androidx/media3/exoplayer/dash/manifest/DashManifestParser#parseRepresentation(org.xmlpull.v1.XmlPullParser,java.util.List<androidx.media3.exoplayer.dash.manifest.BaseUrl>,java.lang.String,java.lang.String,java.lang.String,java.lang.String,int,int,float,int,int,java.lang.String,java.util.List<androidx.media3.exoplayer.dash.manifest.Descriptor>,java.util.List<androidx.media3.exoplayer.dash.manifest.Descriptor>,java.util.List<androidx.media3.exoplayer.dash.manifest.Descriptor>,java.util.List<androidx.media3.exoplayer.dash.manifest.Descriptor>,androidx.media3.exoplayer.dash.manifest.SegmentBase,long,long,long,long,long,boolean)( https://developer.android.com/reference/org/xmlpull/v1/XmlPullParser.html xpp, https://developer.android.com/reference/java/util/List.html<https://developer.android.com/reference/androidx/media3/exoplayer/dash/manifest/BaseUrl> parentBaseUrls, @https://developer.android.com/reference/androidx/annotation/Nullable https://developer.android.com/reference/java/lang/String.html adaptationSetMimeType, @https://developer.android.com/reference/androidx/annotation/Nullable https://developer.android.com/reference/java/lang/String.html adaptationSetCodecs, @https://developer.android.com/reference/androidx/annotation/Nullable https://developer.android.com/reference/java/lang/String.html adaptationSetSupplementalCodecs, @https://developer.android.com/reference/androidx/annotation/Nullable https://developer.android.com/reference/java/lang/String.html adaptationSetSupplementalProfiles, int adaptationSetWidth, int adaptationSetHeight, float adaptationSetFrameRate, int adaptationSetAudioChannels, int adaptationSetAudioSamplingRate, @https://developer.android.com/reference/androidx/annotation/Nullable https://developer.android.com/reference/java/lang/String.html adaptationSetLanguage, https://developer.android.com/reference/java/util/List.html<https://developer.android.com/reference/androidx/media3/exoplayer/dash/manifest/Descriptor> adaptationSetRoleDescriptors, https://developer.android.com/reference/java/util/List.html<https://developer.android.com/reference/androidx/media3/exoplayer/dash/manifest/Descriptor> adaptationSetAccessibilityDescriptors, https://developer.android.com/reference/java/util/List.html<https://developer.android.com/reference/androidx/media3/exoplayer/dash/manifest/Descriptor> adaptationSetEssentialProperties, https://developer.android.com/reference/java/util/List.html<https://developer.android.com/reference/androidx/media3/exoplayer/dash/manifest/Descriptor> adaptationSetSupplementalProperties, @https://developer.android.com/reference/androidx/annotation/Nullable https://developer.android.com/reference/androidx/media3/exoplayer/dash/manifest/SegmentBase segmentBase, long periodStartUnixTimeMs, long periodDurationMs, long baseUrlAvailabilityTimeOffsetUs, long segmentBaseAvailabilityTimeOffsetUs, long timeShiftBufferDepthMs, boolean dvbProfileDeclared )` |
| `int` | `@https://developer.android.com/reference/androidx/media3/common/C.RoleFlags https://developer.android.com/reference/androidx/media3/exoplayer/dash/manifest/DashManifestParser#parseRoleFlagsFromAccessibilityDescriptors(java.util.List<androidx.media3.exoplayer.dash.manifest.Descriptor>)( https://developer.android.com/reference/java/util/List.html<https://developer.android.com/reference/androidx/media3/exoplayer/dash/manifest/Descriptor> accessibilityDescriptors )` |
| `int` | `@https://developer.android.com/reference/androidx/media3/common/C.RoleFlags https://developer.android.com/reference/androidx/media3/exoplayer/dash/manifest/DashManifestParser#parseRoleFlagsFromDashRoleScheme(java.lang.String)(@https://developer.android.com/reference/androidx/annotation/Nullable https://developer.android.com/reference/java/lang/String.html value)` |
| `int` | `@https://developer.android.com/reference/androidx/media3/common/C.RoleFlags https://developer.android.com/reference/androidx/media3/exoplayer/dash/manifest/DashManifestParser#parseRoleFlagsFromProperties(java.util.List<androidx.media3.exoplayer.dash.manifest.Descriptor>)( https://developer.android.com/reference/java/util/List.html<https://developer.android.com/reference/androidx/media3/exoplayer/dash/manifest/Descriptor> accessibilityDescriptors )` |
| `int` | `@https://developer.android.com/reference/androidx/media3/common/C.RoleFlags https://developer.android.com/reference/androidx/media3/exoplayer/dash/manifest/DashManifestParser#parseRoleFlagsFromRoleDescriptors(java.util.List<androidx.media3.exoplayer.dash.manifest.Descriptor>)(https://developer.android.com/reference/java/util/List.html<https://developer.android.com/reference/androidx/media3/exoplayer/dash/manifest/Descriptor> roleDescriptors)` |
| `https://developer.android.com/reference/androidx/media3/exoplayer/dash/manifest/SegmentBase.SingleSegmentBase` | `https://developer.android.com/reference/androidx/media3/exoplayer/dash/manifest/DashManifestParser#parseSegmentBase(org.xmlpull.v1.XmlPullParser,androidx.media3.exoplayer.dash.manifest.SegmentBase.SingleSegmentBase)( https://developer.android.com/reference/org/xmlpull/v1/XmlPullParser.html xpp, @https://developer.android.com/reference/androidx/annotation/Nullable https://developer.android.com/reference/androidx/media3/exoplayer/dash/manifest/SegmentBase.SingleSegmentBase parent )` |
| `https://developer.android.com/reference/androidx/media3/exoplayer/dash/manifest/SegmentBase.SegmentList` | `https://developer.android.com/reference/androidx/media3/exoplayer/dash/manifest/DashManifestParser#parseSegmentList(org.xmlpull.v1.XmlPullParser,androidx.media3.exoplayer.dash.manifest.SegmentBase.SegmentList,long,long,long,long,long)( https://developer.android.com/reference/org/xmlpull/v1/XmlPullParser.html xpp, @https://developer.android.com/reference/androidx/annotation/Nullable https://developer.android.com/reference/androidx/media3/exoplayer/dash/manifest/SegmentBase.SegmentList parent, long periodStartUnixTimeMs, long periodDurationMs, long baseUrlAvailabilityTimeOffsetUs, long segmentBaseAvailabilityTimeOffsetUs, long timeShiftBufferDepthMs )` |
| `https://developer.android.com/reference/androidx/media3/exoplayer/dash/manifest/SegmentBase.SegmentTemplate` | `https://developer.android.com/reference/androidx/media3/exoplayer/dash/manifest/DashManifestParser#parseSegmentTemplate(org.xmlpull.v1.XmlPullParser,androidx.media3.exoplayer.dash.manifest.SegmentBase.SegmentTemplate,java.util.List<androidx.media3.exoplayer.dash.manifest.Descriptor>,long,long,long,long,long)( https://developer.android.com/reference/org/xmlpull/v1/XmlPullParser.html xpp, @https://developer.android.com/reference/androidx/annotation/Nullable https://developer.android.com/reference/androidx/media3/exoplayer/dash/manifest/SegmentBase.SegmentTemplate parent, https://developer.android.com/reference/java/util/List.html<https://developer.android.com/reference/androidx/media3/exoplayer/dash/manifest/Descriptor> adaptationSetSupplementalProperties, long periodStartUnixTimeMs, long periodDurationMs, long baseUrlAvailabilityTimeOffsetUs, long segmentBaseAvailabilityTimeOffsetUs, long timeShiftBufferDepthMs )` |
| `https://developer.android.com/reference/java/util/List.html<https://developer.android.com/reference/androidx/media3/exoplayer/dash/manifest/SegmentBase.SegmentTimelineElement>` | `https://developer.android.com/reference/androidx/media3/exoplayer/dash/manifest/DashManifestParser#parseSegmentTimeline(org.xmlpull.v1.XmlPullParser,long,long)( https://developer.android.com/reference/org/xmlpull/v1/XmlPullParser.html xpp, long timescale, long periodDurationMs )` |
| `https://developer.android.com/reference/androidx/media3/exoplayer/dash/manifest/RangedUri` | `https://developer.android.com/reference/androidx/media3/exoplayer/dash/manifest/DashManifestParser#parseSegmentUrl(org.xmlpull.v1.XmlPullParser)(https://developer.android.com/reference/org/xmlpull/v1/XmlPullParser.html xpp)` |
| `int` | `@https://developer.android.com/reference/androidx/media3/common/C.SelectionFlags https://developer.android.com/reference/androidx/media3/exoplayer/dash/manifest/DashManifestParser#parseSelectionFlagsFromDashRoleScheme(java.lang.String)(@https://developer.android.com/reference/androidx/annotation/Nullable https://developer.android.com/reference/java/lang/String.html value)` |
| `int` | `@https://developer.android.com/reference/androidx/media3/common/C.SelectionFlags https://developer.android.com/reference/androidx/media3/exoplayer/dash/manifest/DashManifestParser#parseSelectionFlagsFromRoleDescriptors(java.util.List<androidx.media3.exoplayer.dash.manifest.Descriptor>)( https://developer.android.com/reference/java/util/List.html<https://developer.android.com/reference/androidx/media3/exoplayer/dash/manifest/Descriptor> roleDescriptors )` |
| `https://developer.android.com/reference/androidx/media3/exoplayer/dash/manifest/ServiceDescriptionElement` | `https://developer.android.com/reference/androidx/media3/exoplayer/dash/manifest/DashManifestParser#parseServiceDescription(org.xmlpull.v1.XmlPullParser)(https://developer.android.com/reference/org/xmlpull/v1/XmlPullParser.html xpp)` |
| `static https://developer.android.com/reference/java/lang/String.html` | `https://developer.android.com/reference/androidx/media3/exoplayer/dash/manifest/DashManifestParser#parseString(org.xmlpull.v1.XmlPullParser,java.lang.String,java.lang.String)(https://developer.android.com/reference/org/xmlpull/v1/XmlPullParser.html xpp, https://developer.android.com/reference/java/lang/String.html name, https://developer.android.com/reference/java/lang/String.html defaultValue)` |
| `static https://developer.android.com/reference/java/lang/String.html` | `https://developer.android.com/reference/androidx/media3/exoplayer/dash/manifest/DashManifestParser#parseText(org.xmlpull.v1.XmlPullParser,java.lang.String)(https://developer.android.com/reference/org/xmlpull/v1/XmlPullParser.html xpp, https://developer.android.com/reference/java/lang/String.html label)` |
| `@https://developer.android.com/reference/androidx/annotation/Nullable https://developer.android.com/reference/android/util/Pair.html<https://developer.android.com/reference/java/lang/Integer.html, https://developer.android.com/reference/java/lang/Integer.html>` | `https://developer.android.com/reference/androidx/media3/exoplayer/dash/manifest/DashManifestParser#parseTileCountFromProperties(java.util.List<androidx.media3.exoplayer.dash.manifest.Descriptor>)(https://developer.android.com/reference/java/util/List.html<https://developer.android.com/reference/androidx/media3/exoplayer/dash/manifest/Descriptor> essentialProperties)` Parses given descriptors for thumbnail tile information. |
| `int` | `@https://developer.android.com/reference/androidx/media3/common/C.RoleFlags https://developer.android.com/reference/androidx/media3/exoplayer/dash/manifest/DashManifestParser#parseTvaAudioPurposeCsValue(java.lang.String)(@https://developer.android.com/reference/androidx/annotation/Nullable https://developer.android.com/reference/java/lang/String.html value)` |
| `@https://developer.android.com/reference/androidx/annotation/Nullable https://developer.android.com/reference/androidx/media3/exoplayer/dash/manifest/UrlTemplate` | `https://developer.android.com/reference/androidx/media3/exoplayer/dash/manifest/DashManifestParser#parseUrlTemplate(org.xmlpull.v1.XmlPullParser,java.lang.String,androidx.media3.exoplayer.dash.manifest.UrlTemplate)( https://developer.android.com/reference/org/xmlpull/v1/XmlPullParser.html xpp, https://developer.android.com/reference/java/lang/String.html name, @https://developer.android.com/reference/androidx/annotation/Nullable https://developer.android.com/reference/androidx/media3/exoplayer/dash/manifest/UrlTemplate defaultValue )` |
| `@https://developer.android.com/reference/androidx/annotation/Nullable https://developer.android.com/reference/androidx/media3/exoplayer/dash/manifest/UtcTimingElement` | `https://developer.android.com/reference/androidx/media3/exoplayer/dash/manifest/DashManifestParser#parseUtcTiming(org.xmlpull.v1.XmlPullParser)(https://developer.android.com/reference/org/xmlpull/v1/XmlPullParser.html xpp)` |

### Inherited methods

From [org.xml.sax.helpers.DefaultHandler](https://developer.android.com/reference/org/xml/sax/helpers/DefaultHandler.html) `void` `https://developer.android.com/reference/org/xml/sax/helpers/DefaultHandler.html#characters(char[], int, int)(char[] ch, int start, int length)` `void` `https://developer.android.com/reference/org/xml/sax/helpers/DefaultHandler.html#endDocument()()` `void` `https://developer.android.com/reference/org/xml/sax/helpers/DefaultHandler.html#endElement(java.lang.String, java.lang.String, java.lang.String)(https://developer.android.com/reference/java/lang/String.html uri, https://developer.android.com/reference/java/lang/String.html localName, https://developer.android.com/reference/java/lang/String.html qName)` `void` `https://developer.android.com/reference/org/xml/sax/helpers/DefaultHandler.html#endPrefixMapping(java.lang.String)(https://developer.android.com/reference/java/lang/String.html prefix)` `void` `https://developer.android.com/reference/org/xml/sax/helpers/DefaultHandler.html#error(org.xml.sax.SAXParseException)(https://developer.android.com/reference/org/xml/sax/SAXParseException.html e)` `void` `https://developer.android.com/reference/org/xml/sax/helpers/DefaultHandler.html#fatalError(org.xml.sax.SAXParseException)(https://developer.android.com/reference/org/xml/sax/SAXParseException.html e)` `void` `https://developer.android.com/reference/org/xml/sax/helpers/DefaultHandler.html#ignorableWhitespace(char[], int, int)(char[] ch, int start, int length)` `void` `https://developer.android.com/reference/org/xml/sax/helpers/DefaultHandler.html#notationDecl(java.lang.String, java.lang.String, java.lang.String)(https://developer.android.com/reference/java/lang/String.html name, https://developer.android.com/reference/java/lang/String.html publicId, https://developer.android.com/reference/java/lang/String.html systemId)` `void` `https://developer.android.com/reference/org/xml/sax/helpers/DefaultHandler.html#processingInstruction(java.lang.String, java.lang.String)(https://developer.android.com/reference/java/lang/String.html target, https://developer.android.com/reference/java/lang/String.html data)` `https://developer.android.com/reference/org/xml/sax/InputSource.html` `https://developer.android.com/reference/org/xml/sax/helpers/DefaultHandler.html#resolveEntity(java.lang.String, java.lang.String)(https://developer.android.com/reference/java/lang/String.html publicId, https://developer.android.com/reference/java/lang/String.html systemId)` `void` `https://developer.android.com/reference/org/xml/sax/helpers/DefaultHandler.html#setDocumentLocator(org.xml.sax.Locator)(https://developer.android.com/reference/org/xml/sax/Locator.html locator)` `void` `https://developer.android.com/reference/org/xml/sax/helpers/DefaultHandler.html#skippedEntity(java.lang.String)(https://developer.android.com/reference/java/lang/String.html name)` `void` `https://developer.android.com/reference/org/xml/sax/helpers/DefaultHandler.html#startDocument()()` `void` `https://developer.android.com/reference/org/xml/sax/helpers/DefaultHandler.html#startElement(java.lang.String, java.lang.String, java.lang.String, org.xml.sax.Attributes)(
https://developer.android.com/reference/java/lang/String.html uri,
https://developer.android.com/reference/java/lang/String.html localName,
https://developer.android.com/reference/java/lang/String.html qName,
https://developer.android.com/reference/org/xml/sax/Attributes.html attributes
)` `void` `https://developer.android.com/reference/org/xml/sax/helpers/DefaultHandler.html#startPrefixMapping(java.lang.String, java.lang.String)(https://developer.android.com/reference/java/lang/String.html prefix, https://developer.android.com/reference/java/lang/String.html uri)` `void` `https://developer.android.com/reference/org/xml/sax/helpers/DefaultHandler.html#unparsedEntityDecl(java.lang.String, java.lang.String, java.lang.String, java.lang.String)(
https://developer.android.com/reference/java/lang/String.html name,
https://developer.android.com/reference/java/lang/String.html publicId,
https://developer.android.com/reference/java/lang/String.html systemId,
https://developer.android.com/reference/java/lang/String.html notationName
)` `void` `https://developer.android.com/reference/org/xml/sax/helpers/DefaultHandler.html#warning(org.xml.sax.SAXParseException)(https://developer.android.com/reference/org/xml/sax/SAXParseException.html e)`

## Public constructors

### DashManifestParser

```
public DashManifestParser()
```

## Public methods

### maybeSkipTag

```
public static void maybeSkipTag(XmlPullParser xpp)
```

If the provided `https://developer.android.com/reference/org/xmlpull/v1/XmlPullParser.html` is currently positioned at the start of a tag, skips forward to the end of that tag.

| Parameters |
|---|---|
| `https://developer.android.com/reference/org/xmlpull/v1/XmlPullParser.html xpp` | The `https://developer.android.com/reference/org/xmlpull/v1/XmlPullParser.html`. |

| Throws |
|---|---|
| `https://developer.android.com/reference/org/xmlpull/v1/XmlPullParserException.html` | If an error occurs parsing the stream. |
| `https://developer.android.com/reference/java/io/IOException.html` | If an error occurs reading the stream. |

### parse

```
public DashManifest parse(Uri uri, InputStream inputStream)
```

Parses an object from a response.

| Parameters |
|---|---|
| `https://developer.android.com/reference/android/net/Uri.html uri` | The source `https://developer.android.com/reference/android/net/Uri.html` of the response, after any redirection. |
| `https://developer.android.com/reference/java/io/InputStream.html inputStream` | An `https://developer.android.com/reference/java/io/InputStream.html` from which the response data can be read. |

| Returns |
|---|---|
| `https://developer.android.com/reference/androidx/media3/exoplayer/dash/manifest/DashManifest` | The parsed object. |

| Throws |
|---|---|
| `https://developer.android.com/reference/androidx/media3/common/ParserException` | If an error occurs parsing the data. |
| `https://developer.android.com/reference/java/io/IOException.html` | If an error occurs reading data from the stream. |

## Protected methods

### buildAdaptationSet

```
protected AdaptationSet buildAdaptationSet(
    long id,
    @C.TrackType int contentType,
    List<Representation> representations,
    List<Descriptor> accessibilityDescriptors,
    List<Descriptor> essentialProperties,
    List<Descriptor> supplementalProperties,
    ImmutableList<ProducerReferenceTime> producerReferenceTimes
)
```

### buildEvent

```
protected EventMessage buildEvent(
    String schemeIdUri,
    String value,
    long id,
    long durationMs,
    byte[] messageData
)
```

### buildEventStream

```
protected EventStream buildEventStream(
    String schemeIdUri,
    String value,
    long timescale,
    long[] presentationTimesUs,
    EventMessage[] events
)
```

### buildFormat

```
protected Format buildFormat(
    @Nullable String id,
    @Nullable String containerMimeType,
    int width,
    int height,
    float frameRate,
    int audioChannels,
    int audioSamplingRate,
    int bitrate,
    @Nullable String language,
    List<Descriptor> roleDescriptors,
    List<Descriptor> accessibilityDescriptors,
    @Nullable String codecs,
    @Nullable String supplementalCodecs,
    @Nullable String supplementalProfiles,
    List<Descriptor> essentialProperties,
    List<Descriptor> supplementalProperties
)
```

### buildMediaPresentationDescription

```
protected DashManifest [buildMediaPresentationDescription](https://developer.android.com/reference/androidx/media3/exoplayer/dash/manifest/DashManifestParser#buildMediaPresentationDescription(long,long,long,boolean,long,long,long,long,androidx.media3.exoplayer.dash.manifest.ProgramInformation,androidx.media3.exoplayer.dash.manifest.UtcTimingElement,androidx.media3.exoplayer.dash.manifest.ServiceDescriptionElement,android.net.Uri,java.util.List<androidx.media3.exoplayer.dash.manifest.Period>))(
    long availabilityStartTime,
    long durationMs,
    long minBufferTimeMs,
    boolean dynamic,
    long minUpdateTimeMs,
    long timeShiftBufferDepthMs,
    long suggestedPresentationDelayMs,
    long publishTimeMs,
    @Nullable ProgramInformation programInformation,
    @Nullable UtcTimingElement utcTiming,
    @Nullable ServiceDescriptionElement serviceDescription,
    @Nullable Uri location,
    List<Period> periods
)
```

> [!CAUTION]
> **This method is deprecated.**   
>
> Use `https://developer.android.com/reference/androidx/media3/exoplayer/dash/manifest/DashManifestParser#buildMediaPresentationDescription(long,long,long,boolean,long,long,long,long,androidx.media3.exoplayer.dash.manifest.ProgramInformation,androidx.media3.exoplayer.dash.manifest.UtcTimingElement,androidx.media3.exoplayer.dash.manifest.ServiceDescriptionElement,java.util.List<androidx.media3.exoplayer.dash.manifest.Period>,java.util.List<androidx.media3.exoplayer.dash.manifest.Location>,androidx.media3.exoplayer.dash.manifest.ContentSteering)` instead.

### buildMediaPresentationDescription

```
protected DashManifest [buildMediaPresentationDescription](https://developer.android.com/reference/androidx/media3/exoplayer/dash/manifest/DashManifestParser#buildMediaPresentationDescription(long,long,long,boolean,long,long,long,long,androidx.media3.exoplayer.dash.manifest.ProgramInformation,androidx.media3.exoplayer.dash.manifest.UtcTimingElement,androidx.media3.exoplayer.dash.manifest.ServiceDescriptionElement,java.util.List<androidx.media3.exoplayer.dash.manifest.Period>,java.util.List<androidx.media3.exoplayer.dash.manifest.Location>))(
    long availabilityStartTime,
    long durationMs,
    long minBufferTimeMs,
    boolean dynamic,
    long minUpdateTimeMs,
    long timeShiftBufferDepthMs,
    long suggestedPresentationDelayMs,
    long publishTimeMs,
    @Nullable ProgramInformation programInformation,
    @Nullable UtcTimingElement utcTiming,
    @Nullable ServiceDescriptionElement serviceDescription,
    List<Period> periods,
    List<Location> locations
)
```

> [!CAUTION]
> **This method is deprecated.**   
>
> Use `https://developer.android.com/reference/androidx/media3/exoplayer/dash/manifest/DashManifestParser#buildMediaPresentationDescription(long,long,long,boolean,long,long,long,long,androidx.media3.exoplayer.dash.manifest.ProgramInformation,androidx.media3.exoplayer.dash.manifest.UtcTimingElement,androidx.media3.exoplayer.dash.manifest.ServiceDescriptionElement,java.util.List<androidx.media3.exoplayer.dash.manifest.Period>,java.util.List<androidx.media3.exoplayer.dash.manifest.Location>,androidx.media3.exoplayer.dash.manifest.ContentSteering)` instead.

### buildMediaPresentationDescription

```
protected DashManifest buildMediaPresentationDescription(
    long availabilityStartTime,
    long durationMs,
    long minBufferTimeMs,
    boolean dynamic,
    long minUpdateTimeMs,
    long timeShiftBufferDepthMs,
    long suggestedPresentationDelayMs,
    long publishTimeMs,
    @Nullable ProgramInformation programInformation,
    @Nullable UtcTimingElement utcTiming,
    @Nullable ServiceDescriptionElement serviceDescription,
    List<Period> periods,
    List<Location> locations,
    @Nullable ContentSteering contentSteering
)
```

### buildPeriod

```
protected Period buildPeriod(
    @Nullable String id,
    long startMs,
    List<AdaptationSet> adaptationSets,
    List<EventStream> eventStreams,
    @Nullable Descriptor assetIdentifier,
    List<AlternativeMpdEvent> alternativeMpdEvents
)
```

### buildProducerReferenceTime

```
protected ProducerReferenceTime buildProducerReferenceTime(
    long id,
    boolean inband,
    @ProducerReferenceTime.ProducerReferenceTimeType int type,
    @Nullable String applicationScheme,
    long wallClockTimeMs,
    long presentationTime,
    @Nullable UtcTimingElement utcTiming
)
```

### buildRangedUri

```
protected RangedUri buildRangedUri(
    @Nullable String urlText,
    long rangeStart,
    long rangeLength
)
```

### buildRepresentation

```
protected Representation buildRepresentation(
    DashManifestParser.RepresentationInfo representationInfo,
    @Nullable String label,
    List<Label> labels,
    @Nullable String extraDrmSchemeType,
    ArrayList<DrmInitData.SchemeData> extraDrmSchemeDatas,
    ArrayList<Descriptor> extraInbandEventStreams
)
```

### buildSegmentList

```
protected SegmentBase.SegmentList buildSegmentList(
    @Nullable RangedUri initialization,
    long timescale,
    long presentationTimeOffset,
    long startNumber,
    long duration,
    @Nullable List<SegmentBase.SegmentTimelineElement> timeline,
    long availabilityTimeOffsetUs,
    @Nullable List<RangedUri> segments,
    long timeShiftBufferDepthMs,
    long periodStartUnixTimeMs
)
```

### buildSegmentTemplate

```
protected SegmentBase.SegmentTemplate buildSegmentTemplate(
    @Nullable RangedUri initialization,
    long timescale,
    long presentationTimeOffset,
    long startNumber,
    long endNumber,
    long duration,
    @Nullable List<SegmentBase.SegmentTimelineElement> timeline,
    long availabilityTimeOffsetUs,
    @Nullable UrlTemplate initializationTemplate,
    @Nullable UrlTemplate mediaTemplate,
    long timeShiftBufferDepthMs,
    long periodStartUnixTimeMs
)
```

### buildSegmentTimelineElement

```
protected SegmentBase.SegmentTimelineElement buildSegmentTimelineElement(long startTime, long duration)
```

### buildSingleSegmentBase

```
protected SegmentBase.SingleSegmentBase buildSingleSegmentBase(
    @Nullable RangedUri initialization,
    long timescale,
    long presentationTimeOffset,
    long indexStart,
    long indexLength
)
```

### buildUtcTimingElement

```
protected UtcTimingElement buildUtcTimingElement(String schemeIdUri, String value)
```

### parseAdaptationSet

```
protected AdaptationSet parseAdaptationSet(
    XmlPullParser xpp,
    List<BaseUrl> parentBaseUrls,
    @Nullable SegmentBase segmentBase,
    long periodDurationMs,
    long baseUrlAvailabilityTimeOffsetUs,
    long segmentBaseAvailabilityTimeOffsetUs,
    long periodStartUnixTimeMs,
    long timeShiftBufferDepthMs,
    boolean dvbProfileDeclared
)
```

| Throws |
|---|---|
| `https://developer.android.com/reference/org/xmlpull/v1/XmlPullParserException.html` |   |
| `https://developer.android.com/reference/java/io/IOException.html` |   |

### parseAdaptationSetChild

```
protected void parseAdaptationSetChild(XmlPullParser xpp)
```

Parses a child of an `https://developer.android.com/reference/androidx/media3/exoplayer/dash/manifest/AdaptationSet` element.

Called for child elements that are not specifically parsed elsewhere.

| Parameters |
|---|---|
| `https://developer.android.com/reference/org/xmlpull/v1/XmlPullParser.html xpp` | The `https://developer.android.com/reference/org/xmlpull/v1/XmlPullParser.html` from which the child should be parsed. |

| Throws |
|---|---|
| `https://developer.android.com/reference/org/xmlpull/v1/XmlPullParserException.html` | If an error occurs parsing the element. |
| `https://developer.android.com/reference/java/io/IOException.html` | If an error occurs reading the element. |

### parseAudioChannelConfiguration

```
protected int parseAudioChannelConfiguration(
    XmlPullParser xpp,
    @Nullable String codecs
)
```

| Throws |
|---|---|
| `https://developer.android.com/reference/org/xmlpull/v1/XmlPullParserException.html` |   |
| `https://developer.android.com/reference/java/io/IOException.html` |   |

### parseAvailabilityTimeOffsetUs

```
protected long parseAvailabilityTimeOffsetUs(
    XmlPullParser xpp,
    long parentAvailabilityTimeOffsetUs
)
```

Parses the availabilityTimeOffset value and returns the parsed value or the parent value if it doesn't exist.

| Parameters |
|---|---|
| `https://developer.android.com/reference/org/xmlpull/v1/XmlPullParser.html xpp` | The parser from which to read. |
| `long parentAvailabilityTimeOffsetUs` | The availability time offset of a parent element in microseconds. |

| Returns |
|---|---|
| `long` | The parsed availabilityTimeOffset in microseconds. |

### parseBaseUrl

```
protected List<BaseUrl> parseBaseUrl(
    XmlPullParser xpp,
    List<BaseUrl> parentBaseUrls,
    boolean dvbProfileDeclared
)
```

Parses a BaseURL element.

| Parameters |
|---|---|
| `https://developer.android.com/reference/org/xmlpull/v1/XmlPullParser.html xpp` | The parser from which to read. |
| `https://developer.android.com/reference/java/util/List.html<https://developer.android.com/reference/androidx/media3/exoplayer/dash/manifest/BaseUrl> parentBaseUrls` | The parent base URLs for resolving the parsed URLs. |
| `boolean dvbProfileDeclared` | Whether the dvb profile is declared. |

| Returns |
|---|---|
| `https://developer.android.com/reference/java/util/List.html<https://developer.android.com/reference/androidx/media3/exoplayer/dash/manifest/BaseUrl>` | The list of parsed and resolved URLs. |

| Throws |
|---|---|
| `https://developer.android.com/reference/org/xmlpull/v1/XmlPullParserException.html` | If an error occurs parsing the element. |
| `https://developer.android.com/reference/java/io/IOException.html` | If an error occurs reading the element. |

### parseBoolean

```
protected static boolean parseBoolean(XmlPullParser xpp, String name, boolean defaultValue)
```

### parseCea608AccessibilityChannel

```
protected static int parseCea608AccessibilityChannel(
    List<Descriptor> accessibilityDescriptors
)
```

### parseCea708AccessibilityChannel

```
protected static int parseCea708AccessibilityChannel(
    List<Descriptor> accessibilityDescriptors
)
```

### parseColorInfoFromProperties

```
protected @Nullable ColorInfo parseColorInfoFromProperties(
    List<Descriptor> essentialProperties,
    List<Descriptor> supplementalProperties
)
```

Parses given descriptors for CICP color information (ISO/IEC 23091-2).

| Parameters |
|---|---|
| `https://developer.android.com/reference/java/util/List.html<https://developer.android.com/reference/androidx/media3/exoplayer/dash/manifest/Descriptor> essentialProperties` | List of essential property descriptors. |
| `https://developer.android.com/reference/java/util/List.html<https://developer.android.com/reference/androidx/media3/exoplayer/dash/manifest/Descriptor> supplementalProperties` | List of supplemental property descriptors. |

| Returns |
|---|---|
| `@https://developer.android.com/reference/androidx/annotation/Nullable https://developer.android.com/reference/androidx/media3/common/ColorInfo` | The parsed `https://developer.android.com/reference/androidx/media3/common/ColorInfo`, or `null` if no CICP color information is found. |

### parseCommaSeparatedList

```
protected static String[] parseCommaSeparatedList(
    XmlPullParser xpp,
    String attributeName,
    String[] defaultValue
)
```

### parseContentProtection

```
protected Pair<@NullableType String, @NullableType DrmInitData.SchemeData> parseContentProtection(XmlPullParser xpp)
```

Parses a ContentProtection element.

| Parameters |
|---|---|
| `https://developer.android.com/reference/org/xmlpull/v1/XmlPullParser.html xpp` | The parser from which to read. |

| Returns |
|---|---|
| `https://developer.android.com/reference/android/util/Pair.html<@https://developer.android.com/reference/androidx/media3/common/util/NullableType https://developer.android.com/reference/java/lang/String.html, @https://developer.android.com/reference/androidx/media3/common/util/NullableType https://developer.android.com/reference/androidx/media3/common/DrmInitData.SchemeData>` | The scheme type and/or `https://developer.android.com/reference/androidx/media3/common/DrmInitData.SchemeData` parsed from the ContentProtection element. Either or both may be null, depending on the ContentProtection element being parsed. |

| Throws |
|---|---|
| `https://developer.android.com/reference/org/xmlpull/v1/XmlPullParserException.html` | If an error occurs parsing the element. |
| `https://developer.android.com/reference/java/io/IOException.html` | If an error occurs reading the element. |

### parseContentSteering

```
protected ContentSteering parseContentSteering(XmlPullParser xpp, Uri documentBaseUri)
```

| Throws |
|---|---|
| `https://developer.android.com/reference/org/xmlpull/v1/XmlPullParserException.html` |   |
| `https://developer.android.com/reference/java/io/IOException.html` |   |

### parseContentType

```
@C.TrackType
protected int parseContentType(XmlPullParser xpp)
```

### parseDateTime

```
protected static long parseDateTime(XmlPullParser xpp, String name, long defaultValue)
```

| Throws |
|---|---|
| `https://developer.android.com/reference/androidx/media3/common/ParserException` |   |

### parseDescriptor

```
protected static Descriptor parseDescriptor(XmlPullParser xpp, String tag)
```

Parses a `https://developer.android.com/reference/androidx/media3/exoplayer/dash/manifest/Descriptor` from an element.

| Parameters |
|---|---|
| `https://developer.android.com/reference/org/xmlpull/v1/XmlPullParser.html xpp` | The parser from which to read. |
| `https://developer.android.com/reference/java/lang/String.html tag` | The tag of the element being parsed. |

| Returns |
|---|---|
| `https://developer.android.com/reference/androidx/media3/exoplayer/dash/manifest/Descriptor` | The parsed `https://developer.android.com/reference/androidx/media3/exoplayer/dash/manifest/Descriptor`. |

| Throws |
|---|---|
| `https://developer.android.com/reference/org/xmlpull/v1/XmlPullParserException.html` | If an error occurs parsing the element. |
| `https://developer.android.com/reference/java/io/IOException.html` | If an error occurs reading the element. |

### parseDolbyAC4ChannelConfiguration

```
protected static int parseDolbyAC4ChannelConfiguration(
    XmlPullParser xpp,
    @Nullable String codecs
)
```

Parses the number of channels from the value attribute of an AudioChannelConfiguration with schemeIdUri "tag:dolby.com,2015:dash:audio_channel_configuration:2015" as defined by table A.27 in ETSI TS 103 190-2 v1.2.1.

| Parameters |
|---|---|
| `https://developer.android.com/reference/org/xmlpull/v1/XmlPullParser.html xpp` | The parser from which to read. |
| `@https://developer.android.com/reference/androidx/annotation/Nullable https://developer.android.com/reference/java/lang/String.html codecs` | The codecs string from the current element being parsed. |

| Returns |
|---|---|
| `int` | The parsed number of channels, or `https://developer.android.com/reference/androidx/media3/common/Format#NO_VALUE()` if the channel count could not be parsed. |

### parseDolbyChannelConfiguration

```
protected static int parseDolbyChannelConfiguration(XmlPullParser xpp)
```

Parses the number of channels from the value attribute of an AudioChannelConfiguration with schemeIdUri "tag:dolby.com,2014:dash:audio_channel_configuration:2011" as defined by table E.5 in ETSI TS 102 366, or by the legacy schemeIdUri "urn:dolby:dash:audio_channel_configuration:2011".

| Parameters |
|---|---|
| `https://developer.android.com/reference/org/xmlpull/v1/XmlPullParser.html xpp` | The parser from which to read. |

| Returns |
|---|---|
| `int` | The parsed number of channels, or `https://developer.android.com/reference/androidx/media3/common/Format#NO_VALUE()` if the channel count could not be parsed. |

### parseDouble

```
protected static double parseDouble(XmlPullParser xpp, String name, double defaultValue)
```

### parseDtsChannelConfiguration

```
protected static int parseDtsChannelConfiguration(XmlPullParser xpp)
```

Parses the number of channels from the value attribute of an AudioChannelConfiguration with schemeIdUri "tag:dts.com,2014:dash:audio_channel_configuration:2012" as defined by Annex G (3.2) in ETSI TS 102 114 V1.6.1, or by the legacy schemeIdUri "urn:dts:dash:audio_channel_configuration:2012".

| Parameters |
|---|---|
| `https://developer.android.com/reference/org/xmlpull/v1/XmlPullParser.html xpp` | The parser from which to read. |

| Returns |
|---|---|
| `int` | The parsed number of channels, or `https://developer.android.com/reference/androidx/media3/common/Format#NO_VALUE()` if the channel count could not be parsed. |

### parseDtsxChannelConfiguration

```
protected static int parseDtsxChannelConfiguration(XmlPullParser xpp)
```

Parses the number of channels from the value attribute of an AudioChannelConfiguration with schemeIdUri "tag:dts.com,2018:uhd:audio_channel_configuration" as defined by table B-5 in ETSI TS 103 491 v1.2.1.

| Parameters |
|---|---|
| `https://developer.android.com/reference/org/xmlpull/v1/XmlPullParser.html xpp` | The parser from which to read. |

| Returns |
|---|---|
| `int` | The parsed number of channels, or `https://developer.android.com/reference/androidx/media3/common/Format#NO_VALUE()` if the channel count could not be parsed. |

### parseDuration

```
protected static long parseDuration(XmlPullParser xpp, String name, long defaultValue)
```

### parseEac3SupplementalProperties

```
protected static String parseEac3SupplementalProperties(
    List<Descriptor> supplementalProperties
)
```

### parseEvent

```
protected Pair<Long, EventMessage> parseEvent(
    XmlPullParser xpp,
    String schemeIdUri,
    String value,
    long timescale,
    long presentationTimeOffset,
    ByteArrayOutputStream scratchOutputStream
)
```

Parses a single Event node in the manifest.

| Parameters |
|---|---|
| `https://developer.android.com/reference/org/xmlpull/v1/XmlPullParser.html xpp` | The current xml parser. |
| `https://developer.android.com/reference/java/lang/String.html schemeIdUri` | The schemeIdUri of the parent EventStream. |
| `https://developer.android.com/reference/java/lang/String.html value` | The schemeIdUri of the parent EventStream. |
| `long timescale` | The timescale of the parent EventStream. |
| `long presentationTimeOffset` | The unscaled presentation time offset of the parent EventStream. |
| `https://developer.android.com/reference/java/io/ByteArrayOutputStream.html scratchOutputStream` | A `https://developer.android.com/reference/java/io/ByteArrayOutputStream.html` that is used when parsing event objects. |

| Returns |
|---|---|
| `https://developer.android.com/reference/android/util/Pair.html<https://developer.android.com/reference/java/lang/Long.html, https://developer.android.com/reference/androidx/media3/extractor/metadata/emsg/EventMessage>` | A pair containing the node's presentation timestamp in microseconds and the parsed `https://developer.android.com/reference/androidx/media3/extractor/metadata/emsg/EventMessage`. |

| Throws |
|---|---|
| `https://developer.android.com/reference/org/xmlpull/v1/XmlPullParserException.html` | If there is any error parsing this node. |
| `https://developer.android.com/reference/java/io/IOException.html` | If there is any error reading from the underlying input stream. |

### parseEventObject

```
protected byte[] parseEventObject(
    XmlPullParser xpp,
    ByteArrayOutputStream scratchOutputStream
)
```

Parses an event object.

| Parameters |
|---|---|
| `https://developer.android.com/reference/org/xmlpull/v1/XmlPullParser.html xpp` | The current xml parser. |
| `https://developer.android.com/reference/java/io/ByteArrayOutputStream.html scratchOutputStream` | A `https://developer.android.com/reference/java/io/ByteArrayOutputStream.html` that's used when parsing the object. |

| Returns |
|---|---|
| `byte[]` | The serialized byte array. |

| Throws |
|---|---|
| `https://developer.android.com/reference/org/xmlpull/v1/XmlPullParserException.html` | If there is any error parsing this node. |
| `https://developer.android.com/reference/java/io/IOException.html` | If there is any error reading from the underlying input stream. |

### parseEventStream

```
protected EventStream [parseEventStream](https://developer.android.com/reference/androidx/media3/exoplayer/dash/manifest/DashManifestParser#parseEventStream(org.xmlpull.v1.XmlPullParser))(XmlPullParser xpp)
```

> [!CAUTION]
> **This method is deprecated.**   
>
> Use `https://developer.android.com/reference/androidx/media3/exoplayer/dash/manifest/DashManifestParser#parseEventStream(org.xmlpull.v1.XmlPullParser,java.lang.String)` instead.

Parses a single EventStream node in the manifest.

When `https://developer.android.com/reference/androidx/media3/common/Flags#FLAG_PARSE_DASH_ALTERNATIVE_MPD_EVENTS()` is disabled, this method is called and used as before to parse all `EventStream` nodes.

When `https://developer.android.com/reference/androidx/media3/common/Flags#FLAG_PARSE_DASH_ALTERNATIVE_MPD_EVENTS()` is enabled, this method is still used by `https://developer.android.com/reference/androidx/media3/exoplayer/dash/manifest/DashManifestParser#parseEventStream(org.xmlpull.v1.XmlPullParser,java.lang.String)` to parse `EventStream` nodes that do not use an Alternative MPD scheme, but it will be made private in the future. Apps must override `https://developer.android.com/reference/androidx/media3/exoplayer/dash/manifest/DashManifestParser#parseEventStream(org.xmlpull.v1.XmlPullParser,java.lang.String)` instead, which parses `
EventStream` nodes as before, but also parses Alternative MPD events into the typed `https://developer.android.com/reference/androidx/media3/exoplayer/dash/manifest/AlternativeMpdEvent` object model of `https://developer.android.com/reference/androidx/media3/exoplayer/dash/manifest/DashManifest`.

| Parameters |
|---|---|
| `https://developer.android.com/reference/org/xmlpull/v1/XmlPullParser.html xpp` | The current xml parser. |

| Returns |
|---|---|
| `https://developer.android.com/reference/androidx/media3/exoplayer/dash/manifest/EventStream` | The `https://developer.android.com/reference/androidx/media3/exoplayer/dash/manifest/EventStream` parsed from this EventStream node. |

| Throws |
|---|---|
| `https://developer.android.com/reference/org/xmlpull/v1/XmlPullParserException.html` | If there is any error parsing this node. |
| `https://developer.android.com/reference/java/io/IOException.html` | If there is any error reading from the underlying input stream. |

### parseEventStream

```
protected Pair<EventStream, List<AlternativeMpdEvent>> parseEventStream(XmlPullParser xpp, String baseUri)
```

Parses an `EventStream` node in the manifest, also extracting any `https://developer.android.com/reference/androidx/media3/exoplayer/dash/manifest/AlternativeMpdEvent`s if the stream uses an Alternative MPD scheme.

If `https://developer.android.com/reference/androidx/media3/common/Flags#FLAG_PARSE_DASH_ALTERNATIVE_MPD_EVENTS()` is disabled, this method delegates to `https://developer.android.com/reference/androidx/media3/exoplayer/dash/manifest/DashManifestParser#parseEventStream(org.xmlpull.v1.XmlPullParser)` and returns an empty list of `https://developer.android.com/reference/androidx/media3/exoplayer/dash/manifest/AlternativeMpdEvent`s.

| Parameters |
|---|---|
| `https://developer.android.com/reference/org/xmlpull/v1/XmlPullParser.html xpp` | The current xml parser. |
| `https://developer.android.com/reference/java/lang/String.html baseUri` | The base URI used to resolve relative alternative MPD URIs. |

| Returns |
|---|---|
| `https://developer.android.com/reference/android/util/Pair.html<https://developer.android.com/reference/androidx/media3/exoplayer/dash/manifest/EventStream, https://developer.android.com/reference/java/util/List.html<https://developer.android.com/reference/androidx/media3/exoplayer/dash/manifest/AlternativeMpdEvent>>` | A pair of the parsed `https://developer.android.com/reference/androidx/media3/exoplayer/dash/manifest/EventStream` and the extracted `https://developer.android.com/reference/androidx/media3/exoplayer/dash/manifest/AlternativeMpdEvent`s (empty if not an Alternative MPD scheme). |

| Throws |
|---|---|
| `https://developer.android.com/reference/org/xmlpull/v1/XmlPullParserException.html` | If there is any error parsing this node. |
| `https://developer.android.com/reference/java/io/IOException.html` | If there is any error reading from the underlying input stream. |

### parseFloat

```
protected static float parseFloat(XmlPullParser xpp, String name, float defaultValue)
```

### parseFrameRate

```
protected static float parseFrameRate(XmlPullParser xpp, float defaultValue)
```

### parseInitialization

```
protected RangedUri parseInitialization(XmlPullParser xpp)
```

### parseInt

```
protected static int parseInt(XmlPullParser xpp, String name, int defaultValue)
```

### parseLabel

```
protected Label parseLabel(XmlPullParser xpp)
```

Parses a Label element.

| Parameters |
|---|---|
| `https://developer.android.com/reference/org/xmlpull/v1/XmlPullParser.html xpp` | The parser from which to read. |

| Returns |
|---|---|
| `https://developer.android.com/reference/androidx/media3/common/Label` | The parsed label. |

| Throws |
|---|---|
| `https://developer.android.com/reference/org/xmlpull/v1/XmlPullParserException.html` | If an error occurs parsing the element. |
| `https://developer.android.com/reference/java/io/IOException.html` | If an error occurs reading the element. |

### parseLastSegmentNumberSupplementalProperty

```
protected static long parseLastSegmentNumberSupplementalProperty(
    List<Descriptor> supplementalProperties
)
```

### parseLong

```
protected static long parseLong(XmlPullParser xpp, String name, long defaultValue)
```

### parseMediaPresentationDescription

```
protected DashManifest parseMediaPresentationDescription(
    XmlPullParser xpp,
    Uri documentBaseUri
)
```

| Throws |
|---|---|
| `https://developer.android.com/reference/org/xmlpull/v1/XmlPullParserException.html` |   |
| `https://developer.android.com/reference/java/io/IOException.html` |   |

### parseMpegChannelConfiguration

```
protected static int parseMpegChannelConfiguration(XmlPullParser xpp)
```

Parses the number of channels from the value attribute of an AudioChannelConfiguration with schemeIdUri "urn:mpeg:mpegB:cicp:ChannelConfiguration", as defined by ISO 23091-3:2018 clause 6.2.

| Parameters |
|---|---|
| `https://developer.android.com/reference/org/xmlpull/v1/XmlPullParser.html xpp` | The parser from which to read. |

| Returns |
|---|---|
| `int` | The parsed number of channels, or `https://developer.android.com/reference/androidx/media3/common/Format#NO_VALUE()` if the channel count could not be parsed. |

### parsePeriod

```
protected Pair<Period, Long> parsePeriod(
    XmlPullParser xpp,
    List<BaseUrl> parentBaseUrls,
    long defaultStartMs,
    long baseUrlAvailabilityTimeOffsetUs,
    long availabilityStartTimeMs,
    long timeShiftBufferDepthMs,
    boolean dvbProfileDeclared
)
```

| Throws |
|---|---|
| `https://developer.android.com/reference/org/xmlpull/v1/XmlPullParserException.html` |   |
| `https://developer.android.com/reference/java/io/IOException.html` |   |

### parseProducerReferenceTime

```
protected ProducerReferenceTime parseProducerReferenceTime(XmlPullParser xpp)
```

| Throws |
|---|---|
| `https://developer.android.com/reference/org/xmlpull/v1/XmlPullParserException.html` |   |
| `https://developer.android.com/reference/java/io/IOException.html` |   |

### parseProducerReferenceTimeType

```
@ProducerReferenceTime.ProducerReferenceTimeType
protected int parseProducerReferenceTimeType(@Nullable String type)
```

### parseProfiles

```
protected String[] parseProfiles(
    XmlPullParser xpp,
    String attributeName,
    String[] defaultValue
)
```

### parseProgramInformation

```
protected ProgramInformation parseProgramInformation(XmlPullParser xpp)
```

| Throws |
|---|---|
| `https://developer.android.com/reference/java/io/IOException.html` |   |
| `https://developer.android.com/reference/org/xmlpull/v1/XmlPullParserException.html` |   |

### parseRangedUrl

```
protected RangedUri parseRangedUrl(
    XmlPullParser xpp,
    String urlAttribute,
    String rangeAttribute
)
```

### parseRepresentation

```
protected DashManifestParser.RepresentationInfo parseRepresentation(
    XmlPullParser xpp,
    List<BaseUrl> parentBaseUrls,
    @Nullable String adaptationSetMimeType,
    @Nullable String adaptationSetCodecs,
    @Nullable String adaptationSetSupplementalCodecs,
    @Nullable String adaptationSetSupplementalProfiles,
    int adaptationSetWidth,
    int adaptationSetHeight,
    float adaptationSetFrameRate,
    int adaptationSetAudioChannels,
    int adaptationSetAudioSamplingRate,
    @Nullable String adaptationSetLanguage,
    List<Descriptor> adaptationSetRoleDescriptors,
    List<Descriptor> adaptationSetAccessibilityDescriptors,
    List<Descriptor> adaptationSetEssentialProperties,
    List<Descriptor> adaptationSetSupplementalProperties,
    @Nullable SegmentBase segmentBase,
    long periodStartUnixTimeMs,
    long periodDurationMs,
    long baseUrlAvailabilityTimeOffsetUs,
    long segmentBaseAvailabilityTimeOffsetUs,
    long timeShiftBufferDepthMs,
    boolean dvbProfileDeclared
)
```

| Throws |
|---|---|
| `https://developer.android.com/reference/org/xmlpull/v1/XmlPullParserException.html` |   |
| `https://developer.android.com/reference/java/io/IOException.html` |   |

### parseRoleFlagsFromAccessibilityDescriptors

```
@C.RoleFlags
protected int parseRoleFlagsFromAccessibilityDescriptors(
    List<Descriptor> accessibilityDescriptors
)
```

### parseRoleFlagsFromDashRoleScheme

```
@C.RoleFlags
protected int parseRoleFlagsFromDashRoleScheme(@Nullable String value)
```

### parseRoleFlagsFromProperties

```
@C.RoleFlags
protected int parseRoleFlagsFromProperties(
    List<Descriptor> accessibilityDescriptors
)
```

### parseRoleFlagsFromRoleDescriptors

```
@C.RoleFlags
protected int parseRoleFlagsFromRoleDescriptors(List<Descriptor> roleDescriptors)
```

### parseSegmentBase

```
protected SegmentBase.SingleSegmentBase parseSegmentBase(
    XmlPullParser xpp,
    @Nullable SegmentBase.SingleSegmentBase parent
)
```

| Throws |
|---|---|
| `https://developer.android.com/reference/org/xmlpull/v1/XmlPullParserException.html` |   |
| `https://developer.android.com/reference/java/io/IOException.html` |   |

### parseSegmentList

```
protected SegmentBase.SegmentList parseSegmentList(
    XmlPullParser xpp,
    @Nullable SegmentBase.SegmentList parent,
    long periodStartUnixTimeMs,
    long periodDurationMs,
    long baseUrlAvailabilityTimeOffsetUs,
    long segmentBaseAvailabilityTimeOffsetUs,
    long timeShiftBufferDepthMs
)
```

| Throws |
|---|---|
| `https://developer.android.com/reference/org/xmlpull/v1/XmlPullParserException.html` |   |
| `https://developer.android.com/reference/java/io/IOException.html` |   |

### parseSegmentTemplate

```
protected SegmentBase.SegmentTemplate parseSegmentTemplate(
    XmlPullParser xpp,
    @Nullable SegmentBase.SegmentTemplate parent,
    List<Descriptor> adaptationSetSupplementalProperties,
    long periodStartUnixTimeMs,
    long periodDurationMs,
    long baseUrlAvailabilityTimeOffsetUs,
    long segmentBaseAvailabilityTimeOffsetUs,
    long timeShiftBufferDepthMs
)
```

| Throws |
|---|---|
| `https://developer.android.com/reference/org/xmlpull/v1/XmlPullParserException.html` |   |
| `https://developer.android.com/reference/java/io/IOException.html` |   |

### parseSegmentTimeline

```
protected List<SegmentBase.SegmentTimelineElement> parseSegmentTimeline(
    XmlPullParser xpp,
    long timescale,
    long periodDurationMs
)
```

| Throws |
|---|---|
| `https://developer.android.com/reference/org/xmlpull/v1/XmlPullParserException.html` |   |
| `https://developer.android.com/reference/java/io/IOException.html` |   |

### parseSegmentUrl

```
protected RangedUri parseSegmentUrl(XmlPullParser xpp)
```

### parseSelectionFlagsFromDashRoleScheme

```
@C.SelectionFlags
protected int parseSelectionFlagsFromDashRoleScheme(@Nullable String value)
```

### parseSelectionFlagsFromRoleDescriptors

```
@C.SelectionFlags
protected int parseSelectionFlagsFromRoleDescriptors(
    List<Descriptor> roleDescriptors
)
```

### parseServiceDescription

```
protected ServiceDescriptionElement parseServiceDescription(XmlPullParser xpp)
```

| Throws |
|---|---|
| `https://developer.android.com/reference/org/xmlpull/v1/XmlPullParserException.html` |   |
| `https://developer.android.com/reference/java/io/IOException.html` |   |

### parseString

```
protected static String parseString(XmlPullParser xpp, String name, String defaultValue)
```

### parseText

```
protected static String parseText(XmlPullParser xpp, String label)
```

| Throws |
|---|---|
| `https://developer.android.com/reference/org/xmlpull/v1/XmlPullParserException.html` |   |
| `https://developer.android.com/reference/java/io/IOException.html` |   |

### parseTileCountFromProperties

```
protected @Nullable Pair<Integer, Integer> parseTileCountFromProperties(List<Descriptor> essentialProperties)
```

Parses given descriptors for thumbnail tile information.

| Parameters |
|---|---|
| `https://developer.android.com/reference/java/util/List.html<https://developer.android.com/reference/androidx/media3/exoplayer/dash/manifest/Descriptor> essentialProperties` | List of descriptors that contain thumbnail tile information. |

| Returns |
|---|---|
| `@https://developer.android.com/reference/androidx/annotation/Nullable https://developer.android.com/reference/android/util/Pair.html<https://developer.android.com/reference/java/lang/Integer.html, https://developer.android.com/reference/java/lang/Integer.html>` | A pair of Integer values, where the first is the count of horizontal tiles and the second is the count of vertical tiles, or null if no thumbnail tile information is found. |

### parseTvaAudioPurposeCsValue

```
@C.RoleFlags
protected int parseTvaAudioPurposeCsValue(@Nullable String value)
```

### parseUrlTemplate

```
protected @Nullable UrlTemplate parseUrlTemplate(
    XmlPullParser xpp,
    String name,
    @Nullable UrlTemplate defaultValue
)
```

### parseUtcTiming

```
protected @Nullable UtcTimingElement parseUtcTiming(XmlPullParser xpp)
```