Remove the parameter PlayerId from PreloadMediaSource.Factory

Originally a `PlayerId` has to be passed and it should be the same id of the player who is going to play the sources, but it turns out to be unnecessary.

When preloading, we can set a `PlayerId.UNSET` inside of the `PreloadMediaSource`, as there is no ongoing playback. And when the source is handed over to player, player will set the player's `PlayerId`.

PiperOrigin-RevId: 597475119
This commit is contained in:
tianyifeng 2024-01-11 00:46:21 -08:00 committed by Copybara-Service
parent d884f19871
commit 733301d562
4 changed files with 3 additions and 27 deletions

View File

@ -56,7 +56,6 @@ class MediaSourceManager(
preloadMediaSourceFactory =
PreloadMediaSource.Factory(
mediaSourceFactory,
PlayerId.UNSET,
PreloadControlImpl(targetPreloadPositionUs = 5_000_000L),
trackSelector,
bandwidthMeter,

View File

@ -91,7 +91,6 @@ public final class PreloadMediaSource extends WrappingMediaSource {
/** Factory for {@link PreloadMediaSource}. */
public static final class Factory implements MediaSource.Factory {
private final MediaSource.Factory mediaSourceFactory;
private final PlayerId playerId;
private final Looper preloadLooper;
private final Allocator allocator;
private final TrackSelector trackSelector;
@ -103,8 +102,6 @@ public final class PreloadMediaSource extends WrappingMediaSource {
* Creates a new factory for {@link PreloadMediaSource}.
*
* @param mediaSourceFactory The underlying {@link MediaSource.Factory}.
* @param playerId The {@link PlayerId} of the {@link ExoPlayer} that will play the created
* {@link PreloadMediaSource} instances.
* @param preloadControl The {@link PreloadControl} that will control the progress of preloading
* the created {@link PreloadMediaSource} instances.
* @param trackSelector The {@link TrackSelector}. The instance passed should be {@link
@ -123,7 +120,6 @@ public final class PreloadMediaSource extends WrappingMediaSource {
*/
public Factory(
MediaSource.Factory mediaSourceFactory,
PlayerId playerId,
PreloadControl preloadControl,
TrackSelector trackSelector,
BandwidthMeter bandwidthMeter,
@ -131,7 +127,6 @@ public final class PreloadMediaSource extends WrappingMediaSource {
Allocator allocator,
Looper preloadLooper) {
this.mediaSourceFactory = mediaSourceFactory;
this.playerId = playerId;
this.preloadControl = preloadControl;
this.trackSelector = trackSelector;
this.bandwidthMeter = bandwidthMeter;
@ -168,7 +163,6 @@ public final class PreloadMediaSource extends WrappingMediaSource {
public PreloadMediaSource createMediaSource(MediaItem mediaItem) {
return new PreloadMediaSource(
mediaSourceFactory.createMediaSource(mediaItem),
playerId,
preloadControl,
trackSelector,
bandwidthMeter,
@ -180,7 +174,6 @@ public final class PreloadMediaSource extends WrappingMediaSource {
private static final String TAG = "PreloadMediaSource";
private final PlayerId playerId;
private final PreloadControl preloadControl;
private final TrackSelector trackSelector;
private final BandwidthMeter bandwidthMeter;
@ -196,7 +189,6 @@ public final class PreloadMediaSource extends WrappingMediaSource {
private PreloadMediaSource(
MediaSource mediaSource,
PlayerId playerId,
PreloadControl preloadControl,
TrackSelector trackSelector,
BandwidthMeter bandwidthMeter,
@ -204,7 +196,6 @@ public final class PreloadMediaSource extends WrappingMediaSource {
Allocator allocator,
Looper preloadLooper) {
super(mediaSource);
this.playerId = playerId;
this.preloadControl = preloadControl;
this.trackSelector = trackSelector;
this.bandwidthMeter = bandwidthMeter;
@ -229,7 +220,7 @@ public final class PreloadMediaSource extends WrappingMediaSource {
preloadCalled = true;
this.startPositionUs = startPositionUs;
if (!isUsedByPlayer()) {
setPlayerId(playerId);
setPlayerId(PlayerId.UNSET); // Set to PlayerId.UNSET as there is no ongoing playback.
prepareSourceInternal(bandwidthMeter.getTransferListener());
}
});

View File

@ -123,7 +123,6 @@ public class PreloadAndPlaybackCoordinationTest {
PreloadMediaSource.Factory preloadMediaSourceFactory =
new PreloadMediaSource.Factory(
mediaSourceFactory,
playerId,
preloadControl,
trackSelector,
bandwidthMeter,

View File

@ -77,14 +77,13 @@ public final class PreloadMediaSourceTest {
private static final int LOADING_CHECK_INTERVAL_BYTES = 10 * 1024;
private static final int TARGET_PRELOAD_POSITION_US = 10000;
private PlayerId playerId;
private Allocator allocator;
private BandwidthMeter bandwidthMeter;
private RenderersFactory renderersFactory;
private PlayerId playerId;
@Before
public void setUp() {
playerId = new PlayerId();
allocator = new DefaultAllocator(/* trimOnReset= */ true, C.DEFAULT_BUFFER_SEGMENT_SIZE);
bandwidthMeter =
new DefaultBandwidthMeter.Builder(ApplicationProvider.getApplicationContext()).build();
@ -98,6 +97,7 @@ public final class PreloadMediaSourceTest {
SystemClock.DEFAULT.createHandler(handler.getLooper(), /* callback= */ null),
audioListener)
};
playerId = new PlayerId();
}
@Test
@ -141,7 +141,6 @@ public final class PreloadMediaSourceTest {
PreloadMediaSource.Factory preloadMediaSourceFactory =
new PreloadMediaSource.Factory(
mediaSourceFactory,
playerId,
preloadControl,
trackSelector,
bandwidthMeter,
@ -200,7 +199,6 @@ public final class PreloadMediaSourceTest {
PreloadMediaSource.Factory preloadMediaSourceFactory =
new PreloadMediaSource.Factory(
mediaSourceFactory,
playerId,
preloadControl,
trackSelector,
bandwidthMeter,
@ -258,7 +256,6 @@ public final class PreloadMediaSourceTest {
PreloadMediaSource.Factory preloadMediaSourceFactory =
new PreloadMediaSource.Factory(
mediaSourceFactory,
playerId,
preloadControl,
trackSelector,
bandwidthMeter,
@ -308,7 +305,6 @@ public final class PreloadMediaSourceTest {
PreloadMediaSource.Factory preloadMediaSourceFactory =
new PreloadMediaSource.Factory(
new FakeMediaSourceFactory(),
playerId,
preloadControl,
trackSelector,
bandwidthMeter,
@ -371,7 +367,6 @@ public final class PreloadMediaSourceTest {
PreloadMediaSource.Factory preloadMediaSourceFactory =
new PreloadMediaSource.Factory(
mediaSourceFactory,
playerId,
preloadControl,
trackSelector,
bandwidthMeter,
@ -435,7 +430,6 @@ public final class PreloadMediaSourceTest {
PreloadMediaSource.Factory preloadMediaSourceFactory =
new PreloadMediaSource.Factory(
mediaSourceFactory,
playerId,
preloadControl,
trackSelector,
bandwidthMeter,
@ -534,7 +528,6 @@ public final class PreloadMediaSourceTest {
PreloadMediaSource.Factory preloadMediaSourceFactory =
new PreloadMediaSource.Factory(
mockMediaSourceFactory,
playerId,
preloadControl,
mockTrackSelector,
bandwidthMeter,
@ -642,7 +635,6 @@ public final class PreloadMediaSourceTest {
PreloadMediaSource.Factory preloadMediaSourceFactory =
new PreloadMediaSource.Factory(
mockMediaSourceFactory,
playerId,
preloadControl,
mockTrackSelector,
bandwidthMeter,
@ -728,7 +720,6 @@ public final class PreloadMediaSourceTest {
PreloadMediaSource.Factory preloadMediaSourceFactory =
new PreloadMediaSource.Factory(
mockMediaSourceFactory,
playerId,
preloadControl,
trackSelector,
bandwidthMeter,
@ -806,7 +797,6 @@ public final class PreloadMediaSourceTest {
PreloadMediaSource.Factory preloadMediaSourceFactory =
new PreloadMediaSource.Factory(
mockMediaSourceFactory,
playerId,
preloadControl,
trackSelector,
bandwidthMeter,
@ -885,7 +875,6 @@ public final class PreloadMediaSourceTest {
PreloadMediaSource.Factory preloadMediaSourceFactory =
new PreloadMediaSource.Factory(
mockMediaSourceFactory,
playerId,
preloadControl,
trackSelector,
bandwidthMeter,
@ -974,7 +963,6 @@ public final class PreloadMediaSourceTest {
PreloadMediaSource.Factory preloadMediaSourceFactory =
new PreloadMediaSource.Factory(
mockMediaSourceFactory,
playerId,
preloadControl,
trackSelector,
bandwidthMeter,
@ -1044,7 +1032,6 @@ public final class PreloadMediaSourceTest {
PreloadMediaSource.Factory preloadMediaSourceFactory =
new PreloadMediaSource.Factory(
mockMediaSourceFactory,
playerId,
preloadControl,
trackSelector,
bandwidthMeter,