Commit 1051580a by bachinger Committed by Oliver Woodman

Improve naming of the methods of LivePlaybackSpeedControl

PiperOrigin-RevId: 338232327
parent 54506b50
......@@ -181,19 +181,19 @@ public final class DefaultLivePlaybackSpeedControl implements LivePlaybackSpeedC
}
@Override
public void updateLiveConfiguration(LiveConfiguration liveConfiguration) {
public void setLiveConfiguration(LiveConfiguration liveConfiguration) {
this.mediaConfiguration = liveConfiguration;
lastPlaybackSpeedUpdateMs = C.TIME_UNSET;
}
@Override
public void overrideTargetLiveOffsetUs(long liveOffsetUs) {
public void setTargetLiveOffsetOverrideUs(long liveOffsetUs) {
this.targetLiveOffsetOverrideUs = liveOffsetUs;
lastPlaybackSpeedUpdateMs = C.TIME_UNSET;
}
@Override
public float adjustPlaybackSpeed(long liveOffsetUs) {
public float getAdjustedPlaybackSpeed(long liveOffsetUs) {
long targetLiveOffsetUs = getTargetLiveOffsetUs();
if (targetLiveOffsetUs == C.TIME_UNSET) {
return 1f;
......
......@@ -870,7 +870,8 @@ import java.util.concurrent.atomic.AtomicBoolean;
if (playbackInfo.playWhenReady
&& isCurrentPeriodInMovingLiveWindow()
&& playbackInfo.playbackParameters.speed == 1f) {
float adjustedSpeed = livePlaybackSpeedControl.adjustPlaybackSpeed(getCurrentLiveOffsetUs());
float adjustedSpeed =
livePlaybackSpeedControl.getAdjustedPlaybackSpeed(getCurrentLiveOffsetUs());
if (mediaClock.getPlaybackParameters().speed != adjustedSpeed) {
mediaClock.setPlaybackParameters(playbackInfo.playbackParameters.withSpeed(adjustedSpeed));
}
......@@ -1798,9 +1799,9 @@ import java.util.concurrent.atomic.AtomicBoolean;
}
int windowIndex = newTimeline.getPeriodByUid(newPeriodId.periodUid, period).windowIndex;
newTimeline.getWindow(windowIndex, window);
livePlaybackSpeedControl.updateLiveConfiguration(window.mediaItem.liveConfiguration);
livePlaybackSpeedControl.setLiveConfiguration(window.mediaItem.liveConfiguration);
if (positionForTargetOffsetOverrideUs != C.TIME_UNSET) {
livePlaybackSpeedControl.overrideTargetLiveOffsetUs(
livePlaybackSpeedControl.setTargetLiveOffsetOverrideUs(
getLiveOffsetUs(newTimeline, newPeriodId.periodUid, positionForTargetOffsetOverrideUs));
} else {
Object windowUid = window.uid;
......@@ -1811,7 +1812,7 @@ import java.util.concurrent.atomic.AtomicBoolean;
}
if (!Util.areEqual(oldWindowUid, windowUid)) {
// Reset overridden target live offset to media values if window changes.
livePlaybackSpeedControl.overrideTargetLiveOffsetUs(C.TIME_UNSET);
livePlaybackSpeedControl.setTargetLiveOffsetOverrideUs(C.TIME_UNSET);
}
}
}
......
......@@ -24,20 +24,21 @@ import com.google.android.exoplayer2.MediaItem.LiveConfiguration;
public interface LivePlaybackSpeedControl {
/**
* Updates the live configuration defined by the media.
* Sets the live configuration defined by the media.
*
* @param liveConfiguration The {@link LiveConfiguration} as defined by the media.
*/
void updateLiveConfiguration(LiveConfiguration liveConfiguration);
void setLiveConfiguration(LiveConfiguration liveConfiguration);
/**
* Overrides the {@link #updateLiveConfiguration configured} target live offset in microseconds,
* or {@code C.TIME_UNSET} to delete a previous override.
* Sets the target live offset in microseconds that overrides the live offset {@link
* #setLiveConfiguration configured} by the media. Passing {@code C.TIME_UNSET} deletes a previous
* override.
*
* <p>If no target live offset is configured by {@link #updateLiveConfiguration}, this override
* has no effect.
* <p>If no target live offset is configured by {@link #setLiveConfiguration}, this override has
* no effect.
*/
void overrideTargetLiveOffsetUs(long liveOffsetUs);
void setTargetLiveOffsetOverrideUs(long liveOffsetUs);
/**
* Returns the adjusted playback speed in order get closer towards the {@link
......@@ -46,7 +47,7 @@ public interface LivePlaybackSpeedControl {
* @param liveOffsetUs The current live offset, in microseconds.
* @return The adjusted playback speed.
*/
float adjustPlaybackSpeed(long liveOffsetUs);
float getAdjustedPlaybackSpeed(long liveOffsetUs);
/**
* Returns the current target live offset, in microseconds, or {@link C#TIME_UNSET} if no target
......
......@@ -40,7 +40,7 @@ public class DefaultLivePlaybackSpeedControlTest {
public void getTargetLiveOffsetUs_afterUpdateLiveConfiguration_usesMediaLiveOffset() {
DefaultLivePlaybackSpeedControl defaultLivePlaybackSpeedControl =
new DefaultLivePlaybackSpeedControl.Builder().build();
defaultLivePlaybackSpeedControl.updateLiveConfiguration(
defaultLivePlaybackSpeedControl.setLiveConfiguration(
new LiveConfiguration(
/* targetLiveOffsetMs= */ 42, /* minPlaybackSpeed= */ 1f, /* maxPlaybackSpeed= */ 1f));
......@@ -52,8 +52,8 @@ public class DefaultLivePlaybackSpeedControlTest {
DefaultLivePlaybackSpeedControl defaultLivePlaybackSpeedControl =
new DefaultLivePlaybackSpeedControl.Builder().build();
defaultLivePlaybackSpeedControl.overrideTargetLiveOffsetUs(123_456_789);
defaultLivePlaybackSpeedControl.updateLiveConfiguration(
defaultLivePlaybackSpeedControl.setTargetLiveOffsetOverrideUs(123_456_789);
defaultLivePlaybackSpeedControl.setLiveConfiguration(
new LiveConfiguration(
/* targetLiveOffsetMs= */ 42, /* minPlaybackSpeed= */ 1f, /* maxPlaybackSpeed= */ 1f));
......@@ -67,7 +67,7 @@ public class DefaultLivePlaybackSpeedControlTest {
getTargetLiveOffsetUs_afterOverrideTargetLiveOffset_withoutMediaConfiguration_returnsUnset() {
DefaultLivePlaybackSpeedControl defaultLivePlaybackSpeedControl =
new DefaultLivePlaybackSpeedControl.Builder().build();
defaultLivePlaybackSpeedControl.overrideTargetLiveOffsetUs(123_456_789);
defaultLivePlaybackSpeedControl.setTargetLiveOffsetOverrideUs(123_456_789);
long targetLiveOffsetUs = defaultLivePlaybackSpeedControl.getTargetLiveOffsetUs();
......@@ -79,11 +79,11 @@ public class DefaultLivePlaybackSpeedControlTest {
getTargetLiveOffsetUs_afterOverrideTargetLiveOffsetUsWithTimeUnset_usesMediaLiveOffset() {
DefaultLivePlaybackSpeedControl defaultLivePlaybackSpeedControl =
new DefaultLivePlaybackSpeedControl.Builder().build();
defaultLivePlaybackSpeedControl.overrideTargetLiveOffsetUs(123_456_789);
defaultLivePlaybackSpeedControl.updateLiveConfiguration(
defaultLivePlaybackSpeedControl.setTargetLiveOffsetOverrideUs(123_456_789);
defaultLivePlaybackSpeedControl.setLiveConfiguration(
new LiveConfiguration(
/* targetLiveOffsetMs= */ 42, /* minPlaybackSpeed= */ 1f, /* maxPlaybackSpeed= */ 1f));
defaultLivePlaybackSpeedControl.overrideTargetLiveOffsetUs(C.TIME_UNSET);
defaultLivePlaybackSpeedControl.setTargetLiveOffsetOverrideUs(C.TIME_UNSET);
long targetLiveOffsetUs = defaultLivePlaybackSpeedControl.getTargetLiveOffsetUs();
......@@ -94,14 +94,14 @@ public class DefaultLivePlaybackSpeedControlTest {
public void adjustPlaybackSpeed_liveOffsetMatchesTargetOffset_returnsUnitSpeed() {
DefaultLivePlaybackSpeedControl defaultLivePlaybackSpeedControl =
new DefaultLivePlaybackSpeedControl.Builder().build();
defaultLivePlaybackSpeedControl.updateLiveConfiguration(
defaultLivePlaybackSpeedControl.setLiveConfiguration(
new LiveConfiguration(
/* targetLiveOffsetMs= */ 2_000,
/* minPlaybackSpeed= */ C.RATE_UNSET,
/* maxPlaybackSpeed= */ C.RATE_UNSET));
float adjustedSpeed =
defaultLivePlaybackSpeedControl.adjustPlaybackSpeed(/* liveOffsetUs= */ 2_000_000);
defaultLivePlaybackSpeedControl.getAdjustedPlaybackSpeed(/* liveOffsetUs= */ 2_000_000);
assertThat(adjustedSpeed).isEqualTo(1f);
}
......@@ -110,19 +110,19 @@ public class DefaultLivePlaybackSpeedControlTest {
public void adjustPlaybackSpeed_liveOffsetWithinAcceptableErrorMargin_returnsUnitSpeed() {
DefaultLivePlaybackSpeedControl defaultLivePlaybackSpeedControl =
new DefaultLivePlaybackSpeedControl.Builder().build();
defaultLivePlaybackSpeedControl.updateLiveConfiguration(
defaultLivePlaybackSpeedControl.setLiveConfiguration(
new LiveConfiguration(
/* targetLiveOffsetMs= */ 2_000,
/* minPlaybackSpeed= */ C.RATE_UNSET,
/* maxPlaybackSpeed= */ C.RATE_UNSET));
float adjustedSpeedJustAboveLowerErrorMargin =
defaultLivePlaybackSpeedControl.adjustPlaybackSpeed(
defaultLivePlaybackSpeedControl.getAdjustedPlaybackSpeed(
/* liveOffsetUs= */ 2_000_000
- DefaultLivePlaybackSpeedControl.MAXIMUM_LIVE_OFFSET_ERROR_US_FOR_UNIT_SPEED
+ 1);
float adjustedSpeedJustBelowUpperErrorMargin =
defaultLivePlaybackSpeedControl.adjustPlaybackSpeed(
defaultLivePlaybackSpeedControl.getAdjustedPlaybackSpeed(
/* liveOffsetUs= */ 2_000_000
+ DefaultLivePlaybackSpeedControl.MAXIMUM_LIVE_OFFSET_ERROR_US_FOR_UNIT_SPEED
- 1);
......@@ -135,14 +135,14 @@ public class DefaultLivePlaybackSpeedControlTest {
public void adjustPlaybackSpeed_withLiveOffsetGreaterThanTargetOffset_returnsAdjustedSpeed() {
DefaultLivePlaybackSpeedControl defaultLivePlaybackSpeedControl =
new DefaultLivePlaybackSpeedControl.Builder().setProportionalControlFactor(0.01f).build();
defaultLivePlaybackSpeedControl.updateLiveConfiguration(
defaultLivePlaybackSpeedControl.setLiveConfiguration(
new LiveConfiguration(
/* targetLiveOffsetMs= */ 2_000,
/* minPlaybackSpeed= */ C.RATE_UNSET,
/* maxPlaybackSpeed= */ C.RATE_UNSET));
float adjustedSpeed =
defaultLivePlaybackSpeedControl.adjustPlaybackSpeed(/* liveOffsetUs= */ 2_500_000);
defaultLivePlaybackSpeedControl.getAdjustedPlaybackSpeed(/* liveOffsetUs= */ 2_500_000);
float expectedSpeedAccordingToDocumentation = 1f + 0.01f * (2.5f - 2f);
assertThat(adjustedSpeed).isEqualTo(expectedSpeedAccordingToDocumentation);
......@@ -153,15 +153,15 @@ public class DefaultLivePlaybackSpeedControlTest {
public void adjustPlaybackSpeed_withLiveOffsetLowerThanTargetOffset_returnsAdjustedSpeed() {
DefaultLivePlaybackSpeedControl defaultLivePlaybackSpeedControl =
new DefaultLivePlaybackSpeedControl.Builder().setProportionalControlFactor(0.01f).build();
defaultLivePlaybackSpeedControl.overrideTargetLiveOffsetUs(2_000_000);
defaultLivePlaybackSpeedControl.updateLiveConfiguration(
defaultLivePlaybackSpeedControl.setTargetLiveOffsetOverrideUs(2_000_000);
defaultLivePlaybackSpeedControl.setLiveConfiguration(
new LiveConfiguration(
/* targetLiveOffsetMs= */ 2_000,
/* minPlaybackSpeed= */ C.RATE_UNSET,
/* maxPlaybackSpeed= */ C.RATE_UNSET));
float adjustedSpeed =
defaultLivePlaybackSpeedControl.adjustPlaybackSpeed(/* liveOffsetUs= */ 1_500_000);
defaultLivePlaybackSpeedControl.getAdjustedPlaybackSpeed(/* liveOffsetUs= */ 1_500_000);
float expectedSpeedAccordingToDocumentation = 1f + 0.01f * (1.5f - 2f);
assertThat(adjustedSpeed).isEqualTo(expectedSpeedAccordingToDocumentation);
......@@ -173,14 +173,15 @@ public class DefaultLivePlaybackSpeedControlTest {
adjustPlaybackSpeed_withLiveOffsetGreaterThanTargetOffset_clampedToFallbackMaximumSpeed() {
DefaultLivePlaybackSpeedControl defaultLivePlaybackSpeedControl =
new DefaultLivePlaybackSpeedControl.Builder().setFallbackMaxPlaybackSpeed(1.5f).build();
defaultLivePlaybackSpeedControl.updateLiveConfiguration(
defaultLivePlaybackSpeedControl.setLiveConfiguration(
new LiveConfiguration(
/* targetLiveOffsetMs= */ 2_000,
/* minPlaybackSpeed= */ C.RATE_UNSET,
/* maxPlaybackSpeed= */ C.RATE_UNSET));
float adjustedSpeed =
defaultLivePlaybackSpeedControl.adjustPlaybackSpeed(/* liveOffsetUs= */ 999_999_999_999L);
defaultLivePlaybackSpeedControl.getAdjustedPlaybackSpeed(
/* liveOffsetUs= */ 999_999_999_999L);
assertThat(adjustedSpeed).isEqualTo(1.5f);
}
......@@ -190,14 +191,15 @@ public class DefaultLivePlaybackSpeedControlTest {
adjustPlaybackSpeed_withLiveOffsetLowerThanTargetOffset_clampedToFallbackMinimumSpeed() {
DefaultLivePlaybackSpeedControl defaultLivePlaybackSpeedControl =
new DefaultLivePlaybackSpeedControl.Builder().setFallbackMinPlaybackSpeed(0.5f).build();
defaultLivePlaybackSpeedControl.updateLiveConfiguration(
defaultLivePlaybackSpeedControl.setLiveConfiguration(
new LiveConfiguration(
/* targetLiveOffsetMs= */ 2_000,
/* minPlaybackSpeed= */ C.RATE_UNSET,
/* maxPlaybackSpeed= */ C.RATE_UNSET));
float adjustedSpeed =
defaultLivePlaybackSpeedControl.adjustPlaybackSpeed(/* liveOffsetUs= */ -999_999_999_999L);
defaultLivePlaybackSpeedControl.getAdjustedPlaybackSpeed(
/* liveOffsetUs= */ -999_999_999_999L);
assertThat(adjustedSpeed).isEqualTo(0.5f);
}
......@@ -207,14 +209,15 @@ public class DefaultLivePlaybackSpeedControlTest {
adjustPlaybackSpeed_andMediaProvidedMaxSpeedWithLiveOffsetGreaterThanTargetOffset_clampedToMediaMaxSpeed() {
DefaultLivePlaybackSpeedControl defaultLivePlaybackSpeedControl =
new DefaultLivePlaybackSpeedControl.Builder().setFallbackMaxPlaybackSpeed(1.5f).build();
defaultLivePlaybackSpeedControl.updateLiveConfiguration(
defaultLivePlaybackSpeedControl.setLiveConfiguration(
new LiveConfiguration(
/* targetLiveOffsetMs= */ 2_000,
/* minPlaybackSpeed= */ C.RATE_UNSET,
/* maxPlaybackSpeed= */ 2f));
float adjustedSpeed =
defaultLivePlaybackSpeedControl.adjustPlaybackSpeed(/* liveOffsetUs= */ 999_999_999_999L);
defaultLivePlaybackSpeedControl.getAdjustedPlaybackSpeed(
/* liveOffsetUs= */ 999_999_999_999L);
assertThat(adjustedSpeed).isEqualTo(2f);
}
......@@ -224,14 +227,15 @@ public class DefaultLivePlaybackSpeedControlTest {
adjustPlaybackSpeed_andMediaProvidedMinSpeedWithLiveOffsetLowerThanTargetOffset_clampedToMediaMinSpeed() {
DefaultLivePlaybackSpeedControl defaultLivePlaybackSpeedControl =
new DefaultLivePlaybackSpeedControl.Builder().setFallbackMinPlaybackSpeed(0.5f).build();
defaultLivePlaybackSpeedControl.updateLiveConfiguration(
defaultLivePlaybackSpeedControl.setLiveConfiguration(
new LiveConfiguration(
/* targetLiveOffsetMs= */ 2_000,
/* minPlaybackSpeed= */ 0.2f,
/* maxPlaybackSpeed= */ C.RATE_UNSET));
float adjustedSpeed =
defaultLivePlaybackSpeedControl.adjustPlaybackSpeed(/* liveOffsetUs= */ -999_999_999_999L);
defaultLivePlaybackSpeedControl.getAdjustedPlaybackSpeed(
/* liveOffsetUs= */ -999_999_999_999L);
assertThat(adjustedSpeed).isEqualTo(0.2f);
}
......@@ -240,20 +244,20 @@ public class DefaultLivePlaybackSpeedControlTest {
public void adjustPlaybackSpeed_repeatedCallWithinMinUpdateInterval_returnsSameAdjustedSpeed() {
DefaultLivePlaybackSpeedControl defaultLivePlaybackSpeedControl =
new DefaultLivePlaybackSpeedControl.Builder().setMinUpdateIntervalMs(123).build();
defaultLivePlaybackSpeedControl.updateLiveConfiguration(
defaultLivePlaybackSpeedControl.setLiveConfiguration(
new LiveConfiguration(
/* targetLiveOffsetMs= */ 2_000,
/* minPlaybackSpeed= */ C.RATE_UNSET,
/* maxPlaybackSpeed= */ C.RATE_UNSET));
float adjustedSpeed1 =
defaultLivePlaybackSpeedControl.adjustPlaybackSpeed(/* liveOffsetUs= */ 1_500_000);
defaultLivePlaybackSpeedControl.getAdjustedPlaybackSpeed(/* liveOffsetUs= */ 1_500_000);
ShadowSystemClock.advanceBy(Duration.ofMillis(122));
float adjustedSpeed2 =
defaultLivePlaybackSpeedControl.adjustPlaybackSpeed(/* liveOffsetUs= */ 2_500_000);
defaultLivePlaybackSpeedControl.getAdjustedPlaybackSpeed(/* liveOffsetUs= */ 2_500_000);
ShadowSystemClock.advanceBy(Duration.ofMillis(2));
float adjustedSpeed3 =
defaultLivePlaybackSpeedControl.adjustPlaybackSpeed(/* liveOffsetUs= */ 2_500_000);
defaultLivePlaybackSpeedControl.getAdjustedPlaybackSpeed(/* liveOffsetUs= */ 2_500_000);
assertThat(adjustedSpeed1).isEqualTo(adjustedSpeed2);
assertThat(adjustedSpeed3).isNotEqualTo(adjustedSpeed2);
......@@ -263,21 +267,21 @@ public class DefaultLivePlaybackSpeedControlTest {
public void adjustPlaybackSpeed_repeatedCallAfterUpdateLiveConfiguration_updatesSpeedAgain() {
DefaultLivePlaybackSpeedControl defaultLivePlaybackSpeedControl =
new DefaultLivePlaybackSpeedControl.Builder().setMinUpdateIntervalMs(123).build();
defaultLivePlaybackSpeedControl.updateLiveConfiguration(
defaultLivePlaybackSpeedControl.setLiveConfiguration(
new LiveConfiguration(
/* targetLiveOffsetMs= */ 2_000,
/* minPlaybackSpeed= */ C.RATE_UNSET,
/* maxPlaybackSpeed= */ C.RATE_UNSET));
float adjustedSpeed1 =
defaultLivePlaybackSpeedControl.adjustPlaybackSpeed(/* liveOffsetUs= */ 1_500_000);
defaultLivePlaybackSpeedControl.updateLiveConfiguration(
defaultLivePlaybackSpeedControl.getAdjustedPlaybackSpeed(/* liveOffsetUs= */ 1_500_000);
defaultLivePlaybackSpeedControl.setLiveConfiguration(
new LiveConfiguration(
/* targetLiveOffsetMs= */ 2_000,
/* minPlaybackSpeed= */ C.RATE_UNSET,
/* maxPlaybackSpeed= */ C.RATE_UNSET));
float adjustedSpeed2 =
defaultLivePlaybackSpeedControl.adjustPlaybackSpeed(/* liveOffsetUs= */ 2_500_000);
defaultLivePlaybackSpeedControl.getAdjustedPlaybackSpeed(/* liveOffsetUs= */ 2_500_000);
assertThat(adjustedSpeed1).isNotEqualTo(adjustedSpeed2);
}
......@@ -286,17 +290,17 @@ public class DefaultLivePlaybackSpeedControlTest {
public void adjustPlaybackSpeed_repeatedCallAfterNewTargetLiveOffset_updatesSpeedAgain() {
DefaultLivePlaybackSpeedControl defaultLivePlaybackSpeedControl =
new DefaultLivePlaybackSpeedControl.Builder().setMinUpdateIntervalMs(123).build();
defaultLivePlaybackSpeedControl.updateLiveConfiguration(
defaultLivePlaybackSpeedControl.setLiveConfiguration(
new LiveConfiguration(
/* targetLiveOffsetMs= */ 2_000,
/* minPlaybackSpeed= */ C.RATE_UNSET,
/* maxPlaybackSpeed= */ C.RATE_UNSET));
float adjustedSpeed1 =
defaultLivePlaybackSpeedControl.adjustPlaybackSpeed(/* liveOffsetUs= */ 1_500_000);
defaultLivePlaybackSpeedControl.overrideTargetLiveOffsetUs(2_000_001);
defaultLivePlaybackSpeedControl.getAdjustedPlaybackSpeed(/* liveOffsetUs= */ 1_500_000);
defaultLivePlaybackSpeedControl.setTargetLiveOffsetOverrideUs(2_000_001);
float adjustedSpeed2 =
defaultLivePlaybackSpeedControl.adjustPlaybackSpeed(/* liveOffsetUs= */ 2_500_000);
defaultLivePlaybackSpeedControl.getAdjustedPlaybackSpeed(/* liveOffsetUs= */ 2_500_000);
assertThat(adjustedSpeed1).isNotEqualTo(adjustedSpeed2);
}
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or sign in to comment