Commit 95fcaf07 by tonihei Committed by microkatz

Add method to check if tunneling is enabled.

Issue: google/ExoPlayer#2518
PiperOrigin-RevId: 460482615
(cherry picked from commit 549496f1)
parent 570208d5
...@@ -7,17 +7,27 @@ ...@@ -7,17 +7,27 @@
results in a call to `Player.Listener#onTimelineChanged` with results in a call to `Player.Listener#onTimelineChanged` with
`reason=Player.TIMELINE_CHANGE_REASON_PLAYLIST_CHANGED` `reason=Player.TIMELINE_CHANGE_REASON_PLAYLIST_CHANGED`
([#9889](https://github.com/google/ExoPlayer/issues/9889)). ([#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: * Extractors:
* Add support for AVI * Add support for AVI
([#2092](https://github.com/google/ExoPlayer/issues/2092)). ([#2092](https://github.com/google/ExoPlayer/issues/2092)).
* Fix parsing of H265 short term reference picture sets * Fix parsing of H265 short term reference picture sets
([#10316](https://github.com/google/ExoPlayer/issues/10316)). ([#10316](https://github.com/google/ExoPlayer/issues/10316)).
* Fix parsing of bitrates from `esds` boxes
([#10381](https://github.com/google/ExoPlayer/issues/10381)).
* Metadata: * Metadata:
* `MetadataRenderer` can now be configured to render metadata as soon as * `MetadataRenderer` can now be configured to render metadata as soon as
they are available. Create an instance with they are available. Create an instance with
`MetadataRenderer(MetadataOutput, Looper, MetadataDecoderFactory, `MetadataRenderer(MetadataOutput, Looper, MetadataDecoderFactory,
boolean)` to specify whether the renderer will output metadata early or boolean)` to specify whether the renderer will output metadata early or
in sync with the player position. in sync with the player position.
* DASH:
* Parse ClearKey license URL from manifests
([#10246](https://github.com/google/ExoPlayer/issues/10246)).
* UI: * UI:
* Ensure TalkBack announces the currently active speed option in the * Ensure TalkBack announces the currently active speed option in the
playback controls menu playback controls menu
...@@ -25,6 +35,16 @@ ...@@ -25,6 +35,16 @@
* RTSP: * RTSP:
* Add RTP reader for H263 * Add RTP reader for H263
([#63](https://github.com/androidx/media/pull/63)). ([#63](https://github.com/androidx/media/pull/63)).
* Leanback extension:
* Listen to `playWhenReady` changes in `LeanbackAdapter`
([10420](https://github.com/google/ExoPlayer/issues/10420)).
* Cast:
* Use the `MediaItem` that has been passed to the playlist methods as
`Window.mediaItem` in `CastTimeline`
([#25](https://github.com/androidx/media/issues/25),
[#8212](https://github.com/google/ExoPlayer/issues/8212)).
* Support `Player.getMetadata()` and `Listener.onMediaMetadataChanged()`
with `CastPlayer` ([#25](https://github.com/androidx/media/issues/25)).
### 1.0.0-beta01 (2022-06-16) ### 1.0.0-beta01 (2022-06-16)
......
...@@ -1696,4 +1696,14 @@ public interface ExoPlayer extends Player { ...@@ -1696,4 +1696,14 @@ public interface ExoPlayer extends Player {
*/ */
@UnstableApi @UnstableApi
boolean experimentalIsSleepingForOffload(); boolean experimentalIsSleepingForOffload();
/**
* Returns whether <a
* href="https://source.android.com/devices/tv/multimedia-tunneling">tunneling</a> is enabled for
* the currently selected tracks.
*
* @see Player.Listener#onTracksChanged(Tracks)
*/
@UnstableApi
boolean isTunnelingEnabled();
} }
...@@ -1682,6 +1682,17 @@ import java.util.concurrent.TimeoutException; ...@@ -1682,6 +1682,17 @@ import java.util.concurrent.TimeoutException;
streamVolumeManager.setMuted(muted); 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) { /* package */ void setThrowsWhenUsingWrongThread(boolean throwsWhenUsingWrongThread) {
this.throwsWhenUsingWrongThread = throwsWhenUsingWrongThread; this.throwsWhenUsingWrongThread = throwsWhenUsingWrongThread;
} }
......
...@@ -1258,6 +1258,12 @@ public class SimpleExoPlayer extends BasePlayer ...@@ -1258,6 +1258,12 @@ public class SimpleExoPlayer extends BasePlayer
player.setDeviceMuted(muted); player.setDeviceMuted(muted);
} }
@Override
public boolean isTunnelingEnabled() {
blockUntilConstructorFinished();
return player.isTunnelingEnabled();
}
/* package */ void setThrowsWhenUsingWrongThread(boolean throwsWhenUsingWrongThread) { /* package */ void setThrowsWhenUsingWrongThread(boolean throwsWhenUsingWrongThread) {
blockUntilConstructorFinished(); blockUntilConstructorFinished();
player.setThrowsWhenUsingWrongThread(throwsWhenUsingWrongThread); player.setThrowsWhenUsingWrongThread(throwsWhenUsingWrongThread);
......
...@@ -412,4 +412,9 @@ public class StubExoPlayer extends StubPlayer implements ExoPlayer { ...@@ -412,4 +412,9 @@ public class StubExoPlayer extends StubPlayer implements ExoPlayer {
public boolean experimentalIsSleepingForOffload() { public boolean experimentalIsSleepingForOffload() {
throw new UnsupportedOperationException(); throw new UnsupportedOperationException();
} }
@Override
public boolean isTunnelingEnabled() {
throw new UnsupportedOperationException();
}
} }
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