diff --git a/libraries/exoplayer/src/test/java/androidx/media3/exoplayer/e2etest/Mp4PlaybackTest.java b/libraries/exoplayer/src/test/java/androidx/media3/exoplayer/e2etest/Mp4PlaybackTest.java index be3ccd914b..b7ad234f18 100644 --- a/libraries/exoplayer/src/test/java/androidx/media3/exoplayer/e2etest/Mp4PlaybackTest.java +++ b/libraries/exoplayer/src/test/java/androidx/media3/exoplayer/e2etest/Mp4PlaybackTest.java @@ -57,6 +57,7 @@ public class Mp4PlaybackTest { "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", diff --git a/libraries/extractor/src/test/java/androidx/media3/extractor/mp4/FragmentedMp4ExtractorTest.java b/libraries/extractor/src/test/java/androidx/media3/extractor/mp4/FragmentedMp4ExtractorTest.java index 07c663d426..269ac4291c 100644 --- a/libraries/extractor/src/test/java/androidx/media3/extractor/mp4/FragmentedMp4ExtractorTest.java +++ b/libraries/extractor/src/test/java/androidx/media3/extractor/mp4/FragmentedMp4ExtractorTest.java @@ -122,6 +122,15 @@ public final class FragmentedMp4ExtractorTest { 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 closedCaptionFormats) { return () -> new FragmentedMp4Extractor( diff --git a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_fragmented_large_bitrates.mp4.0.dump b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_fragmented_large_bitrates.mp4.0.dump new file mode 100644 index 0000000000..5b9a721cb6 --- /dev/null +++ b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_fragmented_large_bitrates.mp4.0.dump @@ -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 diff --git a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_fragmented_large_bitrates.mp4.1.dump b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_fragmented_large_bitrates.mp4.1.dump new file mode 100644 index 0000000000..53cb776780 --- /dev/null +++ b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_fragmented_large_bitrates.mp4.1.dump @@ -0,0 +1,279 @@ +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 = 13359 + sample count = 31 + 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 = 348299 + flags = 1 + data = length 456, hash 1E9034C6 + sample 1: + time = 371519 + flags = 1 + data = length 398, hash 99DB7345 + sample 2: + time = 394739 + flags = 1 + data = length 474, hash 3F05F10A + sample 3: + time = 417959 + flags = 1 + data = length 416, hash C105EE09 + sample 4: + time = 441179 + flags = 1 + data = length 454, hash 5FDBE458 + sample 5: + time = 464399 + flags = 1 + data = length 438, hash 41A93AC3 + sample 6: + time = 487619 + flags = 1 + data = length 443, hash 10FDA652 + sample 7: + time = 510839 + flags = 1 + data = length 412, hash 1F791E25 + sample 8: + time = 534058 + flags = 1 + data = length 482, hash A6D983D + sample 9: + time = 557278 + flags = 1 + data = length 386, hash BED7392F + sample 10: + time = 580498 + flags = 1 + data = length 463, hash 5309F8C9 + sample 11: + time = 603718 + flags = 1 + data = length 394, hash 21C7321F + sample 12: + time = 626938 + flags = 1 + data = length 489, hash 71B4730D + sample 13: + time = 650158 + flags = 1 + data = length 403, hash D9C6DE89 + sample 14: + time = 673378 + flags = 1 + data = length 447, hash 9B14B73B + sample 15: + time = 696598 + flags = 1 + data = length 439, hash 4760D35B + sample 16: + time = 719818 + flags = 1 + data = length 463, hash 1601F88D + sample 17: + time = 743038 + flags = 1 + data = length 423, hash D4AE6773 + sample 18: + time = 766258 + flags = 1 + data = length 497, hash A3C674D3 + sample 19: + time = 789478 + flags = 1 + data = length 419, hash D3734A1F + sample 20: + time = 812698 + flags = 1 + data = length 474, hash DFB41F9 + sample 21: + time = 835918 + flags = 1 + data = length 413, hash 53E7CB9F + sample 22: + time = 859138 + flags = 1 + data = length 445, hash D15B0E39 + sample 23: + time = 882358 + flags = 1 + data = length 453, hash 77ED81E4 + sample 24: + time = 905578 + flags = 1 + data = length 545, hash 3321AEB9 + sample 25: + time = 928798 + flags = 1 + data = length 317, hash F557D0E + sample 26: + time = 952018 + flags = 1 + data = length 537, hash ED58CF7B + sample 27: + time = 975238 + flags = 1 + data = length 458, hash 51CDAA10 + sample 28: + time = 998458 + flags = 1 + data = length 465, hash CBA1EFD7 + sample 29: + time = 1021678 + flags = 1 + data = length 446, hash D6735B8A + sample 30: + time = 1044897 + flags = 1 + data = length 10, hash A453EEBE +tracksEnded = true diff --git a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_fragmented_large_bitrates.mp4.2.dump b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_fragmented_large_bitrates.mp4.2.dump new file mode 100644 index 0000000000..ecb83ddeea --- /dev/null +++ b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_fragmented_large_bitrates.mp4.2.dump @@ -0,0 +1,219 @@ +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 = 6804 + sample count = 16 + 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 = 696598 + flags = 1 + data = length 439, hash 4760D35B + sample 1: + time = 719818 + flags = 1 + data = length 463, hash 1601F88D + sample 2: + time = 743038 + flags = 1 + data = length 423, hash D4AE6773 + sample 3: + time = 766258 + flags = 1 + data = length 497, hash A3C674D3 + sample 4: + time = 789478 + flags = 1 + data = length 419, hash D3734A1F + sample 5: + time = 812698 + flags = 1 + data = length 474, hash DFB41F9 + sample 6: + time = 835918 + flags = 1 + data = length 413, hash 53E7CB9F + sample 7: + time = 859138 + flags = 1 + data = length 445, hash D15B0E39 + sample 8: + time = 882358 + flags = 1 + data = length 453, hash 77ED81E4 + sample 9: + time = 905578 + flags = 1 + data = length 545, hash 3321AEB9 + sample 10: + time = 928798 + flags = 1 + data = length 317, hash F557D0E + sample 11: + time = 952018 + flags = 1 + data = length 537, hash ED58CF7B + sample 12: + time = 975238 + flags = 1 + data = length 458, hash 51CDAA10 + sample 13: + time = 998458 + flags = 1 + data = length 465, hash CBA1EFD7 + sample 14: + time = 1021678 + flags = 1 + data = length 446, hash D6735B8A + sample 15: + time = 1044897 + flags = 1 + data = length 10, hash A453EEBE +tracksEnded = true diff --git a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_fragmented_large_bitrates.mp4.3.dump b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_fragmented_large_bitrates.mp4.3.dump new file mode 100644 index 0000000000..c049809940 --- /dev/null +++ b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_fragmented_large_bitrates.mp4.3.dump @@ -0,0 +1,159 @@ +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 = 10 + sample count = 1 + 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 = 1044897 + flags = 1 + data = length 10, hash A453EEBE +tracksEnded = true diff --git a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_fragmented_large_bitrates.mp4.unknown_length.dump b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_fragmented_large_bitrates.mp4.unknown_length.dump new file mode 100644 index 0000000000..5b9a721cb6 --- /dev/null +++ b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_fragmented_large_bitrates.mp4.unknown_length.dump @@ -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 diff --git a/libraries/test_data/src/test/assets/media/mp4/sample_fragmented_large_bitrates.mp4 b/libraries/test_data/src/test/assets/media/mp4/sample_fragmented_large_bitrates.mp4 new file mode 100644 index 0000000000..39fd4c18cf Binary files /dev/null and b/libraries/test_data/src/test/assets/media/mp4/sample_fragmented_large_bitrates.mp4 differ diff --git a/libraries/test_data/src/test/assets/playbackdumps/mp4/sample_fragmented_large_bitrates.mp4.dump b/libraries/test_data/src/test/assets/playbackdumps/mp4/sample_fragmented_large_bitrates.mp4.dump new file mode 100644 index 0000000000..b8f6657598 --- /dev/null +++ b/libraries/test_data/src/test/assets/playbackdumps/mp4/sample_fragmented_large_bitrates.mp4.dump @@ -0,0 +1,82 @@ +MediaCodecAdapter (exotest.audio.aac): + buffers.length = 47 + buffers[0] = length 18, hash 96519432 + buffers[1] = length 4, hash EE9DF + buffers[2] = length 4, hash EEDBF + buffers[3] = length 157, hash E2F078F4 + buffers[4] = length 371, hash B9471F94 + buffers[5] = length 373, hash 2AB265CB + buffers[6] = length 402, hash 1295477C + buffers[7] = length 455, hash 2D8146C8 + buffers[8] = length 434, hash F2C5D287 + buffers[9] = length 450, hash 84143FCD + buffers[10] = length 429, hash EF769D50 + buffers[11] = length 450, hash EC3DE692 + buffers[12] = length 447, hash 3E519E13 + buffers[13] = length 457, hash 1E4F23A0 + buffers[14] = length 447, hash A439EA97 + buffers[15] = length 456, hash 1E9034C6 + buffers[16] = length 398, hash 99DB7345 + buffers[17] = length 474, hash 3F05F10A + buffers[18] = length 416, hash C105EE09 + buffers[19] = length 454, hash 5FDBE458 + buffers[20] = length 438, hash 41A93AC3 + buffers[21] = length 443, hash 10FDA652 + buffers[22] = length 412, hash 1F791E25 + buffers[23] = length 482, hash A6D983D + buffers[24] = length 386, hash BED7392F + buffers[25] = length 463, hash 5309F8C9 + buffers[26] = length 394, hash 21C7321F + buffers[27] = length 489, hash 71B4730D + buffers[28] = length 403, hash D9C6DE89 + buffers[29] = length 447, hash 9B14B73B + buffers[30] = length 439, hash 4760D35B + buffers[31] = length 463, hash 1601F88D + buffers[32] = length 423, hash D4AE6773 + buffers[33] = length 497, hash A3C674D3 + buffers[34] = length 419, hash D3734A1F + buffers[35] = length 474, hash DFB41F9 + buffers[36] = length 413, hash 53E7CB9F + buffers[37] = length 445, hash D15B0E39 + buffers[38] = length 453, hash 77ED81E4 + buffers[39] = length 545, hash 3321AEB9 + buffers[40] = length 317, hash F557D0E + buffers[41] = length 537, hash ED58CF7B + buffers[42] = length 458, hash 51CDAA10 + buffers[43] = length 465, hash CBA1EFD7 + buffers[44] = length 446, hash D6735B8A + buffers[45] = length 10, hash A453EEBE + buffers[46] = length 0, hash 1 +MediaCodecAdapter (exotest.video.avc): + buffers.length = 31 + buffers[0] = length 38070, hash B58E1AEE + buffers[1] = length 8340, hash 8AC449FF + buffers[2] = length 1295, hash C0DA5090 + buffers[3] = length 469, hash D6E0A200 + buffers[4] = length 564, hash E5F56C5B + buffers[5] = length 6075, hash 8756E49E + buffers[6] = length 847, hash DCC2B618 + buffers[7] = length 455, hash B9CCE047 + buffers[8] = length 467, hash 69806D94 + buffers[9] = length 4549, hash 3944F501 + buffers[10] = length 1087, hash 491BF106 + buffers[11] = length 380, hash 5FED016A + buffers[12] = length 455, hash 8A0610 + buffers[13] = length 5190, hash B9031D8 + buffers[14] = length 1071, hash 684E7DC8 + buffers[15] = length 653, hash 8494F326 + buffers[16] = length 485, hash 2CCC85F4 + buffers[17] = length 4884, hash D16B6A96 + buffers[18] = length 997, hash 164FF210 + buffers[19] = length 640, hash F664125B + buffers[20] = length 491, hash B5930C7C + buffers[21] = length 2989, hash 92CF4FCF + buffers[22] = length 838, hash 294A3451 + buffers[23] = length 544, hash FCCE2DE6 + buffers[24] = length 329, hash A654FFA1 + buffers[25] = length 1517, hash 5F7EBF8B + buffers[26] = length 803, hash 7A5C4C1D + buffers[27] = length 415, hash B31BBC3B + buffers[28] = length 415, hash 850DFEA3 + buffers[29] = length 619, hash AB5E56CA + buffers[30] = length 0, hash 1