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

## Interface HlsMediaChunkExtractor

- All Known Implementing Classes:
    `BundledHlsMediaChunkExtractor`, `MediaParserHlsMediaChunkExtractor`

      public interface HlsMediaChunkExtractor

  Extracts samples and track `Formats` from `HlsMediaChunks`.

- - ### Method Summary

    All Methods Instance Methods Abstract Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `void` | `init​(ExtractorOutput extractorOutput)` | Initializes the extractor with an `ExtractorOutput`.
    `boolean` | `isPackedAudioExtractor()` | Returns whether this is a packed audio extractor, as defined in RFC 8216, Section 3.4.
    `boolean` | `isReusable()` | Returns whether this instance can be used for extracting multiple continuous segments.
    `void` | `onTruncatedSegmentParsed()` | Resets the sample parsing state.
    `boolean` | `read​(ExtractorInput extractorInput)` | Extracts data read from a provided `ExtractorInput`.
    `HlsMediaChunkExtractor` | `recreate()` | Returns a new instance for extracting the same type of media as this one.

- - ### Method Detail

    - #### init

          void init​(ExtractorOutput extractorOutput)

      Initializes the extractor with an `ExtractorOutput`. Called at most once.
      Parameters:
        `extractorOutput` - An `ExtractorOutput` to receive extracted data.

    - #### read

          boolean read​(ExtractorInput extractorInput)
                throws IOException

      Extracts data read from a provided `ExtractorInput`. Must not be called before `init(ExtractorOutput)`.

      A single call to this method will block until some progress has been made, but will not block for longer than this. Hence each call will consume only a small amount of input data.

      When this method throws an `IOException`, extraction may continue by providing an `ExtractorInput` with an unchanged `read position` to a subsequent call to this method.

      Parameters:
        `extractorInput` - The input to read from.
      Returns:
        Whether there is any data left to extract. Returns false if the end of input has been reached.
      Throws:
        `IOException` - If an error occurred reading from or parsing the input.

    - #### isPackedAudioExtractor

          boolean isPackedAudioExtractor()

      Returns whether this is a packed audio extractor, as defined in RFC 8216, Section 3.4.

    - #### isReusable

          boolean isReusable()

      Returns whether this instance can be used for extracting multiple continuous segments.

    - #### recreate

          HlsMediaChunkExtractor recreate()

      Returns a new instance for extracting the same type of media as this one. Can only be called on instances that are not `reusable`.

    - #### onTruncatedSegmentParsed

          void onTruncatedSegmentParsed()

      Resets the sample parsing state.

      Resetting the parsing state allows support for Fragmented MP4 EXT-X-I-FRAME-STREAM-INF segments. EXT-X-I-FRAME-STREAM-INF segments are truncated to include only a leading key frame. After parsing said keyframe, an extractor may reach an unexpected end of file. By resetting its state, we can continue feeding samples from the following segments to the extractor. See #7512 for context.