com.brightcove.player.util

## Class MediaSourceUtil

- java.lang.Object
- - com.brightcove.player.util.MediaSourceUtil

-     public final class MediaSourceUtil
      extends java.lang.Object

  Provides utility method to work with `DashManifest` and `HlsMasterPlaylist`.

- - ### Constructor Summary

    Constructors
    Constructor and Description
    `MediaSourceUtil()`

  - ### Method Summary

    All Methods Static Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `static android.net.Uri` | `findInitializationUri(com.google.android.exoplayer2.source.dash.manifest.Representation representation)` Finds the location of the representation's initialization data.
    `static java.lang.String` | `findRenditionUrl(com.google.android.exoplayer2.source.dash.manifest.DashManifest dashManifest, int trackType, com.google.android.exoplayer2.Format format)` Finds the rendition url from the `DashManifest` object for the specified track type and the format.
    `static java.lang.String` | `findRenditionUrl(com.google.android.exoplayer2.source.hls.playlist.HlsMasterPlaylist hlsMasterPlaylist, int trackType, com.google.android.exoplayer2.Format format)` Finds the rendition url from the `HlsMasterPlaylist` object for the specified track type and the format.
    `static java.lang.String` | `findRenditionUrl(java.lang.Object manifest, com.google.android.exoplayer2.Format format)` Finds the rendition url from the manifest object given the track type and the format.
    `static java.lang.String` | `findRenditionUrl(java.lang.Object manifest, int trackType, com.google.android.exoplayer2.Format format)` Finds the rendition url from the manifest object given the track type and the format.
    `static int` | `findTrackType(com.google.android.exoplayer2.Format format)` Finds the track type of the specified format.
    `static int` | `getBrightcoveRoleFlag(java.lang.String roleValue)` Gets the Brightcove Role Flag matching the Role Value.
    `static java.lang.String` | `getBrightcoveRoleValue(int flag)` Gets the Brightcove Role Value matching the Role Flag.

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### Constructor Detail

    - #### MediaSourceUtil

          public MediaSourceUtil()

  - ### Method Detail

    - #### findTrackType

          public static int findTrackType(@NonNull
                                          com.google.android.exoplayer2.Format format)

      Finds the track type of the specified format.
      Parameters:
        `format` - the format.
      Returns:
        the track type.

    - #### findRenditionUrl

          @Nullable
          public static java.lang.String findRenditionUrl(@Nullable
                                                                    java.lang.Object manifest,
                                                                    int trackType,
                                                                    @NonNull
                                                                    com.google.android.exoplayer2.Format format)

      Finds the rendition url from the manifest object given the track type and the format. The Manifest object needs to be an instance of either `DashManifest` or `HlsManifest`.
      Parameters:
        `manifest` - the manifest
        `trackType` - the track type
        `format` - the format
      Returns:
        the rendition url if found, null otherwise.

    - #### findRenditionUrl

          @Nullable
          public static java.lang.String findRenditionUrl(@Nullable
                                                                    java.lang.Object manifest,
                                                                    @NonNull
                                                                    com.google.android.exoplayer2.Format format)

      Finds the rendition url from the manifest object given the track type and the format. The Manifest object needs to be an instance of either `DashManifest` or `HlsManifest`.
      Parameters:
        `manifest` - the manifest
        `format` - the format
      Returns:
        the rendition url if found, null otherwise.

    - #### findRenditionUrl

          @Nullable
          public static java.lang.String findRenditionUrl(@NonNull
                                                                    com.google.android.exoplayer2.source.dash.manifest.DashManifest dashManifest,
                                                                    int trackType,
                                                                    @NonNull
                                                                    com.google.android.exoplayer2.Format format)

      Finds the rendition url from the `DashManifest` object for the specified track type and the format.
      Parameters:
        `dashManifest` - reference to the DASH manifest.
        `trackType` - the track type
        `format` - the format
      Returns:
        the rendition url if found, null otherwise.

    - #### findInitializationUri

          @NonNull
          public static android.net.Uri findInitializationUri(@NonNull
                                                                       com.google.android.exoplayer2.source.dash.manifest.Representation representation)

      Finds the location of the representation's initialization data. If the representation includes index data stored adjacent to the initialization uri, the returned URI can be used to request both in the same request.
      Parameters:
        `representation` - reference to the representation
      Returns:
        fully qualified URI to the representation's initialization data.

    - #### findRenditionUrl

          @Nullable
          public static java.lang.String findRenditionUrl(@NonNull
                                                                    com.google.android.exoplayer2.source.hls.playlist.HlsMasterPlaylist hlsMasterPlaylist,
                                                                    int trackType,
                                                                    @NonNull
                                                                    com.google.android.exoplayer2.Format format)

      Finds the rendition url from the `HlsMasterPlaylist` object for the specified track type and the format.
      Parameters:
        `hlsMasterPlaylist` - reference to the HLS master playlist.
        `trackType` - the track type
        `format` - the format
      Returns:
        the rendition url if found, null otherwise.

    - #### getBrightcoveRoleFlag

          public static int getBrightcoveRoleFlag(java.lang.String roleValue)

      Gets the Brightcove Role Flag matching the Role Value. The `BrightcoveDashManifestParser` reads the AdaptationSet Role value and adds a Brightcove Flag to the `Format.selectionFlags`, depending on the Role value.
      Parameters:
        `roleValue` - the role string value
      Returns:
        the Brightcove Role flag

    - #### getBrightcoveRoleValue

          public static java.lang.String getBrightcoveRoleValue(int flag)

      Gets the Brightcove Role Value matching the Role Flag. The `BrightcoveDashManifestParser` reads the AdaptationSet Role value and adds a Brightcove Flag to the `Format.selectionFlags`, depending on the Role value.
      Parameters:
        `flag` - the Brightcove Role Flag
      Returns:
        the Brightcove role value