From 61abe5951a421d563de034c3d14f1392b4303164 Mon Sep 17 00:00:00 2001 From: andrewlewis Date: Thu, 13 Aug 2020 11:16:32 +0100 Subject: [PATCH] Use consistent naming for 'offload scheduling enabled' PiperOrigin-RevId: 326413842 --- .../exoplayer2/DefaultRenderersFactory.java | 4 +-- .../google/android/exoplayer2/ExoPlayer.java | 12 ++++---- .../android/exoplayer2/ExoPlayerImpl.java | 10 +++---- .../exoplayer2/ExoPlayerImplInternal.java | 29 ++++++++++--------- .../android/exoplayer2/PlaybackInfo.java | 2 +- .../com/google/android/exoplayer2/Player.java | 2 +- .../android/exoplayer2/SimpleExoPlayer.java | 4 +-- .../exoplayer2/testutil/StubExoPlayer.java | 2 +- 8 files changed, 33 insertions(+), 32 deletions(-) diff --git a/library/core/src/main/java/com/google/android/exoplayer2/DefaultRenderersFactory.java b/library/core/src/main/java/com/google/android/exoplayer2/DefaultRenderersFactory.java index 51e94c2155..3558a319ba 100644 --- a/library/core/src/main/java/com/google/android/exoplayer2/DefaultRenderersFactory.java +++ b/library/core/src/main/java/com/google/android/exoplayer2/DefaultRenderersFactory.java @@ -242,8 +242,8 @@ public class DefaultRenderersFactory implements RenderersFactory { * Sets whether audio should be played using the offload path. * *

Audio offload disables ExoPlayer audio processing, but significantly reduces the energy - * consumption of the playback when {@link ExoPlayer#experimentalEnableOffloadScheduling(boolean)} - * is enabled. + * consumption of the playback when {@link + * ExoPlayer#experimentalSetOffloadSchedulingEnabled(boolean) offload scheduling} is enabled. * *

Most Android devices can only support one offload {@link android.media.AudioTrack} at a time * and can invalidate it at any time. Thus an app can never be guaranteed that it will be able to diff --git a/library/core/src/main/java/com/google/android/exoplayer2/ExoPlayer.java b/library/core/src/main/java/com/google/android/exoplayer2/ExoPlayer.java index e70c3ef7dc..5211b3eace 100644 --- a/library/core/src/main/java/com/google/android/exoplayer2/ExoPlayer.java +++ b/library/core/src/main/java/com/google/android/exoplayer2/ExoPlayer.java @@ -602,12 +602,12 @@ public interface ExoPlayer extends Player { boolean getPauseAtEndOfMediaItems(); /** - * Enables audio offload scheduling, which runs ExoPlayer's main loop as rarely as possible when - * playing an audio stream using audio offload. + * Sets whether audio offload scheduling is enabled. If enabled, ExoPlayer's main loop will as + * rarely as possible when playing an audio stream using audio offload. * *

Only use this scheduling mode if the player is not displaying anything to the user. For * example when the application is in the background, or the screen is off. The player state - * (including position) is rarely updated (between 10s and 1min). + * (including position) is rarely updated (roughly between every 10 seconds and 1 minute). * *

While offload scheduling is enabled, player events may be delivered severely delayed and * apps should not interact with the player. When returning to the foreground, disable offload @@ -626,7 +626,7 @@ public interface ExoPlayer extends Player { * DefaultRenderersFactory#setEnableAudioOffload} or the equivalent option passed to {@link * com.google.android.exoplayer2.audio.DefaultAudioSink#DefaultAudioSink(AudioCapabilities, * DefaultAudioSink.AudioProcessorChain, boolean, boolean, boolean)}. - *

  • an audio track is playing in a format which the device supports offloading (for example + *
  • an audio track is playing in a format which the device supports offloading (for example, * MP3 or AAC). *
  • The {@link com.google.android.exoplayer2.audio.AudioSink} is playing with an offload * {@link android.media.AudioTrack}. @@ -634,7 +634,7 @@ public interface ExoPlayer extends Player { * *

    This method is experimental, and will be renamed or removed in a future release. * - * @param enableOffloadScheduling Whether to enable offload scheduling. + * @param offloadSchedulingEnabled Whether to enable offload scheduling. */ - void experimentalEnableOffloadScheduling(boolean enableOffloadScheduling); + void experimentalSetOffloadSchedulingEnabled(boolean offloadSchedulingEnabled); } diff --git a/library/core/src/main/java/com/google/android/exoplayer2/ExoPlayerImpl.java b/library/core/src/main/java/com/google/android/exoplayer2/ExoPlayerImpl.java index 60e0efd121..834cef294b 100644 --- a/library/core/src/main/java/com/google/android/exoplayer2/ExoPlayerImpl.java +++ b/library/core/src/main/java/com/google/android/exoplayer2/ExoPlayerImpl.java @@ -210,8 +210,8 @@ import java.util.concurrent.TimeoutException; } @Override - public void experimentalEnableOffloadScheduling(boolean enableOffloadScheduling) { - internalPlayer.experimentalEnableOffloadScheduling(enableOffloadScheduling); + public void experimentalSetOffloadSchedulingEnabled(boolean offloadSchedulingEnabled) { + internalPlayer.experimentalSetOffloadSchedulingEnabled(offloadSchedulingEnabled); } @Override @@ -1366,7 +1366,7 @@ import java.util.concurrent.TimeoutException; private final boolean playbackSuppressionReasonChanged; private final boolean isPlayingChanged; private final boolean playbackSpeedChanged; - private final boolean offloadSchedulingChanged; + private final boolean offloadSchedulingEnabledChanged; public PlaybackInfoUpdate( PlaybackInfo playbackInfo, @@ -1405,7 +1405,7 @@ import java.util.concurrent.TimeoutException; previousPlaybackInfo.playbackSuppressionReason != playbackInfo.playbackSuppressionReason; isPlayingChanged = isPlaying(previousPlaybackInfo) != isPlaying(playbackInfo); playbackSpeedChanged = previousPlaybackInfo.playbackSpeed != playbackInfo.playbackSpeed; - offloadSchedulingChanged = + offloadSchedulingEnabledChanged = previousPlaybackInfo.offloadSchedulingEnabled != playbackInfo.offloadSchedulingEnabled; } @@ -1484,7 +1484,7 @@ import java.util.concurrent.TimeoutException; if (seekProcessed) { invokeAll(listenerSnapshot, EventListener::onSeekProcessed); } - if (offloadSchedulingChanged) { + if (offloadSchedulingEnabledChanged) { invokeAll( listenerSnapshot, listener -> diff --git a/library/core/src/main/java/com/google/android/exoplayer2/ExoPlayerImplInternal.java b/library/core/src/main/java/com/google/android/exoplayer2/ExoPlayerImplInternal.java index 9720caf988..9a0587e22a 100644 --- a/library/core/src/main/java/com/google/android/exoplayer2/ExoPlayerImplInternal.java +++ b/library/core/src/main/java/com/google/android/exoplayer2/ExoPlayerImplInternal.java @@ -141,7 +141,7 @@ import java.util.concurrent.atomic.AtomicBoolean; private static final int MSG_SET_SHUFFLE_ORDER = 21; private static final int MSG_PLAYLIST_UPDATE_REQUESTED = 22; private static final int MSG_SET_PAUSE_AT_END_OF_WINDOW = 23; - private static final int MSG_SET_OFFLOAD_SCHEDULING = 24; + private static final int MSG_SET_OFFLOAD_SCHEDULING_ENABLED = 24; private static final int ACTIVE_INTERVAL_MS = 10; private static final int IDLE_INTERVAL_MS = 1000; @@ -188,7 +188,7 @@ import java.util.concurrent.atomic.AtomicBoolean; private boolean shuffleModeEnabled; private boolean foregroundMode; private boolean requestForRendererSleep; - private boolean enableOffloadScheduling; + private boolean offloadSchedulingEnabled; private int enabledRendererCount; @Nullable private SeekPosition pendingInitialSeekPosition; @@ -263,9 +263,10 @@ import java.util.concurrent.atomic.AtomicBoolean; throwWhenStuckBuffering = false; } - public void experimentalEnableOffloadScheduling(boolean enableOffloadScheduling) { + public void experimentalSetOffloadSchedulingEnabled(boolean offloadSchedulingEnabled) { handler - .obtainMessage(MSG_SET_OFFLOAD_SCHEDULING, enableOffloadScheduling ? 1 : 0, /* unused */ 0) + .obtainMessage( + MSG_SET_OFFLOAD_SCHEDULING_ENABLED, offloadSchedulingEnabled ? 1 : 0, /* unused */ 0) .sendToTarget(); } @@ -518,7 +519,7 @@ import java.util.concurrent.atomic.AtomicBoolean; case MSG_SET_PAUSE_AT_END_OF_WINDOW: setPauseAtEndOfWindowInternal(msg.arg1 != 0); break; - case MSG_SET_OFFLOAD_SCHEDULING: + case MSG_SET_OFFLOAD_SCHEDULING_ENABLED: setOffloadSchedulingEnabledInternal(msg.arg1 == 1); break; case MSG_RELEASE: @@ -739,14 +740,14 @@ import java.util.concurrent.atomic.AtomicBoolean; handleLoadingMediaPeriodChanged(/* loadingTrackSelectionChanged= */ false); } - private void setOffloadSchedulingEnabledInternal(boolean enableOffloadScheduling) { - if (enableOffloadScheduling == this.enableOffloadScheduling) { + private void setOffloadSchedulingEnabledInternal(boolean offloadSchedulingEnabled) { + if (offloadSchedulingEnabled == this.offloadSchedulingEnabled) { return; } - this.enableOffloadScheduling = enableOffloadScheduling; + this.offloadSchedulingEnabled = offloadSchedulingEnabled; @Player.State int state = playbackInfo.playbackState; - if (enableOffloadScheduling || state == Player.STATE_ENDED || state == Player.STATE_IDLE) { - playbackInfo = playbackInfo.copyWithOffloadSchedulingEnabled(enableOffloadScheduling); + if (offloadSchedulingEnabled || state == Player.STATE_ENDED || state == Player.STATE_IDLE) { + playbackInfo = playbackInfo.copyWithOffloadSchedulingEnabled(offloadSchedulingEnabled); } else { handler.sendEmptyMessage(MSG_DO_SOME_WORK); } @@ -953,8 +954,8 @@ import java.util.concurrent.atomic.AtomicBoolean; throw new IllegalStateException("Playback stuck buffering and not loading"); } } - if (enableOffloadScheduling != playbackInfo.offloadSchedulingEnabled) { - playbackInfo = playbackInfo.copyWithOffloadSchedulingEnabled(enableOffloadScheduling); + if (offloadSchedulingEnabled != playbackInfo.offloadSchedulingEnabled) { + playbackInfo = playbackInfo.copyWithOffloadSchedulingEnabled(offloadSchedulingEnabled); } if ((shouldPlayWhenReady() && playbackInfo.playbackState == Player.STATE_READY) @@ -976,7 +977,7 @@ import java.util.concurrent.atomic.AtomicBoolean; } private void maybeScheduleWakeup(long operationStartTimeMs, long intervalMs) { - if (enableOffloadScheduling && requestForRendererSleep) { + if (offloadSchedulingEnabled && requestForRendererSleep) { return; } @@ -1304,7 +1305,7 @@ import java.util.concurrent.atomic.AtomicBoolean; startPositionUs, /* totalBufferedDurationUs= */ 0, startPositionUs, - enableOffloadScheduling); + offloadSchedulingEnabled); if (releaseMediaSourceList) { mediaSourceList.release(); } diff --git a/library/core/src/main/java/com/google/android/exoplayer2/PlaybackInfo.java b/library/core/src/main/java/com/google/android/exoplayer2/PlaybackInfo.java index 71352347fd..57295c54fc 100644 --- a/library/core/src/main/java/com/google/android/exoplayer2/PlaybackInfo.java +++ b/library/core/src/main/java/com/google/android/exoplayer2/PlaybackInfo.java @@ -65,7 +65,7 @@ import com.google.android.exoplayer2.trackselection.TrackSelectorResult; @PlaybackSuppressionReason public final int playbackSuppressionReason; /** The playback speed. */ public final float playbackSpeed; - /** Whether the player is in offloadScheduling. */ + /** Whether offload scheduling is enabled for the main player loop. */ public final boolean offloadSchedulingEnabled; /** diff --git a/library/core/src/main/java/com/google/android/exoplayer2/Player.java b/library/core/src/main/java/com/google/android/exoplayer2/Player.java index 7dbdf99265..9344345375 100644 --- a/library/core/src/main/java/com/google/android/exoplayer2/Player.java +++ b/library/core/src/main/java/com/google/android/exoplayer2/Player.java @@ -607,7 +607,7 @@ public interface Player { /** * Called when the player has started or stopped offload scheduling after a call to {@link - * ExoPlayer#experimentalEnableOffloadScheduling(boolean)}. + * ExoPlayer#experimentalSetOffloadSchedulingEnabled(boolean)}. * *

    This method is experimental, and will be renamed or removed in a future release. */ diff --git a/library/core/src/main/java/com/google/android/exoplayer2/SimpleExoPlayer.java b/library/core/src/main/java/com/google/android/exoplayer2/SimpleExoPlayer.java index 1db37917c9..00c1e0bcc5 100644 --- a/library/core/src/main/java/com/google/android/exoplayer2/SimpleExoPlayer.java +++ b/library/core/src/main/java/com/google/android/exoplayer2/SimpleExoPlayer.java @@ -630,8 +630,8 @@ public class SimpleExoPlayer extends BasePlayer } @Override - public void experimentalEnableOffloadScheduling(boolean enableOffloadScheduling) { - player.experimentalEnableOffloadScheduling(enableOffloadScheduling); + public void experimentalSetOffloadSchedulingEnabled(boolean offloadSchedulingEnabled) { + player.experimentalSetOffloadSchedulingEnabled(offloadSchedulingEnabled); } @Override diff --git a/testutils/src/main/java/com/google/android/exoplayer2/testutil/StubExoPlayer.java b/testutils/src/main/java/com/google/android/exoplayer2/testutil/StubExoPlayer.java index 950c83eb7a..250dd01c0f 100644 --- a/testutils/src/main/java/com/google/android/exoplayer2/testutil/StubExoPlayer.java +++ b/testutils/src/main/java/com/google/android/exoplayer2/testutil/StubExoPlayer.java @@ -467,7 +467,7 @@ public abstract class StubExoPlayer extends BasePlayer implements ExoPlayer { } @Override - public void experimentalEnableOffloadScheduling(boolean enableOffloadScheduling) { + public void experimentalSetOffloadSchedulingEnabled(boolean offloadSchedulingEnabled) { throw new UnsupportedOperationException(); } }