- 28,932 files - Full Java source code - Smali files - Resources Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
374 lines
16 KiB
Java
374 lines
16 KiB
Java
package com.mbridge.msdk.playercommon.exoplayer2.source;
|
|
|
|
import com.mbridge.msdk.playercommon.exoplayer2.C;
|
|
import com.mbridge.msdk.playercommon.exoplayer2.Format;
|
|
import com.mbridge.msdk.playercommon.exoplayer2.FormatHolder;
|
|
import com.mbridge.msdk.playercommon.exoplayer2.SeekParameters;
|
|
import com.mbridge.msdk.playercommon.exoplayer2.decoder.DecoderInputBuffer;
|
|
import com.mbridge.msdk.playercommon.exoplayer2.source.MediaPeriod;
|
|
import com.mbridge.msdk.playercommon.exoplayer2.trackselection.TrackSelection;
|
|
import com.mbridge.msdk.playercommon.exoplayer2.util.Assertions;
|
|
import com.mbridge.msdk.playercommon.exoplayer2.util.MimeTypes;
|
|
import com.mbridge.msdk.playercommon.exoplayer2.util.Util;
|
|
import java.io.IOException;
|
|
|
|
/* loaded from: classes4.dex */
|
|
public final class ClippingMediaPeriod implements MediaPeriod, MediaPeriod.Callback {
|
|
private MediaPeriod.Callback callback;
|
|
long endUs;
|
|
public final MediaPeriod mediaPeriod;
|
|
private long pendingInitialDiscontinuityPositionUs;
|
|
private ClippingSampleStream[] sampleStreams = new ClippingSampleStream[0];
|
|
long startUs;
|
|
|
|
public final boolean isPendingInitialDiscontinuity() {
|
|
return this.pendingInitialDiscontinuityPositionUs != C.TIME_UNSET;
|
|
}
|
|
|
|
public final void updateClipping(long j, long j2) {
|
|
this.startUs = j;
|
|
this.endUs = j2;
|
|
}
|
|
|
|
public ClippingMediaPeriod(MediaPeriod mediaPeriod, boolean z, long j, long j2) {
|
|
this.mediaPeriod = mediaPeriod;
|
|
this.pendingInitialDiscontinuityPositionUs = z ? j : C.TIME_UNSET;
|
|
this.startUs = j;
|
|
this.endUs = j2;
|
|
}
|
|
|
|
@Override // com.mbridge.msdk.playercommon.exoplayer2.source.MediaPeriod
|
|
public final void prepare(MediaPeriod.Callback callback, long j) {
|
|
this.callback = callback;
|
|
this.mediaPeriod.prepare(this, j);
|
|
}
|
|
|
|
@Override // com.mbridge.msdk.playercommon.exoplayer2.source.MediaPeriod
|
|
public final void maybeThrowPrepareError() throws IOException {
|
|
this.mediaPeriod.maybeThrowPrepareError();
|
|
}
|
|
|
|
@Override // com.mbridge.msdk.playercommon.exoplayer2.source.MediaPeriod
|
|
public final TrackGroupArray getTrackGroups() {
|
|
return this.mediaPeriod.getTrackGroups();
|
|
}
|
|
|
|
/* JADX WARN: Code restructure failed: missing block: B:25:0x005e, code lost:
|
|
|
|
if (r2 > r4) goto L26;
|
|
*/
|
|
/* JADX WARN: Removed duplicated region for block: B:20:0x004e */
|
|
/* JADX WARN: Removed duplicated region for block: B:30:0x006a */
|
|
@Override // com.mbridge.msdk.playercommon.exoplayer2.source.MediaPeriod
|
|
/*
|
|
Code decompiled incorrectly, please refer to instructions dump.
|
|
To view partially-correct add '--show-bad-code' argument
|
|
*/
|
|
public final long selectTracks(com.mbridge.msdk.playercommon.exoplayer2.trackselection.TrackSelection[] r13, boolean[] r14, com.mbridge.msdk.playercommon.exoplayer2.source.SampleStream[] r15, boolean[] r16, long r17) {
|
|
/*
|
|
r12 = this;
|
|
r0 = r12
|
|
r1 = r15
|
|
int r2 = r1.length
|
|
com.mbridge.msdk.playercommon.exoplayer2.source.ClippingMediaPeriod$ClippingSampleStream[] r2 = new com.mbridge.msdk.playercommon.exoplayer2.source.ClippingMediaPeriod.ClippingSampleStream[r2]
|
|
r0.sampleStreams = r2
|
|
int r2 = r1.length
|
|
com.mbridge.msdk.playercommon.exoplayer2.source.SampleStream[] r9 = new com.mbridge.msdk.playercommon.exoplayer2.source.SampleStream[r2]
|
|
r10 = 0
|
|
r2 = r10
|
|
Lc:
|
|
int r3 = r1.length
|
|
r11 = 0
|
|
if (r2 >= r3) goto L21
|
|
com.mbridge.msdk.playercommon.exoplayer2.source.ClippingMediaPeriod$ClippingSampleStream[] r3 = r0.sampleStreams
|
|
r4 = r1[r2]
|
|
com.mbridge.msdk.playercommon.exoplayer2.source.ClippingMediaPeriod$ClippingSampleStream r4 = (com.mbridge.msdk.playercommon.exoplayer2.source.ClippingMediaPeriod.ClippingSampleStream) r4
|
|
r3[r2] = r4
|
|
if (r4 == 0) goto L1c
|
|
com.mbridge.msdk.playercommon.exoplayer2.source.SampleStream r11 = r4.childStream
|
|
L1c:
|
|
r9[r2] = r11
|
|
int r2 = r2 + 1
|
|
goto Lc
|
|
L21:
|
|
com.mbridge.msdk.playercommon.exoplayer2.source.MediaPeriod r2 = r0.mediaPeriod
|
|
r3 = r13
|
|
r4 = r14
|
|
r5 = r9
|
|
r6 = r16
|
|
r7 = r17
|
|
long r2 = r2.selectTracks(r3, r4, r5, r6, r7)
|
|
boolean r4 = r12.isPendingInitialDiscontinuity()
|
|
if (r4 == 0) goto L43
|
|
long r4 = r0.startUs
|
|
int r6 = (r17 > r4 ? 1 : (r17 == r4 ? 0 : -1))
|
|
if (r6 != 0) goto L43
|
|
r6 = r13
|
|
boolean r4 = shouldKeepInitialDiscontinuity(r4, r13)
|
|
if (r4 == 0) goto L43
|
|
r4 = r2
|
|
goto L48
|
|
L43:
|
|
r4 = -9223372036854775807(0x8000000000000001, double:-4.9E-324)
|
|
L48:
|
|
r0.pendingInitialDiscontinuityPositionUs = r4
|
|
int r4 = (r2 > r17 ? 1 : (r2 == r17 ? 0 : -1))
|
|
if (r4 == 0) goto L63
|
|
long r4 = r0.startUs
|
|
int r4 = (r2 > r4 ? 1 : (r2 == r4 ? 0 : -1))
|
|
if (r4 < 0) goto L61
|
|
long r4 = r0.endUs
|
|
r6 = -9223372036854775808
|
|
int r6 = (r4 > r6 ? 1 : (r4 == r6 ? 0 : -1))
|
|
if (r6 == 0) goto L63
|
|
int r4 = (r2 > r4 ? 1 : (r2 == r4 ? 0 : -1))
|
|
if (r4 > 0) goto L61
|
|
goto L63
|
|
L61:
|
|
r4 = r10
|
|
goto L64
|
|
L63:
|
|
r4 = 1
|
|
L64:
|
|
com.mbridge.msdk.playercommon.exoplayer2.util.Assertions.checkState(r4)
|
|
L67:
|
|
int r4 = r1.length
|
|
if (r10 >= r4) goto L91
|
|
r4 = r9[r10]
|
|
if (r4 != 0) goto L73
|
|
com.mbridge.msdk.playercommon.exoplayer2.source.ClippingMediaPeriod$ClippingSampleStream[] r4 = r0.sampleStreams
|
|
r4[r10] = r11
|
|
goto L88
|
|
L73:
|
|
r5 = r1[r10]
|
|
if (r5 == 0) goto L7f
|
|
com.mbridge.msdk.playercommon.exoplayer2.source.ClippingMediaPeriod$ClippingSampleStream[] r5 = r0.sampleStreams
|
|
r5 = r5[r10]
|
|
com.mbridge.msdk.playercommon.exoplayer2.source.SampleStream r5 = r5.childStream
|
|
if (r5 == r4) goto L88
|
|
L7f:
|
|
com.mbridge.msdk.playercommon.exoplayer2.source.ClippingMediaPeriod$ClippingSampleStream[] r5 = r0.sampleStreams
|
|
com.mbridge.msdk.playercommon.exoplayer2.source.ClippingMediaPeriod$ClippingSampleStream r6 = new com.mbridge.msdk.playercommon.exoplayer2.source.ClippingMediaPeriod$ClippingSampleStream
|
|
r6.<init>(r4)
|
|
r5[r10] = r6
|
|
L88:
|
|
com.mbridge.msdk.playercommon.exoplayer2.source.ClippingMediaPeriod$ClippingSampleStream[] r4 = r0.sampleStreams
|
|
r4 = r4[r10]
|
|
r1[r10] = r4
|
|
int r10 = r10 + 1
|
|
goto L67
|
|
L91:
|
|
return r2
|
|
*/
|
|
throw new UnsupportedOperationException("Method not decompiled: com.mbridge.msdk.playercommon.exoplayer2.source.ClippingMediaPeriod.selectTracks(com.mbridge.msdk.playercommon.exoplayer2.trackselection.TrackSelection[], boolean[], com.mbridge.msdk.playercommon.exoplayer2.source.SampleStream[], boolean[], long):long");
|
|
}
|
|
|
|
@Override // com.mbridge.msdk.playercommon.exoplayer2.source.MediaPeriod
|
|
public final void discardBuffer(long j, boolean z) {
|
|
this.mediaPeriod.discardBuffer(j, z);
|
|
}
|
|
|
|
@Override // com.mbridge.msdk.playercommon.exoplayer2.source.MediaPeriod, com.mbridge.msdk.playercommon.exoplayer2.source.SequenceableLoader
|
|
public final void reevaluateBuffer(long j) {
|
|
this.mediaPeriod.reevaluateBuffer(j);
|
|
}
|
|
|
|
@Override // com.mbridge.msdk.playercommon.exoplayer2.source.MediaPeriod
|
|
public final long readDiscontinuity() {
|
|
if (isPendingInitialDiscontinuity()) {
|
|
long j = this.pendingInitialDiscontinuityPositionUs;
|
|
this.pendingInitialDiscontinuityPositionUs = C.TIME_UNSET;
|
|
long readDiscontinuity = readDiscontinuity();
|
|
return readDiscontinuity != C.TIME_UNSET ? readDiscontinuity : j;
|
|
}
|
|
long readDiscontinuity2 = this.mediaPeriod.readDiscontinuity();
|
|
if (readDiscontinuity2 == C.TIME_UNSET) {
|
|
return C.TIME_UNSET;
|
|
}
|
|
Assertions.checkState(readDiscontinuity2 >= this.startUs);
|
|
long j2 = this.endUs;
|
|
Assertions.checkState(j2 == Long.MIN_VALUE || readDiscontinuity2 <= j2);
|
|
return readDiscontinuity2;
|
|
}
|
|
|
|
@Override // com.mbridge.msdk.playercommon.exoplayer2.source.MediaPeriod, com.mbridge.msdk.playercommon.exoplayer2.source.SequenceableLoader
|
|
public final long getBufferedPositionUs() {
|
|
long bufferedPositionUs = this.mediaPeriod.getBufferedPositionUs();
|
|
if (bufferedPositionUs != Long.MIN_VALUE) {
|
|
long j = this.endUs;
|
|
if (j == Long.MIN_VALUE || bufferedPositionUs < j) {
|
|
return bufferedPositionUs;
|
|
}
|
|
}
|
|
return Long.MIN_VALUE;
|
|
}
|
|
|
|
/* JADX WARN: Code restructure failed: missing block: B:17:0x0032, code lost:
|
|
|
|
if (r0 > r6) goto L17;
|
|
*/
|
|
@Override // com.mbridge.msdk.playercommon.exoplayer2.source.MediaPeriod
|
|
/*
|
|
Code decompiled incorrectly, please refer to instructions dump.
|
|
To view partially-correct add '--show-bad-code' argument
|
|
*/
|
|
public final long seekToUs(long r6) {
|
|
/*
|
|
r5 = this;
|
|
r0 = -9223372036854775807(0x8000000000000001, double:-4.9E-324)
|
|
r5.pendingInitialDiscontinuityPositionUs = r0
|
|
com.mbridge.msdk.playercommon.exoplayer2.source.ClippingMediaPeriod$ClippingSampleStream[] r0 = r5.sampleStreams
|
|
int r1 = r0.length
|
|
r2 = 0
|
|
r3 = r2
|
|
Lc:
|
|
if (r3 >= r1) goto L18
|
|
r4 = r0[r3]
|
|
if (r4 == 0) goto L15
|
|
r4.clearSentEos()
|
|
L15:
|
|
int r3 = r3 + 1
|
|
goto Lc
|
|
L18:
|
|
com.mbridge.msdk.playercommon.exoplayer2.source.MediaPeriod r0 = r5.mediaPeriod
|
|
long r0 = r0.seekToUs(r6)
|
|
int r6 = (r0 > r6 ? 1 : (r0 == r6 ? 0 : -1))
|
|
if (r6 == 0) goto L34
|
|
long r6 = r5.startUs
|
|
int r6 = (r0 > r6 ? 1 : (r0 == r6 ? 0 : -1))
|
|
if (r6 < 0) goto L35
|
|
long r6 = r5.endUs
|
|
r3 = -9223372036854775808
|
|
int r3 = (r6 > r3 ? 1 : (r6 == r3 ? 0 : -1))
|
|
if (r3 == 0) goto L34
|
|
int r6 = (r0 > r6 ? 1 : (r0 == r6 ? 0 : -1))
|
|
if (r6 > 0) goto L35
|
|
L34:
|
|
r2 = 1
|
|
L35:
|
|
com.mbridge.msdk.playercommon.exoplayer2.util.Assertions.checkState(r2)
|
|
return r0
|
|
*/
|
|
throw new UnsupportedOperationException("Method not decompiled: com.mbridge.msdk.playercommon.exoplayer2.source.ClippingMediaPeriod.seekToUs(long):long");
|
|
}
|
|
|
|
@Override // com.mbridge.msdk.playercommon.exoplayer2.source.MediaPeriod
|
|
public final long getAdjustedSeekPositionUs(long j, SeekParameters seekParameters) {
|
|
long j2 = this.startUs;
|
|
if (j == j2) {
|
|
return j2;
|
|
}
|
|
return this.mediaPeriod.getAdjustedSeekPositionUs(j, clipSeekParameters(j, seekParameters));
|
|
}
|
|
|
|
@Override // com.mbridge.msdk.playercommon.exoplayer2.source.MediaPeriod, com.mbridge.msdk.playercommon.exoplayer2.source.SequenceableLoader
|
|
public final long getNextLoadPositionUs() {
|
|
long nextLoadPositionUs = this.mediaPeriod.getNextLoadPositionUs();
|
|
if (nextLoadPositionUs != Long.MIN_VALUE) {
|
|
long j = this.endUs;
|
|
if (j == Long.MIN_VALUE || nextLoadPositionUs < j) {
|
|
return nextLoadPositionUs;
|
|
}
|
|
}
|
|
return Long.MIN_VALUE;
|
|
}
|
|
|
|
@Override // com.mbridge.msdk.playercommon.exoplayer2.source.MediaPeriod, com.mbridge.msdk.playercommon.exoplayer2.source.SequenceableLoader
|
|
public final boolean continueLoading(long j) {
|
|
return this.mediaPeriod.continueLoading(j);
|
|
}
|
|
|
|
@Override // com.mbridge.msdk.playercommon.exoplayer2.source.MediaPeriod.Callback
|
|
public final void onPrepared(MediaPeriod mediaPeriod) {
|
|
this.callback.onPrepared(this);
|
|
}
|
|
|
|
@Override // com.mbridge.msdk.playercommon.exoplayer2.source.SequenceableLoader.Callback
|
|
public final void onContinueLoadingRequested(MediaPeriod mediaPeriod) {
|
|
this.callback.onContinueLoadingRequested(this);
|
|
}
|
|
|
|
private SeekParameters clipSeekParameters(long j, SeekParameters seekParameters) {
|
|
long constrainValue = Util.constrainValue(seekParameters.toleranceBeforeUs, 0L, j - this.startUs);
|
|
long j2 = seekParameters.toleranceAfterUs;
|
|
long j3 = this.endUs;
|
|
long constrainValue2 = Util.constrainValue(j2, 0L, j3 == Long.MIN_VALUE ? Long.MAX_VALUE : j3 - j);
|
|
return (constrainValue == seekParameters.toleranceBeforeUs && constrainValue2 == seekParameters.toleranceAfterUs) ? seekParameters : new SeekParameters(constrainValue, constrainValue2);
|
|
}
|
|
|
|
private static boolean shouldKeepInitialDiscontinuity(long j, TrackSelection[] trackSelectionArr) {
|
|
if (j != 0) {
|
|
for (TrackSelection trackSelection : trackSelectionArr) {
|
|
if (trackSelection != null && !MimeTypes.isAudio(trackSelection.getSelectedFormat().sampleMimeType)) {
|
|
return true;
|
|
}
|
|
}
|
|
}
|
|
return false;
|
|
}
|
|
|
|
public final class ClippingSampleStream implements SampleStream {
|
|
public final SampleStream childStream;
|
|
private boolean sentEos;
|
|
|
|
public final void clearSentEos() {
|
|
this.sentEos = false;
|
|
}
|
|
|
|
public ClippingSampleStream(SampleStream sampleStream) {
|
|
this.childStream = sampleStream;
|
|
}
|
|
|
|
@Override // com.mbridge.msdk.playercommon.exoplayer2.source.SampleStream
|
|
public final boolean isReady() {
|
|
return !ClippingMediaPeriod.this.isPendingInitialDiscontinuity() && this.childStream.isReady();
|
|
}
|
|
|
|
@Override // com.mbridge.msdk.playercommon.exoplayer2.source.SampleStream
|
|
public final void maybeThrowError() throws IOException {
|
|
this.childStream.maybeThrowError();
|
|
}
|
|
|
|
@Override // com.mbridge.msdk.playercommon.exoplayer2.source.SampleStream
|
|
public final int readData(FormatHolder formatHolder, DecoderInputBuffer decoderInputBuffer, boolean z) {
|
|
if (ClippingMediaPeriod.this.isPendingInitialDiscontinuity()) {
|
|
return -3;
|
|
}
|
|
if (this.sentEos) {
|
|
decoderInputBuffer.setFlags(4);
|
|
return -4;
|
|
}
|
|
int readData = this.childStream.readData(formatHolder, decoderInputBuffer, z);
|
|
if (readData == -5) {
|
|
Format format = formatHolder.format;
|
|
int i = format.encoderDelay;
|
|
if (i != 0 || format.encoderPadding != 0) {
|
|
ClippingMediaPeriod clippingMediaPeriod = ClippingMediaPeriod.this;
|
|
if (clippingMediaPeriod.startUs != 0) {
|
|
i = 0;
|
|
}
|
|
formatHolder.format = format.copyWithGaplessInfo(i, clippingMediaPeriod.endUs == Long.MIN_VALUE ? format.encoderPadding : 0);
|
|
}
|
|
return -5;
|
|
}
|
|
ClippingMediaPeriod clippingMediaPeriod2 = ClippingMediaPeriod.this;
|
|
long j = clippingMediaPeriod2.endUs;
|
|
if (j == Long.MIN_VALUE || ((readData != -4 || decoderInputBuffer.timeUs < j) && !(readData == -3 && clippingMediaPeriod2.getBufferedPositionUs() == Long.MIN_VALUE))) {
|
|
return readData;
|
|
}
|
|
decoderInputBuffer.clear();
|
|
decoderInputBuffer.setFlags(4);
|
|
this.sentEos = true;
|
|
return -4;
|
|
}
|
|
|
|
@Override // com.mbridge.msdk.playercommon.exoplayer2.source.SampleStream
|
|
public final int skipData(long j) {
|
|
if (ClippingMediaPeriod.this.isPendingInitialDiscontinuity()) {
|
|
return -3;
|
|
}
|
|
return this.childStream.skipData(j);
|
|
}
|
|
}
|
|
}
|