when we select extractor, we makes a pass through all of the available extractor util we find the
correct extractor. I find the sniff of MatroskaExtractor will cost 25ms.
80% of our videos are in MP4 format.
Can I put the Mp4Extractor as the first place.
public Extractor selectExtractor(ExtractorInput input, Uri uri)
throws IOException, InterruptedException {
for (Extractor extractor : extractors) {
try {
if (extractor.sniff(input)) {
this.extractor = extractor;
break;
}
} catch (EOFException e) {
// Do nothing.
} finally {
input.resetPeekPosition();
}
}
}
public synchronized Extractor[] createExtractors() {
Extractor[] extractors = new Extractor[FLAC_EXTRACTOR_CONSTRUCTOR == null ? 12 : 13];
extractors[0] = new MatroskaExtractor(matroskaFlags);
extractors[1] = new FragmentedMp4Extractor(fragmentedMp4Flags);
extractors[2] = new Mp4Extractor(mp4Flags);
extractors[3] = new Mp3Extractor(mp3Flags);
extractors[4] = new AdtsExtractor();
extractors[5] = new Ac3Extractor();
extractors[6] = new TsExtractor(tsMode, tsFlags);
extractors[7] = new FlvExtractor();
extractors[8] = new OggExtractor();
extractors[9] = new PsExtractor();
extractors[10] = new WavExtractor();
extractors[11] = new AmrExtractor();
if (FLAC_EXTRACTOR_CONSTRUCTOR != null) {
try {
extractors[12] = FLAC_EXTRACTOR_CONSTRUCTOR.newInstance();
} catch (Exception e) {
// Should never happen.
throw new IllegalStateException("Unexpected error creating FLAC extractor", e);
}
}
return extractors;
}
when we select extractor, we makes a pass through all of the available extractor util we find the
correct extractor. I find the sniff of MatroskaExtractor will cost 25ms.
80% of our videos are in MP4 format.
Can I put the Mp4Extractor as the first place.