# TsPayloadReader

# TsPayloadReader

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/TsPayloadReader.java+class:androidx.media3.extractor.ts.TsPayloadReader)

*** ** * ** ***

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

<br />

```
@UnstableApi
interface TsPayloadReader
```

<br />

Known direct subclasses  
[PesReader](https://developer.android.com/reference/kotlin/androidx/media3/extractor/ts/PesReader),[SectionReader](https://developer.android.com/reference/kotlin/androidx/media3/extractor/ts/SectionReader)  

|------------------------------------------------------------------------------------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| [PesReader](https://developer.android.com/reference/kotlin/androidx/media3/extractor/ts/PesReader)         | Parses PES packet data and extracts samples.                                                                                                                                                |
| [SectionReader](https://developer.android.com/reference/kotlin/androidx/media3/extractor/ts/SectionReader) | Reads section data packets and feeds the whole sections to a given[SectionPayloadReader](https://developer.android.com/reference/kotlin/androidx/media3/extractor/ts/SectionPayloadReader). |

*** ** * ** ***

Parses TS packet payload data.

## Summary

|                                                                                                                                                                                                                                                                                                                                                                                                                                          ### Nested types                                                                                                                                                                                                                                                                                                                                                                                                                                          |
|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| `class `[TsPayloadReader.DvbSubtitleInfo](https://developer.android.com/reference/kotlin/androidx/media3/extractor/ts/TsPayloadReader.DvbSubtitleInfo) Holds information about a DVB subtitle, as defined in ETSI EN 300 468 V1.11.1 section 6.2.41.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               |
| `class `[TsPayloadReader.EsInfo](https://developer.android.com/reference/kotlin/androidx/media3/extractor/ts/TsPayloadReader.EsInfo) Holds information associated with a PMT entry.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                |
| `@`[Documented](https://developer.android.com/reference/java/lang/annotation/Documented.html) `@`[Retention](https://developer.android.com/reference/java/lang/annotation/Retention.html)`(value = `[RetentionPolicy.SOURCE](https://developer.android.com/reference/java/lang/annotation/RetentionPolicy.html#SOURCE)`)` `@`[Target](https://developer.android.com/reference/java/lang/annotation/Target.html)`(value = `[ElementType.TYPE_USE](https://developer.android.com/reference/java/lang/annotation/ElementType.html#TYPE_USE)`)` `@`[IntDef](https://developer.android.com/reference/kotlin/androidx/annotation/IntDef)`(value = )` `annotation `[TsPayloadReader.EsInfo.AudioType](https://developer.android.com/reference/kotlin/androidx/media3/extractor/ts/TsPayloadReader.EsInfo.AudioType) The audio type of the stream, as defined by ISO/IEC 13818-1, section 2.6.18.          |
| `interface `[TsPayloadReader.Factory](https://developer.android.com/reference/kotlin/androidx/media3/extractor/ts/TsPayloadReader.Factory) Factory of[TsPayloadReader](https://developer.android.com/reference/kotlin/androidx/media3/extractor/ts/TsPayloadReader)instances.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      |
| `@`[Documented](https://developer.android.com/reference/java/lang/annotation/Documented.html) `@`[Retention](https://developer.android.com/reference/java/lang/annotation/Retention.html)`(value = `[RetentionPolicy.SOURCE](https://developer.android.com/reference/java/lang/annotation/RetentionPolicy.html#SOURCE)`)` `@`[Target](https://developer.android.com/reference/java/lang/annotation/Target.html)`(value = `[ElementType.TYPE_USE](https://developer.android.com/reference/java/lang/annotation/ElementType.html#TYPE_USE)`)` `@`[IntDef](https://developer.android.com/reference/kotlin/androidx/annotation/IntDef)`(flag = true, value = )` `annotation `[TsPayloadReader.Flags](https://developer.android.com/reference/kotlin/androidx/media3/extractor/ts/TsPayloadReader.Flags) Contextual flags indicating the presence of indicators in the TS packet or PES packet headers. |
| `class `[TsPayloadReader.TrackIdGenerator](https://developer.android.com/reference/kotlin/androidx/media3/extractor/ts/TsPayloadReader.TrackIdGenerator) Generates track ids for initializing[TsPayloadReader](https://developer.android.com/reference/kotlin/androidx/media3/extractor/ts/TsPayloadReader)s'[TrackOutput](https://developer.android.com/reference/kotlin/androidx/media3/extractor/TrackOutput)s.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 |

|                                    ### Constants                                    |
|-------------------------------------------------------------------------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| `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 functions                              |
|-------------------------------------------------------------------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| [Unit](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html) | [consume](https://developer.android.com/reference/kotlin/androidx/media3/extractor/ts/TsPayloadReader#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/TsPayloadReader#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/TsPayloadReader#seek())`()` Notifies the reader that a seek has occurred.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               |

## Constants

### FLAG_DATA_ALIGNMENT_INDICATOR

```
const val FLAG_DATA_ALIGNMENT_INDICATOR = 4: Int
```

Indicates the presence of the data_alignment_indicator in the PES header.  

### FLAG_PAYLOAD_UNIT_START_INDICATOR

```
const val FLAG_PAYLOAD_UNIT_START_INDICATOR = 1: Int
```

Indicates the presence of the payload_unit_start_indicator in the TS packet header.  

### FLAG_RANDOM_ACCESS_INDICATOR

```
const val FLAG_RANDOM_ACCESS_INDICATOR = 2: Int
```

Indicates the presence of the random_access_indicator in the TS packet header adaptation field.  

## 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.