Package com.google.android.exoplayer2.source.chunk

## Class InitializationChunk

- java.lang.Object
- - com.google.android.exoplayer2.source.chunk.Chunk
  - - com.google.android.exoplayer2.source.chunk.InitializationChunk

- All Implemented Interfaces:
    `Loader.Loadable`

      public final class InitializationChunk
      extends Chunk

  A `Chunk` that uses an `Extractor` to decode initialization data for single track.

- - ### Field Summary

    - ### Fields inherited from class com.google.android.exoplayer2.source.chunk.Chunk

      `dataSource, dataSpec, endTimeUs, loadTaskId, startTimeUs, trackFormat, trackSelectionData, trackSelectionReason, type`

  - ### Constructor Summary

    Constructors
    Constructor | Description
    --- | ---
    `InitializationChunk​(DataSource dataSource, DataSpec dataSpec, Format trackFormat, int trackSelectionReason, Object trackSelectionData, ChunkExtractor chunkExtractor)` |

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `void` | `cancelLoad()` | Cancels the load.
    `void` | `init​(ChunkExtractor.TrackOutputProvider trackOutputProvider)` | Initializes the chunk for loading, setting a `ChunkExtractor.TrackOutputProvider` for track outputs to which formats will be written as they are loaded.
    `void` | `load()` | Performs the load, returning on completion or cancellation.

    - ### Methods inherited from class com.google.android.exoplayer2.source.chunk.Chunk

      `bytesLoaded, getDurationUs, getResponseHeaders, getUri`

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

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

- - ### Constructor Detail

    - #### InitializationChunk

          public InitializationChunk​(DataSource dataSource,
                                     DataSpec dataSpec,
                                     Format trackFormat,
                                     int trackSelectionReason,
                                     @Nullable
                                     Object trackSelectionData,
                                     ChunkExtractor chunkExtractor)

      Parameters:
        `dataSource` - The source from which the data should be loaded.
        `dataSpec` - Defines the data to be loaded.
        `trackFormat` - See `Chunk.trackFormat`.
        `trackSelectionReason` - See `Chunk.trackSelectionReason`.
        `trackSelectionData` - See `Chunk.trackSelectionData`.
        `chunkExtractor` - A wrapped extractor to use for parsing the initialization data.

  - ### Method Detail

    - #### init

          public void init​(ChunkExtractor.TrackOutputProvider trackOutputProvider)

      Initializes the chunk for loading, setting a `ChunkExtractor.TrackOutputProvider` for track outputs to which formats will be written as they are loaded.
      Parameters:
        `trackOutputProvider` - The `ChunkExtractor.TrackOutputProvider` for track outputs to which formats will be written as they are loaded.

    - #### cancelLoad

          public void cancelLoad()

      Description copied from interface: `Loader.Loadable`
      Cancels the load.

      Loadable implementations should ensure that a currently executing `Loader.Loadable.load()` call will exit reasonably quickly after this method is called. The `Loader.Loadable.load()` call may exit either by returning or by throwing an `IOException`.

      If there is a currently executing `Loader.Loadable.load()` call, then the thread on which that call is being made will be interrupted immediately after the call to this method. Hence implementations do not need to (and should not attempt to) interrupt the loading thread themselves.

      Although the loading thread will be interrupted, Loadable implementations should not use the interrupted status of the loading thread in `Loader.Loadable.load()` to determine whether the load has been canceled. This approach is not robust [Internal ref: b/79223737]. Instead, implementations should use their own flag to signal cancelation (for example, using `AtomicBoolean`).

    - #### load

          public void load()
                    throws IOException

      Description copied from interface: `Loader.Loadable`
      Performs the load, returning on completion or cancellation.
      Throws:
        `IOException` - If the input could not be loaded.