Package com.google.android.exoplayer2.source

## Class EmptySampleStream

- java.lang.Object
- - com.google.android.exoplayer2.source.EmptySampleStream

- All Implemented Interfaces:
    `SampleStream`

      public final class EmptySampleStream
      extends Object
      implements SampleStream

  An empty `SampleStream`.

- - ### Nested Class Summary

    - ### Nested classes/interfaces inherited from interface com.google.android.exoplayer2.source.SampleStream

      `SampleStream.ReadDataResult, SampleStream.ReadFlags`

  - ### Field Summary

    - ### Fields inherited from interface com.google.android.exoplayer2.source.SampleStream

      `FLAG_OMIT_SAMPLE_DATA, FLAG_PEEK, FLAG_REQUIRE_FORMAT`

  - ### Constructor Summary

    Constructors
    Constructor | Description
    --- | ---
    `EmptySampleStream()` |

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `boolean` | `isReady()` | Returns whether data is available to be read.
    `void` | `maybeThrowError()` | Throws an error that's preventing data from being read.
    `int` | `readData​(FormatHolder formatHolder, DecoderInputBuffer buffer, @com.google.android.exoplayer2.source.SampleStream.ReadFlags int readFlags)` | Attempts to read from the stream.
    `int` | `skipData​(long positionUs)` | Attempts to skip to the keyframe before the specified position, or to the end of the stream if `positionUs` is beyond it.

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

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

- - ### Constructor Detail

    - #### EmptySampleStream

          public EmptySampleStream()

  - ### Method Detail

    - #### isReady

          public boolean isReady()

      Description copied from interface: `SampleStream`
      Returns whether data is available to be read.

      Note: If the stream has ended then a buffer with the end of stream flag can always be read from `SampleStream.readData(com.google.android.exoplayer2.FormatHolder, com.google.android.exoplayer2.decoder.DecoderInputBuffer, @com.google.android.exoplayer2.source.SampleStream.ReadFlags int)`. Hence an ended stream is always ready.

      Specified by:
        `isReady` in interface `SampleStream`
      Returns:
        Whether data is available to be read.

    - #### maybeThrowError

          public void maybeThrowError()

      Description copied from interface: `SampleStream`
      Throws an error that's preventing data from being read. Does nothing if no such error exists.
      Specified by:
        `maybeThrowError` in interface `SampleStream`

    - #### readData

          public int readData​(FormatHolder formatHolder,
                              DecoderInputBuffer buffer,
                              @com.google.android.exoplayer2.source.SampleStream.ReadFlags int readFlags)

      Description copied from interface: `SampleStream`
      Attempts to read from the stream.

      If the stream has ended then `C.BUFFER_FLAG_END_OF_STREAM` flag is set on `buffer` and `C.RESULT_BUFFER_READ` is returned. Else if no data is available then `C.RESULT_NOTHING_READ` is returned. Else if the format of the media is changing or if `formatRequired` is set then `formatHolder` is populated and `C.RESULT_FORMAT_READ` is returned. Else `buffer` is populated and `C.RESULT_BUFFER_READ` is returned.

      Specified by:
        `readData` in interface `SampleStream`
      Parameters:
        `formatHolder` - A `FormatHolder` to populate in the case of reading a format.
        `buffer` - A `DecoderInputBuffer` to populate in the case of reading a sample or the end of the stream. If the end of the stream has been reached, the `C.BUFFER_FLAG_END_OF_STREAM` flag will be set on the buffer.
        `readFlags` - Flags controlling the behavior of this read operation.
      Returns:
        The `result` of the read operation.

    - #### skipData

          public int skipData​(long positionUs)

      Description copied from interface: `SampleStream`
      Attempts to skip to the keyframe before the specified position, or to the end of the stream if `positionUs` is beyond it.
      Specified by:
        `skipData` in interface `SampleStream`
      Parameters:
        `positionUs` - The specified time.
      Returns:
        The number of samples that were skipped.