Class MPDParser

java.lang.Object
org.xml.sax.helpers.DefaultHandler
com.google.android.exoplayer2.source.dash.manifest.DashManifestParser
com.castlabs.android.player.MPDParser
All Implemented Interfaces:
com.google.android.exoplayer2.upstream.ParsingLoadable.Parser<com.google.android.exoplayer2.source.dash.manifest.DashManifest>, ContentHandler, DTDHandler, EntityResolver, ErrorHandler

public class MPDParser extends com.google.android.exoplayer2.source.dash.manifest.DashManifestParser
Extends the default ExoPlayer DASH Manifest parsers.

The extension correctly parses the channel count for dolby tracks

The mspr:pro content protection entries are parsed and scheme data are initialized for it.

The extension merges video adaptation sets when requested.

We avoid an IllegalStateException to be raised when representations contain inconsistent ContentProtection entries. This happens with eDash packager when using different keys for HD and SD. We work around the issue by falling back to the first ContentProtection that we found for a given schemeId.
  • Field Details

  • Constructor Details

    • MPDParser

      public MPDParser(boolean prescan, boolean mergeVideoAdaptationSets)
    • MPDParser

      public MPDParser(boolean prescan, boolean mergeVideoAdaptationSets, long minManifestUpdatePeriodMs, long availabilityStartTimeOffsetOverwriteMs)
    • MPDParser

      public MPDParser(boolean prescan, boolean mergeVideoAdaptationSets, long minManifestUpdatePeriodMs, long availabilityStartTimeOffsetOverwriteMs, long subtitleSubSampleOffsetUs)
  • Method Details

    • parse

      @NonNull public com.google.android.exoplayer2.source.dash.manifest.DashManifest parse(Uri uri, InputStream inputStream) throws IOException
      Specified by:
      parse in interface com.google.android.exoplayer2.upstream.ParsingLoadable.Parser<com.google.android.exoplayer2.source.dash.manifest.DashManifest>
      Overrides:
      parse in class com.google.android.exoplayer2.source.dash.manifest.DashManifestParser
      Throws:
      IOException