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 74e0d386f0..0611c2011a 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 @@ -160,15 +160,6 @@ import java.util.concurrent.atomic.AtomicBoolean; private static final int ACTIVE_INTERVAL_MS = 10; private static final int IDLE_INTERVAL_MS = 1000; - /** - * Duration under which pausing the main DO_SOME_WORK loop is not expected to yield significant - * power saving. - * - *
This value is probably too high, power measurements are needed adjust it, but as renderer - * sleep is currently only implemented for audio offload, which uses buffer much bigger than 2s, - * this does not matter for now. - */ - private static final long MIN_RENDERER_SLEEP_DURATION_MS = 2000; /** * Duration for which the player needs to appear stuck before the playback is failed on the * assumption that no further progress will be made. To appear stuck, the player's renderers must @@ -2478,11 +2469,8 @@ import java.util.concurrent.atomic.AtomicBoolean; Renderer.MSG_SET_WAKEUP_LISTENER, new Renderer.WakeupListener() { @Override - public void onSleep(long wakeupDeadlineMs) { - // Do not sleep if the expected sleep time is not long enough to save significant power. - if (wakeupDeadlineMs >= MIN_RENDERER_SLEEP_DURATION_MS) { - requestForRendererSleep = true; - } + public void onSleep() { + requestForRendererSleep = true; } @Override diff --git a/library/core/src/main/java/com/google/android/exoplayer2/Renderer.java b/library/core/src/main/java/com/google/android/exoplayer2/Renderer.java index 8b7dc9c710..868f2a4579 100644 --- a/library/core/src/main/java/com/google/android/exoplayer2/Renderer.java +++ b/library/core/src/main/java/com/google/android/exoplayer2/Renderer.java @@ -62,11 +62,8 @@ public interface Renderer extends PlayerMessage.Target { * The renderer no longer needs to render until the next wakeup. * *
Must be called from the thread ExoPlayer invokes the renderer from.
- *
- * @param wakeupDeadlineMs Maximum time in milliseconds until {@link #onWakeup()} will be
- * called.
*/
- void onSleep(long wakeupDeadlineMs);
+ void onSleep();
/**
* The renderer needs to render some frames. The client should call {@link #render(long, long)}
diff --git a/library/core/src/main/java/com/google/android/exoplayer2/audio/AudioSink.java b/library/core/src/main/java/com/google/android/exoplayer2/audio/AudioSink.java
index e7ff1b0ec6..7b326f591b 100644
--- a/library/core/src/main/java/com/google/android/exoplayer2/audio/AudioSink.java
+++ b/library/core/src/main/java/com/google/android/exoplayer2/audio/AudioSink.java
@@ -104,13 +104,8 @@ public interface AudioSink {
/** Called when the offload buffer has been partially emptied. */
default void onOffloadBufferEmptying() {}
- /**
- * Called when the offload buffer has been filled completely.
- *
- * @param bufferEmptyingDeadlineMs Maximum time in milliseconds until {@link
- * #onOffloadBufferEmptying()} will be called.
- */
- default void onOffloadBufferFull(long bufferEmptyingDeadlineMs) {}
+ /** Called when the offload buffer has been filled completely. */
+ default void onOffloadBufferFull() {}
/**
* Called when {@link AudioSink} has encountered an error.
diff --git a/library/core/src/main/java/com/google/android/exoplayer2/audio/AudioTrackPositionTracker.java b/library/core/src/main/java/com/google/android/exoplayer2/audio/AudioTrackPositionTracker.java
index 9126650148..5122f78395 100644
--- a/library/core/src/main/java/com/google/android/exoplayer2/audio/AudioTrackPositionTracker.java
+++ b/library/core/src/main/java/com/google/android/exoplayer2/audio/AudioTrackPositionTracker.java
@@ -386,11 +386,6 @@ import java.lang.reflect.Method;
return bufferSize - bytesPending;
}
- /** Returns the duration of audio that is buffered but unplayed. */
- public long getPendingBufferDurationMs(long writtenFrames) {
- return Util.usToMs(framesToDurationUs(writtenFrames - getPlaybackHeadPosition()));
- }
-
/** Returns whether the track is in an invalid state and must be recreated. */
public boolean isStalled(long writtenFrames) {
return forceResetWorkaroundTimeMs != C.TIME_UNSET
diff --git a/library/core/src/main/java/com/google/android/exoplayer2/audio/DefaultAudioSink.java b/library/core/src/main/java/com/google/android/exoplayer2/audio/DefaultAudioSink.java
index 798b88dc3f..3a54fff4b2 100644
--- a/library/core/src/main/java/com/google/android/exoplayer2/audio/DefaultAudioSink.java
+++ b/library/core/src/main/java/com/google/android/exoplayer2/audio/DefaultAudioSink.java
@@ -1193,9 +1193,7 @@ public final class DefaultAudioSink implements AudioSink {
&& listener != null
&& bytesWritten < bytesRemaining
&& !isWaitingForOffloadEndOfStreamHandled) {
- long pendingDurationMs =
- audioTrackPositionTracker.getPendingBufferDurationMs(writtenEncodedFrames);
- listener.onOffloadBufferFull(pendingDurationMs);
+ listener.onOffloadBufferFull();
}
}
diff --git a/library/core/src/main/java/com/google/android/exoplayer2/audio/MediaCodecAudioRenderer.java b/library/core/src/main/java/com/google/android/exoplayer2/audio/MediaCodecAudioRenderer.java
index b715838a8f..2da4fd8745 100644
--- a/library/core/src/main/java/com/google/android/exoplayer2/audio/MediaCodecAudioRenderer.java
+++ b/library/core/src/main/java/com/google/android/exoplayer2/audio/MediaCodecAudioRenderer.java
@@ -926,9 +926,9 @@ public class MediaCodecAudioRenderer extends MediaCodecRenderer implements Media
}
@Override
- public void onOffloadBufferFull(long bufferEmptyingDeadlineMs) {
+ public void onOffloadBufferFull() {
if (wakeupListener != null) {
- wakeupListener.onSleep(bufferEmptyingDeadlineMs);
+ wakeupListener.onSleep();
}
}
diff --git a/library/core/src/test/java/com/google/android/exoplayer2/ExoPlayerTest.java b/library/core/src/test/java/com/google/android/exoplayer2/ExoPlayerTest.java
index b02b2fd73e..2c06172a08 100644
--- a/library/core/src/test/java/com/google/android/exoplayer2/ExoPlayerTest.java
+++ b/library/core/src/test/java/com/google/android/exoplayer2/ExoPlayerTest.java
@@ -12144,7 +12144,6 @@ public final class ExoPlayerTest {
/** {@link FakeRenderer} that can sleep and be woken-up. */
private static class FakeSleepRenderer extends FakeRenderer {
- private static final long WAKEUP_DEADLINE_MS = 60 * C.MICROS_PER_SECOND;
private final AtomicBoolean sleepOnNextRender;
private final AtomicReference