package com.mbridge.msdk.playercommon.exoplayer2.source; import com.mbridge.msdk.playercommon.exoplayer2.C; import com.mbridge.msdk.playercommon.exoplayer2.SeekParameters; 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 java.io.IOException; import java.util.ArrayList; import java.util.Collections; import java.util.IdentityHashMap; /* loaded from: classes4.dex */ final class MergingMediaPeriod implements MediaPeriod, MediaPeriod.Callback { private MediaPeriod.Callback callback; private SequenceableLoader compositeSequenceableLoader; private final CompositeSequenceableLoaderFactory compositeSequenceableLoaderFactory; private MediaPeriod[] enabledPeriods; public final MediaPeriod[] periods; private TrackGroupArray trackGroups; private final ArrayList childrenPendingPreparation = new ArrayList<>(); private final IdentityHashMap streamPeriodIndices = new IdentityHashMap<>(); @Override // com.mbridge.msdk.playercommon.exoplayer2.source.MediaPeriod public final TrackGroupArray getTrackGroups() { return this.trackGroups; } public MergingMediaPeriod(CompositeSequenceableLoaderFactory compositeSequenceableLoaderFactory, MediaPeriod... mediaPeriodArr) { this.compositeSequenceableLoaderFactory = compositeSequenceableLoaderFactory; this.periods = mediaPeriodArr; this.compositeSequenceableLoader = compositeSequenceableLoaderFactory.createCompositeSequenceableLoader(new SequenceableLoader[0]); } @Override // com.mbridge.msdk.playercommon.exoplayer2.source.MediaPeriod public final void prepare(MediaPeriod.Callback callback, long j) { this.callback = callback; Collections.addAll(this.childrenPendingPreparation, this.periods); for (MediaPeriod mediaPeriod : this.periods) { mediaPeriod.prepare(this, j); } } @Override // com.mbridge.msdk.playercommon.exoplayer2.source.MediaPeriod public final void maybeThrowPrepareError() throws IOException { for (MediaPeriod mediaPeriod : this.periods) { mediaPeriod.maybeThrowPrepareError(); } } @Override // com.mbridge.msdk.playercommon.exoplayer2.source.MediaPeriod public final long selectTracks(TrackSelection[] trackSelectionArr, boolean[] zArr, SampleStream[] sampleStreamArr, boolean[] zArr2, long j) { SampleStream[] sampleStreamArr2 = sampleStreamArr; int[] iArr = new int[trackSelectionArr.length]; int[] iArr2 = new int[trackSelectionArr.length]; for (int i = 0; i < trackSelectionArr.length; i++) { SampleStream sampleStream = sampleStreamArr2[i]; iArr[i] = sampleStream == null ? -1 : this.streamPeriodIndices.get(sampleStream).intValue(); iArr2[i] = -1; TrackSelection trackSelection = trackSelectionArr[i]; if (trackSelection != null) { TrackGroup trackGroup = trackSelection.getTrackGroup(); int i2 = 0; while (true) { MediaPeriod[] mediaPeriodArr = this.periods; if (i2 >= mediaPeriodArr.length) { break; } if (mediaPeriodArr[i2].getTrackGroups().indexOf(trackGroup) != -1) { iArr2[i] = i2; break; } i2++; } } } this.streamPeriodIndices.clear(); int length = trackSelectionArr.length; SampleStream[] sampleStreamArr3 = new SampleStream[length]; SampleStream[] sampleStreamArr4 = new SampleStream[trackSelectionArr.length]; TrackSelection[] trackSelectionArr2 = new TrackSelection[trackSelectionArr.length]; ArrayList arrayList = new ArrayList(this.periods.length); long j2 = j; int i3 = 0; while (i3 < this.periods.length) { for (int i4 = 0; i4 < trackSelectionArr.length; i4++) { TrackSelection trackSelection2 = null; sampleStreamArr4[i4] = iArr[i4] == i3 ? sampleStreamArr2[i4] : null; if (iArr2[i4] == i3) { trackSelection2 = trackSelectionArr[i4]; } trackSelectionArr2[i4] = trackSelection2; } int i5 = i3; TrackSelection[] trackSelectionArr3 = trackSelectionArr2; ArrayList arrayList2 = arrayList; long selectTracks = this.periods[i3].selectTracks(trackSelectionArr2, zArr, sampleStreamArr4, zArr2, j2); if (i5 == 0) { j2 = selectTracks; } else if (selectTracks != j2) { throw new IllegalStateException("Children enabled at different positions."); } boolean z = false; for (int i6 = 0; i6 < trackSelectionArr.length; i6++) { if (iArr2[i6] == i5) { Assertions.checkState(sampleStreamArr4[i6] != null); sampleStreamArr3[i6] = sampleStreamArr4[i6]; this.streamPeriodIndices.put(sampleStreamArr4[i6], Integer.valueOf(i5)); z = true; } else if (iArr[i6] == i5) { Assertions.checkState(sampleStreamArr4[i6] == null); } } if (z) { arrayList2.add(this.periods[i5]); } i3 = i5 + 1; arrayList = arrayList2; trackSelectionArr2 = trackSelectionArr3; sampleStreamArr2 = sampleStreamArr; } ArrayList arrayList3 = arrayList; System.arraycopy(sampleStreamArr3, 0, sampleStreamArr2, 0, length); MediaPeriod[] mediaPeriodArr2 = new MediaPeriod[arrayList3.size()]; this.enabledPeriods = mediaPeriodArr2; arrayList3.toArray(mediaPeriodArr2); this.compositeSequenceableLoader = this.compositeSequenceableLoaderFactory.createCompositeSequenceableLoader(this.enabledPeriods); return j2; } @Override // com.mbridge.msdk.playercommon.exoplayer2.source.MediaPeriod public final void discardBuffer(long j, boolean z) { for (MediaPeriod mediaPeriod : this.enabledPeriods) { 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.compositeSequenceableLoader.reevaluateBuffer(j); } @Override // com.mbridge.msdk.playercommon.exoplayer2.source.MediaPeriod, com.mbridge.msdk.playercommon.exoplayer2.source.SequenceableLoader public final boolean continueLoading(long j) { if (!this.childrenPendingPreparation.isEmpty()) { int size = this.childrenPendingPreparation.size(); for (int i = 0; i < size; i++) { this.childrenPendingPreparation.get(i).continueLoading(j); } return false; } return this.compositeSequenceableLoader.continueLoading(j); } @Override // com.mbridge.msdk.playercommon.exoplayer2.source.MediaPeriod, com.mbridge.msdk.playercommon.exoplayer2.source.SequenceableLoader public final long getNextLoadPositionUs() { return this.compositeSequenceableLoader.getNextLoadPositionUs(); } @Override // com.mbridge.msdk.playercommon.exoplayer2.source.MediaPeriod public final long readDiscontinuity() { long readDiscontinuity = this.periods[0].readDiscontinuity(); int i = 1; while (true) { MediaPeriod[] mediaPeriodArr = this.periods; if (i >= mediaPeriodArr.length) { if (readDiscontinuity != C.TIME_UNSET) { for (MediaPeriod mediaPeriod : this.enabledPeriods) { if (mediaPeriod != this.periods[0] && mediaPeriod.seekToUs(readDiscontinuity) != readDiscontinuity) { throw new IllegalStateException("Unexpected child seekToUs result."); } } } return readDiscontinuity; } if (mediaPeriodArr[i].readDiscontinuity() != C.TIME_UNSET) { throw new IllegalStateException("Child reported discontinuity."); } i++; } } @Override // com.mbridge.msdk.playercommon.exoplayer2.source.MediaPeriod, com.mbridge.msdk.playercommon.exoplayer2.source.SequenceableLoader public final long getBufferedPositionUs() { return this.compositeSequenceableLoader.getBufferedPositionUs(); } @Override // com.mbridge.msdk.playercommon.exoplayer2.source.MediaPeriod public final long seekToUs(long j) { long seekToUs = this.enabledPeriods[0].seekToUs(j); int i = 1; while (true) { MediaPeriod[] mediaPeriodArr = this.enabledPeriods; if (i >= mediaPeriodArr.length) { return seekToUs; } if (mediaPeriodArr[i].seekToUs(seekToUs) != seekToUs) { throw new IllegalStateException("Unexpected child seekToUs result."); } i++; } } @Override // com.mbridge.msdk.playercommon.exoplayer2.source.MediaPeriod public final long getAdjustedSeekPositionUs(long j, SeekParameters seekParameters) { return this.enabledPeriods[0].getAdjustedSeekPositionUs(j, seekParameters); } @Override // com.mbridge.msdk.playercommon.exoplayer2.source.MediaPeriod.Callback public final void onPrepared(MediaPeriod mediaPeriod) { this.childrenPendingPreparation.remove(mediaPeriod); if (this.childrenPendingPreparation.isEmpty()) { int i = 0; for (MediaPeriod mediaPeriod2 : this.periods) { i += mediaPeriod2.getTrackGroups().length; } TrackGroup[] trackGroupArr = new TrackGroup[i]; int i2 = 0; for (MediaPeriod mediaPeriod3 : this.periods) { TrackGroupArray trackGroups = mediaPeriod3.getTrackGroups(); int i3 = trackGroups.length; int i4 = 0; while (i4 < i3) { trackGroupArr[i2] = trackGroups.get(i4); i4++; i2++; } } this.trackGroups = new TrackGroupArray(trackGroupArr); this.callback.onPrepared(this); } } @Override // com.mbridge.msdk.playercommon.exoplayer2.source.SequenceableLoader.Callback public final void onContinueLoadingRequested(MediaPeriod mediaPeriod) { this.callback.onContinueLoadingRequested(this); } }