Replace usages of CompositeMediaSource<Void> with WrappingMediaSource

This commit is contained in:
Jorge Antonio Diaz-Benito Soriano 2022-07-15 18:27:01 +02:00
parent 951b1319df
commit ba9f3d8ebc
No known key found for this signature in database
GPG key ID: 9E0D738D682347F5
5 changed files with 21 additions and 24 deletions

View file

@ -41,7 +41,7 @@ import java.util.ArrayList;
* positions. The wrapped source must consist of a single period.
*/
@UnstableApi
public final class ClippingMediaSource extends CompositeMediaSource<Void> {
public final class ClippingMediaSource extends WrappingMediaSource {
/** Thrown when a {@link ClippingMediaSource} cannot clip its wrapped source. */
public static final class IllegalClippingException extends IOException {
@ -202,7 +202,7 @@ public final class ClippingMediaSource extends CompositeMediaSource<Void> {
@Override
protected void prepareSourceInternal(@Nullable TransferListener mediaTransferListener) {
super.prepareSourceInternal(mediaTransferListener);
prepareChildSource(/* id= */ null, mediaSource);
prepareChildSource(mediaSource);
}
@Override
@ -242,7 +242,7 @@ public final class ClippingMediaSource extends CompositeMediaSource<Void> {
}
@Override
protected void onChildSourceInfoRefreshed(Void id, MediaSource mediaSource, Timeline timeline) {
protected void onChildSourceInfoRefreshed(Timeline timeline) {
if (clippingError != null) {
return;
}

View file

@ -43,7 +43,7 @@ import java.util.Map;
*/
@Deprecated
@UnstableApi
public final class LoopingMediaSource extends CompositeMediaSource<Void> {
public final class LoopingMediaSource extends WrappingMediaSource {
private final MaskingMediaSource maskingMediaSource;
private final int loopCount;
@ -95,7 +95,7 @@ public final class LoopingMediaSource extends CompositeMediaSource<Void> {
@Override
protected void prepareSourceInternal(@Nullable TransferListener mediaTransferListener) {
super.prepareSourceInternal(mediaTransferListener);
prepareChildSource(/* id= */ null, maskingMediaSource);
prepareChildSource(maskingMediaSource);
}
@Override
@ -123,7 +123,7 @@ public final class LoopingMediaSource extends CompositeMediaSource<Void> {
}
@Override
protected void onChildSourceInfoRefreshed(Void id, MediaSource mediaSource, Timeline timeline) {
protected void onChildSourceInfoRefreshed(Timeline timeline) {
Timeline loopingTimeline =
loopCount != Integer.MAX_VALUE
? new LoopingTimeline(timeline, loopCount)
@ -134,7 +134,8 @@ public final class LoopingMediaSource extends CompositeMediaSource<Void> {
@Override
@Nullable
protected MediaPeriodId getMediaPeriodIdForChildMediaPeriodId(
Void id, MediaPeriodId mediaPeriodId) {
Void id, MediaPeriodId mediaPeriodId
) {
return loopCount != Integer.MAX_VALUE
? childMediaPeriodIdToMediaPeriodId.get(mediaPeriodId)
: mediaPeriodId;

View file

@ -37,7 +37,7 @@ import org.checkerframework.checker.nullness.qual.RequiresNonNull;
* structure is known.
*/
@UnstableApi
public final class MaskingMediaSource extends CompositeMediaSource<Void> {
public final class MaskingMediaSource extends WrappingMediaSource {
private final MediaSource mediaSource;
private final boolean useLazyPreparation;
@ -84,7 +84,7 @@ public final class MaskingMediaSource extends CompositeMediaSource<Void> {
super.prepareSourceInternal(mediaTransferListener);
if (!useLazyPreparation) {
hasStartedPreparing = true;
prepareChildSource(/* id= */ null, mediaSource);
prepareChildSource(mediaSource);
}
}
@ -115,7 +115,7 @@ public final class MaskingMediaSource extends CompositeMediaSource<Void> {
unpreparedMaskingMediaPeriod = mediaPeriod;
if (!hasStartedPreparing) {
hasStartedPreparing = true;
prepareChildSource(/* id= */ null, mediaSource);
prepareChildSource(mediaSource);
}
}
return mediaPeriod;
@ -137,8 +137,7 @@ public final class MaskingMediaSource extends CompositeMediaSource<Void> {
}
@Override
protected void onChildSourceInfoRefreshed(
Void id, MediaSource mediaSource, Timeline newTimeline) {
protected void onChildSourceInfoRefreshed(MediaSource mediaSource, Timeline newTimeline) {
@Nullable MediaPeriodId idForMaskingPeriodPreparation = null;
if (isPrepared) {
timeline = timeline.cloneWithUpdatedTimeline(newTimeline);
@ -208,8 +207,7 @@ public final class MaskingMediaSource extends CompositeMediaSource<Void> {
@Override
@Nullable
protected MediaPeriodId getMediaPeriodIdForChildMediaPeriodId(
Void id, MediaPeriodId mediaPeriodId) {
protected MediaPeriodId getMediaPeriodIdForChildMediaPeriodId(MediaPeriodId mediaPeriodId) {
return mediaPeriodId.copyWithPeriodUid(getExternalPeriodUid(mediaPeriodId.periodUid));
}

View file

@ -3942,8 +3942,8 @@ public final class ExoPlayerTest {
new TimelineWindowDefinition(
/* isSeekable= */ true, /* isDynamic= */ false, /* durationUs= */ 10_000_000));
final ConcatenatingMediaSource underlyingSource = new ConcatenatingMediaSource();
CompositeMediaSource<Void> delegatingMediaSource =
new CompositeMediaSource<Void>() {
WrappingMediaSource delegatingMediaSource =
new WrappingMediaSource() {
@Override
public void prepareSourceInternal(@Nullable TransferListener mediaTransferListener) {
super.prepareSourceInternal(mediaTransferListener);
@ -3951,7 +3951,7 @@ public final class ExoPlayerTest {
new FakeMediaSource(fakeTimeline, ExoPlayerTestRunner.VIDEO_FORMAT));
underlyingSource.addMediaSource(
new FakeMediaSource(fakeTimeline, ExoPlayerTestRunner.VIDEO_FORMAT));
prepareChildSource(null, underlyingSource);
prepareChildSource(underlyingSource);
}
@Override
@ -3966,8 +3966,7 @@ public final class ExoPlayerTest {
}
@Override
protected void onChildSourceInfoRefreshed(
Void id, MediaSource mediaSource, Timeline timeline) {
protected void onChildSourceInfoRefreshed(Timeline timeline) {
refreshSourceInfo(timeline);
}

View file

@ -56,11 +56,11 @@ import androidx.media3.common.util.UnstableApi;
import androidx.media3.common.util.Util;
import androidx.media3.datasource.TransferListener;
import androidx.media3.exoplayer.drm.DrmSessionManagerProvider;
import androidx.media3.exoplayer.source.CompositeMediaSource;
import androidx.media3.exoplayer.source.DefaultMediaSourceFactory;
import androidx.media3.exoplayer.source.ForwardingTimeline;
import androidx.media3.exoplayer.source.MediaPeriod;
import androidx.media3.exoplayer.source.MediaSource;
import androidx.media3.exoplayer.source.WrappingMediaSource;
import androidx.media3.exoplayer.source.ads.ServerSideAdInsertionMediaSource;
import androidx.media3.exoplayer.source.ads.ServerSideAdInsertionMediaSource.AdPlaybackStateUpdater;
import androidx.media3.exoplayer.source.ads.ServerSideAdInsertionUtil;
@ -108,7 +108,7 @@ import org.checkerframework.checker.nullness.qual.MonotonicNonNull;
/** MediaSource for IMA server side inserted ad streams. */
@UnstableApi
public final class ImaServerSideAdInsertionMediaSource extends CompositeMediaSource<Void> {
public final class ImaServerSideAdInsertionMediaSource extends WrappingMediaSource {
/**
* Factory for creating {@link ImaServerSideAdInsertionMediaSource
@ -521,8 +521,7 @@ public final class ImaServerSideAdInsertionMediaSource extends CompositeMediaSou
}
@Override
protected void onChildSourceInfoRefreshed(
Void id, MediaSource mediaSource, Timeline newTimeline) {
protected void onChildSourceInfoRefreshed(Timeline newTimeline) {
refreshSourceInfo(
new ForwardingTimeline(newTimeline) {
@Override
@ -655,7 +654,7 @@ public final class ImaServerSideAdInsertionMediaSource extends CompositeMediaSou
.withIsServerSideInserted(/* adGroupIndex= */ 0, true);
mainHandler.post(() -> setAdPlaybackState(liveAdPlaybackState));
}
prepareChildSource(/* id= */ null, serverSideAdInsertionMediaSource);
prepareChildSource(serverSideAdInsertionMediaSource);
}
// Static methods.