package com.mbridge.msdk.playercommon.exoplayer2.source; import androidx.annotation.Nullable; import com.mbridge.msdk.playercommon.exoplayer2.ExoPlayer; import com.mbridge.msdk.playercommon.exoplayer2.Timeline; import com.mbridge.msdk.playercommon.exoplayer2.source.MediaSource; import com.mbridge.msdk.playercommon.exoplayer2.upstream.Allocator; import java.io.IOException; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.util.ArrayList; import java.util.Arrays; import java.util.Collections; /* loaded from: classes4.dex */ public final class MergingMediaSource extends CompositeMediaSource { private static final int PERIOD_COUNT_UNSET = -1; private final CompositeSequenceableLoaderFactory compositeSequenceableLoaderFactory; private final MediaSource[] mediaSources; private IllegalMergeException mergeError; private final ArrayList pendingTimelineSources; private int periodCount; private Object primaryManifest; private Timeline primaryTimeline; public static final class IllegalMergeException extends IOException { public static final int REASON_PERIOD_COUNT_MISMATCH = 0; public final int reason; @Retention(RetentionPolicy.SOURCE) public @interface Reason { } public IllegalMergeException(int i) { this.reason = i; } } public MergingMediaSource(MediaSource... mediaSourceArr) { this(new DefaultCompositeSequenceableLoaderFactory(), mediaSourceArr); } public MergingMediaSource(CompositeSequenceableLoaderFactory compositeSequenceableLoaderFactory, MediaSource... mediaSourceArr) { this.mediaSources = mediaSourceArr; this.compositeSequenceableLoaderFactory = compositeSequenceableLoaderFactory; this.pendingTimelineSources = new ArrayList<>(Arrays.asList(mediaSourceArr)); this.periodCount = -1; } @Override // com.mbridge.msdk.playercommon.exoplayer2.source.CompositeMediaSource, com.mbridge.msdk.playercommon.exoplayer2.source.BaseMediaSource public final void prepareSourceInternal(ExoPlayer exoPlayer, boolean z) { super.prepareSourceInternal(exoPlayer, z); for (int i = 0; i < this.mediaSources.length; i++) { prepareChildSource(Integer.valueOf(i), this.mediaSources[i]); } } @Override // com.mbridge.msdk.playercommon.exoplayer2.source.CompositeMediaSource, com.mbridge.msdk.playercommon.exoplayer2.source.MediaSource public final void maybeThrowSourceInfoRefreshError() throws IOException { IllegalMergeException illegalMergeException = this.mergeError; if (illegalMergeException != null) { throw illegalMergeException; } super.maybeThrowSourceInfoRefreshError(); } @Override // com.mbridge.msdk.playercommon.exoplayer2.source.MediaSource public final MediaPeriod createPeriod(MediaSource.MediaPeriodId mediaPeriodId, Allocator allocator) { int length = this.mediaSources.length; MediaPeriod[] mediaPeriodArr = new MediaPeriod[length]; for (int i = 0; i < length; i++) { mediaPeriodArr[i] = this.mediaSources[i].createPeriod(mediaPeriodId, allocator); } return new MergingMediaPeriod(this.compositeSequenceableLoaderFactory, mediaPeriodArr); } @Override // com.mbridge.msdk.playercommon.exoplayer2.source.MediaSource public final void releasePeriod(MediaPeriod mediaPeriod) { MergingMediaPeriod mergingMediaPeriod = (MergingMediaPeriod) mediaPeriod; int i = 0; while (true) { MediaSource[] mediaSourceArr = this.mediaSources; if (i >= mediaSourceArr.length) { return; } mediaSourceArr[i].releasePeriod(mergingMediaPeriod.periods[i]); i++; } } @Override // com.mbridge.msdk.playercommon.exoplayer2.source.CompositeMediaSource, com.mbridge.msdk.playercommon.exoplayer2.source.BaseMediaSource public final void releaseSourceInternal() { super.releaseSourceInternal(); this.primaryTimeline = null; this.primaryManifest = null; this.periodCount = -1; this.mergeError = null; this.pendingTimelineSources.clear(); Collections.addAll(this.pendingTimelineSources, this.mediaSources); } @Override // com.mbridge.msdk.playercommon.exoplayer2.source.CompositeMediaSource public final void onChildSourceInfoRefreshed(Integer num, MediaSource mediaSource, Timeline timeline, @Nullable Object obj) { if (this.mergeError == null) { this.mergeError = checkTimelineMerges(timeline); } if (this.mergeError != null) { return; } this.pendingTimelineSources.remove(mediaSource); if (mediaSource == this.mediaSources[0]) { this.primaryTimeline = timeline; this.primaryManifest = obj; } if (this.pendingTimelineSources.isEmpty()) { refreshSourceInfo(this.primaryTimeline, this.primaryManifest); } } private IllegalMergeException checkTimelineMerges(Timeline timeline) { if (this.periodCount == -1) { this.periodCount = timeline.getPeriodCount(); return null; } if (timeline.getPeriodCount() != this.periodCount) { return new IllegalMergeException(0); } return null; } }