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:
parent
d884f19871
commit
733301d562
@ -56,7 +56,6 @@ class MediaSourceManager(
|
|||||||
preloadMediaSourceFactory =
|
preloadMediaSourceFactory =
|
||||||
PreloadMediaSource.Factory(
|
PreloadMediaSource.Factory(
|
||||||
mediaSourceFactory,
|
mediaSourceFactory,
|
||||||
PlayerId.UNSET,
|
|
||||||
PreloadControlImpl(targetPreloadPositionUs = 5_000_000L),
|
PreloadControlImpl(targetPreloadPositionUs = 5_000_000L),
|
||||||
trackSelector,
|
trackSelector,
|
||||||
bandwidthMeter,
|
bandwidthMeter,
|
||||||
|
@ -91,7 +91,6 @@ public final class PreloadMediaSource extends WrappingMediaSource {
|
|||||||
/** Factory for {@link PreloadMediaSource}. */
|
/** Factory for {@link PreloadMediaSource}. */
|
||||||
public static final class Factory implements MediaSource.Factory {
|
public static final class Factory implements MediaSource.Factory {
|
||||||
private final MediaSource.Factory mediaSourceFactory;
|
private final MediaSource.Factory mediaSourceFactory;
|
||||||
private final PlayerId playerId;
|
|
||||||
private final Looper preloadLooper;
|
private final Looper preloadLooper;
|
||||||
private final Allocator allocator;
|
private final Allocator allocator;
|
||||||
private final TrackSelector trackSelector;
|
private final TrackSelector trackSelector;
|
||||||
@ -103,8 +102,6 @@ public final class PreloadMediaSource extends WrappingMediaSource {
|
|||||||
* Creates a new factory for {@link PreloadMediaSource}.
|
* Creates a new factory for {@link PreloadMediaSource}.
|
||||||
*
|
*
|
||||||
* @param mediaSourceFactory The underlying {@link MediaSource.Factory}.
|
* @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
|
* @param preloadControl The {@link PreloadControl} that will control the progress of preloading
|
||||||
* the created {@link PreloadMediaSource} instances.
|
* the created {@link PreloadMediaSource} instances.
|
||||||
* @param trackSelector The {@link TrackSelector}. The instance passed should be {@link
|
* @param trackSelector The {@link TrackSelector}. The instance passed should be {@link
|
||||||
@ -123,7 +120,6 @@ public final class PreloadMediaSource extends WrappingMediaSource {
|
|||||||
*/
|
*/
|
||||||
public Factory(
|
public Factory(
|
||||||
MediaSource.Factory mediaSourceFactory,
|
MediaSource.Factory mediaSourceFactory,
|
||||||
PlayerId playerId,
|
|
||||||
PreloadControl preloadControl,
|
PreloadControl preloadControl,
|
||||||
TrackSelector trackSelector,
|
TrackSelector trackSelector,
|
||||||
BandwidthMeter bandwidthMeter,
|
BandwidthMeter bandwidthMeter,
|
||||||
@ -131,7 +127,6 @@ public final class PreloadMediaSource extends WrappingMediaSource {
|
|||||||
Allocator allocator,
|
Allocator allocator,
|
||||||
Looper preloadLooper) {
|
Looper preloadLooper) {
|
||||||
this.mediaSourceFactory = mediaSourceFactory;
|
this.mediaSourceFactory = mediaSourceFactory;
|
||||||
this.playerId = playerId;
|
|
||||||
this.preloadControl = preloadControl;
|
this.preloadControl = preloadControl;
|
||||||
this.trackSelector = trackSelector;
|
this.trackSelector = trackSelector;
|
||||||
this.bandwidthMeter = bandwidthMeter;
|
this.bandwidthMeter = bandwidthMeter;
|
||||||
@ -168,7 +163,6 @@ public final class PreloadMediaSource extends WrappingMediaSource {
|
|||||||
public PreloadMediaSource createMediaSource(MediaItem mediaItem) {
|
public PreloadMediaSource createMediaSource(MediaItem mediaItem) {
|
||||||
return new PreloadMediaSource(
|
return new PreloadMediaSource(
|
||||||
mediaSourceFactory.createMediaSource(mediaItem),
|
mediaSourceFactory.createMediaSource(mediaItem),
|
||||||
playerId,
|
|
||||||
preloadControl,
|
preloadControl,
|
||||||
trackSelector,
|
trackSelector,
|
||||||
bandwidthMeter,
|
bandwidthMeter,
|
||||||
@ -180,7 +174,6 @@ public final class PreloadMediaSource extends WrappingMediaSource {
|
|||||||
|
|
||||||
private static final String TAG = "PreloadMediaSource";
|
private static final String TAG = "PreloadMediaSource";
|
||||||
|
|
||||||
private final PlayerId playerId;
|
|
||||||
private final PreloadControl preloadControl;
|
private final PreloadControl preloadControl;
|
||||||
private final TrackSelector trackSelector;
|
private final TrackSelector trackSelector;
|
||||||
private final BandwidthMeter bandwidthMeter;
|
private final BandwidthMeter bandwidthMeter;
|
||||||
@ -196,7 +189,6 @@ public final class PreloadMediaSource extends WrappingMediaSource {
|
|||||||
|
|
||||||
private PreloadMediaSource(
|
private PreloadMediaSource(
|
||||||
MediaSource mediaSource,
|
MediaSource mediaSource,
|
||||||
PlayerId playerId,
|
|
||||||
PreloadControl preloadControl,
|
PreloadControl preloadControl,
|
||||||
TrackSelector trackSelector,
|
TrackSelector trackSelector,
|
||||||
BandwidthMeter bandwidthMeter,
|
BandwidthMeter bandwidthMeter,
|
||||||
@ -204,7 +196,6 @@ public final class PreloadMediaSource extends WrappingMediaSource {
|
|||||||
Allocator allocator,
|
Allocator allocator,
|
||||||
Looper preloadLooper) {
|
Looper preloadLooper) {
|
||||||
super(mediaSource);
|
super(mediaSource);
|
||||||
this.playerId = playerId;
|
|
||||||
this.preloadControl = preloadControl;
|
this.preloadControl = preloadControl;
|
||||||
this.trackSelector = trackSelector;
|
this.trackSelector = trackSelector;
|
||||||
this.bandwidthMeter = bandwidthMeter;
|
this.bandwidthMeter = bandwidthMeter;
|
||||||
@ -229,7 +220,7 @@ public final class PreloadMediaSource extends WrappingMediaSource {
|
|||||||
preloadCalled = true;
|
preloadCalled = true;
|
||||||
this.startPositionUs = startPositionUs;
|
this.startPositionUs = startPositionUs;
|
||||||
if (!isUsedByPlayer()) {
|
if (!isUsedByPlayer()) {
|
||||||
setPlayerId(playerId);
|
setPlayerId(PlayerId.UNSET); // Set to PlayerId.UNSET as there is no ongoing playback.
|
||||||
prepareSourceInternal(bandwidthMeter.getTransferListener());
|
prepareSourceInternal(bandwidthMeter.getTransferListener());
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
@ -123,7 +123,6 @@ public class PreloadAndPlaybackCoordinationTest {
|
|||||||
PreloadMediaSource.Factory preloadMediaSourceFactory =
|
PreloadMediaSource.Factory preloadMediaSourceFactory =
|
||||||
new PreloadMediaSource.Factory(
|
new PreloadMediaSource.Factory(
|
||||||
mediaSourceFactory,
|
mediaSourceFactory,
|
||||||
playerId,
|
|
||||||
preloadControl,
|
preloadControl,
|
||||||
trackSelector,
|
trackSelector,
|
||||||
bandwidthMeter,
|
bandwidthMeter,
|
||||||
|
@ -77,14 +77,13 @@ public final class PreloadMediaSourceTest {
|
|||||||
private static final int LOADING_CHECK_INTERVAL_BYTES = 10 * 1024;
|
private static final int LOADING_CHECK_INTERVAL_BYTES = 10 * 1024;
|
||||||
private static final int TARGET_PRELOAD_POSITION_US = 10000;
|
private static final int TARGET_PRELOAD_POSITION_US = 10000;
|
||||||
|
|
||||||
private PlayerId playerId;
|
|
||||||
private Allocator allocator;
|
private Allocator allocator;
|
||||||
private BandwidthMeter bandwidthMeter;
|
private BandwidthMeter bandwidthMeter;
|
||||||
private RenderersFactory renderersFactory;
|
private RenderersFactory renderersFactory;
|
||||||
|
private PlayerId playerId;
|
||||||
|
|
||||||
@Before
|
@Before
|
||||||
public void setUp() {
|
public void setUp() {
|
||||||
playerId = new PlayerId();
|
|
||||||
allocator = new DefaultAllocator(/* trimOnReset= */ true, C.DEFAULT_BUFFER_SEGMENT_SIZE);
|
allocator = new DefaultAllocator(/* trimOnReset= */ true, C.DEFAULT_BUFFER_SEGMENT_SIZE);
|
||||||
bandwidthMeter =
|
bandwidthMeter =
|
||||||
new DefaultBandwidthMeter.Builder(ApplicationProvider.getApplicationContext()).build();
|
new DefaultBandwidthMeter.Builder(ApplicationProvider.getApplicationContext()).build();
|
||||||
@ -98,6 +97,7 @@ public final class PreloadMediaSourceTest {
|
|||||||
SystemClock.DEFAULT.createHandler(handler.getLooper(), /* callback= */ null),
|
SystemClock.DEFAULT.createHandler(handler.getLooper(), /* callback= */ null),
|
||||||
audioListener)
|
audioListener)
|
||||||
};
|
};
|
||||||
|
playerId = new PlayerId();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
@ -141,7 +141,6 @@ public final class PreloadMediaSourceTest {
|
|||||||
PreloadMediaSource.Factory preloadMediaSourceFactory =
|
PreloadMediaSource.Factory preloadMediaSourceFactory =
|
||||||
new PreloadMediaSource.Factory(
|
new PreloadMediaSource.Factory(
|
||||||
mediaSourceFactory,
|
mediaSourceFactory,
|
||||||
playerId,
|
|
||||||
preloadControl,
|
preloadControl,
|
||||||
trackSelector,
|
trackSelector,
|
||||||
bandwidthMeter,
|
bandwidthMeter,
|
||||||
@ -200,7 +199,6 @@ public final class PreloadMediaSourceTest {
|
|||||||
PreloadMediaSource.Factory preloadMediaSourceFactory =
|
PreloadMediaSource.Factory preloadMediaSourceFactory =
|
||||||
new PreloadMediaSource.Factory(
|
new PreloadMediaSource.Factory(
|
||||||
mediaSourceFactory,
|
mediaSourceFactory,
|
||||||
playerId,
|
|
||||||
preloadControl,
|
preloadControl,
|
||||||
trackSelector,
|
trackSelector,
|
||||||
bandwidthMeter,
|
bandwidthMeter,
|
||||||
@ -258,7 +256,6 @@ public final class PreloadMediaSourceTest {
|
|||||||
PreloadMediaSource.Factory preloadMediaSourceFactory =
|
PreloadMediaSource.Factory preloadMediaSourceFactory =
|
||||||
new PreloadMediaSource.Factory(
|
new PreloadMediaSource.Factory(
|
||||||
mediaSourceFactory,
|
mediaSourceFactory,
|
||||||
playerId,
|
|
||||||
preloadControl,
|
preloadControl,
|
||||||
trackSelector,
|
trackSelector,
|
||||||
bandwidthMeter,
|
bandwidthMeter,
|
||||||
@ -308,7 +305,6 @@ public final class PreloadMediaSourceTest {
|
|||||||
PreloadMediaSource.Factory preloadMediaSourceFactory =
|
PreloadMediaSource.Factory preloadMediaSourceFactory =
|
||||||
new PreloadMediaSource.Factory(
|
new PreloadMediaSource.Factory(
|
||||||
new FakeMediaSourceFactory(),
|
new FakeMediaSourceFactory(),
|
||||||
playerId,
|
|
||||||
preloadControl,
|
preloadControl,
|
||||||
trackSelector,
|
trackSelector,
|
||||||
bandwidthMeter,
|
bandwidthMeter,
|
||||||
@ -371,7 +367,6 @@ public final class PreloadMediaSourceTest {
|
|||||||
PreloadMediaSource.Factory preloadMediaSourceFactory =
|
PreloadMediaSource.Factory preloadMediaSourceFactory =
|
||||||
new PreloadMediaSource.Factory(
|
new PreloadMediaSource.Factory(
|
||||||
mediaSourceFactory,
|
mediaSourceFactory,
|
||||||
playerId,
|
|
||||||
preloadControl,
|
preloadControl,
|
||||||
trackSelector,
|
trackSelector,
|
||||||
bandwidthMeter,
|
bandwidthMeter,
|
||||||
@ -435,7 +430,6 @@ public final class PreloadMediaSourceTest {
|
|||||||
PreloadMediaSource.Factory preloadMediaSourceFactory =
|
PreloadMediaSource.Factory preloadMediaSourceFactory =
|
||||||
new PreloadMediaSource.Factory(
|
new PreloadMediaSource.Factory(
|
||||||
mediaSourceFactory,
|
mediaSourceFactory,
|
||||||
playerId,
|
|
||||||
preloadControl,
|
preloadControl,
|
||||||
trackSelector,
|
trackSelector,
|
||||||
bandwidthMeter,
|
bandwidthMeter,
|
||||||
@ -534,7 +528,6 @@ public final class PreloadMediaSourceTest {
|
|||||||
PreloadMediaSource.Factory preloadMediaSourceFactory =
|
PreloadMediaSource.Factory preloadMediaSourceFactory =
|
||||||
new PreloadMediaSource.Factory(
|
new PreloadMediaSource.Factory(
|
||||||
mockMediaSourceFactory,
|
mockMediaSourceFactory,
|
||||||
playerId,
|
|
||||||
preloadControl,
|
preloadControl,
|
||||||
mockTrackSelector,
|
mockTrackSelector,
|
||||||
bandwidthMeter,
|
bandwidthMeter,
|
||||||
@ -642,7 +635,6 @@ public final class PreloadMediaSourceTest {
|
|||||||
PreloadMediaSource.Factory preloadMediaSourceFactory =
|
PreloadMediaSource.Factory preloadMediaSourceFactory =
|
||||||
new PreloadMediaSource.Factory(
|
new PreloadMediaSource.Factory(
|
||||||
mockMediaSourceFactory,
|
mockMediaSourceFactory,
|
||||||
playerId,
|
|
||||||
preloadControl,
|
preloadControl,
|
||||||
mockTrackSelector,
|
mockTrackSelector,
|
||||||
bandwidthMeter,
|
bandwidthMeter,
|
||||||
@ -728,7 +720,6 @@ public final class PreloadMediaSourceTest {
|
|||||||
PreloadMediaSource.Factory preloadMediaSourceFactory =
|
PreloadMediaSource.Factory preloadMediaSourceFactory =
|
||||||
new PreloadMediaSource.Factory(
|
new PreloadMediaSource.Factory(
|
||||||
mockMediaSourceFactory,
|
mockMediaSourceFactory,
|
||||||
playerId,
|
|
||||||
preloadControl,
|
preloadControl,
|
||||||
trackSelector,
|
trackSelector,
|
||||||
bandwidthMeter,
|
bandwidthMeter,
|
||||||
@ -806,7 +797,6 @@ public final class PreloadMediaSourceTest {
|
|||||||
PreloadMediaSource.Factory preloadMediaSourceFactory =
|
PreloadMediaSource.Factory preloadMediaSourceFactory =
|
||||||
new PreloadMediaSource.Factory(
|
new PreloadMediaSource.Factory(
|
||||||
mockMediaSourceFactory,
|
mockMediaSourceFactory,
|
||||||
playerId,
|
|
||||||
preloadControl,
|
preloadControl,
|
||||||
trackSelector,
|
trackSelector,
|
||||||
bandwidthMeter,
|
bandwidthMeter,
|
||||||
@ -885,7 +875,6 @@ public final class PreloadMediaSourceTest {
|
|||||||
PreloadMediaSource.Factory preloadMediaSourceFactory =
|
PreloadMediaSource.Factory preloadMediaSourceFactory =
|
||||||
new PreloadMediaSource.Factory(
|
new PreloadMediaSource.Factory(
|
||||||
mockMediaSourceFactory,
|
mockMediaSourceFactory,
|
||||||
playerId,
|
|
||||||
preloadControl,
|
preloadControl,
|
||||||
trackSelector,
|
trackSelector,
|
||||||
bandwidthMeter,
|
bandwidthMeter,
|
||||||
@ -974,7 +963,6 @@ public final class PreloadMediaSourceTest {
|
|||||||
PreloadMediaSource.Factory preloadMediaSourceFactory =
|
PreloadMediaSource.Factory preloadMediaSourceFactory =
|
||||||
new PreloadMediaSource.Factory(
|
new PreloadMediaSource.Factory(
|
||||||
mockMediaSourceFactory,
|
mockMediaSourceFactory,
|
||||||
playerId,
|
|
||||||
preloadControl,
|
preloadControl,
|
||||||
trackSelector,
|
trackSelector,
|
||||||
bandwidthMeter,
|
bandwidthMeter,
|
||||||
@ -1044,7 +1032,6 @@ public final class PreloadMediaSourceTest {
|
|||||||
PreloadMediaSource.Factory preloadMediaSourceFactory =
|
PreloadMediaSource.Factory preloadMediaSourceFactory =
|
||||||
new PreloadMediaSource.Factory(
|
new PreloadMediaSource.Factory(
|
||||||
mockMediaSourceFactory,
|
mockMediaSourceFactory,
|
||||||
playerId,
|
|
||||||
preloadControl,
|
preloadControl,
|
||||||
trackSelector,
|
trackSelector,
|
||||||
bandwidthMeter,
|
bandwidthMeter,
|
||||||
|
Loading…
x
Reference in New Issue
Block a user