CrackMe.apk
Download file
package com.google.android.exoplayer2.source.chunk;
import com.google.android.exoplayer2.C;
import com.google.android.exoplayer2.Format;
import com.google.android.exoplayer2.extractor.DefaultExtractorInput;
import com.google.android.exoplayer2.source.chunk.ChunkExtractor;
import com.google.android.exoplayer2.upstream.DataSource;
import com.google.android.exoplayer2.upstream.DataSourceUtil;
import com.google.android.exoplayer2.upstream.DataSpec;
import java.io.IOException;
public final class InitializationChunk extends Chunk {
private final ChunkExtractor chunkExtractor;
private volatile boolean loadCanceled;
private long nextLoadPosition;
private ChunkExtractor.TrackOutputProvider trackOutputProvider;
public InitializationChunk(DataSource dataSource, DataSpec dataSpec, Format format, int i, Object obj, ChunkExtractor chunkExtractor2) {
super(dataSource, dataSpec, 2, format, i, obj, C.TIME_UNSET, C.TIME_UNSET);
this.chunkExtractor = chunkExtractor2;
}
public void init(ChunkExtractor.TrackOutputProvider trackOutputProvider2) {
this.trackOutputProvider = trackOutputProvider2;
}
public void cancelLoad() {
this.loadCanceled = true;
}
public void load() throws IOException {
DefaultExtractorInput defaultExtractorInput;
if (this.nextLoadPosition == 0) {
this.chunkExtractor.init(this.trackOutputProvider, C.TIME_UNSET, C.TIME_UNSET);
}
try {
DataSpec subrange = this.dataSpec.subrange(this.nextLoadPosition);
defaultExtractorInput = new DefaultExtractorInput(this.dataSource, subrange.position, this.dataSource.open(subrange));
do {
if (this.loadCanceled || !this.chunkExtractor.read(defaultExtractorInput)) {
break;
}
break;
break;
} while (!this.chunkExtractor.read(defaultExtractorInput));
break;
this.nextLoadPosition = defaultExtractorInput.getPosition() - this.dataSpec.position;
DataSourceUtil.closeQuietly(this.dataSource);
} catch (Throwable th) {
DataSourceUtil.closeQuietly(this.dataSource);
throw th;
}
}
}
Download file