CrackMe.apk
Download file
package com.google.android.exoplayer2.extractor.ts;
import com.google.android.exoplayer2.Format;
import com.google.android.exoplayer2.extractor.CeaUtil;
import com.google.android.exoplayer2.extractor.ExtractorOutput;
import com.google.android.exoplayer2.extractor.TrackOutput;
import com.google.android.exoplayer2.extractor.ts.TsPayloadReader;
import com.google.android.exoplayer2.util.Assertions;
import com.google.android.exoplayer2.util.MimeTypes;
import com.google.android.exoplayer2.util.ParsableByteArray;
import java.util.List;
public final class SeiReader {
private final List<Format> closedCaptionFormats;
private final TrackOutput[] outputs;
public SeiReader(List<Format> list) {
this.closedCaptionFormats = list;
this.outputs = new TrackOutput[list.size()];
}
public void createTracks(ExtractorOutput extractorOutput, TsPayloadReader.TrackIdGenerator trackIdGenerator) {
for (int i = 0; i < this.outputs.length; i++) {
trackIdGenerator.generateNewId();
TrackOutput track = extractorOutput.track(trackIdGenerator.getTrackId(), 3);
Format format = this.closedCaptionFormats.get(i);
String str = format.sampleMimeType;
boolean z = MimeTypes.APPLICATION_CEA608.equals(str) || MimeTypes.APPLICATION_CEA708.equals(str);
Assertions.checkArgument(z, "Invalid closed caption mime type provided: " + str);
track.format(new Format.Builder().setId(format.id != null ? format.id : trackIdGenerator.getFormatId()).setSampleMimeType(str).setSelectionFlags(format.selectionFlags).setLanguage(format.language).setAccessibilityChannel(format.accessibilityChannel).setInitializationData(format.initializationData).build());
this.outputs[i] = track;
}
}
public void consume(long j, ParsableByteArray parsableByteArray) {
CeaUtil.consume(j, parsableByteArray, this.outputs);
}
}
Download file