Class 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.
    • Constructor Detail

      • MPDParser

        public MPDParser​(boolean prescan,
                         boolean mergeVideoAdaptationSets)
      • MPDParser

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

      • 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