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

## Class SsManifest

- java.lang.Object
- - com.google.android.exoplayer2.source.smoothstreaming.manifest.SsManifest

- All Implemented Interfaces:
    `FilterableManifest<SsManifest>`

      public class SsManifest
      extends Object
      implements FilterableManifest<SsManifest>

  Represents a SmoothStreaming manifest.
  See Also:
    IIS Smooth Streaming Client Manifest Format

- - ### Nested Class Summary

    Nested Classes
    Modifier and Type | Class | Description
    --- | --- | ---
    `static class` | `SsManifest.ProtectionElement` | Represents a protection element containing a single header.
    `static class` | `SsManifest.StreamElement` | Represents a StreamIndex element.

  - ### Field Summary

    Fields
    Modifier and Type | Field | Description
    --- | --- | ---
    `long` | `durationUs` | The overall presentation duration of the media in microseconds, or `C.TIME_UNSET` if the duration is unknown.
    `long` | `dvrWindowLengthUs` | The length of the trailing window for a live broadcast in microseconds, or `C.TIME_UNSET` if the stream is not live or if the window length is unspecified.
    `boolean` | `isLive` | Whether the manifest describes a live presentation still in progress.
    `int` | `lookAheadCount` | The number of fragments in a lookahead, or `UNSET_LOOKAHEAD` if the lookahead is unspecified.
    `int` | `majorVersion` | The client manifest major version.
    `int` | `minorVersion` | The client manifest minor version.
    `SsManifest.ProtectionElement` | `protectionElement` | Content protection information, or null if the content is not protected.
    `SsManifest.StreamElement[]` | `streamElements` | The contained stream elements.
    `static int` | `UNSET_LOOKAHEAD` |

  - ### Constructor Summary

    Constructors
    Constructor | Description
    --- | ---
    `SsManifest​(int majorVersion, int minorVersion, long timescale, long duration, long dvrWindowLength, int lookAheadCount, boolean isLive, SsManifest.ProtectionElement protectionElement, SsManifest.StreamElement[] streamElements)` |

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `SsManifest` | `copy​(List<StreamKey> streamKeys)` | Returns a copy of the manifest including only the streams specified by the given keys.

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

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

- - ### Field Detail

    - #### UNSET_LOOKAHEAD

          public static final int UNSET_LOOKAHEAD

      See Also:
        Constant Field Values

    - #### majorVersion

          public final int majorVersion

      The client manifest major version.

    - #### minorVersion

          public final int minorVersion

      The client manifest minor version.

    - #### lookAheadCount

          public final int lookAheadCount

      The number of fragments in a lookahead, or `UNSET_LOOKAHEAD` if the lookahead is unspecified.

    - #### isLive

          public final boolean isLive

      Whether the manifest describes a live presentation still in progress.

    - #### protectionElement

          @Nullable
          public final SsManifest.ProtectionElement protectionElement

      Content protection information, or null if the content is not protected.

    - #### streamElements

          public final SsManifest.StreamElement[] streamElements

      The contained stream elements.

    - #### durationUs

          public final long durationUs

      The overall presentation duration of the media in microseconds, or `C.TIME_UNSET` if the duration is unknown.

    - #### dvrWindowLengthUs

          public final long dvrWindowLengthUs

      The length of the trailing window for a live broadcast in microseconds, or `C.TIME_UNSET` if the stream is not live or if the window length is unspecified.

  - ### Constructor Detail

    - #### SsManifest

          public SsManifest​(int majorVersion,
                            int minorVersion,
                            long timescale,
                            long duration,
                            long dvrWindowLength,
                            int lookAheadCount,
                            boolean isLive,
                            @Nullable
                            SsManifest.ProtectionElement protectionElement,
                            SsManifest.StreamElement[] streamElements)

      Parameters:
        `majorVersion` - The client manifest major version.
        `minorVersion` - The client manifest minor version.
        `timescale` - The timescale of the media as the number of units that pass in one second.
        `duration` - The overall presentation duration in units of the timescale attribute, or 0 if the duration is unknown.
        `dvrWindowLength` - The length of the trailing window in units of the timescale attribute, or 0 if this attribute is unspecified or not applicable.
        `lookAheadCount` - The number of fragments in a lookahead, or `UNSET_LOOKAHEAD` if this attribute is unspecified or not applicable.
        `isLive` - True if the manifest describes a live presentation still in progress. False otherwise.
        `protectionElement` - Content protection information, or null if the content is not protected.
        `streamElements` - The contained stream elements.

  - ### Method Detail

    - #### copy

          public final SsManifest copy​(List<StreamKey> streamKeys)

      Description copied from interface: `FilterableManifest`
      Returns a copy of the manifest including only the streams specified by the given keys. If the manifest is unchanged then the instance may return itself.
      Specified by:
        `copy` in interface `FilterableManifest<SsManifest>`
      Parameters:
        `streamKeys` - A non-empty list of stream keys.
      Returns:
        The filtered manifest.