Add Robolectric playback tests for existing VP9 assets

PiperOrigin-RevId: 342660971
This commit is contained in:
christosts 2020-11-16 18:04:47 +00:00 committed by kim-vde
parent 0a778ceb1c
commit cbd91999b4
5 changed files with 333 additions and 0 deletions

View File

@ -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");
}
}

View 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

View 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

View 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

View 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