Add Robolectric playback tests for existing FLV assets
PiperOrigin-RevId: 341573808
This commit is contained in:
parent
9e98a680da
commit
f13058942a
@ -0,0 +1,74 @@
|
||||
/*
|
||||
* 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 FLV samples. */
|
||||
// TODO(b/143232359): Remove once https://issuetracker.google.com/143232359 is resolved.
|
||||
@Config(sdk = 29)
|
||||
@RunWith(ParameterizedRobolectricTestRunner.class)
|
||||
public final class FlvPlaybackTest {
|
||||
@Parameters(name = "{0}")
|
||||
public static ImmutableList<String> mediaSamples() {
|
||||
return ImmutableList.of("sample.flv", "sample-with-key-frame-index.flv");
|
||||
}
|
||||
|
||||
@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/flv/" + inputFile));
|
||||
player.prepare();
|
||||
player.play();
|
||||
TestPlayerRunHelper.runUntilPlaybackState(player, Player.STATE_ENDED);
|
||||
player.release();
|
||||
|
||||
DumpFileAsserts.assertOutput(
|
||||
ApplicationProvider.getApplicationContext(),
|
||||
playbackOutput,
|
||||
"playbackdumps/flv/" + inputFile + ".dump");
|
||||
}
|
||||
}
|
74
testdata/src/test/assets/playbackdumps/flv/sample-with-key-frame-index.flv.dump
vendored
Normal file
74
testdata/src/test/assets/playbackdumps/flv/sample-with-key-frame-index.flv.dump
vendored
Normal file
@ -0,0 +1,74 @@
|
||||
MediaCodec (video/avc):
|
||||
buffers.length = 72
|
||||
buffers[0] = length 747, hash 59AEB08
|
||||
buffers[1] = length 117, hash 57A315CB
|
||||
buffers[2] = length 16, hash 7E8FA845
|
||||
buffers[3] = length 13, hash 7AEB9BE0
|
||||
buffers[4] = length 16, hash 644DA4CC
|
||||
buffers[5] = length 200, hash E5BF3A39
|
||||
buffers[6] = length 167, hash 74FCA726
|
||||
buffers[7] = length 134, hash 3B12FEC0
|
||||
buffers[8] = length 264, hash 7D9323C7
|
||||
buffers[9] = length 141, hash B5AAF09F
|
||||
buffers[10] = length 229, hash 181AD475
|
||||
buffers[11] = length 279, hash 11A95D98
|
||||
buffers[12] = length 39, hash 6F87AFD9
|
||||
buffers[13] = length 88, hash 6E7EC1EF
|
||||
buffers[14] = length 481, hash 82246706
|
||||
buffers[15] = length 103, hash A201C852
|
||||
buffers[16] = length 85, hash 7D6F33C4
|
||||
buffers[17] = length 659, hash 3BF583EF
|
||||
buffers[18] = length 134, hash 46C97FD9
|
||||
buffers[19] = length 153, hash 5E737D26
|
||||
buffers[20] = length 652, hash E3151CCE
|
||||
buffers[21] = length 86, hash A1884AD8
|
||||
buffers[22] = length 150, hash 6C7DEF31
|
||||
buffers[23] = length 316, hash E7867
|
||||
buffers[24] = length 1950, hash 28E6760E
|
||||
buffers[25] = length 561, hash 8394BDB5
|
||||
buffers[26] = length 130, hash B50D0F26
|
||||
buffers[27] = length 185, hash 359FC134
|
||||
buffers[28] = length 130, hash C53797EC
|
||||
buffers[29] = length 867, hash B87AD770
|
||||
buffers[30] = length 155, hash 73B4B0E7
|
||||
buffers[31] = length 168, hash 9C9C9994
|
||||
buffers[32] = length 145, hash 2D3F2527
|
||||
buffers[33] = length 991, hash 78143488
|
||||
buffers[34] = length 174, hash 6C778CE7
|
||||
buffers[35] = length 82, hash D605F20D
|
||||
buffers[36] = length 125, hash 248E8190
|
||||
buffers[37] = length 1095, hash 21B08B6C
|
||||
buffers[38] = length 238, hash AE5854DF
|
||||
buffers[39] = length 151, hash DF20C082
|
||||
buffers[40] = length 45, hash 35165468
|
||||
buffers[41] = length 1425, hash D20DA4F0
|
||||
buffers[42] = length 67, hash 49E25397
|
||||
buffers[43] = length 72, hash EEDD2F83
|
||||
buffers[44] = length 1382, hash 6C35D237
|
||||
buffers[45] = length 186, hash CDE97917
|
||||
buffers[46] = length 80, hash 923EC2C
|
||||
buffers[47] = length 122, hash EB3EEF54
|
||||
buffers[48] = length 4380, hash 9221E054
|
||||
buffers[49] = length 819, hash 46A722D6
|
||||
buffers[50] = length 140, hash E9AA6D8B
|
||||
buffers[51] = length 711, hash C49CB26
|
||||
buffers[52] = length 111, hash A53830B7
|
||||
buffers[53] = length 1062, hash B95BF284
|
||||
buffers[54] = length 312, hash 1C667DA3
|
||||
buffers[55] = length 132, hash 59C0F906
|
||||
buffers[56] = length 149, hash B7F8F4A5
|
||||
buffers[57] = length 1040, hash 82D4CCFD
|
||||
buffers[58] = length 349, hash C1236BA4
|
||||
buffers[59] = length 140, hash 67015D1B
|
||||
buffers[60] = length 186, hash C0DF4AB0
|
||||
buffers[61] = length 811, hash EEA6FBFF
|
||||
buffers[62] = length 356, hash A9847C12
|
||||
buffers[63] = length 156, hash 61E72801
|
||||
buffers[64] = length 212, hash F1F7EBE8
|
||||
buffers[65] = length 681, hash FA95355F
|
||||
buffers[66] = length 351, hash F771D4DD
|
||||
buffers[67] = length 174, hash 325A7512
|
||||
buffers[68] = length 199, hash A22FAA40
|
||||
buffers[69] = length 322, hash C494E5A7
|
||||
buffers[70] = length 171, hash 2DA9ECEC
|
||||
buffers[71] = length 0, hash 1
|
81
testdata/src/test/assets/playbackdumps/flv/sample.flv.dump
vendored
Normal file
81
testdata/src/test/assets/playbackdumps/flv/sample.flv.dump
vendored
Normal file
@ -0,0 +1,81 @@
|
||||
MediaCodec (audio/mp4a-latm):
|
||||
buffers.length = 46
|
||||
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
|
||||
MediaCodec (video/avc):
|
||||
buffers.length = 31
|
||||
buffers[0] = length 36477, hash F0F36CFE
|
||||
buffers[1] = length 5341, hash 40B85E2
|
||||
buffers[2] = length 596, hash 357B4D92
|
||||
buffers[3] = length 7704, hash A39EDA06
|
||||
buffers[4] = length 989, hash 2813C72D
|
||||
buffers[5] = length 721, hash C50D1C73
|
||||
buffers[6] = length 519, hash 65FE1911
|
||||
buffers[7] = length 6160, hash E1CAC0EC
|
||||
buffers[8] = length 953, hash 7160C661
|
||||
buffers[9] = length 620, hash 7A7AE07C
|
||||
buffers[10] = length 405, hash 5CC7F4E7
|
||||
buffers[11] = length 4852, hash 9DB6979D
|
||||
buffers[12] = length 547, hash E31A6979
|
||||
buffers[13] = length 570, hash FEC40D00
|
||||
buffers[14] = length 5525, hash 7C478F7E
|
||||
buffers[15] = length 1082, hash DA07059A
|
||||
buffers[16] = length 807, hash 93478E6B
|
||||
buffers[17] = length 744, hash 9A8E6026
|
||||
buffers[18] = length 4732, hash C73B23C0
|
||||
buffers[19] = length 1004, hash 8A19A228
|
||||
buffers[20] = length 794, hash 8126022C
|
||||
buffers[21] = length 645, hash F08300E5
|
||||
buffers[22] = length 2684, hash 727FE378
|
||||
buffers[23] = length 787, hash 419A7821
|
||||
buffers[24] = length 649, hash 5C159346
|
||||
buffers[25] = length 509, hash F912D655
|
||||
buffers[26] = length 1226, hash 29815C21
|
||||
buffers[27] = length 898, hash D997AD0A
|
||||
buffers[28] = length 476, hash A0423645
|
||||
buffers[29] = length 486, hash DDF32CBB
|
||||
buffers[30] = length 0, hash 1
|
Loading…
x
Reference in New Issue
Block a user