diff --git a/libraries/extractor/src/test/java/androidx/media3/extractor/mp3/Mp3ExtractorTest.java b/libraries/extractor/src/test/java/androidx/media3/extractor/mp3/Mp3ExtractorTest.java index a5c3a9df88..87cc1fffa9 100644 --- a/libraries/extractor/src/test/java/androidx/media3/extractor/mp3/Mp3ExtractorTest.java +++ b/libraries/extractor/src/test/java/androidx/media3/extractor/mp3/Mp3ExtractorTest.java @@ -71,6 +71,12 @@ public final class Mp3ExtractorTest { simulationConfig); } + @Test + public void mp3SampleWithVbriHeader() throws Exception { + ExtractorAsserts.assertBehavior( + Mp3Extractor::new, "media/mp3/bear-vbr-vbri-header.mp3", simulationConfig); + } + @Test public void mp3SampleWithCbrSeeker() throws Exception { ExtractorAsserts.assertBehavior( diff --git a/libraries/test_data/src/test/assets/extractordumps/mp3/bear-vbr-vbri-header.mp3.0.dump b/libraries/test_data/src/test/assets/extractordumps/mp3/bear-vbr-vbri-header.mp3.0.dump new file mode 100644 index 0000000000..de95b24610 --- /dev/null +++ b/libraries/test_data/src/test/assets/extractordumps/mp3/bear-vbr-vbri-header.mp3.0.dump @@ -0,0 +1,485 @@ +seekMap: + isSeekable = true + duration = 2808000 + getPosition(0) = [[timeUs=0, position=141]] + getPosition(1) = [[timeUs=0, position=141], [timeUs=702000, position=10317]] + getPosition(1404000) = [[timeUs=1404000, position=19677]] + getPosition(2808000) = [[timeUs=2106000, position=29517]] +numberOfTracks = 1 +track 0: + total output bytes = 38064 + sample count = 116 + track duration = 2808000 + format 0: + averageBitrate = 32000 + containerMimeType = audio/mpeg + sampleMimeType = audio/mpeg + maxInputSize = 4096 + channelCount = 2 + sampleRate = 48000 + metadata = entries=[TSSE: description=null: values=[Lavf58.29.100]] + sample 0: + time = 0 + flags = 1 + data = length 96, hash 1F161542 + sample 1: + time = 24000 + flags = 1 + data = length 768, hash CD1DC50F + sample 2: + time = 48000 + flags = 1 + data = length 336, hash 3F64124B + sample 3: + time = 72000 + flags = 1 + data = length 336, hash 8FFED94E + sample 4: + time = 96000 + flags = 1 + data = length 288, hash 9CD77D47 + sample 5: + time = 120000 + flags = 1 + data = length 384, hash 24607BB5 + sample 6: + time = 144000 + flags = 1 + data = length 480, hash 4937EBAB + sample 7: + time = 168000 + flags = 1 + data = length 336, hash 546342B1 + sample 8: + time = 192000 + flags = 1 + data = length 336, hash 79E0923F + sample 9: + time = 216000 + flags = 1 + data = length 336, hash AB1F3948 + sample 10: + time = 240000 + flags = 1 + data = length 336, hash C3A4D888 + sample 11: + time = 264000 + flags = 1 + data = length 288, hash 7867DA45 + sample 12: + time = 288000 + flags = 1 + data = length 336, hash B1240B73 + sample 13: + time = 312000 + flags = 1 + data = length 336, hash 94CFCD35 + sample 14: + time = 336000 + flags = 1 + data = length 288, hash 94F412C + sample 15: + time = 360000 + flags = 1 + data = length 336, hash A1D9FF41 + sample 16: + time = 384000 + flags = 1 + data = length 288, hash 2A8DA21B + sample 17: + time = 408000 + flags = 1 + data = length 336, hash 6A429CE + sample 18: + time = 432000 + flags = 1 + data = length 336, hash 68853982 + sample 19: + time = 456000 + flags = 1 + data = length 384, hash 1D6F779C + sample 20: + time = 480000 + flags = 1 + data = length 480, hash 6B31EBEE + sample 21: + time = 504000 + flags = 1 + data = length 336, hash 888335BE + sample 22: + time = 528000 + flags = 1 + data = length 336, hash 6072AC8B + sample 23: + time = 552000 + flags = 1 + data = length 336, hash C9D24234 + sample 24: + time = 576000 + flags = 1 + data = length 288, hash 52BF4D1E + sample 25: + time = 600000 + flags = 1 + data = length 336, hash F93F4F0 + sample 26: + time = 624000 + flags = 1 + data = length 336, hash 8617688A + sample 27: + time = 648000 + flags = 1 + data = length 480, hash FAB0D31B + sample 28: + time = 672000 + flags = 1 + data = length 384, hash FA4B53E2 + sample 29: + time = 696000 + flags = 1 + data = length 336, hash 8C435F6A + sample 30: + time = 720000 + flags = 1 + data = length 336, hash 60D3F80C + sample 31: + time = 744000 + flags = 1 + data = length 336, hash DC15B68B + sample 32: + time = 768000 + flags = 1 + data = length 288, hash FF3DF141 + sample 33: + time = 792000 + flags = 1 + data = length 336, hash A64B3042 + sample 34: + time = 816000 + flags = 1 + data = length 336, hash ACA622A1 + sample 35: + time = 840000 + flags = 1 + data = length 288, hash 3E34B8D4 + sample 36: + time = 864000 + flags = 1 + data = length 288, hash 9B96F72A + sample 37: + time = 888000 + flags = 1 + data = length 336, hash E917C122 + sample 38: + time = 912000 + flags = 1 + data = length 336, hash 10ED1470 + sample 39: + time = 936000 + flags = 1 + data = length 288, hash 706B8A7C + sample 40: + time = 960000 + flags = 1 + data = length 336, hash 71FFE4A0 + sample 41: + time = 984000 + flags = 1 + data = length 336, hash D4160463 + sample 42: + time = 1008000 + flags = 1 + data = length 336, hash EC557B14 + sample 43: + time = 1032000 + flags = 1 + data = length 288, hash 5598CF8B + sample 44: + time = 1056000 + flags = 1 + data = length 336, hash 7E0AB41 + sample 45: + time = 1080000 + flags = 1 + data = length 336, hash 1C585FEF + sample 46: + time = 1104000 + flags = 1 + data = length 336, hash A4A4855E + sample 47: + time = 1128000 + flags = 1 + data = length 336, hash CECA51D3 + sample 48: + time = 1152000 + flags = 1 + data = length 288, hash 2D362DC5 + sample 49: + time = 1176000 + flags = 1 + data = length 336, hash 9EB2609D + sample 50: + time = 1200000 + flags = 1 + data = length 336, hash 28FFB3FE + sample 51: + time = 1224000 + flags = 1 + data = length 288, hash 2AA2D216 + sample 52: + time = 1248000 + flags = 1 + data = length 336, hash CDBC7032 + sample 53: + time = 1272000 + flags = 1 + data = length 336, hash 25B13FE7 + sample 54: + time = 1296000 + flags = 1 + data = length 336, hash DB6BB1E + sample 55: + time = 1320000 + flags = 1 + data = length 336, hash EBE951F4 + sample 56: + time = 1344000 + flags = 1 + data = length 288, hash 9E2EBFF7 + sample 57: + time = 1368000 + flags = 1 + data = length 336, hash 36A7D455 + sample 58: + time = 1392000 + flags = 1 + data = length 336, hash 84545F8C + sample 59: + time = 1416000 + flags = 1 + data = length 336, hash F66F3045 + sample 60: + time = 1440000 + flags = 1 + data = length 576, hash 5AB089EA + sample 61: + time = 1464000 + flags = 1 + data = length 336, hash 8868086 + sample 62: + time = 1488000 + flags = 1 + data = length 336, hash D5EB6D63 + sample 63: + time = 1512000 + flags = 1 + data = length 288, hash 7A5374B7 + sample 64: + time = 1536000 + flags = 1 + data = length 336, hash BEB27A75 + sample 65: + time = 1560000 + flags = 1 + data = length 336, hash E251E0FD + sample 66: + time = 1584000 + flags = 1 + data = length 288, hash D54C970 + sample 67: + time = 1608000 + flags = 1 + data = length 336, hash 52C473B9 + sample 68: + time = 1632000 + flags = 1 + data = length 336, hash F5F13334 + sample 69: + time = 1656000 + flags = 1 + data = length 480, hash A5F1E987 + sample 70: + time = 1680000 + flags = 1 + data = length 288, hash 453A1267 + sample 71: + time = 1704000 + flags = 1 + data = length 288, hash 7C6C2EA9 + sample 72: + time = 1728000 + flags = 1 + data = length 336, hash F4BFECA4 + sample 73: + time = 1752000 + flags = 1 + data = length 336, hash 751A395A + sample 74: + time = 1776000 + flags = 1 + data = length 336, hash EE38DB02 + sample 75: + time = 1800000 + flags = 1 + data = length 336, hash F18837E2 + sample 76: + time = 1824000 + flags = 1 + data = length 336, hash ED36B78E + sample 77: + time = 1848000 + flags = 1 + data = length 336, hash B3D28289 + sample 78: + time = 1872000 + flags = 1 + data = length 288, hash 8BDE28E1 + sample 79: + time = 1896000 + flags = 1 + data = length 336, hash CFD5E966 + sample 80: + time = 1920000 + flags = 1 + data = length 288, hash DC08E267 + sample 81: + time = 1944000 + flags = 1 + data = length 336, hash 6530CB78 + sample 82: + time = 1968000 + flags = 1 + data = length 336, hash 6CC6636E + sample 83: + time = 1992000 + flags = 1 + data = length 336, hash 613047C1 + sample 84: + time = 2016000 + flags = 1 + data = length 288, hash CDC747BF + sample 85: + time = 2040000 + flags = 1 + data = length 336, hash AF22AA74 + sample 86: + time = 2064000 + flags = 1 + data = length 384, hash 82F326AA + sample 87: + time = 2088000 + flags = 1 + data = length 384, hash EDA26C4D + sample 88: + time = 2112000 + flags = 1 + data = length 336, hash 94C643DC + sample 89: + time = 2136000 + flags = 1 + data = length 288, hash CB5D9C40 + sample 90: + time = 2160000 + flags = 1 + data = length 336, hash 1E69DE3F + sample 91: + time = 2184000 + flags = 1 + data = length 336, hash 7E472219 + sample 92: + time = 2208000 + flags = 1 + data = length 336, hash DA47B9FA + sample 93: + time = 2232000 + flags = 1 + data = length 336, hash DD0ABB7C + sample 94: + time = 2256000 + flags = 1 + data = length 288, hash DBF93FAC + sample 95: + time = 2280000 + flags = 1 + data = length 336, hash 243F4B2 + sample 96: + time = 2304000 + flags = 1 + data = length 336, hash 2E881490 + sample 97: + time = 2328000 + flags = 1 + data = length 288, hash 1C28C8BE + sample 98: + time = 2352000 + flags = 1 + data = length 336, hash C73E5D30 + sample 99: + time = 2376000 + flags = 1 + data = length 288, hash 98B5BFF6 + sample 100: + time = 2400000 + flags = 1 + data = length 336, hash E0135533 + sample 101: + time = 2424000 + flags = 1 + data = length 336, hash D13C9DBC + sample 102: + time = 2448000 + flags = 1 + data = length 336, hash 63D524CA + sample 103: + time = 2472000 + flags = 1 + data = length 288, hash A28514C3 + sample 104: + time = 2496000 + flags = 1 + data = length 336, hash 72B647FF + sample 105: + time = 2520000 + flags = 1 + data = length 336, hash 8F740AB1 + sample 106: + time = 2544000 + flags = 1 + data = length 336, hash 5E3C7E93 + sample 107: + time = 2568000 + flags = 1 + data = length 336, hash 121B913B + sample 108: + time = 2592000 + flags = 1 + data = length 336, hash 578FCCF2 + sample 109: + time = 2616000 + flags = 1 + data = length 336, hash 5B5823DE + sample 110: + time = 2640000 + flags = 1 + data = length 384, hash D8B83F78 + sample 111: + time = 2664000 + flags = 1 + data = length 240, hash E649682F + sample 112: + time = 2688000 + flags = 1 + data = length 96, hash C559A6F4 + sample 113: + time = 2712000 + flags = 1 + data = length 96, hash 792796BC + sample 114: + time = 2736000 + flags = 1 + data = length 120, hash 8172CD0E + sample 115: + time = 2760000 + flags = 1 + data = length 120, hash F562B52F +tracksEnded = true diff --git a/libraries/test_data/src/test/assets/extractordumps/mp3/bear-vbr-vbri-header.mp3.1.dump b/libraries/test_data/src/test/assets/extractordumps/mp3/bear-vbr-vbri-header.mp3.1.dump new file mode 100644 index 0000000000..35d8603d60 --- /dev/null +++ b/libraries/test_data/src/test/assets/extractordumps/mp3/bear-vbr-vbri-header.mp3.1.dump @@ -0,0 +1,369 @@ +seekMap: + isSeekable = true + duration = 2808000 + getPosition(0) = [[timeUs=0, position=141]] + getPosition(1) = [[timeUs=0, position=141], [timeUs=702000, position=10317]] + getPosition(1404000) = [[timeUs=1404000, position=19677]] + getPosition(2808000) = [[timeUs=2106000, position=29517]] +numberOfTracks = 1 +track 0: + total output bytes = 27792 + sample count = 87 + track duration = 2808000 + format 0: + averageBitrate = 32000 + containerMimeType = audio/mpeg + sampleMimeType = audio/mpeg + maxInputSize = 4096 + channelCount = 2 + sampleRate = 48000 + metadata = entries=[TSSE: description=null: values=[Lavf58.29.100]] + sample 0: + time = 702000 + flags = 1 + data = length 336, hash 8C435F6A + sample 1: + time = 726000 + flags = 1 + data = length 336, hash 60D3F80C + sample 2: + time = 750000 + flags = 1 + data = length 336, hash DC15B68B + sample 3: + time = 774000 + flags = 1 + data = length 288, hash FF3DF141 + sample 4: + time = 798000 + flags = 1 + data = length 336, hash A64B3042 + sample 5: + time = 822000 + flags = 1 + data = length 336, hash ACA622A1 + sample 6: + time = 846000 + flags = 1 + data = length 288, hash 3E34B8D4 + sample 7: + time = 870000 + flags = 1 + data = length 288, hash 9B96F72A + sample 8: + time = 894000 + flags = 1 + data = length 336, hash E917C122 + sample 9: + time = 918000 + flags = 1 + data = length 336, hash 10ED1470 + sample 10: + time = 942000 + flags = 1 + data = length 288, hash 706B8A7C + sample 11: + time = 966000 + flags = 1 + data = length 336, hash 71FFE4A0 + sample 12: + time = 990000 + flags = 1 + data = length 336, hash D4160463 + sample 13: + time = 1014000 + flags = 1 + data = length 336, hash EC557B14 + sample 14: + time = 1038000 + flags = 1 + data = length 288, hash 5598CF8B + sample 15: + time = 1062000 + flags = 1 + data = length 336, hash 7E0AB41 + sample 16: + time = 1086000 + flags = 1 + data = length 336, hash 1C585FEF + sample 17: + time = 1110000 + flags = 1 + data = length 336, hash A4A4855E + sample 18: + time = 1134000 + flags = 1 + data = length 336, hash CECA51D3 + sample 19: + time = 1158000 + flags = 1 + data = length 288, hash 2D362DC5 + sample 20: + time = 1182000 + flags = 1 + data = length 336, hash 9EB2609D + sample 21: + time = 1206000 + flags = 1 + data = length 336, hash 28FFB3FE + sample 22: + time = 1230000 + flags = 1 + data = length 288, hash 2AA2D216 + sample 23: + time = 1254000 + flags = 1 + data = length 336, hash CDBC7032 + sample 24: + time = 1278000 + flags = 1 + data = length 336, hash 25B13FE7 + sample 25: + time = 1302000 + flags = 1 + data = length 336, hash DB6BB1E + sample 26: + time = 1326000 + flags = 1 + data = length 336, hash EBE951F4 + sample 27: + time = 1350000 + flags = 1 + data = length 288, hash 9E2EBFF7 + sample 28: + time = 1374000 + flags = 1 + data = length 336, hash 36A7D455 + sample 29: + time = 1398000 + flags = 1 + data = length 336, hash 84545F8C + sample 30: + time = 1422000 + flags = 1 + data = length 336, hash F66F3045 + sample 31: + time = 1446000 + flags = 1 + data = length 576, hash 5AB089EA + sample 32: + time = 1470000 + flags = 1 + data = length 336, hash 8868086 + sample 33: + time = 1494000 + flags = 1 + data = length 336, hash D5EB6D63 + sample 34: + time = 1518000 + flags = 1 + data = length 288, hash 7A5374B7 + sample 35: + time = 1542000 + flags = 1 + data = length 336, hash BEB27A75 + sample 36: + time = 1566000 + flags = 1 + data = length 336, hash E251E0FD + sample 37: + time = 1590000 + flags = 1 + data = length 288, hash D54C970 + sample 38: + time = 1614000 + flags = 1 + data = length 336, hash 52C473B9 + sample 39: + time = 1638000 + flags = 1 + data = length 336, hash F5F13334 + sample 40: + time = 1662000 + flags = 1 + data = length 480, hash A5F1E987 + sample 41: + time = 1686000 + flags = 1 + data = length 288, hash 453A1267 + sample 42: + time = 1710000 + flags = 1 + data = length 288, hash 7C6C2EA9 + sample 43: + time = 1734000 + flags = 1 + data = length 336, hash F4BFECA4 + sample 44: + time = 1758000 + flags = 1 + data = length 336, hash 751A395A + sample 45: + time = 1782000 + flags = 1 + data = length 336, hash EE38DB02 + sample 46: + time = 1806000 + flags = 1 + data = length 336, hash F18837E2 + sample 47: + time = 1830000 + flags = 1 + data = length 336, hash ED36B78E + sample 48: + time = 1854000 + flags = 1 + data = length 336, hash B3D28289 + sample 49: + time = 1878000 + flags = 1 + data = length 288, hash 8BDE28E1 + sample 50: + time = 1902000 + flags = 1 + data = length 336, hash CFD5E966 + sample 51: + time = 1926000 + flags = 1 + data = length 288, hash DC08E267 + sample 52: + time = 1950000 + flags = 1 + data = length 336, hash 6530CB78 + sample 53: + time = 1974000 + flags = 1 + data = length 336, hash 6CC6636E + sample 54: + time = 1998000 + flags = 1 + data = length 336, hash 613047C1 + sample 55: + time = 2022000 + flags = 1 + data = length 288, hash CDC747BF + sample 56: + time = 2046000 + flags = 1 + data = length 336, hash AF22AA74 + sample 57: + time = 2070000 + flags = 1 + data = length 384, hash 82F326AA + sample 58: + time = 2094000 + flags = 1 + data = length 384, hash EDA26C4D + sample 59: + time = 2118000 + flags = 1 + data = length 336, hash 94C643DC + sample 60: + time = 2142000 + flags = 1 + data = length 288, hash CB5D9C40 + sample 61: + time = 2166000 + flags = 1 + data = length 336, hash 1E69DE3F + sample 62: + time = 2190000 + flags = 1 + data = length 336, hash 7E472219 + sample 63: + time = 2214000 + flags = 1 + data = length 336, hash DA47B9FA + sample 64: + time = 2238000 + flags = 1 + data = length 336, hash DD0ABB7C + sample 65: + time = 2262000 + flags = 1 + data = length 288, hash DBF93FAC + sample 66: + time = 2286000 + flags = 1 + data = length 336, hash 243F4B2 + sample 67: + time = 2310000 + flags = 1 + data = length 336, hash 2E881490 + sample 68: + time = 2334000 + flags = 1 + data = length 288, hash 1C28C8BE + sample 69: + time = 2358000 + flags = 1 + data = length 336, hash C73E5D30 + sample 70: + time = 2382000 + flags = 1 + data = length 288, hash 98B5BFF6 + sample 71: + time = 2406000 + flags = 1 + data = length 336, hash E0135533 + sample 72: + time = 2430000 + flags = 1 + data = length 336, hash D13C9DBC + sample 73: + time = 2454000 + flags = 1 + data = length 336, hash 63D524CA + sample 74: + time = 2478000 + flags = 1 + data = length 288, hash A28514C3 + sample 75: + time = 2502000 + flags = 1 + data = length 336, hash 72B647FF + sample 76: + time = 2526000 + flags = 1 + data = length 336, hash 8F740AB1 + sample 77: + time = 2550000 + flags = 1 + data = length 336, hash 5E3C7E93 + sample 78: + time = 2574000 + flags = 1 + data = length 336, hash 121B913B + sample 79: + time = 2598000 + flags = 1 + data = length 336, hash 578FCCF2 + sample 80: + time = 2622000 + flags = 1 + data = length 336, hash 5B5823DE + sample 81: + time = 2646000 + flags = 1 + data = length 384, hash D8B83F78 + sample 82: + time = 2670000 + flags = 1 + data = length 240, hash E649682F + sample 83: + time = 2694000 + flags = 1 + data = length 96, hash C559A6F4 + sample 84: + time = 2718000 + flags = 1 + data = length 96, hash 792796BC + sample 85: + time = 2742000 + flags = 1 + data = length 120, hash 8172CD0E + sample 86: + time = 2766000 + flags = 1 + data = length 120, hash F562B52F +tracksEnded = true diff --git a/libraries/test_data/src/test/assets/extractordumps/mp3/bear-vbr-vbri-header.mp3.2.dump b/libraries/test_data/src/test/assets/extractordumps/mp3/bear-vbr-vbri-header.mp3.2.dump new file mode 100644 index 0000000000..86d7793b25 --- /dev/null +++ b/libraries/test_data/src/test/assets/extractordumps/mp3/bear-vbr-vbri-header.mp3.2.dump @@ -0,0 +1,253 @@ +seekMap: + isSeekable = true + duration = 2808000 + getPosition(0) = [[timeUs=0, position=141]] + getPosition(1) = [[timeUs=0, position=141], [timeUs=702000, position=10317]] + getPosition(1404000) = [[timeUs=1404000, position=19677]] + getPosition(2808000) = [[timeUs=2106000, position=29517]] +numberOfTracks = 1 +track 0: + total output bytes = 18432 + sample count = 58 + track duration = 2808000 + format 0: + averageBitrate = 32000 + containerMimeType = audio/mpeg + sampleMimeType = audio/mpeg + maxInputSize = 4096 + channelCount = 2 + sampleRate = 48000 + metadata = entries=[TSSE: description=null: values=[Lavf58.29.100]] + sample 0: + time = 1404000 + flags = 1 + data = length 336, hash 84545F8C + sample 1: + time = 1428000 + flags = 1 + data = length 336, hash F66F3045 + sample 2: + time = 1452000 + flags = 1 + data = length 576, hash 5AB089EA + sample 3: + time = 1476000 + flags = 1 + data = length 336, hash 8868086 + sample 4: + time = 1500000 + flags = 1 + data = length 336, hash D5EB6D63 + sample 5: + time = 1524000 + flags = 1 + data = length 288, hash 7A5374B7 + sample 6: + time = 1548000 + flags = 1 + data = length 336, hash BEB27A75 + sample 7: + time = 1572000 + flags = 1 + data = length 336, hash E251E0FD + sample 8: + time = 1596000 + flags = 1 + data = length 288, hash D54C970 + sample 9: + time = 1620000 + flags = 1 + data = length 336, hash 52C473B9 + sample 10: + time = 1644000 + flags = 1 + data = length 336, hash F5F13334 + sample 11: + time = 1668000 + flags = 1 + data = length 480, hash A5F1E987 + sample 12: + time = 1692000 + flags = 1 + data = length 288, hash 453A1267 + sample 13: + time = 1716000 + flags = 1 + data = length 288, hash 7C6C2EA9 + sample 14: + time = 1740000 + flags = 1 + data = length 336, hash F4BFECA4 + sample 15: + time = 1764000 + flags = 1 + data = length 336, hash 751A395A + sample 16: + time = 1788000 + flags = 1 + data = length 336, hash EE38DB02 + sample 17: + time = 1812000 + flags = 1 + data = length 336, hash F18837E2 + sample 18: + time = 1836000 + flags = 1 + data = length 336, hash ED36B78E + sample 19: + time = 1860000 + flags = 1 + data = length 336, hash B3D28289 + sample 20: + time = 1884000 + flags = 1 + data = length 288, hash 8BDE28E1 + sample 21: + time = 1908000 + flags = 1 + data = length 336, hash CFD5E966 + sample 22: + time = 1932000 + flags = 1 + data = length 288, hash DC08E267 + sample 23: + time = 1956000 + flags = 1 + data = length 336, hash 6530CB78 + sample 24: + time = 1980000 + flags = 1 + data = length 336, hash 6CC6636E + sample 25: + time = 2004000 + flags = 1 + data = length 336, hash 613047C1 + sample 26: + time = 2028000 + flags = 1 + data = length 288, hash CDC747BF + sample 27: + time = 2052000 + flags = 1 + data = length 336, hash AF22AA74 + sample 28: + time = 2076000 + flags = 1 + data = length 384, hash 82F326AA + sample 29: + time = 2100000 + flags = 1 + data = length 384, hash EDA26C4D + sample 30: + time = 2124000 + flags = 1 + data = length 336, hash 94C643DC + sample 31: + time = 2148000 + flags = 1 + data = length 288, hash CB5D9C40 + sample 32: + time = 2172000 + flags = 1 + data = length 336, hash 1E69DE3F + sample 33: + time = 2196000 + flags = 1 + data = length 336, hash 7E472219 + sample 34: + time = 2220000 + flags = 1 + data = length 336, hash DA47B9FA + sample 35: + time = 2244000 + flags = 1 + data = length 336, hash DD0ABB7C + sample 36: + time = 2268000 + flags = 1 + data = length 288, hash DBF93FAC + sample 37: + time = 2292000 + flags = 1 + data = length 336, hash 243F4B2 + sample 38: + time = 2316000 + flags = 1 + data = length 336, hash 2E881490 + sample 39: + time = 2340000 + flags = 1 + data = length 288, hash 1C28C8BE + sample 40: + time = 2364000 + flags = 1 + data = length 336, hash C73E5D30 + sample 41: + time = 2388000 + flags = 1 + data = length 288, hash 98B5BFF6 + sample 42: + time = 2412000 + flags = 1 + data = length 336, hash E0135533 + sample 43: + time = 2436000 + flags = 1 + data = length 336, hash D13C9DBC + sample 44: + time = 2460000 + flags = 1 + data = length 336, hash 63D524CA + sample 45: + time = 2484000 + flags = 1 + data = length 288, hash A28514C3 + sample 46: + time = 2508000 + flags = 1 + data = length 336, hash 72B647FF + sample 47: + time = 2532000 + flags = 1 + data = length 336, hash 8F740AB1 + sample 48: + time = 2556000 + flags = 1 + data = length 336, hash 5E3C7E93 + sample 49: + time = 2580000 + flags = 1 + data = length 336, hash 121B913B + sample 50: + time = 2604000 + flags = 1 + data = length 336, hash 578FCCF2 + sample 51: + time = 2628000 + flags = 1 + data = length 336, hash 5B5823DE + sample 52: + time = 2652000 + flags = 1 + data = length 384, hash D8B83F78 + sample 53: + time = 2676000 + flags = 1 + data = length 240, hash E649682F + sample 54: + time = 2700000 + flags = 1 + data = length 96, hash C559A6F4 + sample 55: + time = 2724000 + flags = 1 + data = length 96, hash 792796BC + sample 56: + time = 2748000 + flags = 1 + data = length 120, hash 8172CD0E + sample 57: + time = 2772000 + flags = 1 + data = length 120, hash F562B52F +tracksEnded = true diff --git a/libraries/test_data/src/test/assets/extractordumps/mp3/bear-vbr-vbri-header.mp3.3.dump b/libraries/test_data/src/test/assets/extractordumps/mp3/bear-vbr-vbri-header.mp3.3.dump new file mode 100644 index 0000000000..2436fe36ad --- /dev/null +++ b/libraries/test_data/src/test/assets/extractordumps/mp3/bear-vbr-vbri-header.mp3.3.dump @@ -0,0 +1,137 @@ +seekMap: + isSeekable = true + duration = 2808000 + getPosition(0) = [[timeUs=0, position=141]] + getPosition(1) = [[timeUs=0, position=141], [timeUs=702000, position=10317]] + getPosition(1404000) = [[timeUs=1404000, position=19677]] + getPosition(2808000) = [[timeUs=2106000, position=29517]] +numberOfTracks = 1 +track 0: + total output bytes = 8592 + sample count = 29 + track duration = 2808000 + format 0: + averageBitrate = 32000 + containerMimeType = audio/mpeg + sampleMimeType = audio/mpeg + maxInputSize = 4096 + channelCount = 2 + sampleRate = 48000 + metadata = entries=[TSSE: description=null: values=[Lavf58.29.100]] + sample 0: + time = 2106000 + flags = 1 + data = length 384, hash EDA26C4D + sample 1: + time = 2130000 + flags = 1 + data = length 336, hash 94C643DC + sample 2: + time = 2154000 + flags = 1 + data = length 288, hash CB5D9C40 + sample 3: + time = 2178000 + flags = 1 + data = length 336, hash 1E69DE3F + sample 4: + time = 2202000 + flags = 1 + data = length 336, hash 7E472219 + sample 5: + time = 2226000 + flags = 1 + data = length 336, hash DA47B9FA + sample 6: + time = 2250000 + flags = 1 + data = length 336, hash DD0ABB7C + sample 7: + time = 2274000 + flags = 1 + data = length 288, hash DBF93FAC + sample 8: + time = 2298000 + flags = 1 + data = length 336, hash 243F4B2 + sample 9: + time = 2322000 + flags = 1 + data = length 336, hash 2E881490 + sample 10: + time = 2346000 + flags = 1 + data = length 288, hash 1C28C8BE + sample 11: + time = 2370000 + flags = 1 + data = length 336, hash C73E5D30 + sample 12: + time = 2394000 + flags = 1 + data = length 288, hash 98B5BFF6 + sample 13: + time = 2418000 + flags = 1 + data = length 336, hash E0135533 + sample 14: + time = 2442000 + flags = 1 + data = length 336, hash D13C9DBC + sample 15: + time = 2466000 + flags = 1 + data = length 336, hash 63D524CA + sample 16: + time = 2490000 + flags = 1 + data = length 288, hash A28514C3 + sample 17: + time = 2514000 + flags = 1 + data = length 336, hash 72B647FF + sample 18: + time = 2538000 + flags = 1 + data = length 336, hash 8F740AB1 + sample 19: + time = 2562000 + flags = 1 + data = length 336, hash 5E3C7E93 + sample 20: + time = 2586000 + flags = 1 + data = length 336, hash 121B913B + sample 21: + time = 2610000 + flags = 1 + data = length 336, hash 578FCCF2 + sample 22: + time = 2634000 + flags = 1 + data = length 336, hash 5B5823DE + sample 23: + time = 2658000 + flags = 1 + data = length 384, hash D8B83F78 + sample 24: + time = 2682000 + flags = 1 + data = length 240, hash E649682F + sample 25: + time = 2706000 + flags = 1 + data = length 96, hash C559A6F4 + sample 26: + time = 2730000 + flags = 1 + data = length 96, hash 792796BC + sample 27: + time = 2754000 + flags = 1 + data = length 120, hash 8172CD0E + sample 28: + time = 2778000 + flags = 1 + data = length 120, hash F562B52F +tracksEnded = true diff --git a/libraries/test_data/src/test/assets/extractordumps/mp3/bear-vbr-vbri-header.mp3.unknown_length.dump b/libraries/test_data/src/test/assets/extractordumps/mp3/bear-vbr-vbri-header.mp3.unknown_length.dump new file mode 100644 index 0000000000..de95b24610 --- /dev/null +++ b/libraries/test_data/src/test/assets/extractordumps/mp3/bear-vbr-vbri-header.mp3.unknown_length.dump @@ -0,0 +1,485 @@ +seekMap: + isSeekable = true + duration = 2808000 + getPosition(0) = [[timeUs=0, position=141]] + getPosition(1) = [[timeUs=0, position=141], [timeUs=702000, position=10317]] + getPosition(1404000) = [[timeUs=1404000, position=19677]] + getPosition(2808000) = [[timeUs=2106000, position=29517]] +numberOfTracks = 1 +track 0: + total output bytes = 38064 + sample count = 116 + track duration = 2808000 + format 0: + averageBitrate = 32000 + containerMimeType = audio/mpeg + sampleMimeType = audio/mpeg + maxInputSize = 4096 + channelCount = 2 + sampleRate = 48000 + metadata = entries=[TSSE: description=null: values=[Lavf58.29.100]] + sample 0: + time = 0 + flags = 1 + data = length 96, hash 1F161542 + sample 1: + time = 24000 + flags = 1 + data = length 768, hash CD1DC50F + sample 2: + time = 48000 + flags = 1 + data = length 336, hash 3F64124B + sample 3: + time = 72000 + flags = 1 + data = length 336, hash 8FFED94E + sample 4: + time = 96000 + flags = 1 + data = length 288, hash 9CD77D47 + sample 5: + time = 120000 + flags = 1 + data = length 384, hash 24607BB5 + sample 6: + time = 144000 + flags = 1 + data = length 480, hash 4937EBAB + sample 7: + time = 168000 + flags = 1 + data = length 336, hash 546342B1 + sample 8: + time = 192000 + flags = 1 + data = length 336, hash 79E0923F + sample 9: + time = 216000 + flags = 1 + data = length 336, hash AB1F3948 + sample 10: + time = 240000 + flags = 1 + data = length 336, hash C3A4D888 + sample 11: + time = 264000 + flags = 1 + data = length 288, hash 7867DA45 + sample 12: + time = 288000 + flags = 1 + data = length 336, hash B1240B73 + sample 13: + time = 312000 + flags = 1 + data = length 336, hash 94CFCD35 + sample 14: + time = 336000 + flags = 1 + data = length 288, hash 94F412C + sample 15: + time = 360000 + flags = 1 + data = length 336, hash A1D9FF41 + sample 16: + time = 384000 + flags = 1 + data = length 288, hash 2A8DA21B + sample 17: + time = 408000 + flags = 1 + data = length 336, hash 6A429CE + sample 18: + time = 432000 + flags = 1 + data = length 336, hash 68853982 + sample 19: + time = 456000 + flags = 1 + data = length 384, hash 1D6F779C + sample 20: + time = 480000 + flags = 1 + data = length 480, hash 6B31EBEE + sample 21: + time = 504000 + flags = 1 + data = length 336, hash 888335BE + sample 22: + time = 528000 + flags = 1 + data = length 336, hash 6072AC8B + sample 23: + time = 552000 + flags = 1 + data = length 336, hash C9D24234 + sample 24: + time = 576000 + flags = 1 + data = length 288, hash 52BF4D1E + sample 25: + time = 600000 + flags = 1 + data = length 336, hash F93F4F0 + sample 26: + time = 624000 + flags = 1 + data = length 336, hash 8617688A + sample 27: + time = 648000 + flags = 1 + data = length 480, hash FAB0D31B + sample 28: + time = 672000 + flags = 1 + data = length 384, hash FA4B53E2 + sample 29: + time = 696000 + flags = 1 + data = length 336, hash 8C435F6A + sample 30: + time = 720000 + flags = 1 + data = length 336, hash 60D3F80C + sample 31: + time = 744000 + flags = 1 + data = length 336, hash DC15B68B + sample 32: + time = 768000 + flags = 1 + data = length 288, hash FF3DF141 + sample 33: + time = 792000 + flags = 1 + data = length 336, hash A64B3042 + sample 34: + time = 816000 + flags = 1 + data = length 336, hash ACA622A1 + sample 35: + time = 840000 + flags = 1 + data = length 288, hash 3E34B8D4 + sample 36: + time = 864000 + flags = 1 + data = length 288, hash 9B96F72A + sample 37: + time = 888000 + flags = 1 + data = length 336, hash E917C122 + sample 38: + time = 912000 + flags = 1 + data = length 336, hash 10ED1470 + sample 39: + time = 936000 + flags = 1 + data = length 288, hash 706B8A7C + sample 40: + time = 960000 + flags = 1 + data = length 336, hash 71FFE4A0 + sample 41: + time = 984000 + flags = 1 + data = length 336, hash D4160463 + sample 42: + time = 1008000 + flags = 1 + data = length 336, hash EC557B14 + sample 43: + time = 1032000 + flags = 1 + data = length 288, hash 5598CF8B + sample 44: + time = 1056000 + flags = 1 + data = length 336, hash 7E0AB41 + sample 45: + time = 1080000 + flags = 1 + data = length 336, hash 1C585FEF + sample 46: + time = 1104000 + flags = 1 + data = length 336, hash A4A4855E + sample 47: + time = 1128000 + flags = 1 + data = length 336, hash CECA51D3 + sample 48: + time = 1152000 + flags = 1 + data = length 288, hash 2D362DC5 + sample 49: + time = 1176000 + flags = 1 + data = length 336, hash 9EB2609D + sample 50: + time = 1200000 + flags = 1 + data = length 336, hash 28FFB3FE + sample 51: + time = 1224000 + flags = 1 + data = length 288, hash 2AA2D216 + sample 52: + time = 1248000 + flags = 1 + data = length 336, hash CDBC7032 + sample 53: + time = 1272000 + flags = 1 + data = length 336, hash 25B13FE7 + sample 54: + time = 1296000 + flags = 1 + data = length 336, hash DB6BB1E + sample 55: + time = 1320000 + flags = 1 + data = length 336, hash EBE951F4 + sample 56: + time = 1344000 + flags = 1 + data = length 288, hash 9E2EBFF7 + sample 57: + time = 1368000 + flags = 1 + data = length 336, hash 36A7D455 + sample 58: + time = 1392000 + flags = 1 + data = length 336, hash 84545F8C + sample 59: + time = 1416000 + flags = 1 + data = length 336, hash F66F3045 + sample 60: + time = 1440000 + flags = 1 + data = length 576, hash 5AB089EA + sample 61: + time = 1464000 + flags = 1 + data = length 336, hash 8868086 + sample 62: + time = 1488000 + flags = 1 + data = length 336, hash D5EB6D63 + sample 63: + time = 1512000 + flags = 1 + data = length 288, hash 7A5374B7 + sample 64: + time = 1536000 + flags = 1 + data = length 336, hash BEB27A75 + sample 65: + time = 1560000 + flags = 1 + data = length 336, hash E251E0FD + sample 66: + time = 1584000 + flags = 1 + data = length 288, hash D54C970 + sample 67: + time = 1608000 + flags = 1 + data = length 336, hash 52C473B9 + sample 68: + time = 1632000 + flags = 1 + data = length 336, hash F5F13334 + sample 69: + time = 1656000 + flags = 1 + data = length 480, hash A5F1E987 + sample 70: + time = 1680000 + flags = 1 + data = length 288, hash 453A1267 + sample 71: + time = 1704000 + flags = 1 + data = length 288, hash 7C6C2EA9 + sample 72: + time = 1728000 + flags = 1 + data = length 336, hash F4BFECA4 + sample 73: + time = 1752000 + flags = 1 + data = length 336, hash 751A395A + sample 74: + time = 1776000 + flags = 1 + data = length 336, hash EE38DB02 + sample 75: + time = 1800000 + flags = 1 + data = length 336, hash F18837E2 + sample 76: + time = 1824000 + flags = 1 + data = length 336, hash ED36B78E + sample 77: + time = 1848000 + flags = 1 + data = length 336, hash B3D28289 + sample 78: + time = 1872000 + flags = 1 + data = length 288, hash 8BDE28E1 + sample 79: + time = 1896000 + flags = 1 + data = length 336, hash CFD5E966 + sample 80: + time = 1920000 + flags = 1 + data = length 288, hash DC08E267 + sample 81: + time = 1944000 + flags = 1 + data = length 336, hash 6530CB78 + sample 82: + time = 1968000 + flags = 1 + data = length 336, hash 6CC6636E + sample 83: + time = 1992000 + flags = 1 + data = length 336, hash 613047C1 + sample 84: + time = 2016000 + flags = 1 + data = length 288, hash CDC747BF + sample 85: + time = 2040000 + flags = 1 + data = length 336, hash AF22AA74 + sample 86: + time = 2064000 + flags = 1 + data = length 384, hash 82F326AA + sample 87: + time = 2088000 + flags = 1 + data = length 384, hash EDA26C4D + sample 88: + time = 2112000 + flags = 1 + data = length 336, hash 94C643DC + sample 89: + time = 2136000 + flags = 1 + data = length 288, hash CB5D9C40 + sample 90: + time = 2160000 + flags = 1 + data = length 336, hash 1E69DE3F + sample 91: + time = 2184000 + flags = 1 + data = length 336, hash 7E472219 + sample 92: + time = 2208000 + flags = 1 + data = length 336, hash DA47B9FA + sample 93: + time = 2232000 + flags = 1 + data = length 336, hash DD0ABB7C + sample 94: + time = 2256000 + flags = 1 + data = length 288, hash DBF93FAC + sample 95: + time = 2280000 + flags = 1 + data = length 336, hash 243F4B2 + sample 96: + time = 2304000 + flags = 1 + data = length 336, hash 2E881490 + sample 97: + time = 2328000 + flags = 1 + data = length 288, hash 1C28C8BE + sample 98: + time = 2352000 + flags = 1 + data = length 336, hash C73E5D30 + sample 99: + time = 2376000 + flags = 1 + data = length 288, hash 98B5BFF6 + sample 100: + time = 2400000 + flags = 1 + data = length 336, hash E0135533 + sample 101: + time = 2424000 + flags = 1 + data = length 336, hash D13C9DBC + sample 102: + time = 2448000 + flags = 1 + data = length 336, hash 63D524CA + sample 103: + time = 2472000 + flags = 1 + data = length 288, hash A28514C3 + sample 104: + time = 2496000 + flags = 1 + data = length 336, hash 72B647FF + sample 105: + time = 2520000 + flags = 1 + data = length 336, hash 8F740AB1 + sample 106: + time = 2544000 + flags = 1 + data = length 336, hash 5E3C7E93 + sample 107: + time = 2568000 + flags = 1 + data = length 336, hash 121B913B + sample 108: + time = 2592000 + flags = 1 + data = length 336, hash 578FCCF2 + sample 109: + time = 2616000 + flags = 1 + data = length 336, hash 5B5823DE + sample 110: + time = 2640000 + flags = 1 + data = length 384, hash D8B83F78 + sample 111: + time = 2664000 + flags = 1 + data = length 240, hash E649682F + sample 112: + time = 2688000 + flags = 1 + data = length 96, hash C559A6F4 + sample 113: + time = 2712000 + flags = 1 + data = length 96, hash 792796BC + sample 114: + time = 2736000 + flags = 1 + data = length 120, hash 8172CD0E + sample 115: + time = 2760000 + flags = 1 + data = length 120, hash F562B52F +tracksEnded = true diff --git a/libraries/test_data/src/test/assets/media/mp3/bear-vbr-vbri-header.mp3 b/libraries/test_data/src/test/assets/media/mp3/bear-vbr-vbri-header.mp3 new file mode 100644 index 0000000000..f2f25e7dbf Binary files /dev/null and b/libraries/test_data/src/test/assets/media/mp3/bear-vbr-vbri-header.mp3 differ