From 549496f1fa308fc229f539823573610bc0d06871 Mon Sep 17 00:00:00 2001 From: tonihei Date: Tue, 12 Jul 2022 16:31:38 +0000 Subject: [PATCH] Add method to check if tunneling is enabled. Issue: google/ExoPlayer#2518 PiperOrigin-RevId: 460482615 --- RELEASENOTES.md | 3 +++ .../java/androidx/media3/exoplayer/ExoPlayer.java | 10 ++++++++++ .../java/androidx/media3/exoplayer/ExoPlayerImpl.java | 11 +++++++++++ .../androidx/media3/exoplayer/SimpleExoPlayer.java | 6 ++++++ .../androidx/media3/test/utils/StubExoPlayer.java | 5 +++++ 5 files changed, 35 insertions(+) diff --git a/RELEASENOTES.md b/RELEASENOTES.md index e01e5f6bee..7460ba5075 100644 --- a/RELEASENOTES.md +++ b/RELEASENOTES.md @@ -9,6 +9,9 @@ ([#9889](https://github.com/google/ExoPlayer/issues/9889)). * For progressive media, only include selected tracks in buffered position ([#10361](https://github.com/google/ExoPlayer/issues/10361)). + * Add `ExoPlayer.isTunnelingEnabled` to check if tunneling is enabled for + the currently selected tracks + ([#2518](https://github.com/google/ExoPlayer/issues/2518)). * Extractors: * Add support for AVI ([#2092](https://github.com/google/ExoPlayer/issues/2092)). diff --git a/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/ExoPlayer.java b/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/ExoPlayer.java index 1efe41836c..422fc783e4 100644 --- a/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/ExoPlayer.java +++ b/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/ExoPlayer.java @@ -1696,4 +1696,14 @@ public interface ExoPlayer extends Player { */ @UnstableApi boolean experimentalIsSleepingForOffload(); + + /** + * Returns whether tunneling is enabled for + * the currently selected tracks. + * + * @see Player.Listener#onTracksChanged(Tracks) + */ + @UnstableApi + boolean isTunnelingEnabled(); } diff --git a/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/ExoPlayerImpl.java b/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/ExoPlayerImpl.java index e95c465e9d..2327f53c34 100644 --- a/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/ExoPlayerImpl.java +++ b/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/ExoPlayerImpl.java @@ -1682,6 +1682,17 @@ import java.util.concurrent.TimeoutException; streamVolumeManager.setMuted(muted); } + @Override + public boolean isTunnelingEnabled() { + verifyApplicationThread(); + for (RendererConfiguration config : playbackInfo.trackSelectorResult.rendererConfigurations) { + if (config.tunneling) { + return true; + } + } + return false; + } + /* package */ void setThrowsWhenUsingWrongThread(boolean throwsWhenUsingWrongThread) { this.throwsWhenUsingWrongThread = throwsWhenUsingWrongThread; } diff --git a/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/SimpleExoPlayer.java b/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/SimpleExoPlayer.java index 3dfd26d19b..233fd18eed 100644 --- a/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/SimpleExoPlayer.java +++ b/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/SimpleExoPlayer.java @@ -1258,6 +1258,12 @@ public class SimpleExoPlayer extends BasePlayer player.setDeviceMuted(muted); } + @Override + public boolean isTunnelingEnabled() { + blockUntilConstructorFinished(); + return player.isTunnelingEnabled(); + } + /* package */ void setThrowsWhenUsingWrongThread(boolean throwsWhenUsingWrongThread) { blockUntilConstructorFinished(); player.setThrowsWhenUsingWrongThread(throwsWhenUsingWrongThread); diff --git a/libraries/test_utils/src/main/java/androidx/media3/test/utils/StubExoPlayer.java b/libraries/test_utils/src/main/java/androidx/media3/test/utils/StubExoPlayer.java index 28840d6ae0..0838b7e4ee 100644 --- a/libraries/test_utils/src/main/java/androidx/media3/test/utils/StubExoPlayer.java +++ b/libraries/test_utils/src/main/java/androidx/media3/test/utils/StubExoPlayer.java @@ -412,4 +412,9 @@ public class StubExoPlayer extends StubPlayer implements ExoPlayer { public boolean experimentalIsSleepingForOffload() { throw new UnsupportedOperationException(); } + + @Override + public boolean isTunnelingEnabled() { + throw new UnsupportedOperationException(); + } }