diff --git a/library/core/src/main/java/com/google/android/exoplayer2/trackselection/AdaptiveTrackSelection.java b/library/core/src/main/java/com/google/android/exoplayer2/trackselection/AdaptiveTrackSelection.java index ca8a0b12f9..c5d22c15cb 100644 --- a/library/core/src/main/java/com/google/android/exoplayer2/trackselection/AdaptiveTrackSelection.java +++ b/library/core/src/main/java/com/google/android/exoplayer2/trackselection/AdaptiveTrackSelection.java @@ -49,7 +49,6 @@ public class AdaptiveTrackSelection extends BaseTrackSelection { private final Clock clock; private TrackBitrateEstimator trackBitrateEstimator; - private boolean blockFixedTrackSelectionBandwidth; /** Creates an adaptive track selection factory with default parameters. */ public Factory() { @@ -218,15 +217,6 @@ public class AdaptiveTrackSelection extends BaseTrackSelection { this.trackBitrateEstimator = trackBitrateEstimator; } - /** - * Enables blocking of the total fixed track selection bandwidth. - * - *
This method is experimental, and will be renamed or removed in a future release.
- */
- public final void experimental_enableBlockFixedTrackSelectionBandwidth() {
- this.blockFixedTrackSelectionBandwidth = true;
- }
-
@Override
public final @NullableType TrackSelection[] createTrackSelections(
@NullableType Definition[] definitions, BandwidthMeter bandwidthMeter) {
@@ -234,20 +224,11 @@ public class AdaptiveTrackSelection extends BaseTrackSelection {
bandwidthMeter = this.bandwidthMeter;
}
TrackSelection[] selections = new TrackSelection[definitions.length];
- List This method is experimental, and will be renamed or removed in a future release.
- *
- * @param nonAllocatableBandwidth The non-allocatable bandwidth in bits per second.
- */
- public void experimental_setNonAllocatableBandwidth(long nonAllocatableBandwidth) {
- ((DefaultBandwidthProvider) bandwidthProvider)
- .experimental_setNonAllocatableBandwidth(nonAllocatableBandwidth);
- }
-
/**
* Sets checkpoints to determine the allocation bandwidth based on the total bandwidth.
*
@@ -666,20 +651,21 @@ public class AdaptiveTrackSelection extends BaseTrackSelection {
private final BandwidthMeter bandwidthMeter;
private final float bandwidthFraction;
-
- private long nonAllocatableBandwidth;
+ private final long reservedBandwidth;
@Nullable private long[][] allocationCheckpoints;
- /* package */ DefaultBandwidthProvider(BandwidthMeter bandwidthMeter, float bandwidthFraction) {
+ /* package */ DefaultBandwidthProvider(
+ BandwidthMeter bandwidthMeter, float bandwidthFraction, long reservedBandwidth) {
this.bandwidthMeter = bandwidthMeter;
this.bandwidthFraction = bandwidthFraction;
+ this.reservedBandwidth = reservedBandwidth;
}
@Override
public long getAllocatedBandwidth() {
long totalBandwidth = (long) (bandwidthMeter.getBitrateEstimate() * bandwidthFraction);
- long allocatableBandwidth = Math.max(0L, totalBandwidth - nonAllocatableBandwidth);
+ long allocatableBandwidth = Math.max(0L, totalBandwidth - reservedBandwidth);
if (allocationCheckpoints == null) {
return allocatableBandwidth;
}
@@ -695,10 +681,6 @@ public class AdaptiveTrackSelection extends BaseTrackSelection {
return previous[1] + (long) (fractionBetweenCheckpoints * (next[1] - previous[1]));
}
- /* package */ void experimental_setNonAllocatableBandwidth(long nonAllocatableBandwidth) {
- this.nonAllocatableBandwidth = nonAllocatableBandwidth;
- }
-
/* package */ void experimental_setBandwidthAllocationCheckpoints(
long[][] allocationCheckpoints) {
Assertions.checkArgument(allocationCheckpoints.length >= 2);
diff --git a/library/core/src/test/java/com/google/android/exoplayer2/trackselection/AdaptiveTrackSelectionTest.java b/library/core/src/test/java/com/google/android/exoplayer2/trackselection/AdaptiveTrackSelectionTest.java
index 91e7393fe7..456f7f7107 100644
--- a/library/core/src/test/java/com/google/android/exoplayer2/trackselection/AdaptiveTrackSelectionTest.java
+++ b/library/core/src/test/java/com/google/android/exoplayer2/trackselection/AdaptiveTrackSelectionTest.java
@@ -392,6 +392,7 @@ public final class AdaptiveTrackSelectionTest {
trackGroup,
selectedAllTracksInGroup(trackGroup),
mockBandwidthMeter,
+ /* reservedBandwidth= */ 0,
minDurationForQualityIncreaseMs,
AdaptiveTrackSelection.DEFAULT_MAX_DURATION_FOR_QUALITY_DECREASE_MS,
AdaptiveTrackSelection.DEFAULT_MIN_DURATION_TO_RETAIN_AFTER_DISCARD_MS,
@@ -408,6 +409,7 @@ public final class AdaptiveTrackSelectionTest {
trackGroup,
selectedAllTracksInGroup(trackGroup),
mockBandwidthMeter,
+ /* reservedBandwidth= */ 0,
AdaptiveTrackSelection.DEFAULT_MIN_DURATION_FOR_QUALITY_INCREASE_MS,
maxDurationForQualityDecreaseMs,
AdaptiveTrackSelection.DEFAULT_MIN_DURATION_TO_RETAIN_AFTER_DISCARD_MS,
@@ -426,6 +428,7 @@ public final class AdaptiveTrackSelectionTest {
trackGroup,
selectedAllTracksInGroup(trackGroup),
mockBandwidthMeter,
+ /* reservedBandwidth= */ 0,
AdaptiveTrackSelection.DEFAULT_MIN_DURATION_FOR_QUALITY_INCREASE_MS,
AdaptiveTrackSelection.DEFAULT_MAX_DURATION_FOR_QUALITY_DECREASE_MS,
durationToRetainAfterDiscardMs,