Add Robolectric playback tests for existing VP9 assets
PiperOrigin-RevId: 342660971
This commit is contained in:
parent
0a778ceb1c
commit
cbd91999b4
@ -0,0 +1,78 @@
|
||||
/*
|
||||
* Copyright (C) 2020 The Android Open Source Project
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
package com.google.android.exoplayer2.e2etest;
|
||||
|
||||
import android.graphics.SurfaceTexture;
|
||||
import android.view.Surface;
|
||||
import androidx.test.core.app.ApplicationProvider;
|
||||
import com.google.android.exoplayer2.MediaItem;
|
||||
import com.google.android.exoplayer2.Player;
|
||||
import com.google.android.exoplayer2.SimpleExoPlayer;
|
||||
import com.google.android.exoplayer2.robolectric.PlaybackOutput;
|
||||
import com.google.android.exoplayer2.robolectric.ShadowMediaCodecConfig;
|
||||
import com.google.android.exoplayer2.robolectric.TestPlayerRunHelper;
|
||||
import com.google.android.exoplayer2.testutil.AutoAdvancingFakeClock;
|
||||
import com.google.android.exoplayer2.testutil.DumpFileAsserts;
|
||||
import com.google.common.collect.ImmutableList;
|
||||
import org.junit.Rule;
|
||||
import org.junit.Test;
|
||||
import org.junit.runner.RunWith;
|
||||
import org.robolectric.ParameterizedRobolectricTestRunner;
|
||||
import org.robolectric.ParameterizedRobolectricTestRunner.Parameters;
|
||||
import org.robolectric.annotation.Config;
|
||||
|
||||
/** End-to-end tests using VP9 samples. */
|
||||
// TODO(b/143232359): Remove once https://issuetracker.google.com/143232359 is resolved.
|
||||
@Config(sdk = 29)
|
||||
@RunWith(ParameterizedRobolectricTestRunner.class)
|
||||
public final class Vp9PlaybackTest {
|
||||
@Parameters(name = "{0}")
|
||||
public static ImmutableList<String> mediaSamples() {
|
||||
return ImmutableList.of(
|
||||
"bear-vp9-odd-dimensions.webm",
|
||||
"bear-vp9.webm",
|
||||
"invalid-bitstream.webm",
|
||||
"roadtrip-vp92-10bit.webm");
|
||||
}
|
||||
|
||||
@ParameterizedRobolectricTestRunner.Parameter public String inputFile;
|
||||
|
||||
@Rule
|
||||
public ShadowMediaCodecConfig mediaCodecConfig =
|
||||
ShadowMediaCodecConfig.forAllSupportedMimeTypes();
|
||||
|
||||
@Test
|
||||
public void test() throws Exception {
|
||||
SimpleExoPlayer player =
|
||||
new SimpleExoPlayer.Builder(ApplicationProvider.getApplicationContext())
|
||||
.setClock(new AutoAdvancingFakeClock())
|
||||
.build();
|
||||
player.setVideoSurface(new Surface(new SurfaceTexture(/* texName= */ 1)));
|
||||
PlaybackOutput playbackOutput = PlaybackOutput.register(player, mediaCodecConfig);
|
||||
|
||||
player.setMediaItem(MediaItem.fromUri("asset:///media/vp9/" + inputFile));
|
||||
player.prepare();
|
||||
player.play();
|
||||
TestPlayerRunHelper.runUntilPlaybackState(player, Player.STATE_ENDED);
|
||||
player.release();
|
||||
|
||||
DumpFileAsserts.assertOutput(
|
||||
ApplicationProvider.getApplicationContext(),
|
||||
playbackOutput,
|
||||
"playbackdumps/vp9/" + inputFile + ".dump");
|
||||
}
|
||||
}
|
33
testdata/src/test/assets/playbackdumps/vp9/bear-vp9-odd-dimensions.webm.dump
vendored
Normal file
33
testdata/src/test/assets/playbackdumps/vp9/bear-vp9-odd-dimensions.webm.dump
vendored
Normal file
@ -0,0 +1,33 @@
|
||||
MediaCodec (video/x-vnd.on2.vp9):
|
||||
buffers.length = 31
|
||||
buffers[0] = length 10658, hash E48B4B1D
|
||||
buffers[1] = length 5866, hash 59922F8F
|
||||
buffers[2] = length 248, hash A39B2D24
|
||||
buffers[3] = length 754, hash FD304EFB
|
||||
buffers[4] = length 333, hash 246D89D4
|
||||
buffers[5] = length 459, hash BA2A967C
|
||||
buffers[6] = length 387, hash EDFD8392
|
||||
buffers[7] = length 407, hash 49159738
|
||||
buffers[8] = length 380, hash 67F173C9
|
||||
buffers[9] = length 242, hash 9C3FBC87
|
||||
buffers[10] = length 20, hash 8199A61
|
||||
buffers[11] = length 3551, hash 86834065
|
||||
buffers[12] = length 586, hash 56F9001
|
||||
buffers[13] = length 462, hash 74FAC6C4
|
||||
buffers[14] = length 451, hash 9D8C95CB
|
||||
buffers[15] = length 471, hash 99164341
|
||||
buffers[16] = length 388, hash 5108D935
|
||||
buffers[17] = length 414, hash 59D4D209
|
||||
buffers[18] = length 432, hash A50BE20
|
||||
buffers[19] = length 260, hash 1453AACE
|
||||
buffers[20] = length 21, hash 358CAA22
|
||||
buffers[21] = length 302, hash 9B71370F
|
||||
buffers[22] = length 439, hash 1CC94A39
|
||||
buffers[23] = length 545, hash 28B26B20
|
||||
buffers[24] = length 331, hash E03847CC
|
||||
buffers[25] = length 580, hash DD364645
|
||||
buffers[26] = length 444, hash 569F0F7C
|
||||
buffers[27] = length 514, hash 4D031D97
|
||||
buffers[28] = length 374, hash 2682FDF4
|
||||
buffers[29] = length 547, hash EE67E734
|
||||
buffers[30] = length 0, hash 1
|
85
testdata/src/test/assets/playbackdumps/vp9/bear-vp9.webm.dump
vendored
Normal file
85
testdata/src/test/assets/playbackdumps/vp9/bear-vp9.webm.dump
vendored
Normal file
@ -0,0 +1,85 @@
|
||||
MediaCodec (video/x-vnd.on2.vp9):
|
||||
buffers.length = 83
|
||||
buffers[0] = length 3792, hash 70319132
|
||||
buffers[1] = length 64, hash 2661DD32
|
||||
buffers[2] = length 119, hash 8432D13B
|
||||
buffers[3] = length 154, hash 3C2605A6
|
||||
buffers[4] = length 217, hash 35901EAB
|
||||
buffers[5] = length 240, hash BB8C64E0
|
||||
buffers[6] = length 279, hash 1049FA3C
|
||||
buffers[7] = length 241, hash 2A6B3915
|
||||
buffers[8] = length 320, hash 8668600B
|
||||
buffers[9] = length 367, hash DE9678EF
|
||||
buffers[10] = length 350, hash 8DB6DF03
|
||||
buffers[11] = length 498, hash AE21B561
|
||||
buffers[12] = length 616, hash 63F6CCE
|
||||
buffers[13] = length 496, hash F783D2A6
|
||||
buffers[14] = length 646, hash E994A0D5
|
||||
buffers[15] = length 778, hash 4FBCB2DC
|
||||
buffers[16] = length 836, hash 9CCB96
|
||||
buffers[17] = length 741, hash 26E9D761
|
||||
buffers[18] = length 971, hash 7B860A38
|
||||
buffers[19] = length 707, hash A9897854
|
||||
buffers[20] = length 999, hash 16298027
|
||||
buffers[21] = length 531, hash F882C9C1
|
||||
buffers[22] = length 637, hash 97C5D538
|
||||
buffers[23] = length 1129, hash CC0A23BD
|
||||
buffers[24] = length 762, hash 494FB8F9
|
||||
buffers[25] = length 816, hash 9968424D
|
||||
buffers[26] = length 883, hash 839D8C8E
|
||||
buffers[27] = length 782, hash 66DAE49C
|
||||
buffers[28] = length 1315, hash 1C101FF0
|
||||
buffers[29] = length 816, hash CE02A2FF
|
||||
buffers[30] = length 794, hash EE87059A
|
||||
buffers[31] = length 958, hash 68AC94E6
|
||||
buffers[32] = length 662, hash EBFBE047
|
||||
buffers[33] = length 1217, hash 76A5D68A
|
||||
buffers[34] = length 517, hash D477B6B8
|
||||
buffers[35] = length 730, hash 9C95EAB3
|
||||
buffers[36] = length 1949, hash 4AE29A38
|
||||
buffers[37] = length 351, hash 31A3F42E
|
||||
buffers[38] = length 1195, hash 4DD3358B
|
||||
buffers[39] = length 560, hash 4068738D
|
||||
buffers[40] = length 1161, hash D915A8DC
|
||||
buffers[41] = length 773, hash CC627770
|
||||
buffers[42] = length 894, hash CF894838
|
||||
buffers[43] = length 1043, hash 63D5425C
|
||||
buffers[44] = length 887, hash C06D34D5
|
||||
buffers[45] = length 868, hash 54669AE6
|
||||
buffers[46] = length 762, hash 62FE7CAE
|
||||
buffers[47] = length 967, hash 8D562A0A
|
||||
buffers[48] = length 962, hash DBB8BE73
|
||||
buffers[49] = length 1124, hash 2F923F45
|
||||
buffers[50] = length 642, hash CBF0CACF
|
||||
buffers[51] = length 947, hash 952CD416
|
||||
buffers[52] = length 686, hash 6CB0BF25
|
||||
buffers[53] = length 1058, hash B3646F35
|
||||
buffers[54] = length 675, hash 119697F5
|
||||
buffers[55] = length 997, hash D545FB46
|
||||
buffers[56] = length 685, hash F047293D
|
||||
buffers[57] = length 734, hash EC9DAC21
|
||||
buffers[58] = length 859, hash B90A4269
|
||||
buffers[59] = length 760, hash 88D61733
|
||||
buffers[60] = length 1135, hash F7F5C800
|
||||
buffers[61] = length 606, hash B8EC917D
|
||||
buffers[62] = length 972, hash AFDDB2F3
|
||||
buffers[63] = length 738, hash 6DC4AED6
|
||||
buffers[64] = length 705, hash A663DB5
|
||||
buffers[65] = length 798, hash 30B04936
|
||||
buffers[66] = length 918, hash 1EB1F2B3
|
||||
buffers[67] = length 748, hash EA6C4D06
|
||||
buffers[68] = length 889, hash E5EFA513
|
||||
buffers[69] = length 731, hash 1AB901F8
|
||||
buffers[70] = length 803, hash 6BAA963C
|
||||
buffers[71] = length 921, hash BA37A6B6
|
||||
buffers[72] = length 1024, hash A9C805C7
|
||||
buffers[73] = length 494, hash A6C0C1B2
|
||||
buffers[74] = length 1400, hash 2287A7CF
|
||||
buffers[75] = length 429, hash ABDCC827
|
||||
buffers[76] = length 1377, hash CD2B3EBA
|
||||
buffers[77] = length 563, hash FA6638F5
|
||||
buffers[78] = length 489, hash 6B15C453
|
||||
buffers[79] = length 1395, hash 8B44582D
|
||||
buffers[80] = length 367, hash 1094C45C
|
||||
buffers[81] = length 1427, hash 476F6455
|
||||
buffers[82] = length 0, hash 1
|
54
testdata/src/test/assets/playbackdumps/vp9/invalid-bitstream.webm.dump
vendored
Normal file
54
testdata/src/test/assets/playbackdumps/vp9/invalid-bitstream.webm.dump
vendored
Normal file
@ -0,0 +1,54 @@
|
||||
MediaCodec (video/x-vnd.on2.vp9):
|
||||
buffers.length = 52
|
||||
buffers[0] = length 17828, hash 64E34D2F
|
||||
buffers[1] = length 51, hash 5A1B8385
|
||||
buffers[2] = length 254, hash 575105A5
|
||||
buffers[3] = length 342, hash 6B055BD4
|
||||
buffers[4] = length 335, hash F904CBC8
|
||||
buffers[5] = length 334, hash F43B3237
|
||||
buffers[6] = length 258, hash A017022F
|
||||
buffers[7] = length 1135, hash 41096949
|
||||
buffers[8] = length 602, hash C643AFC4
|
||||
buffers[9] = length 478, hash D339CAFA
|
||||
buffers[10] = length 591, hash AF60E428
|
||||
buffers[11] = length 577, hash 8A598896
|
||||
buffers[12] = length 496, hash 5A381CED
|
||||
buffers[13] = length 614, hash C7ACEA2
|
||||
buffers[14] = length 498, hash C4D430D8
|
||||
buffers[15] = length 423, hash BF7565AE
|
||||
buffers[16] = length 355, hash 67B19C3A
|
||||
buffers[17] = length 2004, hash D3A28F8D
|
||||
buffers[18] = length 319, hash D2AE1A26
|
||||
buffers[19] = length 544, hash 6672203F
|
||||
buffers[20] = length 265, hash B6273EEA
|
||||
buffers[21] = length 387, hash 536D5C4C
|
||||
buffers[22] = length 835, hash 4151EC39
|
||||
buffers[23] = length 323, hash 388D1332
|
||||
buffers[24] = length 331, hash BB845272
|
||||
buffers[25] = length 453, hash BB524F83
|
||||
buffers[26] = length 1678, hash C4C3029F
|
||||
buffers[27] = length 349, hash 722F6EA5
|
||||
buffers[28] = length 362, hash 7C261649
|
||||
buffers[29] = length 354, hash 1C0B6E1B
|
||||
buffers[30] = length 442, hash EEA0BEBA
|
||||
buffers[31] = length 841, hash CA8E17DF
|
||||
buffers[32] = length 270, hash 30E44750
|
||||
buffers[33] = length 515, hash 3DF64E3F
|
||||
buffers[34] = length 1334, hash 91475436
|
||||
buffers[35] = length 259, hash DB6AB4F7
|
||||
buffers[36] = length 358, hash B48F6BA4
|
||||
buffers[37] = length 310, hash D44CD0B1
|
||||
buffers[38] = length 429, hash 193EFB03
|
||||
buffers[39] = length 853, hash 199DE714
|
||||
buffers[40] = length 514, hash 50A0C7E4
|
||||
buffers[41] = length 494, hash BC72BF6E
|
||||
buffers[42] = length 888, hash F2CD52E2
|
||||
buffers[43] = length 426, hash 26457D2C
|
||||
buffers[44] = length 485, hash C807DBB
|
||||
buffers[45] = length 449, hash 3B44AE53
|
||||
buffers[46] = length 503, hash FD1A91A3
|
||||
buffers[47] = length 1017, hash 96FBA2FA
|
||||
buffers[48] = length 317, hash 571D2938
|
||||
buffers[49] = length 238, hash 8D1B5E68
|
||||
buffers[50] = length 1477, hash 3DE95602
|
||||
buffers[51] = length 0, hash 1
|
83
testdata/src/test/assets/playbackdumps/vp9/roadtrip-vp92-10bit.webm.dump
vendored
Normal file
83
testdata/src/test/assets/playbackdumps/vp9/roadtrip-vp92-10bit.webm.dump
vendored
Normal file
@ -0,0 +1,83 @@
|
||||
MediaCodec (video/x-vnd.on2.vp9):
|
||||
buffers.length = 81
|
||||
buffers[0] = length 2673, hash 35AEF916
|
||||
buffers[1] = length 5013, hash 3F74CFB8
|
||||
buffers[2] = length 410, hash 7968D37
|
||||
buffers[3] = length 768, hash F6447190
|
||||
buffers[4] = length 630, hash 867A116C
|
||||
buffers[5] = length 652, hash 3F71264E
|
||||
buffers[6] = length 280, hash 9F01C36A
|
||||
buffers[7] = length 459, hash B7EF7C95
|
||||
buffers[8] = length 426, hash E3787BD6
|
||||
buffers[9] = length 383, hash 379EEC2F
|
||||
buffers[10] = length 358, hash EE661625
|
||||
buffers[11] = length 361, hash 4F23D5EC
|
||||
buffers[12] = length 322, hash AE6B8711
|
||||
buffers[13] = length 93, hash B22E7607
|
||||
buffers[14] = length 4818, hash 5FDA8F99
|
||||
buffers[15] = length 431, hash A7A2572
|
||||
buffers[16] = length 443, hash 620B58D4
|
||||
buffers[17] = length 400, hash 837F3F3E
|
||||
buffers[18] = length 475, hash 4145A530
|
||||
buffers[19] = length 425, hash 4832CA81
|
||||
buffers[20] = length 471, hash DD97E54
|
||||
buffers[21] = length 409, hash CC2B93A5
|
||||
buffers[22] = length 377, hash 7C8E856
|
||||
buffers[23] = length 393, hash EA7F1EF3
|
||||
buffers[24] = length 374, hash 16D8AE4F
|
||||
buffers[25] = length 342, hash 62066EA0
|
||||
buffers[26] = length 309, hash A29E204
|
||||
buffers[27] = length 257, hash B4115850
|
||||
buffers[28] = length 133, hash 67A871FE
|
||||
buffers[29] = length 1509, hash 8B9F3F08
|
||||
buffers[30] = length 311, hash A8BAEC79
|
||||
buffers[31] = length 363, hash DB890218
|
||||
buffers[32] = length 357, hash 67A8435D
|
||||
buffers[33] = length 333, hash 38DBDEEA
|
||||
buffers[34] = length 319, hash 20121DD2
|
||||
buffers[35] = length 268, hash CB27F791
|
||||
buffers[36] = length 72, hash DB77BC41
|
||||
buffers[37] = length 2590, hash F13AD144
|
||||
buffers[38] = length 325, hash 25689FF4
|
||||
buffers[39] = length 443, hash 86D58034
|
||||
buffers[40] = length 459, hash BE8EA85A
|
||||
buffers[41] = length 464, hash AC45359D
|
||||
buffers[42] = length 478, hash 9DF43BCB
|
||||
buffers[43] = length 390, hash 47EE958D
|
||||
buffers[44] = length 343, hash 83D39070
|
||||
buffers[45] = length 87, hash DF45BCB1
|
||||
buffers[46] = length 9655, hash CC481976
|
||||
buffers[47] = length 7854, hash DA933E72
|
||||
buffers[48] = length 1746, hash E25C46AB
|
||||
buffers[49] = length 2019, hash 39C2D0C
|
||||
buffers[50] = length 2079, hash C98E0DB1
|
||||
buffers[51] = length 2092, hash 6B944554
|
||||
buffers[52] = length 2243, hash 5F36FB0F
|
||||
buffers[53] = length 2407, hash 2F58E0FA
|
||||
buffers[54] = length 2484, hash F3A19F31
|
||||
buffers[55] = length 2490, hash 18EB7DFE
|
||||
buffers[56] = length 2501, hash 1C7304F3
|
||||
buffers[57] = length 2304, hash A8A5AE14
|
||||
buffers[58] = length 1773, hash 2413EA3A
|
||||
buffers[59] = length 22, hash C8D9EF35
|
||||
buffers[60] = length 6216, hash E546B988
|
||||
buffers[61] = length 2275, hash D1DA8420
|
||||
buffers[62] = length 2354, hash 76B4270
|
||||
buffers[63] = length 2148, hash 2C75215E
|
||||
buffers[64] = length 2060, hash 1A938209
|
||||
buffers[65] = length 1680, hash 1EEF4344
|
||||
buffers[66] = length 25, hash 797DB048
|
||||
buffers[67] = length 5343, hash CCF05351
|
||||
buffers[68] = length 1716, hash 6C9FB973
|
||||
buffers[69] = length 1882, hash 654A280
|
||||
buffers[70] = length 1872, hash 9A40CEAE
|
||||
buffers[71] = length 1797, hash F21739B0
|
||||
buffers[72] = length 1619, hash 515E799
|
||||
buffers[73] = length 1448, hash 61A57499
|
||||
buffers[74] = length 1234, hash 43AD6895
|
||||
buffers[75] = length 48, hash E84CF63C
|
||||
buffers[76] = length 5807, hash D7B3B47F
|
||||
buffers[77] = length 5222, hash 663BA03A
|
||||
buffers[78] = length 773, hash 1E0E52F8
|
||||
buffers[79] = length 807, hash 6D656F9B
|
||||
buffers[80] = length 0, hash 1
|
Loading…
x
Reference in New Issue
Block a user