# SectionReader

# SectionReader

Artifact:[androidx.media3:media3-extractor](https://developer.android.com/jetpack/androidx/releases/media3)  
[View Source](https://cs.android.com/search?q=file:androidx/media3/extractor/ts/SectionReader.java+class:androidx.media3.extractor.ts.SectionReader)

*** ** * ** ***

Kotlin\|[Java](https://developer.android.com/reference/androidx/media3/extractor/ts/SectionReader "View this page in Java")

<br />

```
@UnstableApi
class SectionReader : TsPayloadReader
```

<br />

*** ** * ** ***

Reads section data packets and feeds the whole sections to a given[SectionPayloadReader](https://developer.android.com/reference/kotlin/androidx/media3/extractor/ts/SectionPayloadReader). Useful information on PSI sections can be found in ISO/IEC 13818-1, section 2.4.4.

## Summary

|                                                                                                                                              ### Public constructors                                                                                                                                               |
|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| [SectionReader](https://developer.android.com/reference/kotlin/androidx/media3/extractor/ts/SectionReader#SectionReader(androidx.media3.extractor.ts.SectionPayloadReader))`(reader: `[SectionPayloadReader](https://developer.android.com/reference/kotlin/androidx/media3/extractor/ts/SectionPayloadReader)`!)` |

|                             ### Public functions                              |
|-------------------------------------------------------------------------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| [Unit](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html) | [consume](https://developer.android.com/reference/kotlin/androidx/media3/extractor/ts/SectionReader#consume(androidx.media3.common.util.ParsableByteArray,int))`(data: `[ParsableByteArray](https://developer.android.com/reference/kotlin/androidx/media3/common/util/ParsableByteArray)`!, @`[TsPayloadReader.Flags](https://developer.android.com/reference/kotlin/androidx/media3/extractor/ts/TsPayloadReader.Flags)` flags: `[Int](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html)`)` Consumes the payload of a TS packet.                                                                                                                                                                                                   |
| [Unit](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html) | [init](https://developer.android.com/reference/kotlin/androidx/media3/extractor/ts/SectionReader#init(androidx.media3.common.util.TimestampAdjuster,androidx.media3.extractor.ExtractorOutput,androidx.media3.extractor.ts.TsPayloadReader.TrackIdGenerator))`(` ` timestampAdjuster: `[TimestampAdjuster](https://developer.android.com/reference/kotlin/androidx/media3/common/util/TimestampAdjuster)`!,` ` extractorOutput: `[ExtractorOutput](https://developer.android.com/reference/kotlin/androidx/media3/extractor/ExtractorOutput)`!,` ` idGenerator: `[TsPayloadReader.TrackIdGenerator](https://developer.android.com/reference/kotlin/androidx/media3/extractor/ts/TsPayloadReader.TrackIdGenerator)`!` `)` Initializes the payload reader. |
| [Unit](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html) | [seek](https://developer.android.com/reference/kotlin/androidx/media3/extractor/ts/SectionReader#seek())`()` Notifies the reader that a seek has occurred.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               |

|                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   ### Inherited Constants                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   |
|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| From[androidx.media3.extractor.ts.TsPayloadReader](https://developer.android.com/reference/kotlin/androidx/media3/extractor/ts/TsPayloadReader) |-------------------------------------------------------------------------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | `const `[Int](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html) | [FLAG_DATA_ALIGNMENT_INDICATOR](https://developer.android.com/reference/kotlin/androidx/media3/extractor/ts/TsPayloadReader#FLAG_DATA_ALIGNMENT_INDICATOR())` = 4` Indicates the presence of the data_alignment_indicator in the PES header.                     | | `const `[Int](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html) | [FLAG_PAYLOAD_UNIT_START_INDICATOR](https://developer.android.com/reference/kotlin/androidx/media3/extractor/ts/TsPayloadReader#FLAG_PAYLOAD_UNIT_START_INDICATOR())` = 1` Indicates the presence of the payload_unit_start_indicator in the TS packet header.   | | `const `[Int](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html) | [FLAG_RANDOM_ACCESS_INDICATOR](https://developer.android.com/reference/kotlin/androidx/media3/extractor/ts/TsPayloadReader#FLAG_RANDOM_ACCESS_INDICATOR())` = 2` Indicates the presence of the random_access_indicator in the TS packet header adaptation field. | |

## Public constructors

### SectionReader

```
SectionReader(reader: SectionPayloadReader!)
```  

## Public functions

### consume

```
fun consume(data: ParsableByteArray!, @TsPayloadReader.Flags flags: Int): Unit
```

Consumes the payload of a TS packet.  

|                                                                                                     Parameters                                                                                                     |
|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|----------------------------------------------------------------------------------------------------------------|
| `data: `[ParsableByteArray](https://developer.android.com/reference/kotlin/androidx/media3/common/util/ParsableByteArray)`!`                                                                                       | The TS packet. The position will be set to the start of the payload.                                           |
| `@`[TsPayloadReader.Flags](https://developer.android.com/reference/kotlin/androidx/media3/extractor/ts/TsPayloadReader.Flags)` flags: `[Int](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html) | See[Flags](https://developer.android.com/reference/kotlin/androidx/media3/extractor/ts/TsPayloadReader.Flags). |

|                                                             Throws                                                              |
|---------------------------------------------------------------------------------------------------------------------------------|-------------------------------------|
| [androidx.media3.common.ParserException](https://developer.android.com/reference/kotlin/androidx/media3/common/ParserException) | If the payload could not be parsed. |

### init

```
fun init(
    timestampAdjuster: TimestampAdjuster!,
    extractorOutput: ExtractorOutput!,
    idGenerator: TsPayloadReader.TrackIdGenerator!
): Unit
```

Initializes the payload reader.  

|                                                                             Parameters                                                                             |
|--------------------------------------------------------------------------------------------------------------------------------------------------------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| `timestampAdjuster: `[TimestampAdjuster](https://developer.android.com/reference/kotlin/androidx/media3/common/util/TimestampAdjuster)`!`                          | A timestamp adjuster for offsetting and scaling sample timestamps.                                                                                                                                                                                                                      |
| `extractorOutput: `[ExtractorOutput](https://developer.android.com/reference/kotlin/androidx/media3/extractor/ExtractorOutput)`!`                                  | The[ExtractorOutput](https://developer.android.com/reference/kotlin/androidx/media3/extractor/ExtractorOutput)that receives the extracted data.                                                                                                                                         |
| `idGenerator: `[TsPayloadReader.TrackIdGenerator](https://developer.android.com/reference/kotlin/androidx/media3/extractor/ts/TsPayloadReader.TrackIdGenerator)`!` | A[PesReader.TrackIdGenerator](https://developer.android.com/reference/kotlin/androidx/media3/extractor/ts/TsPayloadReader.TrackIdGenerator)that generates unique track ids for the[TrackOutput](https://developer.android.com/reference/kotlin/androidx/media3/extractor/TrackOutput)s. |

### seek

```
fun seek(): Unit
```

Notifies the reader that a seek has occurred.

Following a call to this method, the data passed to the next invocation of[consume](https://developer.android.com/reference/kotlin/androidx/media3/extractor/ts/TsPayloadReader#consume(androidx.media3.common.util.ParsableByteArray,int))will not be a continuation of the data that was previously passed. Hence the reader should reset any internal state.