# PesReader

# PesReader

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

*** ** * ** ***

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

<br />

```
@UnstableApi
class PesReader : TsPayloadReader
```

<br />

*** ** * ** ***

Parses PES packet data and extracts samples.

## Summary

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

|                                ### Public functions                                 |
|-------------------------------------------------------------------------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| [Boolean](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html) | [canConsumeSynthesizedEmptyPusi](https://developer.android.com/reference/kotlin/androidx/media3/extractor/ts/PesReader#canConsumeSynthesizedEmptyPusi(boolean))`(isModeHls: `[Boolean](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html)`)` Determines if the parser can consume a synthesized empty pusi.                                                                                                                                                                                                                                                                                                                                                                                                                   |
| [Unit](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html)       | [consume](https://developer.android.com/reference/kotlin/androidx/media3/extractor/ts/PesReader#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/PesReader#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/PesReader#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

### PesReader

```
PesReader(reader: ElementaryStreamReader!)
```  

## Public functions

### canConsumeSynthesizedEmptyPusi

```
fun canConsumeSynthesizedEmptyPusi(isModeHls: Boolean): Boolean
```

Determines if the parser can consume a synthesized empty pusi.  

|                                            Parameters                                            |
|--------------------------------------------------------------------------------------------------|------------------------------------------------------------------------|
| `isModeHls: `[Boolean](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html) | `True`if operating in HLS (HTTP Live Streaming) mode,`false`otherwise. |

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