extensions/mmt/src/main/java/com/nextgenbroadcast/mmt/exoplayer2/ext/MMTMediaPeriod.java
public Extractor selectExtractor(ExtractorInput input, ExtractorOutput output, Uri uri)
                throws IOException, InterruptedException {
            if (extractor != null) {
                return extractor;
            }
            if (extractors.length == 1) {
                this.extractor = extractors[0];
            } else {
                for (Extractor extractor : extractors) {
                    try {
                        if (extractor.sniff(input)) {
                            this.extractor = extractor;
                            break;
                        }
                    } catch (EOFException e) {
                        // Do nothing.
                    } finally {
                        input.resetPeekPosition();
                    }
                }
                if (extractor == null) {
                    throw new UnrecognizedInputFormatException(
                            "None of the available extractors ("
                                    + Util.getCommaDelimitedSimpleClassNames(extractors)
                                    + ") could read the stream.",
                            uri);
                }
            }
            extractor.init(output);
            return extractor;
        }
/**
         * Returns an initialized extractor for reading {@code input}, and returns the same extractor on
         * later calls.
         *
         * @param input  The {@link ExtractorInput} from which data should be read.
         * @param output The {@link ExtractorOutput} that will be used to initialize the selected
         *               extractor.
         * @param uri    The {@link Uri} of the data.
         * @return An initialized extractor for reading {@code input}.
         * @throws UnrecognizedInputFormatException Thrown if the input format could not be detected.
         * @throws IOException                      Thrown if the input could not be read.
         * @throws InterruptedException             Thrown if the thread was interrupted.
         */
Returns an initialized extractor for reading  input, and returns the same extractor on
later calls.

@param input  The  ExtractorInput from which data should be read.
@param output The  ExtractorOutput that will be used to initialize the selected
extractor.
@param uri    The  Uri of the data.
@return An initialized extractor for reading  input.
@throws UnrecognizedInputFormatException Thrown if the input format could not be detected.
@throws IOException                      Thrown if the input could not be read.
@throws InterruptedException             Thrown if the thread was interrupted.
Returns an initialized extractor for reading input and returns the same extractor on later calls . @param input The ExtractorInput from which data should be read . @param output The ExtractorOutput that will be used to initialize the selected extractor . @param uri The Uri of the data . @return An initialized extractor for reading input . @throws UnrecognizedInputFormatException Thrown if the input format could not be detected . @throws IOException Thrown if the input could not be read . @throws InterruptedException Thrown if the thread was interrupted .
public Extractor selectExtractor(ExtractorInput input, ExtractorOutput output, Uri uri)
                throws IOException, InterruptedException {
            if (extractor != null) {
                return extractor;
            }
            if (extractors.length == 1) {
                this.extractor = extractors[0];
            } else {
                for (Extractor extractor : extractors) {
                    try {
                        if (extractor.sniff(input)) {
                            this.extractor = extractor;
                            break;
                        }
                    } catch (EOFException e) {
                    } finally {
                        input.resetPeekPosition();
                    }
                }
                if (extractor == null) {
                    throw new UnrecognizedInputFormatException(
                            "None of the available extractors ("
                                    + Util.getCommaDelimitedSimpleClassNames(extractors)
                                    + ") could read the stream.",
                            uri);
                }
            }
            extractor.init(output);
            return extractor;
        }
public Extractor selectExtractor ( ExtractorInput input , ExtractorOutput output , Uri uri ) throws IOException , InterruptedException { if ( extractor != null ) { return extractor ; } if ( extractors . length == 1 ) { this . extractor = extractors [ 0 ] ; } else { for ( Extractor extractor : extractors ) { try { if ( extractor . sniff ( input ) ) { this . extractor = extractor ; break ; } } catch ( EOFException e ) { } finally { input . resetPeekPosition ( ) ; } } if ( extractor == null ) { throw new UnrecognizedInputFormatException ( "None of the available extractors (" + Util . getCommaDelimitedSimpleClassNames ( extractors ) + ") could read the stream." , uri ) ; } } extractor . init ( output ) ; return extractor ; }
Returns an initialized extractor for reading {@code input}, and returns the same extractor on
 later calls.
Returns an initialized extractor for reading { @code input } and returns the same extractor on later calls .
// Do nothing.