CrackMe.apk

Download file
    package com.google.android.exoplayer2.source.hls;

import com.google.android.exoplayer2.Format;
import com.google.android.exoplayer2.extractor.Extractor;
import com.google.android.exoplayer2.extractor.ExtractorInput;
import com.google.android.exoplayer2.extractor.ExtractorOutput;
import com.google.android.exoplayer2.extractor.PositionHolder;
import com.google.android.exoplayer2.extractor.mp3.Mp3Extractor;
import com.google.android.exoplayer2.extractor.mp4.FragmentedMp4Extractor;
import com.google.android.exoplayer2.extractor.ts.Ac3Extractor;
import com.google.android.exoplayer2.extractor.ts.Ac4Extractor;
import com.google.android.exoplayer2.extractor.ts.AdtsExtractor;
import com.google.android.exoplayer2.extractor.ts.TsExtractor;
import com.google.android.exoplayer2.util.Assertions;
import com.google.android.exoplayer2.util.TimestampAdjuster;
import java.io.IOException;

public final class BundledHlsMediaChunkExtractor implements HlsMediaChunkExtractor {
    private static final PositionHolder POSITION_HOLDER = new PositionHolder();
    final Extractor extractor;
    private final Format multivariantPlaylistFormat;
    private final TimestampAdjuster timestampAdjuster;

    public BundledHlsMediaChunkExtractor(Extractor extractor2, Format format, TimestampAdjuster timestampAdjuster2) {
        this.extractor = extractor2;
        this.multivariantPlaylistFormat = format;
        this.timestampAdjuster = timestampAdjuster2;
    }

    public void init(ExtractorOutput extractorOutput) {
        this.extractor.init(extractorOutput);
    }

    public boolean read(ExtractorInput extractorInput) throws IOException {
        return this.extractor.read(extractorInput, POSITION_HOLDER) == 0;
    }

    public boolean isPackedAudioExtractor() {
        Extractor extractor2 = this.extractor;
        return (extractor2 instanceof AdtsExtractor) || (extractor2 instanceof Ac3Extractor) || (extractor2 instanceof Ac4Extractor) || (extractor2 instanceof Mp3Extractor);
    }

    public boolean isReusable() {
        Extractor extractor2 = this.extractor;
        return (extractor2 instanceof TsExtractor) || (extractor2 instanceof FragmentedMp4Extractor);
    }

    public HlsMediaChunkExtractor recreate() {
        Extractor extractor2;
        Assertions.checkState(!isReusable());
        Extractor extractor3 = this.extractor;
        if (extractor3 instanceof WebvttExtractor) {
            extractor2 = new WebvttExtractor(this.multivariantPlaylistFormat.language, this.timestampAdjuster);
        } else if (extractor3 instanceof AdtsExtractor) {
            extractor2 = new AdtsExtractor();
        } else if (extractor3 instanceof Ac3Extractor) {
            extractor2 = new Ac3Extractor();
        } else if (extractor3 instanceof Ac4Extractor) {
            extractor2 = new Ac4Extractor();
        } else if (extractor3 instanceof Mp3Extractor) {
            extractor2 = new Mp3Extractor();
        } else {
            throw new IllegalStateException("Unexpected extractor type for recreation: " + this.extractor.getClass().getSimpleName());
        }
        return new BundledHlsMediaChunkExtractor(extractor2, this.multivariantPlaylistFormat, this.timestampAdjuster);
    }

    public void onTruncatedSegmentParsed() {
        this.extractor.seek(0, 0);
    }
}
    
Download file