mirror of
https://github.com/androidx/media.git
synced 2025-04-30 06:46:50 +08:00
Release the Surface
at the end of every playback test
Without this an error is logged which obfuscates real test failures. PiperOrigin-RevId: 687302953
This commit is contained in:
parent
f52c7a1d5c
commit
2f01900e83
@ -421,7 +421,8 @@ public class ExoPlayerTest {
|
||||
throws Exception {
|
||||
Timeline timeline = new FakeTimeline(/* windowCount= */ 1);
|
||||
ExoPlayer player = parameterizeTestExoPlayerBuilder(new TestExoPlayerBuilder(context)).build();
|
||||
player.setVideoSurface(new Surface(new SurfaceTexture(/* texName= */ 0)));
|
||||
Surface surface = new Surface(new SurfaceTexture(/* texName= */ 0));
|
||||
player.setVideoSurface(surface);
|
||||
Player.Listener mockPlayerListener = mock(Player.Listener.class);
|
||||
player.addListener(mockPlayerListener);
|
||||
AnalyticsListener mockAnalyticsListener = mock(AnalyticsListener.class);
|
||||
@ -451,6 +452,7 @@ public class ExoPlayerTest {
|
||||
runUntilPlaybackState(player, Player.STATE_ENDED);
|
||||
videoSizesFromGetter.add(player.getVideoSize());
|
||||
player.release();
|
||||
surface.release();
|
||||
ShadowLooper.runMainLooperToNextTask();
|
||||
|
||||
InOrder playerListenerOrder = inOrder(mockPlayerListener);
|
||||
|
@ -411,7 +411,8 @@ public final class ServerSideAdInsertionMediaSourceTest {
|
||||
new ExoPlayer.Builder(context, 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);
|
||||
|
||||
AdPlaybackState adPlaybackState = new AdPlaybackState(/* adsId= */ new Object());
|
||||
@ -458,6 +459,7 @@ public final class ServerSideAdInsertionMediaSourceTest {
|
||||
player.play();
|
||||
runUntilPlaybackState(player, Player.STATE_ENDED);
|
||||
player.release();
|
||||
surface.release();
|
||||
|
||||
// Assert all samples have been played.
|
||||
DumpFileAsserts.assertOutput(
|
||||
@ -484,7 +486,8 @@ public final class ServerSideAdInsertionMediaSourceTest {
|
||||
new ExoPlayer.Builder(context, 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);
|
||||
|
||||
AdPlaybackState firstAdPlaybackState =
|
||||
@ -535,6 +538,7 @@ public final class ServerSideAdInsertionMediaSourceTest {
|
||||
player.play();
|
||||
runUntilPlaybackState(player, Player.STATE_ENDED);
|
||||
player.release();
|
||||
surface.release();
|
||||
|
||||
// Assert all samples have been played.
|
||||
DumpFileAsserts.assertOutput(
|
||||
@ -563,7 +567,8 @@ public final class ServerSideAdInsertionMediaSourceTest {
|
||||
new ExoPlayer.Builder(context, 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);
|
||||
|
||||
AdPlaybackState firstAdPlaybackState =
|
||||
@ -614,6 +619,7 @@ public final class ServerSideAdInsertionMediaSourceTest {
|
||||
player.play();
|
||||
runUntilPlaybackState(player, Player.STATE_ENDED);
|
||||
player.release();
|
||||
surface.release();
|
||||
|
||||
// Assert all samples have been played.
|
||||
DumpFileAsserts.assertOutput(
|
||||
@ -637,7 +643,8 @@ public final class ServerSideAdInsertionMediaSourceTest {
|
||||
Context context = ApplicationProvider.getApplicationContext();
|
||||
ExoPlayer player =
|
||||
new ExoPlayer.Builder(context).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);
|
||||
|
||||
AdPlaybackState adPlaybackState = new AdPlaybackState(/* adsId= */ new Object());
|
||||
adPlaybackState =
|
||||
@ -689,6 +696,7 @@ public final class ServerSideAdInsertionMediaSourceTest {
|
||||
player.play();
|
||||
runUntilPlaybackState(player, Player.STATE_ENDED);
|
||||
player.release();
|
||||
surface.release();
|
||||
|
||||
// Assert playback has been reported with ads: [ad0][content] seek [ad1][content][ad2][content]
|
||||
// 6*2(audio+video) format changes, 4 auto-transitions between parts, 1 seek with adjustment.
|
||||
|
@ -75,7 +75,8 @@ public final class DashPlaybackTest {
|
||||
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);
|
||||
|
||||
// Ensure the subtitle track is selected.
|
||||
@ -87,6 +88,7 @@ public final class DashPlaybackTest {
|
||||
player.play();
|
||||
TestPlayerRunHelper.runUntilPlaybackState(player, Player.STATE_ENDED);
|
||||
player.release();
|
||||
surface.release();
|
||||
|
||||
DumpFileAsserts.assertOutput(
|
||||
applicationContext, playbackOutput, "playbackdumps/dash/standalone-webvtt.dump");
|
||||
@ -183,7 +185,8 @@ public final class DashPlaybackTest {
|
||||
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);
|
||||
|
||||
// Ensure the subtitle track is selected.
|
||||
@ -195,6 +198,7 @@ public final class DashPlaybackTest {
|
||||
player.play();
|
||||
TestPlayerRunHelper.runUntilPlaybackState(player, Player.STATE_ENDED);
|
||||
player.release();
|
||||
surface.release();
|
||||
|
||||
DumpFileAsserts.assertOutput(
|
||||
applicationContext, playbackOutput, "playbackdumps/dash/standalone-ttml.dump");
|
||||
@ -210,7 +214,8 @@ public final class DashPlaybackTest {
|
||||
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);
|
||||
|
||||
// Ensure the subtitle track is selected.
|
||||
@ -222,6 +227,7 @@ public final class DashPlaybackTest {
|
||||
player.play();
|
||||
TestPlayerRunHelper.runUntilPlaybackState(player, Player.STATE_ENDED);
|
||||
player.release();
|
||||
surface.release();
|
||||
|
||||
DumpFileAsserts.assertOutput(
|
||||
applicationContext, playbackOutput, "playbackdumps/dash/webvtt-in-mp4.dump");
|
||||
@ -236,7 +242,8 @@ public final class DashPlaybackTest {
|
||||
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);
|
||||
|
||||
// Ensure the subtitle track is selected.
|
||||
@ -248,6 +255,7 @@ public final class DashPlaybackTest {
|
||||
player.play();
|
||||
TestPlayerRunHelper.runUntilPlaybackState(player, Player.STATE_ENDED);
|
||||
player.release();
|
||||
surface.release();
|
||||
|
||||
DumpFileAsserts.assertOutput(
|
||||
applicationContext, playbackOutput, "playbackdumps/dash/ttml-in-mp4.dump");
|
||||
@ -351,7 +359,8 @@ public final class DashPlaybackTest {
|
||||
.experimentalParseSubtitlesDuringExtraction(false))
|
||||
.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);
|
||||
|
||||
// Ensure the subtitle track is selected.
|
||||
@ -363,6 +372,7 @@ public final class DashPlaybackTest {
|
||||
player.play();
|
||||
TestPlayerRunHelper.runUntilPlaybackState(player, Player.STATE_ENDED);
|
||||
player.release();
|
||||
surface.release();
|
||||
|
||||
DumpFileAsserts.assertOutput(
|
||||
applicationContext, playbackOutput, "playbackdumps/dash/cea608.dump");
|
||||
@ -387,7 +397,8 @@ public final class DashPlaybackTest {
|
||||
.experimentalParseSubtitlesDuringExtraction(true))
|
||||
.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);
|
||||
|
||||
// Ensure the subtitle track is selected.
|
||||
@ -399,6 +410,7 @@ public final class DashPlaybackTest {
|
||||
player.play();
|
||||
TestPlayerRunHelper.runUntilPlaybackState(player, Player.STATE_ENDED);
|
||||
player.release();
|
||||
surface.release();
|
||||
|
||||
DumpFileAsserts.assertOutput(
|
||||
applicationContext, playbackOutput, "playbackdumps/dash/cea608.dump");
|
||||
@ -414,7 +426,8 @@ public final class DashPlaybackTest {
|
||||
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/dash/emsg/sample.mpd"));
|
||||
@ -422,6 +435,7 @@ public final class DashPlaybackTest {
|
||||
player.play();
|
||||
TestPlayerRunHelper.runUntilPlaybackState(player, Player.STATE_ENDED);
|
||||
player.release();
|
||||
surface.release();
|
||||
|
||||
DumpFileAsserts.assertOutput(
|
||||
applicationContext, playbackOutput, "playbackdumps/dash/emsg.dump");
|
||||
@ -441,7 +455,8 @@ public final class DashPlaybackTest {
|
||||
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);
|
||||
CapturingRenderersFactory capturingRenderersFactory =
|
||||
new CapturingRenderersFactory(applicationContext);
|
||||
PlaybackOutput playbackOutput = PlaybackOutput.register(player, capturingRenderersFactory);
|
||||
@ -451,6 +466,7 @@ public final class DashPlaybackTest {
|
||||
player.play();
|
||||
TestPlayerRunHelper.playUntilPosition(player, /* mediaItemIndex= */ 0, /* positionMs= */ 500);
|
||||
player.release();
|
||||
surface.release();
|
||||
|
||||
// Ensure output contains metadata up to the playback position.
|
||||
DumpFileAsserts.assertOutput(
|
||||
@ -477,7 +493,8 @@ public final class DashPlaybackTest {
|
||||
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);
|
||||
CapturingRenderersFactory capturingRenderersFactory =
|
||||
new CapturingRenderersFactory(applicationContext);
|
||||
PlaybackOutput playbackOutput = PlaybackOutput.register(player, capturingRenderersFactory);
|
||||
@ -487,6 +504,7 @@ public final class DashPlaybackTest {
|
||||
player.play();
|
||||
TestPlayerRunHelper.playUntilPosition(player, /* mediaItemIndex= */ 0, /* positionMs= */ 500);
|
||||
player.release();
|
||||
surface.release();
|
||||
|
||||
// Ensure output contains all metadata irrespective of the playback position.
|
||||
DumpFileAsserts.assertOutput(
|
||||
@ -617,7 +635,8 @@ public final class DashPlaybackTest {
|
||||
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(
|
||||
@ -626,6 +645,7 @@ public final class DashPlaybackTest {
|
||||
player.play();
|
||||
TestPlayerRunHelper.runUntilPlaybackState(player, Player.STATE_ENDED);
|
||||
player.release();
|
||||
surface.release();
|
||||
|
||||
DumpFileAsserts.assertOutput(
|
||||
applicationContext, playbackOutput, "playbackdumps/dash/multi-period-with-offset.dump");
|
||||
|
@ -68,7 +68,8 @@ public final class HlsPlaybackTest {
|
||||
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(
|
||||
@ -77,6 +78,7 @@ public final class HlsPlaybackTest {
|
||||
player.play();
|
||||
TestPlayerRunHelper.runUntilPlaybackState(player, Player.STATE_ENDED);
|
||||
player.release();
|
||||
surface.release();
|
||||
|
||||
DumpFileAsserts.assertOutput(
|
||||
applicationContext, playbackOutput, "playbackdumps/hls/standalone-webvtt.dump");
|
||||
@ -166,7 +168,8 @@ public final class HlsPlaybackTest {
|
||||
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(
|
||||
@ -175,6 +178,7 @@ public final class HlsPlaybackTest {
|
||||
player.play();
|
||||
TestPlayerRunHelper.runUntilPlaybackState(player, Player.STATE_ENDED);
|
||||
player.release();
|
||||
surface.release();
|
||||
|
||||
DumpFileAsserts.assertOutput(
|
||||
applicationContext, playbackOutput, "playbackdumps/hls/ttml-in-mp4.dump");
|
||||
@ -272,7 +276,8 @@ public final class HlsPlaybackTest {
|
||||
.experimentalParseSubtitlesDuringExtraction(false))
|
||||
.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/hls/cea608/manifest.m3u8"));
|
||||
@ -280,6 +285,7 @@ public final class HlsPlaybackTest {
|
||||
player.play();
|
||||
TestPlayerRunHelper.runUntilPlaybackState(player, Player.STATE_ENDED);
|
||||
player.release();
|
||||
surface.release();
|
||||
|
||||
DumpFileAsserts.assertOutput(
|
||||
applicationContext, playbackOutput, "playbackdumps/hls/cea608.dump");
|
||||
@ -304,7 +310,8 @@ public final class HlsPlaybackTest {
|
||||
.experimentalParseSubtitlesDuringExtraction(true))
|
||||
.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/hls/cea608/manifest.m3u8"));
|
||||
@ -312,6 +319,7 @@ public final class HlsPlaybackTest {
|
||||
player.play();
|
||||
TestPlayerRunHelper.runUntilPlaybackState(player, Player.STATE_ENDED);
|
||||
player.release();
|
||||
surface.release();
|
||||
|
||||
DumpFileAsserts.assertOutput(
|
||||
applicationContext, playbackOutput, "playbackdumps/hls/cea608.dump");
|
||||
@ -332,7 +340,8 @@ public final class HlsPlaybackTest {
|
||||
/* backBufferDurationMs= */ 10000, /* retainBackBufferFromKeyframe= */ true)
|
||||
.build())
|
||||
.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);
|
||||
// Play media fully (with back buffer) to ensure we have all the segment data available.
|
||||
player.setMediaItem(MediaItem.fromUri("asset:///media/hls/multi-segment/playlist.m3u8"));
|
||||
@ -346,6 +355,7 @@ public final class HlsPlaybackTest {
|
||||
player.play();
|
||||
TestPlayerRunHelper.runUntilPlaybackState(player, Player.STATE_ENDED);
|
||||
player.release();
|
||||
surface.release();
|
||||
|
||||
// Output only starts at 550ms (the first sample in the second segment)
|
||||
DumpFileAsserts.assertOutput(
|
||||
|
Loading…
x
Reference in New Issue
Block a user