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

Commit 3f1cc774 authored by Santiago Seifert's avatar Santiago Seifert Committed by Automerger Merge Worker
Browse files

Merge "Defer extractor init until after sniff" into rvc-dev am: be0b165b am: ed43500b

Change-Id: I63d07c41f7a863d227a7c3ac950dacbf034f90a2
parents 692c95b2 ed43500b
Loading
Loading
Loading
Loading
+7 −2
Original line number Original line Diff line number Diff line
@@ -856,6 +856,7 @@ public final class MediaParser {
    private String mParserName;
    private String mParserName;
    private Extractor mExtractor;
    private Extractor mExtractor;
    private ExtractorInput mExtractorInput;
    private ExtractorInput mExtractorInput;
    private boolean mPendingExtractorInit;
    private long mPendingSeekPosition;
    private long mPendingSeekPosition;
    private long mPendingSeekTimeMicros;
    private long mPendingSeekTimeMicros;
    private boolean mLoggedSchemeInitDataCreationException;
    private boolean mLoggedSchemeInitDataCreationException;
@@ -972,7 +973,7 @@ public final class MediaParser {
                        if (extractor.sniff(mExtractorInput)) {
                        if (extractor.sniff(mExtractorInput)) {
                            mParserName = parserName;
                            mParserName = parserName;
                            mExtractor = extractor;
                            mExtractor = extractor;
                            mExtractor.init(new ExtractorOutputAdapter());
                            mPendingExtractorInit = true;
                            break;
                            break;
                        }
                        }
                    } catch (EOFException e) {
                    } catch (EOFException e) {
@@ -988,13 +989,17 @@ public final class MediaParser {
            }
            }
        }
        }


        if (mPendingExtractorInit) {
            mExtractor.init(new ExtractorOutputAdapter());
            mPendingExtractorInit = false;
        }
        if (isPendingSeek()) {
        if (isPendingSeek()) {
            mExtractor.seek(mPendingSeekPosition, mPendingSeekTimeMicros);
            mExtractor.seek(mPendingSeekPosition, mPendingSeekTimeMicros);
            removePendingSeek();
            removePendingSeek();
        }
        }


        mPositionHolder.position = seekableInputReader.getPosition();
        mPositionHolder.position = seekableInputReader.getPosition();
        int result = 0;
        int result;
        try {
        try {
            result = mExtractor.read(mExtractorInput, mPositionHolder);
            result = mExtractor.read(mExtractorInput, mPositionHolder);
        } catch (ParserException e) {
        } catch (ParserException e) {