From 168c464095ec66338248843c2207cda0b7a454d2 Mon Sep 17 00:00:00 2001 From: ibaker Date: Mon, 10 Mar 2025 08:21:17 -0700 Subject: [PATCH] Add cbr-always test for new asset with Xing frame without ToC Issue: androidx/media#2194 PiperOrigin-RevId: 735382972 --- .../extractor/mp3/Mp3ExtractorTest.java | 12 + ...eader-no-toc.mp3.cbr-seeking-always.0.dump | 491 ++++++++++++++++++ ...eader-no-toc.mp3.cbr-seeking-always.1.dump | 343 ++++++++++++ ...eader-no-toc.mp3.cbr-seeking-always.2.dump | 191 +++++++ ...eader-no-toc.mp3.cbr-seeking-always.3.dump | 27 + ...mp3.cbr-seeking-always.unknown_length.dump | 488 +++++++++++++++++ 6 files changed, 1552 insertions(+) create mode 100644 libraries/test_data/src/test/assets/extractordumps/mp3/bear-vbr-xing-header-no-toc.mp3.cbr-seeking-always.0.dump create mode 100644 libraries/test_data/src/test/assets/extractordumps/mp3/bear-vbr-xing-header-no-toc.mp3.cbr-seeking-always.1.dump create mode 100644 libraries/test_data/src/test/assets/extractordumps/mp3/bear-vbr-xing-header-no-toc.mp3.cbr-seeking-always.2.dump create mode 100644 libraries/test_data/src/test/assets/extractordumps/mp3/bear-vbr-xing-header-no-toc.mp3.cbr-seeking-always.3.dump create mode 100644 libraries/test_data/src/test/assets/extractordumps/mp3/bear-vbr-xing-header-no-toc.mp3.cbr-seeking-always.unknown_length.dump 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 a31450d595..4e89469438 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 @@ -61,6 +61,18 @@ public final class Mp3ExtractorTest { simulationConfig); } + @Test + public void mp3SampleWithXingHeader_noTableOfContents_cbrSeekingAlways() throws Exception { + String filename = "mp3/bear-vbr-xing-header-no-toc.mp3"; + ExtractorAsserts.assertBehavior( + () -> new Mp3Extractor(Mp3Extractor.FLAG_ENABLE_CONSTANT_BITRATE_SEEKING_ALWAYS), + "media/" + filename, + new AssertionConfig.Builder() + .setDumpFilesPrefix("extractordumps/" + filename + ".cbr-seeking-always") + .build(), + simulationConfig); + } + @Test public void mp3SampleWithInfoHeader() throws Exception { ExtractorAsserts.assertBehavior( diff --git a/libraries/test_data/src/test/assets/extractordumps/mp3/bear-vbr-xing-header-no-toc.mp3.cbr-seeking-always.0.dump b/libraries/test_data/src/test/assets/extractordumps/mp3/bear-vbr-xing-header-no-toc.mp3.cbr-seeking-always.0.dump new file mode 100644 index 0000000000..96ba8e1f41 --- /dev/null +++ b/libraries/test_data/src/test/assets/extractordumps/mp3/bear-vbr-xing-header-no-toc.mp3.cbr-seeking-always.0.dump @@ -0,0 +1,491 @@ +seekMap: + isSeekable = true + duration = 9540000 + getPosition(0) = [[timeUs=0, position=237]] + getPosition(1) = [[timeUs=0, position=237], [timeUs=24000, position=333]] + getPosition(4770000) = [[timeUs=4752000, position=19245], [timeUs=4776000, position=19341]] + getPosition(9540000) = [[timeUs=9516000, position=38301]] +numberOfTracks = 1 +track 0: + total output bytes = 38160 + sample count = 117 + track duration = 9540000 + format 0: + averageBitrate = 32000 + containerMimeType = audio/mpeg + sampleMimeType = audio/mpeg + maxInputSize = 4096 + channelCount = 2 + sampleRate = 48000 + encoderDelay = 576 + encoderPadding = 576 + 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 + sample 116: + time = 2784000 + flags = 1 + data = length 96, hash FF8D5B98 +tracksEnded = true diff --git a/libraries/test_data/src/test/assets/extractordumps/mp3/bear-vbr-xing-header-no-toc.mp3.cbr-seeking-always.1.dump b/libraries/test_data/src/test/assets/extractordumps/mp3/bear-vbr-xing-header-no-toc.mp3.cbr-seeking-always.1.dump new file mode 100644 index 0000000000..9dc03367b3 --- /dev/null +++ b/libraries/test_data/src/test/assets/extractordumps/mp3/bear-vbr-xing-header-no-toc.mp3.cbr-seeking-always.1.dump @@ -0,0 +1,343 @@ +seekMap: + isSeekable = true + duration = 9540000 + getPosition(0) = [[timeUs=0, position=237]] + getPosition(1) = [[timeUs=0, position=237], [timeUs=24000, position=333]] + getPosition(4770000) = [[timeUs=4752000, position=19245], [timeUs=4776000, position=19341]] + getPosition(9540000) = [[timeUs=9516000, position=38301]] +numberOfTracks = 1 +track 0: + total output bytes = 25344 + sample count = 80 + track duration = 9540000 + format 0: + averageBitrate = 32000 + containerMimeType = audio/mpeg + sampleMimeType = audio/mpeg + maxInputSize = 4096 + channelCount = 2 + sampleRate = 48000 + encoderDelay = 576 + encoderPadding = 576 + metadata = entries=[TSSE: description=null: values=[Lavf58.29.100]] + sample 0: + time = 3204000 + flags = 1 + data = length 336, hash E917C122 + sample 1: + time = 3228000 + flags = 1 + data = length 336, hash 10ED1470 + sample 2: + time = 3252000 + flags = 1 + data = length 288, hash 706B8A7C + sample 3: + time = 3276000 + flags = 1 + data = length 336, hash 71FFE4A0 + sample 4: + time = 3300000 + flags = 1 + data = length 336, hash D4160463 + sample 5: + time = 3324000 + flags = 1 + data = length 336, hash EC557B14 + sample 6: + time = 3348000 + flags = 1 + data = length 288, hash 5598CF8B + sample 7: + time = 3372000 + flags = 1 + data = length 336, hash 7E0AB41 + sample 8: + time = 3396000 + flags = 1 + data = length 336, hash 1C585FEF + sample 9: + time = 3420000 + flags = 1 + data = length 336, hash A4A4855E + sample 10: + time = 3444000 + flags = 1 + data = length 336, hash CECA51D3 + sample 11: + time = 3468000 + flags = 1 + data = length 288, hash 2D362DC5 + sample 12: + time = 3492000 + flags = 1 + data = length 336, hash 9EB2609D + sample 13: + time = 3516000 + flags = 1 + data = length 336, hash 28FFB3FE + sample 14: + time = 3540000 + flags = 1 + data = length 288, hash 2AA2D216 + sample 15: + time = 3564000 + flags = 1 + data = length 336, hash CDBC7032 + sample 16: + time = 3588000 + flags = 1 + data = length 336, hash 25B13FE7 + sample 17: + time = 3612000 + flags = 1 + data = length 336, hash DB6BB1E + sample 18: + time = 3636000 + flags = 1 + data = length 336, hash EBE951F4 + sample 19: + time = 3660000 + flags = 1 + data = length 288, hash 9E2EBFF7 + sample 20: + time = 3684000 + flags = 1 + data = length 336, hash 36A7D455 + sample 21: + time = 3708000 + flags = 1 + data = length 336, hash 84545F8C + sample 22: + time = 3732000 + flags = 1 + data = length 336, hash F66F3045 + sample 23: + time = 3756000 + flags = 1 + data = length 576, hash 5AB089EA + sample 24: + time = 3780000 + flags = 1 + data = length 336, hash 8868086 + sample 25: + time = 3804000 + flags = 1 + data = length 336, hash D5EB6D63 + sample 26: + time = 3828000 + flags = 1 + data = length 288, hash 7A5374B7 + sample 27: + time = 3852000 + flags = 1 + data = length 336, hash BEB27A75 + sample 28: + time = 3876000 + flags = 1 + data = length 336, hash E251E0FD + sample 29: + time = 3900000 + flags = 1 + data = length 288, hash D54C970 + sample 30: + time = 3924000 + flags = 1 + data = length 336, hash 52C473B9 + sample 31: + time = 3948000 + flags = 1 + data = length 336, hash F5F13334 + sample 32: + time = 3972000 + flags = 1 + data = length 480, hash A5F1E987 + sample 33: + time = 3996000 + flags = 1 + data = length 288, hash 453A1267 + sample 34: + time = 4020000 + flags = 1 + data = length 288, hash 7C6C2EA9 + sample 35: + time = 4044000 + flags = 1 + data = length 336, hash F4BFECA4 + sample 36: + time = 4068000 + flags = 1 + data = length 336, hash 751A395A + sample 37: + time = 4092000 + flags = 1 + data = length 336, hash EE38DB02 + sample 38: + time = 4116000 + flags = 1 + data = length 336, hash F18837E2 + sample 39: + time = 4140000 + flags = 1 + data = length 336, hash ED36B78E + sample 40: + time = 4164000 + flags = 1 + data = length 336, hash B3D28289 + sample 41: + time = 4188000 + flags = 1 + data = length 288, hash 8BDE28E1 + sample 42: + time = 4212000 + flags = 1 + data = length 336, hash CFD5E966 + sample 43: + time = 4236000 + flags = 1 + data = length 288, hash DC08E267 + sample 44: + time = 4260000 + flags = 1 + data = length 336, hash 6530CB78 + sample 45: + time = 4284000 + flags = 1 + data = length 336, hash 6CC6636E + sample 46: + time = 4308000 + flags = 1 + data = length 336, hash 613047C1 + sample 47: + time = 4332000 + flags = 1 + data = length 288, hash CDC747BF + sample 48: + time = 4356000 + flags = 1 + data = length 336, hash AF22AA74 + sample 49: + time = 4380000 + flags = 1 + data = length 384, hash 82F326AA + sample 50: + time = 4404000 + flags = 1 + data = length 384, hash EDA26C4D + sample 51: + time = 4428000 + flags = 1 + data = length 336, hash 94C643DC + sample 52: + time = 4452000 + flags = 1 + data = length 288, hash CB5D9C40 + sample 53: + time = 4476000 + flags = 1 + data = length 336, hash 1E69DE3F + sample 54: + time = 4500000 + flags = 1 + data = length 336, hash 7E472219 + sample 55: + time = 4524000 + flags = 1 + data = length 336, hash DA47B9FA + sample 56: + time = 4548000 + flags = 1 + data = length 336, hash DD0ABB7C + sample 57: + time = 4572000 + flags = 1 + data = length 288, hash DBF93FAC + sample 58: + time = 4596000 + flags = 1 + data = length 336, hash 243F4B2 + sample 59: + time = 4620000 + flags = 1 + data = length 336, hash 2E881490 + sample 60: + time = 4644000 + flags = 1 + data = length 288, hash 1C28C8BE + sample 61: + time = 4668000 + flags = 1 + data = length 336, hash C73E5D30 + sample 62: + time = 4692000 + flags = 1 + data = length 288, hash 98B5BFF6 + sample 63: + time = 4716000 + flags = 1 + data = length 336, hash E0135533 + sample 64: + time = 4740000 + flags = 1 + data = length 336, hash D13C9DBC + sample 65: + time = 4764000 + flags = 1 + data = length 336, hash 63D524CA + sample 66: + time = 4788000 + flags = 1 + data = length 288, hash A28514C3 + sample 67: + time = 4812000 + flags = 1 + data = length 336, hash 72B647FF + sample 68: + time = 4836000 + flags = 1 + data = length 336, hash 8F740AB1 + sample 69: + time = 4860000 + flags = 1 + data = length 336, hash 5E3C7E93 + sample 70: + time = 4884000 + flags = 1 + data = length 336, hash 121B913B + sample 71: + time = 4908000 + flags = 1 + data = length 336, hash 578FCCF2 + sample 72: + time = 4932000 + flags = 1 + data = length 336, hash 5B5823DE + sample 73: + time = 4956000 + flags = 1 + data = length 384, hash D8B83F78 + sample 74: + time = 4980000 + flags = 1 + data = length 240, hash E649682F + sample 75: + time = 5004000 + flags = 1 + data = length 96, hash C559A6F4 + sample 76: + time = 5028000 + flags = 1 + data = length 96, hash 792796BC + sample 77: + time = 5052000 + flags = 1 + data = length 120, hash 8172CD0E + sample 78: + time = 5076000 + flags = 1 + data = length 120, hash F562B52F + sample 79: + time = 5100000 + flags = 1 + data = length 96, hash FF8D5B98 +tracksEnded = true diff --git a/libraries/test_data/src/test/assets/extractordumps/mp3/bear-vbr-xing-header-no-toc.mp3.cbr-seeking-always.2.dump b/libraries/test_data/src/test/assets/extractordumps/mp3/bear-vbr-xing-header-no-toc.mp3.cbr-seeking-always.2.dump new file mode 100644 index 0000000000..8a43f0f186 --- /dev/null +++ b/libraries/test_data/src/test/assets/extractordumps/mp3/bear-vbr-xing-header-no-toc.mp3.cbr-seeking-always.2.dump @@ -0,0 +1,191 @@ +seekMap: + isSeekable = true + duration = 9540000 + getPosition(0) = [[timeUs=0, position=237]] + getPosition(1) = [[timeUs=0, position=237], [timeUs=24000, position=333]] + getPosition(4770000) = [[timeUs=4752000, position=19245], [timeUs=4776000, position=19341]] + getPosition(9540000) = [[timeUs=9516000, position=38301]] +numberOfTracks = 1 +track 0: + total output bytes = 12624 + sample count = 42 + track duration = 9540000 + format 0: + averageBitrate = 32000 + containerMimeType = audio/mpeg + sampleMimeType = audio/mpeg + maxInputSize = 4096 + channelCount = 2 + sampleRate = 48000 + encoderDelay = 576 + encoderPadding = 576 + metadata = entries=[TSSE: description=null: values=[Lavf58.29.100]] + sample 0: + time = 6384000 + flags = 1 + data = length 336, hash F18837E2 + sample 1: + time = 6408000 + flags = 1 + data = length 336, hash ED36B78E + sample 2: + time = 6432000 + flags = 1 + data = length 336, hash B3D28289 + sample 3: + time = 6456000 + flags = 1 + data = length 288, hash 8BDE28E1 + sample 4: + time = 6480000 + flags = 1 + data = length 336, hash CFD5E966 + sample 5: + time = 6504000 + flags = 1 + data = length 288, hash DC08E267 + sample 6: + time = 6528000 + flags = 1 + data = length 336, hash 6530CB78 + sample 7: + time = 6552000 + flags = 1 + data = length 336, hash 6CC6636E + sample 8: + time = 6576000 + flags = 1 + data = length 336, hash 613047C1 + sample 9: + time = 6600000 + flags = 1 + data = length 288, hash CDC747BF + sample 10: + time = 6624000 + flags = 1 + data = length 336, hash AF22AA74 + sample 11: + time = 6648000 + flags = 1 + data = length 384, hash 82F326AA + sample 12: + time = 6672000 + flags = 1 + data = length 384, hash EDA26C4D + sample 13: + time = 6696000 + flags = 1 + data = length 336, hash 94C643DC + sample 14: + time = 6720000 + flags = 1 + data = length 288, hash CB5D9C40 + sample 15: + time = 6744000 + flags = 1 + data = length 336, hash 1E69DE3F + sample 16: + time = 6768000 + flags = 1 + data = length 336, hash 7E472219 + sample 17: + time = 6792000 + flags = 1 + data = length 336, hash DA47B9FA + sample 18: + time = 6816000 + flags = 1 + data = length 336, hash DD0ABB7C + sample 19: + time = 6840000 + flags = 1 + data = length 288, hash DBF93FAC + sample 20: + time = 6864000 + flags = 1 + data = length 336, hash 243F4B2 + sample 21: + time = 6888000 + flags = 1 + data = length 336, hash 2E881490 + sample 22: + time = 6912000 + flags = 1 + data = length 288, hash 1C28C8BE + sample 23: + time = 6936000 + flags = 1 + data = length 336, hash C73E5D30 + sample 24: + time = 6960000 + flags = 1 + data = length 288, hash 98B5BFF6 + sample 25: + time = 6984000 + flags = 1 + data = length 336, hash E0135533 + sample 26: + time = 7008000 + flags = 1 + data = length 336, hash D13C9DBC + sample 27: + time = 7032000 + flags = 1 + data = length 336, hash 63D524CA + sample 28: + time = 7056000 + flags = 1 + data = length 288, hash A28514C3 + sample 29: + time = 7080000 + flags = 1 + data = length 336, hash 72B647FF + sample 30: + time = 7104000 + flags = 1 + data = length 336, hash 8F740AB1 + sample 31: + time = 7128000 + flags = 1 + data = length 336, hash 5E3C7E93 + sample 32: + time = 7152000 + flags = 1 + data = length 336, hash 121B913B + sample 33: + time = 7176000 + flags = 1 + data = length 336, hash 578FCCF2 + sample 34: + time = 7200000 + flags = 1 + data = length 336, hash 5B5823DE + sample 35: + time = 7224000 + flags = 1 + data = length 384, hash D8B83F78 + sample 36: + time = 7248000 + flags = 1 + data = length 240, hash E649682F + sample 37: + time = 7272000 + flags = 1 + data = length 96, hash C559A6F4 + sample 38: + time = 7296000 + flags = 1 + data = length 96, hash 792796BC + sample 39: + time = 7320000 + flags = 1 + data = length 120, hash 8172CD0E + sample 40: + time = 7344000 + flags = 1 + data = length 120, hash F562B52F + sample 41: + time = 7368000 + flags = 1 + data = length 96, hash FF8D5B98 +tracksEnded = true diff --git a/libraries/test_data/src/test/assets/extractordumps/mp3/bear-vbr-xing-header-no-toc.mp3.cbr-seeking-always.3.dump b/libraries/test_data/src/test/assets/extractordumps/mp3/bear-vbr-xing-header-no-toc.mp3.cbr-seeking-always.3.dump new file mode 100644 index 0000000000..8d0441818e --- /dev/null +++ b/libraries/test_data/src/test/assets/extractordumps/mp3/bear-vbr-xing-header-no-toc.mp3.cbr-seeking-always.3.dump @@ -0,0 +1,27 @@ +seekMap: + isSeekable = true + duration = 9540000 + getPosition(0) = [[timeUs=0, position=237]] + getPosition(1) = [[timeUs=0, position=237], [timeUs=24000, position=333]] + getPosition(4770000) = [[timeUs=4752000, position=19245], [timeUs=4776000, position=19341]] + getPosition(9540000) = [[timeUs=9516000, position=38301]] +numberOfTracks = 1 +track 0: + total output bytes = 96 + sample count = 1 + track duration = 9540000 + format 0: + averageBitrate = 32000 + containerMimeType = audio/mpeg + sampleMimeType = audio/mpeg + maxInputSize = 4096 + channelCount = 2 + sampleRate = 48000 + encoderDelay = 576 + encoderPadding = 576 + metadata = entries=[TSSE: description=null: values=[Lavf58.29.100]] + sample 0: + time = 9516000 + flags = 1 + data = length 96, hash FF8D5B98 +tracksEnded = true diff --git a/libraries/test_data/src/test/assets/extractordumps/mp3/bear-vbr-xing-header-no-toc.mp3.cbr-seeking-always.unknown_length.dump b/libraries/test_data/src/test/assets/extractordumps/mp3/bear-vbr-xing-header-no-toc.mp3.cbr-seeking-always.unknown_length.dump new file mode 100644 index 0000000000..22bbb4f038 --- /dev/null +++ b/libraries/test_data/src/test/assets/extractordumps/mp3/bear-vbr-xing-header-no-toc.mp3.cbr-seeking-always.unknown_length.dump @@ -0,0 +1,488 @@ +seekMap: + isSeekable = true + duration = UNSET TIME + getPosition(0) = [[timeUs=0, position=237]] + getPosition(1) = [[timeUs=0, position=237]] +numberOfTracks = 1 +track 0: + total output bytes = 38160 + sample count = 117 + format 0: + averageBitrate = 32000 + containerMimeType = audio/mpeg + sampleMimeType = audio/mpeg + maxInputSize = 4096 + channelCount = 2 + sampleRate = 48000 + encoderDelay = 576 + encoderPadding = 576 + 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 + sample 116: + time = 2784000 + flags = 1 + data = length 96, hash FF8D5B98 +tracksEnded = true