Merge "Defer extractor init until after sniff" into rvc-dev am: be0b165b6e am: 79f5400823

Change-Id: Ib8a78da9b4a6945f66b5ccd7a6190d069cfc6556
This commit is contained in:
Santiago Seifert
2020-04-24 17:12:41 +00:00
committed by Automerger Merge Worker

View File

@@ -856,6 +856,7 @@ public final class MediaParser {
private String mParserName;
private Extractor mExtractor;
private ExtractorInput mExtractorInput;
private boolean mPendingExtractorInit;
private long mPendingSeekPosition;
private long mPendingSeekTimeMicros;
private boolean mLoggedSchemeInitDataCreationException;
@@ -972,7 +973,7 @@ public final class MediaParser {
if (extractor.sniff(mExtractorInput)) {
mParserName = parserName;
mExtractor = extractor;
mExtractor.init(new ExtractorOutputAdapter());
mPendingExtractorInit = true;
break;
}
} catch (EOFException e) {
@@ -988,13 +989,17 @@ public final class MediaParser {
}
}
if (mPendingExtractorInit) {
mExtractor.init(new ExtractorOutputAdapter());
mPendingExtractorInit = false;
}
if (isPendingSeek()) {
mExtractor.seek(mPendingSeekPosition, mPendingSeekTimeMicros);
removePendingSeek();
}
mPositionHolder.position = seekableInputReader.getPosition();
int result = 0;
int result;
try {
result = mExtractor.read(mExtractorInput, mPositionHolder);
} catch (ParserException e) {