# DefaultTsPayloadReaderFactory

# DefaultTsPayloadReaderFactory

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

*** ** * ** ***

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

<br />

```
@UnstableApi
class DefaultTsPayloadReaderFactory : TsPayloadReader.Factory
```

<br />

*** ** * ** ***

Default[TsPayloadReader.Factory](https://developer.android.com/reference/kotlin/androidx/media3/extractor/ts/TsPayloadReader.Factory)implementation.

## Summary

|                                                                                                                                                                                                                                                                                                                                                                                                                                    ### Nested types                                                                                                                                                                                                                                                                                                                                                                                                                                    |
|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| `@`[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 `[DefaultTsPayloadReaderFactory.Flags](https://developer.android.com/reference/kotlin/androidx/media3/extractor/ts/DefaultTsPayloadReaderFactory.Flags) Flags controlling elementary stream readers' behavior. |

|                                    ### Constants                                    |
|-------------------------------------------------------------------------------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| `const `[Int](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html) | [FLAG_ALLOW_NON_IDR_KEYFRAMES](https://developer.android.com/reference/kotlin/androidx/media3/extractor/ts/DefaultTsPayloadReaderFactory#FLAG_ALLOW_NON_IDR_KEYFRAMES())` = 1` When extracting H.264 samples, whether to treat samples consisting of non-IDR I slices as synchronization samples (key-frames).                                                                                                                                                                                                                             |
| `const `[Int](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html) | [FLAG_DETECT_ACCESS_UNITS](https://developer.android.com/reference/kotlin/androidx/media3/extractor/ts/DefaultTsPayloadReaderFactory#FLAG_DETECT_ACCESS_UNITS())` = 8` When extracting H.264 samples, whether to split the input stream into access units (samples) based on slice headers.                                                                                                                                                                                                                                                |
| `const `[Int](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html) | [FLAG_ENABLE_HDMV_DTS_AUDIO_STREAMS](https://developer.android.com/reference/kotlin/androidx/media3/extractor/ts/DefaultTsPayloadReaderFactory#FLAG_ENABLE_HDMV_DTS_AUDIO_STREAMS())` = 64` Sets whether HDMV DTS audio streams will be handled.                                                                                                                                                                                                                                                                                           |
| `const `[Int](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html) | [FLAG_IGNORE_AAC_STREAM](https://developer.android.com/reference/kotlin/androidx/media3/extractor/ts/DefaultTsPayloadReaderFactory#FLAG_IGNORE_AAC_STREAM())` = 2` Prevents the creation of[AdtsReader](https://developer.android.com/reference/kotlin/androidx/media3/extractor/ts/AdtsReader)and[LatmReader](https://developer.android.com/reference/kotlin/androidx/media3/extractor/ts/LatmReader)instances.                                                                                                                           |
| `const `[Int](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html) | [FLAG_IGNORE_H264_STREAM](https://developer.android.com/reference/kotlin/androidx/media3/extractor/ts/DefaultTsPayloadReaderFactory#FLAG_IGNORE_H264_STREAM())` = 4` Prevents the creation of[H264Reader](https://developer.android.com/reference/kotlin/androidx/media3/extractor/ts/H264Reader)instances.                                                                                                                                                                                                                                |
| `const `[Int](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html) | [FLAG_IGNORE_SPLICE_INFO_STREAM](https://developer.android.com/reference/kotlin/androidx/media3/extractor/ts/DefaultTsPayloadReaderFactory#FLAG_IGNORE_SPLICE_INFO_STREAM())` = 16` Prevents the creation of[SectionPayloadReader](https://developer.android.com/reference/kotlin/androidx/media3/extractor/ts/SectionPayloadReader)s for splice information sections (SCTE-35).                                                                                                                                                           |
| `const `[Int](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html) | [FLAG_OVERRIDE_CAPTION_DESCRIPTORS](https://developer.android.com/reference/kotlin/androidx/media3/extractor/ts/DefaultTsPayloadReaderFactory#FLAG_OVERRIDE_CAPTION_DESCRIPTORS())` = 32` Whether the list of`closedCaptionFormats`passed to[DefaultTsPayloadReaderFactory](https://developer.android.com/reference/kotlin/androidx/media3/extractor/ts/DefaultTsPayloadReaderFactory#DefaultTsPayloadReaderFactory(int,java.util.List<androidx.media3.common.Format>))should be used in spite of any closed captions service descriptors. |

|                                                                                                                                                                                                                                                                                                                                                                                            ### Public constructors                                                                                                                                                                                                                                                                                                                                                                                             |
|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| [DefaultTsPayloadReaderFactory](https://developer.android.com/reference/kotlin/androidx/media3/extractor/ts/DefaultTsPayloadReaderFactory#DefaultTsPayloadReaderFactory())`()`                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 |
| [DefaultTsPayloadReaderFactory](https://developer.android.com/reference/kotlin/androidx/media3/extractor/ts/DefaultTsPayloadReaderFactory#DefaultTsPayloadReaderFactory(int))`(` ` @`[DefaultTsPayloadReaderFactory.Flags](https://developer.android.com/reference/kotlin/androidx/media3/extractor/ts/DefaultTsPayloadReaderFactory.Flags)` flags: `[Int](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html) `)`                                                                                                                                                                                                                                                                                                                                                                           |
| [DefaultTsPayloadReaderFactory](https://developer.android.com/reference/kotlin/androidx/media3/extractor/ts/DefaultTsPayloadReaderFactory#DefaultTsPayloadReaderFactory(int,java.util.List<androidx.media3.common.Format>))`(` ` @`[DefaultTsPayloadReaderFactory.Flags](https://developer.android.com/reference/kotlin/androidx/media3/extractor/ts/DefaultTsPayloadReaderFactory.Flags)` flags: `[Int](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html)`,` ` closedCaptionFormats: (`[Mutable](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin.collections/-mutable-list/index.html)`)`[List](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin.collections/-list/index.html)`<`[Format](https://developer.android.com/reference/kotlin/androidx/media3/common/Format)`!>!` `)` |

|                                                                                            ### Public functions                                                                                            |
|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| [SparseArray](https://developer.android.com/reference/android/util/SparseArray.html)`<`[TsPayloadReader](https://developer.android.com/reference/kotlin/androidx/media3/extractor/ts/TsPayloadReader)`!>!` | [createInitialPayloadReaders](https://developer.android.com/reference/kotlin/androidx/media3/extractor/ts/DefaultTsPayloadReaderFactory#createInitialPayloadReaders())`()` Returns the initial mapping from PIDs to payload readers.                                                                                                                                                                                                                                                                                                                                                                                                  |
| [TsPayloadReader](https://developer.android.com/reference/kotlin/androidx/media3/extractor/ts/TsPayloadReader)`?`                                                                                          | [createPayloadReader](https://developer.android.com/reference/kotlin/androidx/media3/extractor/ts/DefaultTsPayloadReaderFactory#createPayloadReader(int,androidx.media3.extractor.ts.TsPayloadReader.EsInfo))`(streamType: `[Int](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html)`, esInfo: `[TsPayloadReader.EsInfo](https://developer.android.com/reference/kotlin/androidx/media3/extractor/ts/TsPayloadReader.EsInfo)`!)` Returns a[TsPayloadReader](https://developer.android.com/reference/kotlin/androidx/media3/extractor/ts/TsPayloadReader)for a given stream type and elementary stream information. |

## Constants

### FLAG_ALLOW_NON_IDR_KEYFRAMES

```
const val FLAG_ALLOW_NON_IDR_KEYFRAMES = 1: Int
```

When extracting H.264 samples, whether to treat samples consisting of non-IDR I slices as synchronization samples (key-frames).  

### FLAG_DETECT_ACCESS_UNITS

```
const val FLAG_DETECT_ACCESS_UNITS = 8: Int
```

When extracting H.264 samples, whether to split the input stream into access units (samples) based on slice headers. This flag should be disabled if the stream contains access unit delimiters (AUDs).  

### FLAG_ENABLE_HDMV_DTS_AUDIO_STREAMS

```
const val FLAG_ENABLE_HDMV_DTS_AUDIO_STREAMS = 64: Int
```

Sets whether HDMV DTS audio streams will be handled. If this flag is set, SCTE subtitles will not be detected, as they share the same elementary stream type as HDMV DTS.  

### FLAG_IGNORE_AAC_STREAM

```
const val FLAG_IGNORE_AAC_STREAM = 2: Int
```

Prevents the creation of[AdtsReader](https://developer.android.com/reference/kotlin/androidx/media3/extractor/ts/AdtsReader)and[LatmReader](https://developer.android.com/reference/kotlin/androidx/media3/extractor/ts/LatmReader)instances. This flag should be enabled if the transport stream contains no packets for an AAC elementary stream that is declared in the PMT.  

### FLAG_IGNORE_H264_STREAM

```
const val FLAG_IGNORE_H264_STREAM = 4: Int
```

Prevents the creation of[H264Reader](https://developer.android.com/reference/kotlin/androidx/media3/extractor/ts/H264Reader)instances. This flag should be enabled if the transport stream contains no packets for an H.264 elementary stream that is declared in the PMT.  

### FLAG_IGNORE_SPLICE_INFO_STREAM

```
const val FLAG_IGNORE_SPLICE_INFO_STREAM = 16: Int
```

Prevents the creation of[SectionPayloadReader](https://developer.android.com/reference/kotlin/androidx/media3/extractor/ts/SectionPayloadReader)s for splice information sections (SCTE-35).  

### FLAG_OVERRIDE_CAPTION_DESCRIPTORS

```
const val FLAG_OVERRIDE_CAPTION_DESCRIPTORS = 32: Int
```

Whether the list of`closedCaptionFormats`passed to[DefaultTsPayloadReaderFactory](https://developer.android.com/reference/kotlin/androidx/media3/extractor/ts/DefaultTsPayloadReaderFactory#DefaultTsPayloadReaderFactory(int,java.util.List<androidx.media3.common.Format>))should be used in spite of any closed captions service descriptors. If this flag is disabled,`
closedCaptionFormats`will be ignored if the PMT contains closed captions service descriptors.  

## Public constructors

### DefaultTsPayloadReaderFactory

```
DefaultTsPayloadReaderFactory()
```  

### DefaultTsPayloadReaderFactory

```
DefaultTsPayloadReaderFactory(
    @DefaultTsPayloadReaderFactory.Flags flags: Int
)
```  

|                                                                                                                   Parameters                                                                                                                   |
|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|----------------------------------------------------------------------------------|
| `@`[DefaultTsPayloadReaderFactory.Flags](https://developer.android.com/reference/kotlin/androidx/media3/extractor/ts/DefaultTsPayloadReaderFactory.Flags)` flags: `[Int](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html) | A combination of`FLAG_*`values that control the behavior of the created readers. |

### DefaultTsPayloadReaderFactory

```
DefaultTsPayloadReaderFactory(
    @DefaultTsPayloadReaderFactory.Flags flags: Int,
    closedCaptionFormats: (Mutable)List<Format!>!
)
```  

|                                                                                                                                                       Parameters                                                                                                                                                        |
|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| `@`[DefaultTsPayloadReaderFactory.Flags](https://developer.android.com/reference/kotlin/androidx/media3/extractor/ts/DefaultTsPayloadReaderFactory.Flags)` flags: `[Int](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html)                                                                          | A combination of`FLAG_*`values that control the behavior of the created readers.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     |
| `closedCaptionFormats: (`[Mutable](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin.collections/-mutable-list/index.html)`)`[List](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin.collections/-list/index.html)`<`[Format](https://developer.android.com/reference/kotlin/androidx/media3/common/Format)`!>!` | [Format](https://developer.android.com/reference/kotlin/androidx/media3/common/Format)s to be exposed by payload readers for streams with embedded closed captions when no caption service descriptors are provided. If[FLAG_OVERRIDE_CAPTION_DESCRIPTORS](https://developer.android.com/reference/kotlin/androidx/media3/extractor/ts/DefaultTsPayloadReaderFactory#FLAG_OVERRIDE_CAPTION_DESCRIPTORS())is set,`closedCaptionFormats`overrides any descriptor information. If not set, and`closedCaptionFormats`is empty, a closed caption track with[accessibilityChannel](https://developer.android.com/reference/kotlin/androidx/media3/common/Format#accessibilityChannel())[NO_VALUE](https://developer.android.com/reference/kotlin/androidx/media3/common/Format#NO_VALUE())will be exposed. |

## Public functions

### createInitialPayloadReaders

```
fun createInitialPayloadReaders(): SparseArray<TsPayloadReader!>!
```

Returns the initial mapping from PIDs to payload readers.

This method allows the injection of payload readers for reserved PIDs, excluding PID 0.  

|                                                                                                  Returns                                                                                                   |
|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|-------------------------------------------------------------------------------------------------------------------------|
| [SparseArray](https://developer.android.com/reference/android/util/SparseArray.html)`<`[TsPayloadReader](https://developer.android.com/reference/kotlin/androidx/media3/extractor/ts/TsPayloadReader)`!>!` | A[SparseArray](https://developer.android.com/reference/android/util/SparseArray.html)that maps PIDs to payload readers. |

### createPayloadReader

```
fun createPayloadReader(streamType: Int, esInfo: TsPayloadReader.EsInfo!): TsPayloadReader?
```

Returns a[TsPayloadReader](https://developer.android.com/reference/kotlin/androidx/media3/extractor/ts/TsPayloadReader)for a given stream type and elementary stream information. May return null if the stream type is not supported.  

|                                                                Parameters                                                                 |
|-------------------------------------------------------------------------------------------------------------------------------------------|--------------------------------------------------------------------------|
| `streamType: `[Int](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html)                                                 | Stream type value as defined in the PMT entry or associated descriptors. |
| `esInfo: `[TsPayloadReader.EsInfo](https://developer.android.com/reference/kotlin/androidx/media3/extractor/ts/TsPayloadReader.EsInfo)`!` | Information associated to the elementary stream provided in the PMT.     |

|                                                      Returns                                                      |
|-------------------------------------------------------------------------------------------------------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| [TsPayloadReader](https://developer.android.com/reference/kotlin/androidx/media3/extractor/ts/TsPayloadReader)`?` | A[TsPayloadReader](https://developer.android.com/reference/kotlin/androidx/media3/extractor/ts/TsPayloadReader)for the packet stream carried by the provided pid, or`null`if the stream is not supported. |