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

## Class SegmentBase.SegmentList

- java.lang.Object
- - com.google.android.exoplayer2.source.dash.manifest.SegmentBase
  - - com.google.android.exoplayer2.source.dash.manifest.SegmentBase.MultiSegmentBase
    - - com.google.android.exoplayer2.source.dash.manifest.SegmentBase.SegmentList

- Enclosing class:
    SegmentBase

      public static final class SegmentBase.SegmentList
      extends SegmentBase.MultiSegmentBase

  A `SegmentBase.MultiSegmentBase` that uses a SegmentList to define its segments.

- - ### Nested Class Summary

    - ### Nested classes/interfaces inherited from class com.google.android.exoplayer2.source.dash.manifest.SegmentBase

      `SegmentBase.MultiSegmentBase, SegmentBase.SegmentList, SegmentBase.SegmentTemplate, SegmentBase.SegmentTimelineElement, SegmentBase.SingleSegmentBase`

  - ### Constructor Summary

    Constructors
    Constructor | Description
    --- | ---
    `SegmentList​(RangedUri initialization, long timescale, long presentationTimeOffset, long startNumber, long duration, List<SegmentBase.SegmentTimelineElement> segmentTimeline, long availabilityTimeOffsetUs, List<RangedUri> mediaSegments, long timeShiftBufferDepthUs, long periodStartUnixTimeUs)` |

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `long` | `getSegmentCount​(long periodDurationUs)` | See `DashSegmentIndex.getSegmentCount(long)`.
    `RangedUri` | `getSegmentUrl​(Representation representation, long sequenceNumber)` | Returns a `RangedUri` defining the location of a segment for the given index in the given representation.
    `boolean` | `isExplicit()` | See `DashSegmentIndex.isExplicit()`

    - ### Methods inherited from class com.google.android.exoplayer2.source.dash.manifest.SegmentBase.MultiSegmentBase

      `getAvailableSegmentCount, getFirstAvailableSegmentNum, getFirstSegmentNum, getNextSegmentAvailableTimeUs, getSegmentDurationUs, getSegmentNum, getSegmentTimeUs`

    - ### Methods inherited from class com.google.android.exoplayer2.source.dash.manifest.SegmentBase

      `getInitialization, getPresentationTimeOffsetUs`

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

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

- - ### Constructor Detail

    - #### SegmentList

          public SegmentList​(RangedUri initialization,
                             long timescale,
                             long presentationTimeOffset,
                             long startNumber,
                             long duration,
                             @Nullable
                             List<SegmentBase.SegmentTimelineElement> segmentTimeline,
                             long availabilityTimeOffsetUs,
                             @Nullable
                             List<RangedUri> mediaSegments,
                             long timeShiftBufferDepthUs,
                             long periodStartUnixTimeUs)

      Parameters:
        `initialization` - A `RangedUri` corresponding to initialization data, if such data exists.
        `timescale` - The timescale in units per second.
        `presentationTimeOffset` - The presentation time offset. The value in seconds is the division of this value and `timescale`.
        `startNumber` - The sequence number of the first segment.
        `duration` - The duration of each segment in the case of fixed duration segments. The value in seconds is the division of this value and `timescale`. If `segmentTimeline` is non-null then this parameter is ignored.
        `segmentTimeline` - A segment timeline corresponding to the segments. If null, then segments are assumed to be of fixed duration as specified by the `duration` parameter.
        `availabilityTimeOffsetUs` - The offset to the current realtime at which segments become available in microseconds, or `C.TIME_UNSET` if not applicable.
        `mediaSegments` - A list of `RangedUri`s indicating the locations of the segments.
        `timeShiftBufferDepthUs` - The time shift buffer depth in microseconds.
        `periodStartUnixTimeUs` - The start of the enclosing period in microseconds since the Unix epoch.

  - ### Method Detail

    - #### getSegmentUrl

          public RangedUri getSegmentUrl​(Representation representation,
                                         long sequenceNumber)

      Description copied from class: `SegmentBase.MultiSegmentBase`
      Returns a `RangedUri` defining the location of a segment for the given index in the given representation.

      See `DashSegmentIndex.getSegmentUrl(long)`.

      Specified by:
        `getSegmentUrl` in class `SegmentBase.MultiSegmentBase`

    - #### getSegmentCount

          public long getSegmentCount​(long periodDurationUs)

      Description copied from class: `SegmentBase.MultiSegmentBase`
      See `DashSegmentIndex.getSegmentCount(long)`.
      Specified by:
        `getSegmentCount` in class `SegmentBase.MultiSegmentBase`

    - #### isExplicit

          public boolean isExplicit()

      Description copied from class: `SegmentBase.MultiSegmentBase`
      See `DashSegmentIndex.isExplicit()`
      Overrides:
        `isExplicit` in class `SegmentBase.MultiSegmentBase`