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