google / google/ExoPlayer

Ignoring flags FLAG_DETECT_ACCESS_UNITS, FLAG_ALLOW_NON_IDR_KEYFRAME

Open
#10,659 1 comment 0 reactions 1 assignee Claimed by @rohitjoins View on GitHub
needs triage question
Dominant language
Java
Stars
21.9k
Forks
6k
PR merge metrics
No merged PRs in 30d

Description

Hi,
In 2.18.1 when trying to turn on the flags FLAG_DETECT_ACCESS_UNITS, FLAG_ALLOW_NON_IDR_KEYFRAMES they are ignored by the creation of H264Reader (I see it in debugging mode)

DefaultTsPayloadReaderFactory.java
line 172:
```
case TsExtractor.TS_STREAM_TYPE_H264:
return isSet(FLAG_IGNORE_H264_STREAM)
? null
: new PesReader(
new H264Reader(
buildSeiReader(esInfo),
isSet(FLAG_ALLOW_NON_IDR_KEYFRAMES), <-ignioring!!!
isSet(FLAG_DETECT_ACCESS_UNITS))); <-ignioring!!!
```

Use option:

```
DefaultExtractorsFactory extractorsFactory = new DefaultExtractorsFactory()
.setTsExtractorFlags(DefaultTsPayloadReaderFactory.FLAG_DETECT_ACCESS_UNITS | DefaultTsPayloadReaderFactory.FLAG_ALLOW_NON_IDR_KEYFRAMES);

mPlayer = new ExoPlayer.Builder(mContext, renderersFactory)
.setMediaSourceFactory(new DefaultMediaSourceFactory(mDataSourceFactory, extractorsFactory))
...
.build();
```

In this regard, the question, are FLAG_DETECT_ACCESS_UNITS, FLAG_ALLOW_NON_IDR_KEYFRAMES flags are now not supported?

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.