Add Robolectric playback tests for existing MKA assets

PiperOrigin-RevId: 342060794
This commit is contained in:
christosts 2020-11-12 17:10:17 +00:00 committed by Christos Tsilopoulos
parent 55afddf05c
commit 7fd78666d1
5 changed files with 422 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 MKA samples. */
// TODO(b/143232359): Remove once https://issuetracker.google.com/143232359 is resolved.
@Config(sdk = 29)
@RunWith(ParameterizedRobolectricTestRunner.class)
public final class MkaPlaybackTest {
@Parameters(name = "{0}")
public static ImmutableList<String> mediaSamples() {
return ImmutableList.of(
"bear-flac-16bit.mka",
"bear-flac-24bit.mka",
"bear-opus.mka",
"bear-opus-negative-gain.mka");
}
@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/mka/" + inputFile));
player.prepare();
player.play();
TestPlayerRunHelper.runUntilPlaybackState(player, Player.STATE_ENDED);
player.release();
DumpFileAsserts.assertOutput(
ApplicationProvider.getApplicationContext(),
playbackOutput,
"playbackdumps/mka/" + inputFile + ".dump");
}
}

View File

@ -0,0 +1,32 @@
MediaCodec (audio/flac):
buffers.length = 30
buffers[0] = length 3608, hash EE7EFC6C
buffers[1] = length 4278, hash 7BAF8A9
buffers[2] = length 3763, hash 40C70127
buffers[3] = length 3568, hash 51FBCC44
buffers[4] = length 4339, hash FFA8D5A2
buffers[5] = length 3788, hash 5F5CFFDD
buffers[6] = length 3714, hash DD46DF94
buffers[7] = length 3766, hash 4D96187C
buffers[8] = length 3806, hash 86DB14D4
buffers[9] = length 3755, hash AF217312
buffers[10] = length 3824, hash 37A61E58
buffers[11] = length 4785, hash F5200FA7
buffers[12] = length 4619, hash 8D64F73D
buffers[13] = length 3915, hash 73500C2C
buffers[14] = length 4763, hash 2FCDE683
buffers[15] = length 4154, hash A5AB5A5D
buffers[16] = length 4547, hash BF9A246A
buffers[17] = length 4005, hash 83EE3482
buffers[18] = length 3905, hash E6EE5342
buffers[19] = length 3797, hash AE6F03B2
buffers[20] = length 3863, hash E022115D
buffers[21] = length 3958, hash B3F0059
buffers[22] = length 3856, hash 81DEB55F
buffers[23] = length 3958, hash EC7E2889
buffers[24] = length 3937, hash 2CC2FD97
buffers[25] = length 3934, hash F80FF227
buffers[26] = length 3954, hash 17C9E273
buffers[27] = length 2299, hash 3F1A98BF
buffers[28] = length 333, hash FC52D488
buffers[29] = length 0, hash 1

View File

@ -0,0 +1,32 @@
MediaCodec (audio/flac):
buffers.length = 30
buffers[0] = length 3610, hash C0423D1B
buffers[1] = length 4280, hash 2E8BEA95
buffers[2] = length 3765, hash EDE8EB27
buffers[3] = length 3570, hash 49DC5122
buffers[4] = length 4341, hash 54B19279
buffers[5] = length 3790, hash 2A45E2ED
buffers[6] = length 3716, hash 7C9037F7
buffers[7] = length 3768, hash AD0272F9
buffers[8] = length 3808, hash 5EA67F93
buffers[9] = length 3757, hash 49A182E0
buffers[10] = length 3826, hash 3B1D36A5
buffers[11] = length 4787, hash BAD9FD83
buffers[12] = length 4621, hash FF75E71D
buffers[13] = length 3917, hash 576128F0
buffers[14] = length 4765, hash 533216EE
buffers[15] = length 4156, hash CABB5909
buffers[16] = length 4549, hash 7E10A60C
buffers[17] = length 4007, hash 10851893
buffers[18] = length 3907, hash E54710ED
buffers[19] = length 3799, hash 2A466310
buffers[20] = length 3865, hash E0187577
buffers[21] = length 3960, hash BD8BAE69
buffers[22] = length 3858, hash A5AFCF25
buffers[23] = length 3960, hash 68C635
buffers[24] = length 3939, hash 6D7A7AB9
buffers[25] = length 3936, hash 70272966
buffers[26] = length 3956, hash 6E328CC8
buffers[27] = length 2476, hash AF155313
buffers[28] = length 335, hash 1B7D092B
buffers[29] = length 0, hash 1

View File

@ -0,0 +1,140 @@
MediaCodec (audio/opus):
buffers.length = 138
buffers[0] = length 375, hash 147EA9B
buffers[1] = length 187, hash C8ADD7C2
buffers[2] = length 175, hash A6D94D6E
buffers[3] = length 162, hash 45359884
buffers[4] = length 163, hash CBB836AF
buffers[5] = length 293, hash EEB23890
buffers[6] = length 160, hash 7843AFDA
buffers[7] = length 162, hash 607E26A4
buffers[8] = length 164, hash C1423D63
buffers[9] = length 169, hash 90CEDF8C
buffers[10] = length 165, hash 97A6A3F7
buffers[11] = length 179, hash 2EA2049F
buffers[12] = length 168, hash FCD51794
buffers[13] = length 162, hash 80D9FBC0
buffers[14] = length 162, hash BB673AC7
buffers[15] = length 161, hash 8D5CC41B
buffers[16] = length 161, hash 5F5E6270
buffers[17] = length 165, hash 117B14D9
buffers[18] = length 166, hash D8BFD4
buffers[19] = length 162, hash 61D76007
buffers[20] = length 165, hash 78245BE8
buffers[21] = length 165, hash A5F5B919
buffers[22] = length 255, hash 1F42ECE2
buffers[23] = length 165, hash D89D3EF0
buffers[24] = length 164, hash C44C8E79
buffers[25] = length 163, hash FFCE2E84
buffers[26] = length 184, hash FD7BF02A
buffers[27] = length 162, hash 59074C0F
buffers[28] = length 162, hash 41CAF78D
buffers[29] = length 163, hash 50F0BCBD
buffers[30] = length 163, hash FABC49B3
buffers[31] = length 256, hash 8515E521
buffers[32] = length 244, hash D5F80618
buffers[33] = length 162, hash A23FA880
buffers[34] = length 163, hash 5D99DCD2
buffers[35] = length 163, hash 37A4EB87
buffers[36] = length 164, hash 4C190996
buffers[37] = length 164, hash A2F6E788
buffers[38] = length 162, hash E7353EFB
buffers[39] = length 161, hash FFF24D5F
buffers[40] = length 162, hash 95B27AB0
buffers[41] = length 163, hash C43CB498
buffers[42] = length 164, hash 438F5714
buffers[43] = length 163, hash BDB72F57
buffers[44] = length 162, hash 3194B57A
buffers[45] = length 163, hash D7CC025
buffers[46] = length 162, hash F9E19F4D
buffers[47] = length 194, hash EED4C2BD
buffers[48] = length 164, hash ABFAEEFE
buffers[49] = length 163, hash 7487380A
buffers[50] = length 163, hash D4BFFB76
buffers[51] = length 164, hash F3EB6797
buffers[52] = length 163, hash 82B7ABB7
buffers[53] = length 177, hash 921FEDAE
buffers[54] = length 162, hash BC7D176B
buffers[55] = length 165, hash 32DAEB04
buffers[56] = length 164, hash 55FDBC77
buffers[57] = length 230, hash FC32522D
buffers[58] = length 177, hash DF834667
buffers[59] = length 161, hash F2ADFBCA
buffers[60] = length 161, hash 13CB7679
buffers[61] = length 164, hash A12B20AC
buffers[62] = length 163, hash 38D448B
buffers[63] = length 164, hash BFE96C9A
buffers[64] = length 161, hash 921431E3
buffers[65] = length 162, hash 9DDE27E0
buffers[66] = length 165, hash 42C01110
buffers[67] = length 163, hash C244C6B1
buffers[68] = length 162, hash 288A7D7A
buffers[69] = length 164, hash 6DDF8E96
buffers[70] = length 312, hash DD1760ED
buffers[71] = length 164, hash 40BD6AB0
buffers[72] = length 167, hash 45FEB94
buffers[73] = length 164, hash 1783D8D9
buffers[74] = length 165, hash 7F68CB47
buffers[75] = length 163, hash 431D98B9
buffers[76] = length 164, hash 2F7F0A03
buffers[77] = length 164, hash 330E9D40
buffers[78] = length 161, hash 670A6D84
buffers[79] = length 162, hash 55CEAB6A
buffers[80] = length 161, hash 690C1C44
buffers[81] = length 311, hash 507DC3E7
buffers[82] = length 226, hash 2D0C0942
buffers[83] = length 163, hash 47A75060
buffers[84] = length 163, hash 198A78EB
buffers[85] = length 165, hash F7AF184
buffers[86] = length 163, hash 7EC009AE
buffers[87] = length 163, hash 7ACF600A
buffers[88] = length 170, hash 67F513C9
buffers[89] = length 162, hash E0116535
buffers[90] = length 164, hash 6C4C8BC1
buffers[91] = length 163, hash 73E55623
buffers[92] = length 162, hash 614AB0EE
buffers[93] = length 162, hash 49E038A6
buffers[94] = length 162, hash 45BBCDDF
buffers[95] = length 163, hash 94E6047A
buffers[96] = length 162, hash FA40E646
buffers[97] = length 163, hash 54F3E885
buffers[98] = length 163, hash 42EA2C3C
buffers[99] = length 164, hash 11E5DC72
buffers[100] = length 161, hash FB697FB7
buffers[101] = length 164, hash 45137460
buffers[102] = length 232, hash F8A33CF3
buffers[103] = length 163, hash B2562537
buffers[104] = length 163, hash D07ADBF
buffers[105] = length 163, hash 2AE2FC1E
buffers[106] = length 162, hash F574ABD
buffers[107] = length 162, hash 8A20D2FC
buffers[108] = length 162, hash BD37BF40
buffers[109] = length 163, hash 81DF11E8
buffers[110] = length 165, hash 236877C0
buffers[111] = length 226, hash 6B5CD992
buffers[112] = length 162, hash 7F697CCA
buffers[113] = length 161, hash 4C2993B4
buffers[114] = length 163, hash 1DE49094
buffers[115] = length 162, hash DCA5BB9B
buffers[116] = length 165, hash 66B62984
buffers[117] = length 161, hash 994C6D54
buffers[118] = length 163, hash DA5BA1F1
buffers[119] = length 187, hash 7F6C5537
buffers[120] = length 161, hash D0AF4628
buffers[121] = length 161, hash 8A49A435
buffers[122] = length 163, hash 90D7B180
buffers[123] = length 162, hash C459D78E
buffers[124] = length 161, hash D7766E6B
buffers[125] = length 187, hash E0449F61
buffers[126] = length 162, hash 203F238E
buffers[127] = length 163, hash 15F81805
buffers[128] = length 161, hash 8496E779
buffers[129] = length 163, hash DF6A28D0
buffers[130] = length 233, hash 39CAC5CB
buffers[131] = length 250, hash 40F8863A
buffers[132] = length 248, hash BB880EB4
buffers[133] = length 247, hash A93865FE
buffers[134] = length 244, hash ED7E6DB5
buffers[135] = length 252, hash 2DD353C4
buffers[136] = length 244, hash CE73B41E
buffers[137] = length 0, hash 1

View File

@ -0,0 +1,140 @@
MediaCodec (audio/opus):
buffers.length = 138
buffers[0] = length 375, hash 147EA9B
buffers[1] = length 187, hash C8ADD7C2
buffers[2] = length 175, hash A6D94D6E
buffers[3] = length 162, hash 45359884
buffers[4] = length 163, hash CBB836AF
buffers[5] = length 293, hash EEB23890
buffers[6] = length 160, hash 7843AFDA
buffers[7] = length 162, hash 607E26A4
buffers[8] = length 164, hash C1423D63
buffers[9] = length 169, hash 90CEDF8C
buffers[10] = length 165, hash 97A6A3F7
buffers[11] = length 179, hash 2EA2049F
buffers[12] = length 168, hash FCD51794
buffers[13] = length 162, hash 80D9FBC0
buffers[14] = length 162, hash BB673AC7
buffers[15] = length 161, hash 8D5CC41B
buffers[16] = length 161, hash 5F5E6270
buffers[17] = length 165, hash 117B14D9
buffers[18] = length 166, hash D8BFD4
buffers[19] = length 162, hash 61D76007
buffers[20] = length 165, hash 78245BE8
buffers[21] = length 165, hash A5F5B919
buffers[22] = length 255, hash 1F42ECE2
buffers[23] = length 165, hash D89D3EF0
buffers[24] = length 164, hash C44C8E79
buffers[25] = length 163, hash FFCE2E84
buffers[26] = length 184, hash FD7BF02A
buffers[27] = length 162, hash 59074C0F
buffers[28] = length 162, hash 41CAF78D
buffers[29] = length 163, hash 50F0BCBD
buffers[30] = length 163, hash FABC49B3
buffers[31] = length 256, hash 8515E521
buffers[32] = length 244, hash D5F80618
buffers[33] = length 162, hash A23FA880
buffers[34] = length 163, hash 5D99DCD2
buffers[35] = length 163, hash 37A4EB87
buffers[36] = length 164, hash 4C190996
buffers[37] = length 164, hash A2F6E788
buffers[38] = length 162, hash E7353EFB
buffers[39] = length 161, hash FFF24D5F
buffers[40] = length 162, hash 95B27AB0
buffers[41] = length 163, hash C43CB498
buffers[42] = length 164, hash 438F5714
buffers[43] = length 163, hash BDB72F57
buffers[44] = length 162, hash 3194B57A
buffers[45] = length 163, hash D7CC025
buffers[46] = length 162, hash F9E19F4D
buffers[47] = length 194, hash EED4C2BD
buffers[48] = length 164, hash ABFAEEFE
buffers[49] = length 163, hash 7487380A
buffers[50] = length 163, hash D4BFFB76
buffers[51] = length 164, hash F3EB6797
buffers[52] = length 163, hash 82B7ABB7
buffers[53] = length 177, hash 921FEDAE
buffers[54] = length 162, hash BC7D176B
buffers[55] = length 165, hash 32DAEB04
buffers[56] = length 164, hash 55FDBC77
buffers[57] = length 230, hash FC32522D
buffers[58] = length 177, hash DF834667
buffers[59] = length 161, hash F2ADFBCA
buffers[60] = length 161, hash 13CB7679
buffers[61] = length 164, hash A12B20AC
buffers[62] = length 163, hash 38D448B
buffers[63] = length 164, hash BFE96C9A
buffers[64] = length 161, hash 921431E3
buffers[65] = length 162, hash 9DDE27E0
buffers[66] = length 165, hash 42C01110
buffers[67] = length 163, hash C244C6B1
buffers[68] = length 162, hash 288A7D7A
buffers[69] = length 164, hash 6DDF8E96
buffers[70] = length 312, hash DD1760ED
buffers[71] = length 164, hash 40BD6AB0
buffers[72] = length 167, hash 45FEB94
buffers[73] = length 164, hash 1783D8D9
buffers[74] = length 165, hash 7F68CB47
buffers[75] = length 163, hash 431D98B9
buffers[76] = length 164, hash 2F7F0A03
buffers[77] = length 164, hash 330E9D40
buffers[78] = length 161, hash 670A6D84
buffers[79] = length 162, hash 55CEAB6A
buffers[80] = length 161, hash 690C1C44
buffers[81] = length 311, hash 507DC3E7
buffers[82] = length 226, hash 2D0C0942
buffers[83] = length 163, hash 47A75060
buffers[84] = length 163, hash 198A78EB
buffers[85] = length 165, hash F7AF184
buffers[86] = length 163, hash 7EC009AE
buffers[87] = length 163, hash 7ACF600A
buffers[88] = length 170, hash 67F513C9
buffers[89] = length 162, hash E0116535
buffers[90] = length 164, hash 6C4C8BC1
buffers[91] = length 163, hash 73E55623
buffers[92] = length 162, hash 614AB0EE
buffers[93] = length 162, hash 49E038A6
buffers[94] = length 162, hash 45BBCDDF
buffers[95] = length 163, hash 94E6047A
buffers[96] = length 162, hash FA40E646
buffers[97] = length 163, hash 54F3E885
buffers[98] = length 163, hash 42EA2C3C
buffers[99] = length 164, hash 11E5DC72
buffers[100] = length 161, hash FB697FB7
buffers[101] = length 164, hash 45137460
buffers[102] = length 232, hash F8A33CF3
buffers[103] = length 163, hash B2562537
buffers[104] = length 163, hash D07ADBF
buffers[105] = length 163, hash 2AE2FC1E
buffers[106] = length 162, hash F574ABD
buffers[107] = length 162, hash 8A20D2FC
buffers[108] = length 162, hash BD37BF40
buffers[109] = length 163, hash 81DF11E8
buffers[110] = length 165, hash 236877C0
buffers[111] = length 226, hash 6B5CD992
buffers[112] = length 162, hash 7F697CCA
buffers[113] = length 161, hash 4C2993B4
buffers[114] = length 163, hash 1DE49094
buffers[115] = length 162, hash DCA5BB9B
buffers[116] = length 165, hash 66B62984
buffers[117] = length 161, hash 994C6D54
buffers[118] = length 163, hash DA5BA1F1
buffers[119] = length 187, hash 7F6C5537
buffers[120] = length 161, hash D0AF4628
buffers[121] = length 161, hash 8A49A435
buffers[122] = length 163, hash 90D7B180
buffers[123] = length 162, hash C459D78E
buffers[124] = length 161, hash D7766E6B
buffers[125] = length 187, hash E0449F61
buffers[126] = length 162, hash 203F238E
buffers[127] = length 163, hash 15F81805
buffers[128] = length 161, hash 8496E779
buffers[129] = length 163, hash DF6A28D0
buffers[130] = length 233, hash 39CAC5CB
buffers[131] = length 250, hash 40F8863A
buffers[132] = length 248, hash BB880EB4
buffers[133] = length 247, hash A93865FE
buffers[134] = length 244, hash ED7E6DB5
buffers[135] = length 252, hash 2DD353C4
buffers[136] = length 244, hash CE73B41E
buffers[137] = length 0, hash 1