From c6e7c54140633daeb47c45501a89b6c18679fa9b Mon Sep 17 00:00:00 2001 From: tonihei Date: Thu, 6 Jul 2023 09:25:20 +0100 Subject: [PATCH] Release surface in e2etests Robolectric writes warnings to the log output because the Surfaces we create are not released and pollute the test environment. This causes performance issues if tests are run repeatedly. PiperOrigin-RevId: 545906757 --- .../androidx/media3/exoplayer/e2etest/FlvPlaybackTest.java | 4 +++- .../androidx/media3/exoplayer/e2etest/MkvPlaybackTest.java | 4 +++- .../androidx/media3/exoplayer/e2etest/Mp4PlaybackTest.java | 4 +++- .../media3/exoplayer/e2etest/PlaylistPlaybackTest.java | 4 +++- .../androidx/media3/exoplayer/e2etest/TsPlaybackTest.java | 4 +++- .../androidx/media3/exoplayer/e2etest/Vp9PlaybackTest.java | 4 +++- .../androidx/media3/exoplayer/e2etest/WebvttPlaybackTest.java | 4 +++- 7 files changed, 21 insertions(+), 7 deletions(-) diff --git a/libraries/exoplayer/src/test/java/androidx/media3/exoplayer/e2etest/FlvPlaybackTest.java b/libraries/exoplayer/src/test/java/androidx/media3/exoplayer/e2etest/FlvPlaybackTest.java index 4124dec62c..ea94fa07a6 100644 --- a/libraries/exoplayer/src/test/java/androidx/media3/exoplayer/e2etest/FlvPlaybackTest.java +++ b/libraries/exoplayer/src/test/java/androidx/media3/exoplayer/e2etest/FlvPlaybackTest.java @@ -58,7 +58,8 @@ public final class FlvPlaybackTest { new ExoPlayer.Builder(applicationContext, capturingRenderersFactory) .setClock(new FakeClock(/* isAutoAdvancing= */ true)) .build(); - player.setVideoSurface(new Surface(new SurfaceTexture(/* texName= */ 1))); + Surface surface = new Surface(new SurfaceTexture(/* texName= */ 1)); + player.setVideoSurface(surface); PlaybackOutput playbackOutput = PlaybackOutput.register(player, capturingRenderersFactory); player.setMediaItem(MediaItem.fromUri("asset:///media/flv/" + inputFile)); @@ -66,6 +67,7 @@ public final class FlvPlaybackTest { player.play(); TestPlayerRunHelper.runUntilPlaybackState(player, Player.STATE_ENDED); player.release(); + surface.release(); DumpFileAsserts.assertOutput( applicationContext, playbackOutput, "playbackdumps/flv/" + inputFile + ".dump"); diff --git a/libraries/exoplayer/src/test/java/androidx/media3/exoplayer/e2etest/MkvPlaybackTest.java b/libraries/exoplayer/src/test/java/androidx/media3/exoplayer/e2etest/MkvPlaybackTest.java index a113e22412..6572413d6b 100644 --- a/libraries/exoplayer/src/test/java/androidx/media3/exoplayer/e2etest/MkvPlaybackTest.java +++ b/libraries/exoplayer/src/test/java/androidx/media3/exoplayer/e2etest/MkvPlaybackTest.java @@ -81,7 +81,8 @@ public final class MkvPlaybackTest { break; } } - player.setVideoSurface(new Surface(new SurfaceTexture(/* texName= */ 1))); + Surface surface = new Surface(new SurfaceTexture(/* texName= */ 1)); + player.setVideoSurface(surface); PlaybackOutput playbackOutput = PlaybackOutput.register(player, capturingRenderersFactory); player.setMediaItem(MediaItem.fromUri("asset:///media/mkv/" + inputFile)); @@ -89,6 +90,7 @@ public final class MkvPlaybackTest { player.play(); TestPlayerRunHelper.runUntilPlaybackState(player, Player.STATE_ENDED); player.release(); + surface.release(); DumpFileAsserts.assertOutput( applicationContext, playbackOutput, "playbackdumps/mkv/" + inputFile + ".dump"); diff --git a/libraries/exoplayer/src/test/java/androidx/media3/exoplayer/e2etest/Mp4PlaybackTest.java b/libraries/exoplayer/src/test/java/androidx/media3/exoplayer/e2etest/Mp4PlaybackTest.java index b7ad234f18..893c976d39 100644 --- a/libraries/exoplayer/src/test/java/androidx/media3/exoplayer/e2etest/Mp4PlaybackTest.java +++ b/libraries/exoplayer/src/test/java/androidx/media3/exoplayer/e2etest/Mp4PlaybackTest.java @@ -81,7 +81,8 @@ public class Mp4PlaybackTest { new ExoPlayer.Builder(applicationContext, renderersFactory) .setClock(new FakeClock(/* isAutoAdvancing= */ true)) .build(); - player.setVideoSurface(new Surface(new SurfaceTexture(/* texName= */ 1))); + Surface surface = new Surface(new SurfaceTexture(/* texName= */ 1)); + player.setVideoSurface(surface); PlaybackOutput playbackOutput = PlaybackOutput.register(player, renderersFactory); @@ -90,6 +91,7 @@ public class Mp4PlaybackTest { player.play(); TestPlayerRunHelper.runUntilPlaybackState(player, Player.STATE_ENDED); player.release(); + surface.release(); DumpFileAsserts.assertOutput( applicationContext, playbackOutput, "playbackdumps/mp4/" + inputFile + ".dump"); diff --git a/libraries/exoplayer/src/test/java/androidx/media3/exoplayer/e2etest/PlaylistPlaybackTest.java b/libraries/exoplayer/src/test/java/androidx/media3/exoplayer/e2etest/PlaylistPlaybackTest.java index d4de66ad9e..af0574d69b 100644 --- a/libraries/exoplayer/src/test/java/androidx/media3/exoplayer/e2etest/PlaylistPlaybackTest.java +++ b/libraries/exoplayer/src/test/java/androidx/media3/exoplayer/e2etest/PlaylistPlaybackTest.java @@ -104,7 +104,8 @@ public final class PlaylistPlaybackTest { .setClock(new FakeClock(/* isAutoAdvancing= */ true)) .setMediaSourceFactory(mediaSourceFactory) .build(); - player.setVideoSurface(new Surface(new SurfaceTexture(/* texName= */ 1))); + Surface surface = new Surface(new SurfaceTexture(/* texName= */ 1)); + player.setVideoSurface(surface); PlaybackOutput playbackOutput = PlaybackOutput.register(player, capturingRenderersFactory); player.addMediaItem(MediaItem.fromUri("asset:///media/mp4/preroll-5s.mp4")); @@ -125,6 +126,7 @@ public final class PlaylistPlaybackTest { player.play(); TestPlayerRunHelper.runUntilPlaybackState(player, Player.STATE_ENDED); player.release(); + surface.release(); DumpFileAsserts.assertOutput( applicationContext, playbackOutput, "playbackdumps/playlists/playlist_with_subtitles.dump"); diff --git a/libraries/exoplayer/src/test/java/androidx/media3/exoplayer/e2etest/TsPlaybackTest.java b/libraries/exoplayer/src/test/java/androidx/media3/exoplayer/e2etest/TsPlaybackTest.java index 893630a8a2..5912d06e3e 100644 --- a/libraries/exoplayer/src/test/java/androidx/media3/exoplayer/e2etest/TsPlaybackTest.java +++ b/libraries/exoplayer/src/test/java/androidx/media3/exoplayer/e2etest/TsPlaybackTest.java @@ -85,7 +85,8 @@ public class TsPlaybackTest { new ExoPlayer.Builder(applicationContext, capturingRenderersFactory) .setClock(new FakeClock(/* isAutoAdvancing= */ true)) .build(); - player.setVideoSurface(new Surface(new SurfaceTexture(/* texName= */ 1))); + Surface surface = new Surface(new SurfaceTexture(/* texName= */ 1)); + player.setVideoSurface(surface); PlaybackOutput playbackOutput = PlaybackOutput.register(player, capturingRenderersFactory); player.setMediaItem(MediaItem.fromUri("asset:///media/ts/" + inputFile)); @@ -93,6 +94,7 @@ public class TsPlaybackTest { player.play(); TestPlayerRunHelper.runUntilPlaybackState(player, Player.STATE_ENDED); player.release(); + surface.release(); DumpFileAsserts.assertOutput( applicationContext, playbackOutput, "playbackdumps/ts/" + inputFile + ".dump"); diff --git a/libraries/exoplayer/src/test/java/androidx/media3/exoplayer/e2etest/Vp9PlaybackTest.java b/libraries/exoplayer/src/test/java/androidx/media3/exoplayer/e2etest/Vp9PlaybackTest.java index 3c7e703f43..d52f24ef21 100644 --- a/libraries/exoplayer/src/test/java/androidx/media3/exoplayer/e2etest/Vp9PlaybackTest.java +++ b/libraries/exoplayer/src/test/java/androidx/media3/exoplayer/e2etest/Vp9PlaybackTest.java @@ -62,7 +62,8 @@ public final class Vp9PlaybackTest { new ExoPlayer.Builder(applicationContext, capturingRenderersFactory) .setClock(new FakeClock(/* isAutoAdvancing= */ true)) .build(); - player.setVideoSurface(new Surface(new SurfaceTexture(/* texName= */ 1))); + Surface surface = new Surface(new SurfaceTexture(/* texName= */ 1)); + player.setVideoSurface(surface); PlaybackOutput playbackOutput = PlaybackOutput.register(player, capturingRenderersFactory); player.setMediaItem(MediaItem.fromUri("asset:///media/vp9/" + inputFile)); @@ -70,6 +71,7 @@ public final class Vp9PlaybackTest { player.play(); TestPlayerRunHelper.runUntilPlaybackState(player, Player.STATE_ENDED); player.release(); + surface.release(); DumpFileAsserts.assertOutput( applicationContext, playbackOutput, "playbackdumps/vp9/" + inputFile + ".dump"); diff --git a/libraries/exoplayer/src/test/java/androidx/media3/exoplayer/e2etest/WebvttPlaybackTest.java b/libraries/exoplayer/src/test/java/androidx/media3/exoplayer/e2etest/WebvttPlaybackTest.java index 5eb9aaa422..9297a017ad 100644 --- a/libraries/exoplayer/src/test/java/androidx/media3/exoplayer/e2etest/WebvttPlaybackTest.java +++ b/libraries/exoplayer/src/test/java/androidx/media3/exoplayer/e2etest/WebvttPlaybackTest.java @@ -66,7 +66,8 @@ public class WebvttPlaybackTest { .setClock(new FakeClock(/* isAutoAdvancing= */ true)) .setMediaSourceFactory(mediaSourceFactory) .build(); - player.setVideoSurface(new Surface(new SurfaceTexture(/* texName= */ 1))); + Surface surface = new Surface(new SurfaceTexture(/* texName= */ 1)); + player.setVideoSurface(surface); PlaybackOutput playbackOutput = PlaybackOutput.register(player, capturingRenderersFactory); MediaItem mediaItem = new MediaItem.Builder() @@ -86,6 +87,7 @@ public class WebvttPlaybackTest { player.play(); TestPlayerRunHelper.runUntilPlaybackState(player, Player.STATE_ENDED); player.release(); + surface.release(); DumpFileAsserts.assertOutput( applicationContext, playbackOutput, "playbackdumps/webvtt/" + inputFile + ".dump");