Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 98127bca authored by Santiago Seifert's avatar Santiago Seifert
Browse files

Make MediaParser match ExoPlayer's sniffing order

Bug: 148940600
Test: CTS.
Change-Id: I7c867f476e1e0b9ef1d7fc9d6779b56b739f5a01
parent cb2d2ec7
Loading
Loading
Loading
Loading
+11 −9
Original line number Diff line number Diff line
@@ -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<>();