Package com.google.android.exoplayer2.source.hls.playlist

## Class HlsMediaPlaylist.SegmentBase

- java.lang.Object
- - com.google.android.exoplayer2.source.hls.playlist.HlsMediaPlaylist.SegmentBase

- All Implemented Interfaces:
    `Comparable<Long>`
  Direct Known Subclasses:
    `HlsMediaPlaylist.Part`, `HlsMediaPlaylist.Segment`
  Enclosing class:
    HlsMediaPlaylist

      public static class HlsMediaPlaylist.SegmentBase
      extends Object
      implements Comparable<Long>

  The base for a `HlsMediaPlaylist.Segment` or a `HlsMediaPlaylist.Part` required for playback.

- - ### Field Summary

    Fields
    Modifier and Type | Field | Description
    --- | --- | ---
    `long` | `byteRangeLength` | The segment's byte range length, as defined by #EXT-X-BYTERANGE, #EXT-X-PART or #EXT-X-PRELOAD-HINT, or `C.LENGTH_UNSET` if no byte range is specified or the byte range is open-ended.
    `long` | `byteRangeOffset` | The segment's byte range offset, as defined by #EXT-X-BYTERANGE, #EXT-X-PART or #EXT-X-PRELOAD-HINT.
    `DrmInitData` | `drmInitData` | DRM initialization data for sample decryption, or null if the segment does not use CDM-DRM protection.
    `long` | `durationUs` | The duration of the segment in microseconds, as defined by #EXTINF or #EXT-X-PART.
    `String` | `encryptionIV` | The encryption initialization vector as defined by #EXT-X-KEY, or null if the segment is not encrypted.
    `String` | `fullSegmentEncryptionKeyUri` | The encryption identity key uri as defined by #EXT-X-KEY, or null if the segment does not use full segment encryption with identity key.
    `boolean` | `hasGapTag` | Whether the segment is marked as a gap.
    `HlsMediaPlaylist.Segment` | `initializationSegment` | The media initialization section for this segment, as defined by #EXT-X-MAP.
    `int` | `relativeDiscontinuitySequence` | The number of #EXT-X-DISCONTINUITY tags in the playlist before the segment.
    `long` | `relativeStartTimeUs` | The start time of the segment in microseconds, relative to the start of the playlist.
    `String` | `url` | The url of the segment.

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `int` | `compareTo​(Long relativeStartTimeUs)` |

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

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

- - ### Field Detail

    - #### url

          public final String url

      The url of the segment.

    - #### initializationSegment

          @Nullable
          public final HlsMediaPlaylist.Segment initializationSegment

      The media initialization section for this segment, as defined by #EXT-X-MAP. May be null if the media playlist does not define a media initialization section for this segment. The same instance is used for all segments that share an EXT-X-MAP tag.

    - #### durationUs

          public final long durationUs

      The duration of the segment in microseconds, as defined by #EXTINF or #EXT-X-PART.

    - #### relativeDiscontinuitySequence

          public final int relativeDiscontinuitySequence

      The number of #EXT-X-DISCONTINUITY tags in the playlist before the segment.

    - #### relativeStartTimeUs

          public final long relativeStartTimeUs

      The start time of the segment in microseconds, relative to the start of the playlist.

    - #### drmInitData

          @Nullable
          public final DrmInitData drmInitData

      DRM initialization data for sample decryption, or null if the segment does not use CDM-DRM protection.

    - #### fullSegmentEncryptionKeyUri

          @Nullable
          public final String fullSegmentEncryptionKeyUri

      The encryption identity key uri as defined by #EXT-X-KEY, or null if the segment does not use full segment encryption with identity key.

    - #### encryptionIV

          @Nullable
          public final String encryptionIV

      The encryption initialization vector as defined by #EXT-X-KEY, or null if the segment is not encrypted.

    - #### byteRangeOffset

          public final long byteRangeOffset

      The segment's byte range offset, as defined by #EXT-X-BYTERANGE, #EXT-X-PART or #EXT-X-PRELOAD-HINT.

    - #### byteRangeLength

          public final long byteRangeLength

      The segment's byte range length, as defined by #EXT-X-BYTERANGE, #EXT-X-PART or #EXT-X-PRELOAD-HINT, or `C.LENGTH_UNSET` if no byte range is specified or the byte range is open-ended.

    - #### hasGapTag

          public final boolean hasGapTag

      Whether the segment is marked as a gap.

  - ### Method Detail

    - #### compareTo

          public int compareTo​(Long relativeStartTimeUs)

      Specified by:
        `compareTo` in interface `Comparable<Long>`