Rename DeferredMediaPeriod to MaskingMediaPeriod.
This better reflects its usage and fits into our general naming pattern. PiperOrigin-RevId: 255157159
This commit is contained in:
parent
883b3c8783
commit
4e504bc485
@ -456,8 +456,8 @@ public class ConcatenatingMediaSource extends CompositeMediaSource<MediaSourceHo
|
|||||||
holder = new MediaSourceHolder(new DummyMediaSource());
|
holder = new MediaSourceHolder(new DummyMediaSource());
|
||||||
holder.hasStartedPreparing = true;
|
holder.hasStartedPreparing = true;
|
||||||
}
|
}
|
||||||
DeferredMediaPeriod mediaPeriod =
|
MaskingMediaPeriod mediaPeriod =
|
||||||
new DeferredMediaPeriod(holder.mediaSource, id, allocator, startPositionUs);
|
new MaskingMediaPeriod(holder.mediaSource, id, allocator, startPositionUs);
|
||||||
mediaSourceByMediaPeriod.put(mediaPeriod, holder);
|
mediaSourceByMediaPeriod.put(mediaPeriod, holder);
|
||||||
holder.activeMediaPeriods.add(mediaPeriod);
|
holder.activeMediaPeriods.add(mediaPeriod);
|
||||||
if (!holder.hasStartedPreparing) {
|
if (!holder.hasStartedPreparing) {
|
||||||
@ -474,7 +474,7 @@ public class ConcatenatingMediaSource extends CompositeMediaSource<MediaSourceHo
|
|||||||
public final void releasePeriod(MediaPeriod mediaPeriod) {
|
public final void releasePeriod(MediaPeriod mediaPeriod) {
|
||||||
MediaSourceHolder holder =
|
MediaSourceHolder holder =
|
||||||
Assertions.checkNotNull(mediaSourceByMediaPeriod.remove(mediaPeriod));
|
Assertions.checkNotNull(mediaSourceByMediaPeriod.remove(mediaPeriod));
|
||||||
((DeferredMediaPeriod) mediaPeriod).releasePeriod();
|
((MaskingMediaPeriod) mediaPeriod).releasePeriod();
|
||||||
holder.activeMediaPeriods.remove(mediaPeriod);
|
holder.activeMediaPeriods.remove(mediaPeriod);
|
||||||
maybeReleaseChildSource(holder);
|
maybeReleaseChildSource(holder);
|
||||||
}
|
}
|
||||||
@ -784,7 +784,7 @@ public class ConcatenatingMediaSource extends CompositeMediaSource<MediaSourceHo
|
|||||||
// is unset and we don't load beyond periods with unset duration. We need to figure out how to
|
// is unset and we don't load beyond periods with unset duration. We need to figure out how to
|
||||||
// handle the prepare positions of multiple deferred media periods, should that ever change.
|
// handle the prepare positions of multiple deferred media periods, should that ever change.
|
||||||
Assertions.checkState(mediaSourceHolder.activeMediaPeriods.size() <= 1);
|
Assertions.checkState(mediaSourceHolder.activeMediaPeriods.size() <= 1);
|
||||||
DeferredMediaPeriod deferredMediaPeriod =
|
MaskingMediaPeriod deferredMediaPeriod =
|
||||||
mediaSourceHolder.activeMediaPeriods.isEmpty()
|
mediaSourceHolder.activeMediaPeriods.isEmpty()
|
||||||
? null
|
? null
|
||||||
: mediaSourceHolder.activeMediaPeriods.get(0);
|
: mediaSourceHolder.activeMediaPeriods.get(0);
|
||||||
@ -897,7 +897,7 @@ public class ConcatenatingMediaSource extends CompositeMediaSource<MediaSourceHo
|
|||||||
|
|
||||||
public final MediaSource mediaSource;
|
public final MediaSource mediaSource;
|
||||||
public final Object uid;
|
public final Object uid;
|
||||||
public final List<DeferredMediaPeriod> activeMediaPeriods;
|
public final List<MaskingMediaPeriod> activeMediaPeriods;
|
||||||
|
|
||||||
public DeferredTimeline timeline;
|
public DeferredTimeline timeline;
|
||||||
public int childIndex;
|
public int childIndex;
|
||||||
|
@ -32,7 +32,7 @@ import org.checkerframework.checker.nullness.compatqual.NullableType;
|
|||||||
* #createPeriod(MediaPeriodId)} has been called. This is useful if you need to return a media
|
* #createPeriod(MediaPeriodId)} has been called. This is useful if you need to return a media
|
||||||
* period immediately but the media source that should create it is not yet prepared.
|
* period immediately but the media source that should create it is not yet prepared.
|
||||||
*/
|
*/
|
||||||
public final class DeferredMediaPeriod implements MediaPeriod, MediaPeriod.Callback {
|
public final class MaskingMediaPeriod implements MediaPeriod, MediaPeriod.Callback {
|
||||||
|
|
||||||
/** Listener for preparation errors. */
|
/** Listener for preparation errors. */
|
||||||
public interface PrepareErrorListener {
|
public interface PrepareErrorListener {
|
||||||
@ -45,7 +45,7 @@ public final class DeferredMediaPeriod implements MediaPeriod, MediaPeriod.Callb
|
|||||||
|
|
||||||
/** The {@link MediaSource} which will create the actual media period. */
|
/** The {@link MediaSource} which will create the actual media period. */
|
||||||
public final MediaSource mediaSource;
|
public final MediaSource mediaSource;
|
||||||
/** The {@link MediaPeriodId} used to create the deferred media period. */
|
/** The {@link MediaPeriodId} used to create the masking media period. */
|
||||||
public final MediaPeriodId id;
|
public final MediaPeriodId id;
|
||||||
|
|
||||||
private final Allocator allocator;
|
private final Allocator allocator;
|
||||||
@ -58,14 +58,14 @@ public final class DeferredMediaPeriod implements MediaPeriod, MediaPeriod.Callb
|
|||||||
private long preparePositionOverrideUs;
|
private long preparePositionOverrideUs;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Creates a new deferred media period.
|
* Creates a new masking media period.
|
||||||
*
|
*
|
||||||
* @param mediaSource The media source to wrap.
|
* @param mediaSource The media source to wrap.
|
||||||
* @param id The identifier used to create the deferred media period.
|
* @param id The identifier used to create the masking media period.
|
||||||
* @param allocator The allocator used to create the media period.
|
* @param allocator The allocator used to create the media period.
|
||||||
* @param preparePositionUs The expected start position, in microseconds.
|
* @param preparePositionUs The expected start position, in microseconds.
|
||||||
*/
|
*/
|
||||||
public DeferredMediaPeriod(
|
public MaskingMediaPeriod(
|
||||||
MediaSource mediaSource, MediaPeriodId id, Allocator allocator, long preparePositionUs) {
|
MediaSource mediaSource, MediaPeriodId id, Allocator allocator, long preparePositionUs) {
|
||||||
this.id = id;
|
this.id = id;
|
||||||
this.allocator = allocator;
|
this.allocator = allocator;
|
||||||
@ -85,7 +85,7 @@ public final class DeferredMediaPeriod implements MediaPeriod, MediaPeriod.Callb
|
|||||||
this.listener = listener;
|
this.listener = listener;
|
||||||
}
|
}
|
||||||
|
|
||||||
/** Returns the position at which the deferred media period was prepared, in microseconds. */
|
/** Returns the position at which the masking media period was prepared, in microseconds. */
|
||||||
public long getPreparePositionUs() {
|
public long getPreparePositionUs() {
|
||||||
return preparePositionUs;
|
return preparePositionUs;
|
||||||
}
|
}
|
@ -23,7 +23,7 @@ import androidx.annotation.Nullable;
|
|||||||
import com.google.android.exoplayer2.C;
|
import com.google.android.exoplayer2.C;
|
||||||
import com.google.android.exoplayer2.Timeline;
|
import com.google.android.exoplayer2.Timeline;
|
||||||
import com.google.android.exoplayer2.source.CompositeMediaSource;
|
import com.google.android.exoplayer2.source.CompositeMediaSource;
|
||||||
import com.google.android.exoplayer2.source.DeferredMediaPeriod;
|
import com.google.android.exoplayer2.source.MaskingMediaPeriod;
|
||||||
import com.google.android.exoplayer2.source.MediaPeriod;
|
import com.google.android.exoplayer2.source.MediaPeriod;
|
||||||
import com.google.android.exoplayer2.source.MediaSource;
|
import com.google.android.exoplayer2.source.MediaSource;
|
||||||
import com.google.android.exoplayer2.source.MediaSource.MediaPeriodId;
|
import com.google.android.exoplayer2.source.MediaSource.MediaPeriodId;
|
||||||
@ -128,7 +128,7 @@ public final class AdsMediaSource extends CompositeMediaSource<MediaPeriodId> {
|
|||||||
private final AdsLoader adsLoader;
|
private final AdsLoader adsLoader;
|
||||||
private final AdsLoader.AdViewProvider adViewProvider;
|
private final AdsLoader.AdViewProvider adViewProvider;
|
||||||
private final Handler mainHandler;
|
private final Handler mainHandler;
|
||||||
private final Map<MediaSource, List<DeferredMediaPeriod>> deferredMediaPeriodByAdMediaSource;
|
private final Map<MediaSource, List<MaskingMediaPeriod>> maskingMediaPeriodByAdMediaSource;
|
||||||
private final Timeline.Period period;
|
private final Timeline.Period period;
|
||||||
|
|
||||||
// Accessed on the player thread.
|
// Accessed on the player thread.
|
||||||
@ -179,7 +179,7 @@ public final class AdsMediaSource extends CompositeMediaSource<MediaPeriodId> {
|
|||||||
this.adsLoader = adsLoader;
|
this.adsLoader = adsLoader;
|
||||||
this.adViewProvider = adViewProvider;
|
this.adViewProvider = adViewProvider;
|
||||||
mainHandler = new Handler(Looper.getMainLooper());
|
mainHandler = new Handler(Looper.getMainLooper());
|
||||||
deferredMediaPeriodByAdMediaSource = new HashMap<>();
|
maskingMediaPeriodByAdMediaSource = new HashMap<>();
|
||||||
period = new Timeline.Period();
|
period = new Timeline.Period();
|
||||||
adGroupMediaSources = new MediaSource[0][];
|
adGroupMediaSources = new MediaSource[0][];
|
||||||
adGroupTimelines = new Timeline[0][];
|
adGroupTimelines = new Timeline[0][];
|
||||||
@ -219,29 +219,29 @@ public final class AdsMediaSource extends CompositeMediaSource<MediaPeriodId> {
|
|||||||
if (mediaSource == null) {
|
if (mediaSource == null) {
|
||||||
mediaSource = adMediaSourceFactory.createMediaSource(adUri);
|
mediaSource = adMediaSourceFactory.createMediaSource(adUri);
|
||||||
adGroupMediaSources[adGroupIndex][adIndexInAdGroup] = mediaSource;
|
adGroupMediaSources[adGroupIndex][adIndexInAdGroup] = mediaSource;
|
||||||
deferredMediaPeriodByAdMediaSource.put(mediaSource, new ArrayList<>());
|
maskingMediaPeriodByAdMediaSource.put(mediaSource, new ArrayList<>());
|
||||||
prepareChildSource(id, mediaSource);
|
prepareChildSource(id, mediaSource);
|
||||||
}
|
}
|
||||||
DeferredMediaPeriod deferredMediaPeriod =
|
MaskingMediaPeriod maskingMediaPeriod =
|
||||||
new DeferredMediaPeriod(mediaSource, id, allocator, startPositionUs);
|
new MaskingMediaPeriod(mediaSource, id, allocator, startPositionUs);
|
||||||
deferredMediaPeriod.setPrepareErrorListener(
|
maskingMediaPeriod.setPrepareErrorListener(
|
||||||
new AdPrepareErrorListener(adUri, adGroupIndex, adIndexInAdGroup));
|
new AdPrepareErrorListener(adUri, adGroupIndex, adIndexInAdGroup));
|
||||||
List<DeferredMediaPeriod> mediaPeriods = deferredMediaPeriodByAdMediaSource.get(mediaSource);
|
List<MaskingMediaPeriod> mediaPeriods = maskingMediaPeriodByAdMediaSource.get(mediaSource);
|
||||||
if (mediaPeriods == null) {
|
if (mediaPeriods == null) {
|
||||||
Object periodUid =
|
Object periodUid =
|
||||||
Assertions.checkNotNull(adGroupTimelines[adGroupIndex][adIndexInAdGroup])
|
Assertions.checkNotNull(adGroupTimelines[adGroupIndex][adIndexInAdGroup])
|
||||||
.getUidOfPeriod(/* periodIndex= */ 0);
|
.getUidOfPeriod(/* periodIndex= */ 0);
|
||||||
MediaPeriodId adSourceMediaPeriodId = new MediaPeriodId(periodUid, id.windowSequenceNumber);
|
MediaPeriodId adSourceMediaPeriodId = new MediaPeriodId(periodUid, id.windowSequenceNumber);
|
||||||
deferredMediaPeriod.createPeriod(adSourceMediaPeriodId);
|
maskingMediaPeriod.createPeriod(adSourceMediaPeriodId);
|
||||||
} else {
|
} else {
|
||||||
// Keep track of the deferred media period so it can be populated with the real media period
|
// Keep track of the masking media period so it can be populated with the real media period
|
||||||
// when the source's info becomes available.
|
// when the source's info becomes available.
|
||||||
mediaPeriods.add(deferredMediaPeriod);
|
mediaPeriods.add(maskingMediaPeriod);
|
||||||
}
|
}
|
||||||
return deferredMediaPeriod;
|
return maskingMediaPeriod;
|
||||||
} else {
|
} else {
|
||||||
DeferredMediaPeriod mediaPeriod =
|
MaskingMediaPeriod mediaPeriod =
|
||||||
new DeferredMediaPeriod(contentMediaSource, id, allocator, startPositionUs);
|
new MaskingMediaPeriod(contentMediaSource, id, allocator, startPositionUs);
|
||||||
mediaPeriod.createPeriod(id);
|
mediaPeriod.createPeriod(id);
|
||||||
return mediaPeriod;
|
return mediaPeriod;
|
||||||
}
|
}
|
||||||
@ -249,13 +249,13 @@ public final class AdsMediaSource extends CompositeMediaSource<MediaPeriodId> {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void releasePeriod(MediaPeriod mediaPeriod) {
|
public void releasePeriod(MediaPeriod mediaPeriod) {
|
||||||
DeferredMediaPeriod deferredMediaPeriod = (DeferredMediaPeriod) mediaPeriod;
|
MaskingMediaPeriod maskingMediaPeriod = (MaskingMediaPeriod) mediaPeriod;
|
||||||
List<DeferredMediaPeriod> mediaPeriods =
|
List<MaskingMediaPeriod> mediaPeriods =
|
||||||
deferredMediaPeriodByAdMediaSource.get(deferredMediaPeriod.mediaSource);
|
maskingMediaPeriodByAdMediaSource.get(maskingMediaPeriod.mediaSource);
|
||||||
if (mediaPeriods != null) {
|
if (mediaPeriods != null) {
|
||||||
mediaPeriods.remove(deferredMediaPeriod);
|
mediaPeriods.remove(maskingMediaPeriod);
|
||||||
}
|
}
|
||||||
deferredMediaPeriod.releasePeriod();
|
maskingMediaPeriod.releasePeriod();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@ -263,7 +263,7 @@ public final class AdsMediaSource extends CompositeMediaSource<MediaPeriodId> {
|
|||||||
super.releaseSourceInternal();
|
super.releaseSourceInternal();
|
||||||
Assertions.checkNotNull(componentListener).release();
|
Assertions.checkNotNull(componentListener).release();
|
||||||
componentListener = null;
|
componentListener = null;
|
||||||
deferredMediaPeriodByAdMediaSource.clear();
|
maskingMediaPeriodByAdMediaSource.clear();
|
||||||
contentTimeline = null;
|
contentTimeline = null;
|
||||||
contentManifest = null;
|
contentManifest = null;
|
||||||
adPlaybackState = null;
|
adPlaybackState = null;
|
||||||
@ -319,11 +319,11 @@ public final class AdsMediaSource extends CompositeMediaSource<MediaPeriodId> {
|
|||||||
int adIndexInAdGroup, Timeline timeline) {
|
int adIndexInAdGroup, Timeline timeline) {
|
||||||
Assertions.checkArgument(timeline.getPeriodCount() == 1);
|
Assertions.checkArgument(timeline.getPeriodCount() == 1);
|
||||||
adGroupTimelines[adGroupIndex][adIndexInAdGroup] = timeline;
|
adGroupTimelines[adGroupIndex][adIndexInAdGroup] = timeline;
|
||||||
List<DeferredMediaPeriod> mediaPeriods = deferredMediaPeriodByAdMediaSource.remove(mediaSource);
|
List<MaskingMediaPeriod> mediaPeriods = maskingMediaPeriodByAdMediaSource.remove(mediaSource);
|
||||||
if (mediaPeriods != null) {
|
if (mediaPeriods != null) {
|
||||||
Object periodUid = timeline.getUidOfPeriod(/* periodIndex= */ 0);
|
Object periodUid = timeline.getUidOfPeriod(/* periodIndex= */ 0);
|
||||||
for (int i = 0; i < mediaPeriods.size(); i++) {
|
for (int i = 0; i < mediaPeriods.size(); i++) {
|
||||||
DeferredMediaPeriod mediaPeriod = mediaPeriods.get(i);
|
MaskingMediaPeriod mediaPeriod = mediaPeriods.get(i);
|
||||||
MediaPeriodId adSourceMediaPeriodId =
|
MediaPeriodId adSourceMediaPeriodId =
|
||||||
new MediaPeriodId(periodUid, mediaPeriod.id.windowSequenceNumber);
|
new MediaPeriodId(periodUid, mediaPeriod.id.windowSequenceNumber);
|
||||||
mediaPeriod.createPeriod(adSourceMediaPeriodId);
|
mediaPeriod.createPeriod(adSourceMediaPeriodId);
|
||||||
@ -413,7 +413,7 @@ public final class AdsMediaSource extends CompositeMediaSource<MediaPeriodId> {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private final class AdPrepareErrorListener implements DeferredMediaPeriod.PrepareErrorListener {
|
private final class AdPrepareErrorListener implements MaskingMediaPeriod.PrepareErrorListener {
|
||||||
|
|
||||||
private final Uri adUri;
|
private final Uri adUri;
|
||||||
private final int adGroupIndex;
|
private final int adGroupIndex;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user