Package com.google.android.exoplayer2.source.dash

## Class BaseUrlExclusionList

- java.lang.Object
- - com.google.android.exoplayer2.source.dash.BaseUrlExclusionList

-     public final class BaseUrlExclusionList
      extends Object

  Holds the state of `excluded` base URLs to be used to `select` a base URL based on these exclusions.

- - ### Constructor Summary

    Constructors
    Constructor | Description
    --- | ---
    `BaseUrlExclusionList()` | Creates an instance.

  - ### Method Summary

    All Methods Static Methods Instance Methods Concrete Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `void` | `exclude​(BaseUrl baseUrlToExclude, long exclusionDurationMs)` | Excludes the given base URL.
    `static int` | `getPriorityCount​(List<BaseUrl> baseUrls)` | Returns the number of priority levels of the given list of base URLs.
    `int` | `getPriorityCountAfterExclusion​(List<BaseUrl> baseUrls)` | Returns the number of priority levels for the given list of base URLs after exclusion.
    `void` | `reset()` | Resets the state.
    `BaseUrl` | `selectBaseUrl​(List<BaseUrl> baseUrls)` | Selects the base URL to use from the given list.

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

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

- - ### Constructor Detail

    - #### BaseUrlExclusionList

          public BaseUrlExclusionList()

      Creates an instance.

  - ### Method Detail

    - #### exclude

          public void exclude​(BaseUrl baseUrlToExclude,
                              long exclusionDurationMs)

      Excludes the given base URL.
      Parameters:
        `baseUrlToExclude` - The base URL to exclude.
        `exclusionDurationMs` - The duration of exclusion, in milliseconds.

    - #### selectBaseUrl

          @Nullable
          public BaseUrl selectBaseUrl​(List<BaseUrl> baseUrls)

      Selects the base URL to use from the given list.

      The list is reduced by service location and priority of base URLs that have been passed to `exclude(BaseUrl, long)`. The base URL to use is then selected from the remaining base URLs by priority and weight.

      Parameters:
        `baseUrls` - The list of `base URLs` to select from.
      Returns:
        The selected base URL after exclusion or null if all elements have been excluded.

    - #### getPriorityCountAfterExclusion

          public int getPriorityCountAfterExclusion​(List<BaseUrl> baseUrls)

      Returns the number of priority levels for the given list of base URLs after exclusion.
      Parameters:
        `baseUrls` - The list of base URLs.
      Returns:
        The number of priority levels after exclusion.

    - #### getPriorityCount

          public static int getPriorityCount​(List<BaseUrl> baseUrls)

      Returns the number of priority levels of the given list of base URLs.
      Parameters:
        `baseUrls` - The list of base URLs.
      Returns:
        The number of priority levels before exclusion.

    - #### reset

          public void reset()

      Resets the state.