Skip to content

Commit

Permalink
Add tests for extracting MP4 with large bitrates
Browse files Browse the repository at this point in the history
Also added the test to `MP4PlaybackTest`.

PiperOrigin-RevId: 459492188
(cherry picked from commit 05e728a)
  • Loading branch information
rohitjoins committed Jul 7, 2022
1 parent f9e0827 commit c40d669
Show file tree
Hide file tree
Showing 9 changed files with 1,427 additions and 0 deletions.
Expand Up @@ -57,6 +57,7 @@ public static ImmutableList<String> mediaSamples() {
"sample_eac3joc.mp4",
"sample_fragmented.mp4",
"sample_fragmented_seekable.mp4",
"sample_fragmented_large_bitrates.mp4",
"sample_fragmented_sei.mp4",
"sample_mdat_too_long.mp4",
"sample.mp4",
Expand Down
Expand Up @@ -122,6 +122,15 @@ public void samplePartiallyFragmented() throws Exception {
simulationConfig);
}

/** https://github.com/google/ExoPlayer/issues/10381 */
@Test
public void sampleWithLargeBitrates() throws Exception {
ExtractorAsserts.assertBehavior(
getExtractorFactory(ImmutableList.of()),
"media/mp4/sample_fragmented_large_bitrates.mp4",
simulationConfig);
}

private static ExtractorFactory getExtractorFactory(final List<Format> closedCaptionFormats) {
return () ->
new FragmentedMp4Extractor(
Expand Down
@@ -0,0 +1,339 @@
seekMap:
isSeekable = true
duration = 1067733
getPosition(0) = [[timeUs=66733, position=1325]]
getPosition(1) = [[timeUs=66733, position=1325]]
getPosition(533866) = [[timeUs=66733, position=1325]]
getPosition(1067733) = [[timeUs=66733, position=1325]]
numberOfTracks = 2
track 0:
total output bytes = 85933
sample count = 30
format 0:
id = 1
sampleMimeType = video/avc
codecs = avc1.64001F
width = 1080
height = 720
initializationData:
data = length 29, hash 4746B5D9
data = length 10, hash 7A0D0F2B
sample 0:
time = 66733
flags = 1
data = length 38070, hash B58E1AEE
sample 1:
time = 200200
flags = 0
data = length 8340, hash 8AC449FF
sample 2:
time = 133466
flags = 0
data = length 1295, hash C0DA5090
sample 3:
time = 100100
flags = 0
data = length 469, hash D6E0A200
sample 4:
time = 166833
flags = 0
data = length 564, hash E5F56C5B
sample 5:
time = 333666
flags = 0
data = length 6075, hash 8756E49E
sample 6:
time = 266933
flags = 0
data = length 847, hash DCC2B618
sample 7:
time = 233566
flags = 0
data = length 455, hash B9CCE047
sample 8:
time = 300300
flags = 0
data = length 467, hash 69806D94
sample 9:
time = 467133
flags = 0
data = length 4549, hash 3944F501
sample 10:
time = 400400
flags = 0
data = length 1087, hash 491BF106
sample 11:
time = 367033
flags = 0
data = length 380, hash 5FED016A
sample 12:
time = 433766
flags = 0
data = length 455, hash 8A0610
sample 13:
time = 600600
flags = 0
data = length 5190, hash B9031D8
sample 14:
time = 533866
flags = 0
data = length 1071, hash 684E7DC8
sample 15:
time = 500500
flags = 0
data = length 653, hash 8494F326
sample 16:
time = 567233
flags = 0
data = length 485, hash 2CCC85F4
sample 17:
time = 734066
flags = 0
data = length 4884, hash D16B6A96
sample 18:
time = 667333
flags = 0
data = length 997, hash 164FF210
sample 19:
time = 633966
flags = 0
data = length 640, hash F664125B
sample 20:
time = 700700
flags = 0
data = length 491, hash B5930C7C
sample 21:
time = 867533
flags = 0
data = length 2989, hash 92CF4FCF
sample 22:
time = 800800
flags = 0
data = length 838, hash 294A3451
sample 23:
time = 767433
flags = 0
data = length 544, hash FCCE2DE6
sample 24:
time = 834166
flags = 0
data = length 329, hash A654FFA1
sample 25:
time = 1001000
flags = 0
data = length 1517, hash 5F7EBF8B
sample 26:
time = 934266
flags = 0
data = length 803, hash 7A5C4C1D
sample 27:
time = 900900
flags = 0
data = length 415, hash B31BBC3B
sample 28:
time = 967633
flags = 0
data = length 415, hash 850DFEA3
sample 29:
time = 1034366
flags = 0
data = length 619, hash AB5E56CA
track 1:
total output bytes = 18257
sample count = 46
format 0:
averageBitrate = 2147483647
peakBitrate = 2147483647
id = 2
sampleMimeType = audio/mp4a-latm
codecs = mp4a.40.2
channelCount = 1
sampleRate = 44100
language = und
initializationData:
data = length 5, hash 2B7623A
sample 0:
time = 0
flags = 1
data = length 18, hash 96519432
sample 1:
time = 23219
flags = 1
data = length 4, hash EE9DF
sample 2:
time = 46439
flags = 1
data = length 4, hash EEDBF
sample 3:
time = 69659
flags = 1
data = length 157, hash E2F078F4
sample 4:
time = 92879
flags = 1
data = length 371, hash B9471F94
sample 5:
time = 116099
flags = 1
data = length 373, hash 2AB265CB
sample 6:
time = 139319
flags = 1
data = length 402, hash 1295477C
sample 7:
time = 162539
flags = 1
data = length 455, hash 2D8146C8
sample 8:
time = 185759
flags = 1
data = length 434, hash F2C5D287
sample 9:
time = 208979
flags = 1
data = length 450, hash 84143FCD
sample 10:
time = 232199
flags = 1
data = length 429, hash EF769D50
sample 11:
time = 255419
flags = 1
data = length 450, hash EC3DE692
sample 12:
time = 278639
flags = 1
data = length 447, hash 3E519E13
sample 13:
time = 301859
flags = 1
data = length 457, hash 1E4F23A0
sample 14:
time = 325079
flags = 1
data = length 447, hash A439EA97
sample 15:
time = 348299
flags = 1
data = length 456, hash 1E9034C6
sample 16:
time = 371519
flags = 1
data = length 398, hash 99DB7345
sample 17:
time = 394739
flags = 1
data = length 474, hash 3F05F10A
sample 18:
time = 417959
flags = 1
data = length 416, hash C105EE09
sample 19:
time = 441179
flags = 1
data = length 454, hash 5FDBE458
sample 20:
time = 464399
flags = 1
data = length 438, hash 41A93AC3
sample 21:
time = 487619
flags = 1
data = length 443, hash 10FDA652
sample 22:
time = 510839
flags = 1
data = length 412, hash 1F791E25
sample 23:
time = 534058
flags = 1
data = length 482, hash A6D983D
sample 24:
time = 557278
flags = 1
data = length 386, hash BED7392F
sample 25:
time = 580498
flags = 1
data = length 463, hash 5309F8C9
sample 26:
time = 603718
flags = 1
data = length 394, hash 21C7321F
sample 27:
time = 626938
flags = 1
data = length 489, hash 71B4730D
sample 28:
time = 650158
flags = 1
data = length 403, hash D9C6DE89
sample 29:
time = 673378
flags = 1
data = length 447, hash 9B14B73B
sample 30:
time = 696598
flags = 1
data = length 439, hash 4760D35B
sample 31:
time = 719818
flags = 1
data = length 463, hash 1601F88D
sample 32:
time = 743038
flags = 1
data = length 423, hash D4AE6773
sample 33:
time = 766258
flags = 1
data = length 497, hash A3C674D3
sample 34:
time = 789478
flags = 1
data = length 419, hash D3734A1F
sample 35:
time = 812698
flags = 1
data = length 474, hash DFB41F9
sample 36:
time = 835918
flags = 1
data = length 413, hash 53E7CB9F
sample 37:
time = 859138
flags = 1
data = length 445, hash D15B0E39
sample 38:
time = 882358
flags = 1
data = length 453, hash 77ED81E4
sample 39:
time = 905578
flags = 1
data = length 545, hash 3321AEB9
sample 40:
time = 928798
flags = 1
data = length 317, hash F557D0E
sample 41:
time = 952018
flags = 1
data = length 537, hash ED58CF7B
sample 42:
time = 975238
flags = 1
data = length 458, hash 51CDAA10
sample 43:
time = 998458
flags = 1
data = length 465, hash CBA1EFD7
sample 44:
time = 1021678
flags = 1
data = length 446, hash D6735B8A
sample 45:
time = 1044897
flags = 1
data = length 10, hash A453EEBE
tracksEnded = true

0 comments on commit c40d669

Please sign in to comment.