diff options
| -rw-r--r-- | apex/media/framework/java/android/media/MediaParser.java | 20 |
1 files changed, 11 insertions, 9 deletions
diff --git a/apex/media/framework/java/android/media/MediaParser.java b/apex/media/framework/java/android/media/MediaParser.java index 11d3a6867ac3..566f4cdca6da 100644 --- a/apex/media/framework/java/android/media/MediaParser.java +++ b/apex/media/framework/java/android/media/MediaParser.java @@ -1114,20 +1114,22 @@ public final class MediaParser { static { // Using a LinkedHashMap to keep the insertion order when iterating over the keys. LinkedHashMap<String, ExtractorFactory> extractorFactoriesByName = new LinkedHashMap<>(); - extractorFactoriesByName.put("exo.Ac3Parser", Ac3Extractor::new); - extractorFactoriesByName.put("exo.Ac4Parser", Ac4Extractor::new); - extractorFactoriesByName.put("exo.AdtsParser", AdtsExtractor::new); - extractorFactoriesByName.put("exo.AmrParser", AmrExtractor::new); - extractorFactoriesByName.put("exo.FlacParser", FlacExtractor::new); - extractorFactoriesByName.put("exo.FlvParser", FlvExtractor::new); - extractorFactoriesByName.put("exo.FragmentedMp4Parser", FragmentedMp4Extractor::new); + // Parsers are ordered to match ExoPlayer's DefaultExtractorsFactory extractor ordering, + // which in turn aims to minimize the chances of incorrect extractor selections. extractorFactoriesByName.put("exo.MatroskaParser", MatroskaExtractor::new); - extractorFactoriesByName.put("exo.Mp3Parser", Mp3Extractor::new); + extractorFactoriesByName.put("exo.FragmentedMp4Parser", FragmentedMp4Extractor::new); extractorFactoriesByName.put("exo.Mp4Parser", Mp4Extractor::new); + extractorFactoriesByName.put("exo.Mp3Parser", Mp3Extractor::new); + extractorFactoriesByName.put("exo.AdtsParser", AdtsExtractor::new); + extractorFactoriesByName.put("exo.Ac3Parser", Ac3Extractor::new); + extractorFactoriesByName.put("exo.TsParser", TsExtractor::new); + extractorFactoriesByName.put("exo.FlvParser", FlvExtractor::new); extractorFactoriesByName.put("exo.OggParser", OggExtractor::new); extractorFactoriesByName.put("exo.PsParser", PsExtractor::new); - extractorFactoriesByName.put("exo.TsParser", TsExtractor::new); extractorFactoriesByName.put("exo.WavParser", WavExtractor::new); + extractorFactoriesByName.put("exo.AmrParser", AmrExtractor::new); + extractorFactoriesByName.put("exo.Ac4Parser", Ac4Extractor::new); + extractorFactoriesByName.put("exo.FlacParser", FlacExtractor::new); EXTRACTOR_FACTORIES_BY_NAME = Collections.unmodifiableMap(extractorFactoriesByName); HashMap<String, Class> expectedTypeByParameterName = new HashMap<>(); |