Ignoring flags FLAG_DETECT_ACCESS_UNITS, FLAG_ALLOW_NON_IDR_KEYFRAME
- 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
Assessment
This issue has not been assessed yet.