diff --git a/library/dash/src/test/java/com/google/android/exoplayer2/e2etest/DashPlaybackTest.java b/library/dash/src/test/java/com/google/android/exoplayer2/e2etest/DashPlaybackTest.java index 10b3336bc0..372fa07646 100644 --- a/library/dash/src/test/java/com/google/android/exoplayer2/e2etest/DashPlaybackTest.java +++ b/library/dash/src/test/java/com/google/android/exoplayer2/e2etest/DashPlaybackTest.java @@ -73,4 +73,27 @@ public final class DashPlaybackTest { DumpFileAsserts.assertOutput( applicationContext, playbackOutput, "playbackdumps/dash/webvtt-in-mp4.dump"); } + + // https://github.com/google/ExoPlayer/issues/8710 + @Test + public void emsgNearToPeriodBoundary() throws Exception { + Context applicationContext = ApplicationProvider.getApplicationContext(); + CapturingRenderersFactory capturingRenderersFactory = + new CapturingRenderersFactory(applicationContext); + SimpleExoPlayer player = + new SimpleExoPlayer.Builder(applicationContext, capturingRenderersFactory) + .setClock(new FakeClock(/* isAutoAdvancing= */ true)) + .build(); + player.setVideoSurface(new Surface(new SurfaceTexture(/* texName= */ 1))); + PlaybackOutput playbackOutput = PlaybackOutput.register(player, capturingRenderersFactory); + + player.setMediaItem(MediaItem.fromUri("asset:///media/dash/emsg/sample.mpd")); + player.prepare(); + player.play(); + TestPlayerRunHelper.runUntilPlaybackState(player, Player.STATE_ENDED); + player.release(); + + DumpFileAsserts.assertOutput( + applicationContext, playbackOutput, "playbackdumps/dash/emsg.dump"); + } } diff --git a/testdata/src/test/assets/media/dash/emsg/sample.audio.mp4 b/testdata/src/test/assets/media/dash/emsg/sample.audio.mp4 new file mode 100644 index 0000000000..b642e4c444 Binary files /dev/null and b/testdata/src/test/assets/media/dash/emsg/sample.audio.mp4 differ diff --git a/testdata/src/test/assets/media/dash/emsg/sample.mpd b/testdata/src/test/assets/media/dash/emsg/sample.mpd new file mode 100644 index 0000000000..56a9207b2e --- /dev/null +++ b/testdata/src/test/assets/media/dash/emsg/sample.mpd @@ -0,0 +1,36 @@ + + + + + + + + sample.audio.mp4 + + + + + + + + + + + + + + + sample.audio.mp4 + + + + + + + diff --git a/testdata/src/test/assets/playbackdumps/dash/emsg.dump b/testdata/src/test/assets/playbackdumps/dash/emsg.dump new file mode 100644 index 0000000000..7252d070ae --- /dev/null +++ b/testdata/src/test/assets/playbackdumps/dash/emsg.dump @@ -0,0 +1,94 @@ +MediaCodecAdapter (exotest.audio.aac): + buffers.length = 92 + buffers[0] = length 23, hash 47DE9131 + buffers[1] = length 6, hash 31EC5206 + buffers[2] = length 148, hash 894A176B + buffers[3] = length 189, hash CEF235A1 + buffers[4] = length 205, hash BBF5F7B0 + buffers[5] = length 210, hash F278B193 + buffers[6] = length 210, hash 82DA1589 + buffers[7] = length 207, hash 5BE231DF + buffers[8] = length 225, hash 18819EE1 + buffers[9] = length 215, hash CA7FA67B + buffers[10] = length 211, hash 581A1C18 + buffers[11] = length 216, hash ADB88187 + buffers[12] = length 229, hash 2E8BA4DC + buffers[13] = length 232, hash 22F0C510 + buffers[14] = length 235, hash 867AD0DC + buffers[15] = length 231, hash 84E823A8 + buffers[16] = length 226, hash 1BEF3A95 + buffers[17] = length 216, hash EAA345AE + buffers[18] = length 229, hash 6957411F + buffers[19] = length 219, hash 41275022 + buffers[20] = length 241, hash 6495DF96 + buffers[21] = length 228, hash 63D95906 + buffers[22] = length 238, hash 34F676F9 + buffers[23] = length 234, hash E5CBC045 + buffers[24] = length 231, hash 5FC43661 + buffers[25] = length 217, hash 682708ED + buffers[26] = length 239, hash D43780FC + buffers[27] = length 243, hash C5E17980 + buffers[28] = length 231, hash AC5837BA + buffers[29] = length 230, hash 169EE895 + buffers[30] = length 238, hash C48FF3F1 + buffers[31] = length 225, hash 531E4599 + buffers[32] = length 232, hash CB3C6B8D + buffers[33] = length 243, hash F8C94C7 + buffers[34] = length 232, hash A646A7D0 + buffers[35] = length 237, hash E8B787A5 + buffers[36] = length 228, hash 3FA7A29F + buffers[37] = length 235, hash B9B33B0A + buffers[38] = length 264, hash 71A4869E + buffers[39] = length 257, hash D049B54C + buffers[40] = length 227, hash 66757231 + buffers[41] = length 227, hash BD374F1B + buffers[42] = length 235, hash 999477F6 + buffers[43] = length 229, hash FFF98DF0 + buffers[44] = length 6, hash 31B22286 + buffers[45] = length 0, hash 1 + buffers[46] = length 23, hash 47DE9131 + buffers[47] = length 6, hash 31EC5206 + buffers[48] = length 148, hash 894A176B + buffers[49] = length 189, hash CEF235A1 + buffers[50] = length 205, hash BBF5F7B0 + buffers[51] = length 210, hash F278B193 + buffers[52] = length 210, hash 82DA1589 + buffers[53] = length 207, hash 5BE231DF + buffers[54] = length 225, hash 18819EE1 + buffers[55] = length 215, hash CA7FA67B + buffers[56] = length 211, hash 581A1C18 + buffers[57] = length 216, hash ADB88187 + buffers[58] = length 229, hash 2E8BA4DC + buffers[59] = length 232, hash 22F0C510 + buffers[60] = length 235, hash 867AD0DC + buffers[61] = length 231, hash 84E823A8 + buffers[62] = length 226, hash 1BEF3A95 + buffers[63] = length 216, hash EAA345AE + buffers[64] = length 229, hash 6957411F + buffers[65] = length 219, hash 41275022 + buffers[66] = length 241, hash 6495DF96 + buffers[67] = length 228, hash 63D95906 + buffers[68] = length 238, hash 34F676F9 + buffers[69] = length 234, hash E5CBC045 + buffers[70] = length 231, hash 5FC43661 + buffers[71] = length 217, hash 682708ED + buffers[72] = length 239, hash D43780FC + buffers[73] = length 243, hash C5E17980 + buffers[74] = length 231, hash AC5837BA + buffers[75] = length 230, hash 169EE895 + buffers[76] = length 238, hash C48FF3F1 + buffers[77] = length 225, hash 531E4599 + buffers[78] = length 232, hash CB3C6B8D + buffers[79] = length 243, hash F8C94C7 + buffers[80] = length 232, hash A646A7D0 + buffers[81] = length 237, hash E8B787A5 + buffers[82] = length 228, hash 3FA7A29F + buffers[83] = length 235, hash B9B33B0A + buffers[84] = length 264, hash 71A4869E + buffers[85] = length 257, hash D049B54C + buffers[86] = length 227, hash 66757231 + buffers[87] = length 227, hash BD374F1B + buffers[88] = length 235, hash 999477F6 + buffers[89] = length 229, hash FFF98DF0 + buffers[90] = length 6, hash 31B22286 + buffers[91] = length 0, hash 1