CrackMe.apk
Download file
package com.google.android.exoplayer2.source;
import android.os.Looper;
import com.google.android.exoplayer2.C;
import com.google.android.exoplayer2.MediaItem;
import com.google.android.exoplayer2.analytics.PlayerId;
import com.google.android.exoplayer2.drm.DefaultDrmSessionManagerProvider;
import com.google.android.exoplayer2.drm.DrmSessionManager;
import com.google.android.exoplayer2.drm.DrmSessionManagerProvider;
import com.google.android.exoplayer2.extractor.DefaultExtractorsFactory;
import com.google.android.exoplayer2.extractor.ExtractorsFactory;
import com.google.android.exoplayer2.source.MediaSource;
import com.google.android.exoplayer2.source.ProgressiveMediaExtractor;
import com.google.android.exoplayer2.source.ProgressiveMediaPeriod;
import com.google.android.exoplayer2.upstream.Allocator;
import com.google.android.exoplayer2.upstream.DataSource;
import com.google.android.exoplayer2.upstream.DefaultLoadErrorHandlingPolicy;
import com.google.android.exoplayer2.upstream.LoadErrorHandlingPolicy;
import com.google.android.exoplayer2.upstream.TransferListener;
import com.google.android.exoplayer2.util.Assertions;
public final class ProgressiveMediaSource extends BaseMediaSource implements ProgressiveMediaPeriod.Listener {
public static final int DEFAULT_LOADING_CHECK_INTERVAL_BYTES = 1048576;
private final int continueLoadingCheckIntervalBytes;
private final DataSource.Factory dataSourceFactory;
private final DrmSessionManager drmSessionManager;
private final LoadErrorHandlingPolicy loadableLoadErrorHandlingPolicy;
private final MediaItem.LocalConfiguration localConfiguration;
private final MediaItem mediaItem;
private final ProgressiveMediaExtractor.Factory progressiveMediaExtractorFactory;
private long timelineDurationUs;
private boolean timelineIsLive;
private boolean timelineIsPlaceholder;
private boolean timelineIsSeekable;
private TransferListener transferListener;
public void maybeThrowSourceInfoRefreshError() {
}
public static final class Factory implements MediaSourceFactory {
private int continueLoadingCheckIntervalBytes;
private String customCacheKey;
private final DataSource.Factory dataSourceFactory;
private DrmSessionManagerProvider drmSessionManagerProvider;
private LoadErrorHandlingPolicy loadErrorHandlingPolicy;
private ProgressiveMediaExtractor.Factory progressiveMediaExtractorFactory;
private Object tag;
public int[] getSupportedTypes() {
return new int[]{4};
}
public Factory(DataSource.Factory factory) {
this(factory, (ExtractorsFactory) new DefaultExtractorsFactory());
}
public Factory(DataSource.Factory factory, ExtractorsFactory extractorsFactory) {
this(factory, (ProgressiveMediaExtractor.Factory) new ProgressiveMediaSource$Factory$$ExternalSyntheticLambda0(extractorsFactory));
}
static /* synthetic */ ProgressiveMediaExtractor lambda$new$0(ExtractorsFactory extractorsFactory, PlayerId playerId) {
return new BundledExtractorsAdapter(extractorsFactory);
}
public Factory(DataSource.Factory factory, ProgressiveMediaExtractor.Factory factory2) {
this(factory, factory2, new DefaultDrmSessionManagerProvider(), new DefaultLoadErrorHandlingPolicy(), 1048576);
}
public Factory(DataSource.Factory factory, ProgressiveMediaExtractor.Factory factory2, DrmSessionManagerProvider drmSessionManagerProvider2, LoadErrorHandlingPolicy loadErrorHandlingPolicy2, int i) {
this.dataSourceFactory = factory;
this.progressiveMediaExtractorFactory = factory2;
this.drmSessionManagerProvider = drmSessionManagerProvider2;
this.loadErrorHandlingPolicy = loadErrorHandlingPolicy2;
this.continueLoadingCheckIntervalBytes = i;
}
public Factory setLoadErrorHandlingPolicy(LoadErrorHandlingPolicy loadErrorHandlingPolicy2) {
this.loadErrorHandlingPolicy = (LoadErrorHandlingPolicy) Assertions.checkNotNull(loadErrorHandlingPolicy2, "MediaSource.Factory#setLoadErrorHandlingPolicy no longer handles null by instantiating a new DefaultLoadErrorHandlingPolicy. Explicitly construct and pass an instance in order to retain the old behavior.");
return this;
}
public Factory setContinueLoadingCheckIntervalBytes(int i) {
this.continueLoadingCheckIntervalBytes = i;
return this;
}
public Factory setDrmSessionManagerProvider(DrmSessionManagerProvider drmSessionManagerProvider2) {
this.drmSessionManagerProvider = (DrmSessionManagerProvider) Assertions.checkNotNull(drmSessionManagerProvider2, "MediaSource.Factory#setDrmSessionManagerProvider no longer handles null by instantiating a new DefaultDrmSessionManagerProvider. Explicitly construct and pass an instance in order to retain the old behavior.");
return this;
}
public ProgressiveMediaSource createMediaSource(MediaItem mediaItem) {
Assertions.checkNotNull(mediaItem.localConfiguration);
boolean z = true;
boolean z2 = mediaItem.localConfiguration.tag == null && this.tag != null;
if (mediaItem.localConfiguration.customCacheKey != null || this.customCacheKey == null) {
z = false;
}
if (z2 && z) {
mediaItem = mediaItem.buildUpon().setTag(this.tag).setCustomCacheKey(this.customCacheKey).build();
} else if (z2) {
mediaItem = mediaItem.buildUpon().setTag(this.tag).build();
} else if (z) {
mediaItem = mediaItem.buildUpon().setCustomCacheKey(this.customCacheKey).build();
}
MediaItem mediaItem2 = mediaItem;
return new ProgressiveMediaSource(mediaItem2, this.dataSourceFactory, this.progressiveMediaExtractorFactory, this.drmSessionManagerProvider.get(mediaItem2), this.loadErrorHandlingPolicy, this.continueLoadingCheckIntervalBytes);
}
}
private ProgressiveMediaSource(MediaItem mediaItem2, DataSource.Factory factory, ProgressiveMediaExtractor.Factory factory2, DrmSessionManager drmSessionManager2, LoadErrorHandlingPolicy loadErrorHandlingPolicy, int i) {
this.localConfiguration = (MediaItem.LocalConfiguration) Assertions.checkNotNull(mediaItem2.localConfiguration);
this.mediaItem = mediaItem2;
this.dataSourceFactory = factory;
this.progressiveMediaExtractorFactory = factory2;
this.drmSessionManager = drmSessionManager2;
this.loadableLoadErrorHandlingPolicy = loadErrorHandlingPolicy;
this.continueLoadingCheckIntervalBytes = i;
this.timelineIsPlaceholder = true;
this.timelineDurationUs = C.TIME_UNSET;
}
public MediaItem getMediaItem() {
return this.mediaItem;
}
/* access modifiers changed from: protected */
public void prepareSourceInternal(TransferListener transferListener2) {
this.transferListener = transferListener2;
this.drmSessionManager.prepare();
this.drmSessionManager.setPlayer((Looper) Assertions.checkNotNull(Looper.myLooper()), getPlayerId());
notifySourceInfoRefreshed();
}
public MediaPeriod createPeriod(MediaSource.MediaPeriodId mediaPeriodId, Allocator allocator, long j) {
DataSource createDataSource = this.dataSourceFactory.createDataSource();
TransferListener transferListener2 = this.transferListener;
if (transferListener2 != null) {
createDataSource.addTransferListener(transferListener2);
}
return new ProgressiveMediaPeriod(this.localConfiguration.uri, createDataSource, this.progressiveMediaExtractorFactory.createProgressiveMediaExtractor(getPlayerId()), this.drmSessionManager, createDrmEventDispatcher(mediaPeriodId), this.loadableLoadErrorHandlingPolicy, createEventDispatcher(mediaPeriodId), this, allocator, this.localConfiguration.customCacheKey, this.continueLoadingCheckIntervalBytes);
}
public void releasePeriod(MediaPeriod mediaPeriod) {
((ProgressiveMediaPeriod) mediaPeriod).release();
}
/* access modifiers changed from: protected */
public void releaseSourceInternal() {
this.drmSessionManager.release();
}
public void onSourceInfoRefreshed(long j, boolean z, boolean z2) {
if (j == C.TIME_UNSET) {
j = this.timelineDurationUs;
}
if (this.timelineIsPlaceholder || this.timelineDurationUs != j || this.timelineIsSeekable != z || this.timelineIsLive != z2) {
this.timelineDurationUs = j;
this.timelineIsSeekable = z;
this.timelineIsLive = z2;
this.timelineIsPlaceholder = false;
notifySourceInfoRefreshed();
}
}
/* JADX WARNING: type inference failed for: r0v2, types: [com.google.android.exoplayer2.source.ProgressiveMediaSource$1] */
/* JADX WARNING: Multi-variable type inference failed */
/* Code decompiled incorrectly, please refer to instructions dump. */
private void notifySourceInfoRefreshed() {
/*
r9 = this;
com.google.android.exoplayer2.source.SinglePeriodTimeline r8 = new com.google.android.exoplayer2.source.SinglePeriodTimeline
long r1 = r9.timelineDurationUs
boolean r3 = r9.timelineIsSeekable
boolean r5 = r9.timelineIsLive
com.google.android.exoplayer2.MediaItem r7 = r9.mediaItem
r4 = 0
r6 = 0
r0 = r8
r0.<init>((long) r1, (boolean) r3, (boolean) r4, (boolean) r5, (java.lang.Object) r6, (com.google.android.exoplayer2.MediaItem) r7)
boolean r0 = r9.timelineIsPlaceholder
if (r0 == 0) goto L_0x001a
com.google.android.exoplayer2.source.ProgressiveMediaSource$1 r0 = new com.google.android.exoplayer2.source.ProgressiveMediaSource$1
r0.<init>(r9, r8)
r8 = r0
L_0x001a:
r9.refreshSourceInfo(r8)
return
*/
throw new UnsupportedOperationException("Method not decompiled: com.google.android.exoplayer2.source.ProgressiveMediaSource.notifySourceInfoRefreshed():void");
}
}
Download file