diff options
author | Santiago Seifert <aquilescanta@google.com> | 2020-04-15 18:24:51 +0100 |
---|---|---|
committer | Santiago Seifert <aquilescanta@google.com> | 2020-04-15 18:24:51 +0100 |
commit | c4afc400a80115ff9a07a97b92521dc6312b261c (patch) | |
tree | 1ab9d06b23391c6b57f15c7e3441c213aab4dae7 /apex/media/framework | |
parent | 3eea61dd1f1e9e2e10dc5587281bef8487854306 (diff) |
Fix extractor creation
Missing MP4 flags and creation by name parameters.
Bug: 154120292
Test: atest CtsMediaParserTestCases
Change-Id: I19b56b6f40a821ad9fa14a6e03c83206ce867dfe
Diffstat (limited to 'apex/media/framework')
-rw-r--r-- | apex/media/framework/java/android/media/MediaParser.java | 14 |
1 files changed, 7 insertions, 7 deletions
diff --git a/apex/media/framework/java/android/media/MediaParser.java b/apex/media/framework/java/android/media/MediaParser.java index b3c82bc6bebf..073fddf8f615 100644 --- a/apex/media/framework/java/android/media/MediaParser.java +++ b/apex/media/framework/java/android/media/MediaParser.java @@ -850,7 +850,7 @@ public final class MediaParser { private final InputReadingDataSource mDataSource; private final DataReaderAdapter mScratchDataReaderAdapter; private final ParsableByteArrayAdapter mScratchParsableByteArrayAdapter; - private String mExtractorName; + private String mParserName; private Extractor mExtractor; private ExtractorInput mExtractorInput; private long mPendingSeekPosition; @@ -924,7 +924,7 @@ public final class MediaParser { @NonNull @ParserName public String getParserName() { - return mExtractorName; + return mParserName; } /** @@ -958,15 +958,15 @@ public final class MediaParser { // TODO: Apply parameters when creating extractor instances. if (mExtractor == null) { - if (!mExtractorName.equals(PARSER_NAME_UNKNOWN)) { - mExtractor = EXTRACTOR_FACTORIES_BY_NAME.get(mExtractorName).createInstance(); + if (!mParserName.equals(PARSER_NAME_UNKNOWN)) { + mExtractor = createExtractor(mParserName); mExtractor.init(new ExtractorOutputAdapter()); } else { for (String parserName : mParserNamesPool) { Extractor extractor = createExtractor(parserName); try { if (extractor.sniff(mExtractorInput)) { - mExtractorName = parserName; + mParserName = parserName; mExtractor = extractor; mExtractor.init(new ExtractorOutputAdapter()); break; @@ -1044,7 +1044,7 @@ public final class MediaParser { mParserParameters = new HashMap<>(); mOutputConsumer = outputConsumer; mParserNamesPool = parserNamesPool; - mExtractorName = sniff ? PARSER_NAME_UNKNOWN : parserNamesPool[0]; + mParserName = sniff ? PARSER_NAME_UNKNOWN : parserNamesPool[0]; mPositionHolder = new PositionHolder(); mDataSource = new InputReadingDataSource(); removePendingSeek(); @@ -1090,7 +1090,7 @@ public final class MediaParser { getBooleanParameter(PARAMETER_MP4_IGNORE_EDIT_LISTS) ? Mp4Extractor.FLAG_WORKAROUND_IGNORE_EDIT_LISTS : 0; - return new Mp4Extractor(); + return new Mp4Extractor(flags); case PARSER_NAME_MP3: flags |= getBooleanParameter(PARAMETER_MP3_DISABLE_ID3) |