From 427db0b5325b2c120d05ac1899dd6d65f1a8bbc4 Mon Sep 17 00:00:00 2001 From: kimvde Date: Wed, 29 Jan 2020 11:21:12 +0000 Subject: [PATCH] Update mp3 test files to test more common use cases PiperOrigin-RevId: 292110291 --- .../assets/mp3/bear-vbr-no-seek-table.mp3 | Bin 0 -> 38384 bytes ...dump => bear-vbr-no-seek-table.mp3.0.dump} | 250 ++++++------- ...dump => bear-vbr-no-seek-table.mp3.1.dump} | 10 +- ...dump => bear-vbr-no-seek-table.mp3.2.dump} | 10 +- ...dump => bear-vbr-no-seek-table.mp3.3.dump} | 10 +- ...{bear-vbr.mp3 => bear-vbr-xing-header.mp3} | Bin ...0.dump => bear-vbr-xing-header.mp3.0.dump} | 0 .../mp3/bear-vbr-xing-header.mp3.1.dump | 339 ++++++++++++++++++ .../mp3/bear-vbr-xing-header.mp3.2.dump | 183 ++++++++++ ...3.dump => bear-vbr-xing-header.mp3.3.dump} | 10 +- .../src/test/assets/mp3/bear-xing-header.mp3 | Bin 44745 -> 0 bytes .../assets/mp3/bear-xing-header.mp3.1.dump | 339 ------------------ .../assets/mp3/bear-xing-header.mp3.2.dump | 183 ---------- .../extractor/FlacMetadataReaderTest.java | 4 +- .../extractor/mp3/IndexSeekerTest.java | 2 +- .../extractor/mp3/Mp3ExtractorTest.java | 5 +- 16 files changed, 675 insertions(+), 670 deletions(-) create mode 100644 library/extractor/src/test/assets/mp3/bear-vbr-no-seek-table.mp3 rename library/extractor/src/test/assets/mp3/{bear-xing-header.mp3.0.dump => bear-vbr-no-seek-table.mp3.0.dump} (56%) rename library/extractor/src/test/assets/mp3/{bear-vbr.mp3.1.dump => bear-vbr-no-seek-table.mp3.1.dump} (97%) rename library/extractor/src/test/assets/mp3/{bear-vbr.mp3.2.dump => bear-vbr-no-seek-table.mp3.2.dump} (95%) rename library/extractor/src/test/assets/mp3/{bear-vbr.mp3.3.dump => bear-vbr-no-seek-table.mp3.3.dump} (79%) rename library/extractor/src/test/assets/mp3/{bear-vbr.mp3 => bear-vbr-xing-header.mp3} (100%) rename library/extractor/src/test/assets/mp3/{bear-vbr.mp3.0.dump => bear-vbr-xing-header.mp3.0.dump} (100%) create mode 100644 library/extractor/src/test/assets/mp3/bear-vbr-xing-header.mp3.1.dump create mode 100644 library/extractor/src/test/assets/mp3/bear-vbr-xing-header.mp3.2.dump rename library/extractor/src/test/assets/mp3/{bear-xing-header.mp3.3.dump => bear-vbr-xing-header.mp3.3.dump} (74%) delete mode 100644 library/extractor/src/test/assets/mp3/bear-xing-header.mp3 delete mode 100644 library/extractor/src/test/assets/mp3/bear-xing-header.mp3.1.dump delete mode 100644 library/extractor/src/test/assets/mp3/bear-xing-header.mp3.2.dump diff --git a/library/extractor/src/test/assets/mp3/bear-vbr-no-seek-table.mp3 b/library/extractor/src/test/assets/mp3/bear-vbr-no-seek-table.mp3 new file mode 100644 index 0000000000000000000000000000000000000000..010fc3776f9d4c4c00db2c40539509f8f6b89b49 GIT binary patch literal 38384 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 literal 0 HcmV?d00001 diff --git a/library/extractor/src/test/assets/mp3/bear-xing-header.mp3.0.dump b/library/extractor/src/test/assets/mp3/bear-vbr-no-seek-table.mp3.0.dump similarity index 56% rename from library/extractor/src/test/assets/mp3/bear-xing-header.mp3.0.dump rename to library/extractor/src/test/assets/mp3/bear-vbr-no-seek-table.mp3.0.dump index e597f0a721..5225210979 100644 --- a/library/extractor/src/test/assets/mp3/bear-xing-header.mp3.0.dump +++ b/library/extractor/src/test/assets/mp3/bear-vbr-no-seek-table.mp3.0.dump @@ -1,7 +1,7 @@ seekMap: isSeekable = true - duration = 2784000 - getPosition(0) = [[timeUs=0, position=201]] + duration = UNSET TIME + getPosition(0) = [[timeUs=0, position=224]] numberOfTracks = 1 track 0: format: @@ -18,478 +18,482 @@ track 0: channelCount = 2 sampleRate = 48000 pcmEncoding = -1 - encoderDelay = 956 - encoderPadding = 3352 + encoderDelay = 0 + encoderPadding = 0 subsampleOffsetUs = 9223372036854775807 selectionFlags = 0 language = null drmInitData = - - metadata = entries=[TSSE: description=null: value=Lavf54.20.4] + metadata = null initializationData: - total output bytes = 44544 - sample count = 116 + total output bytes = 38160 + sample count = 117 sample 0: time = 0 flags = 1 - data = length 384, hash B1FBF8BD + data = length 96, hash 1F161542 sample 1: time = 24000 flags = 1 - data = length 384, hash 2B9A3B72 + data = length 768, hash CD1DC50F sample 2: time = 48000 flags = 1 - data = length 384, hash 33C65BA6 + data = length 336, hash 3F64124B sample 3: time = 72000 flags = 1 - data = length 384, hash E64FE475 + data = length 336, hash 8FFED94E sample 4: time = 96000 flags = 1 - data = length 384, hash E9122D34 + data = length 288, hash 9CD77D47 sample 5: time = 120000 flags = 1 - data = length 384, hash 9CC87327 + data = length 384, hash 24607BB5 sample 6: time = 144000 flags = 1 - data = length 384, hash 118CF6DA + data = length 480, hash 4937EBAB sample 7: time = 168000 flags = 1 - data = length 384, hash 9610D9D6 + data = length 336, hash 546342B1 sample 8: time = 192000 flags = 1 - data = length 384, hash 6ABFE405 + data = length 336, hash 79E0923F sample 9: time = 216000 flags = 1 - data = length 384, hash EE5C93A9 + data = length 336, hash AB1F3948 sample 10: time = 240000 flags = 1 - data = length 384, hash 44E0D140 + data = length 336, hash C3A4D888 sample 11: time = 264000 flags = 1 - data = length 384, hash 3B3DE1D6 + data = length 288, hash 7867DA45 sample 12: time = 288000 flags = 1 - data = length 384, hash 3A572E7C + data = length 336, hash B1240B73 sample 13: time = 312000 flags = 1 - data = length 384, hash 240316E1 + data = length 336, hash 94CFCD35 sample 14: time = 336000 flags = 1 - data = length 384, hash 9EDA9AA0 + data = length 288, hash 94F412C sample 15: time = 360000 flags = 1 - data = length 384, hash E31AB44F + data = length 336, hash A1D9FF41 sample 16: time = 384000 flags = 1 - data = length 384, hash A12497D6 + data = length 288, hash 2A8DA21B sample 17: time = 408000 flags = 1 - data = length 384, hash 8A179B75 + data = length 336, hash 6A429CE sample 18: time = 432000 flags = 1 - data = length 384, hash FCE9E107 + data = length 336, hash 68853982 sample 19: time = 456000 flags = 1 - data = length 384, hash 52CA9665 + data = length 384, hash 1D6F779C sample 20: time = 480000 flags = 1 - data = length 384, hash 9935EC4C + data = length 480, hash 6B31EBEE sample 21: time = 504000 flags = 1 - data = length 384, hash 33CA710A + data = length 336, hash 888335BE sample 22: time = 528000 flags = 1 - data = length 384, hash 45B5D69 + data = length 336, hash 6072AC8B sample 23: time = 552000 flags = 1 - data = length 384, hash 7CEC655D + data = length 336, hash C9D24234 sample 24: time = 576000 flags = 1 - data = length 384, hash 3B5D8310 + data = length 288, hash 52BF4D1E sample 25: time = 600000 flags = 1 - data = length 384, hash 3EB640F8 + data = length 336, hash F93F4F0 sample 26: time = 624000 flags = 1 - data = length 384, hash FAEC53B4 + data = length 336, hash 8617688A sample 27: time = 648000 flags = 1 - data = length 384, hash 92C8A6EE + data = length 480, hash FAB0D31B sample 28: time = 672000 flags = 1 - data = length 384, hash 7CBAAE91 + data = length 384, hash FA4B53E2 sample 29: time = 696000 flags = 1 - data = length 384, hash 74AC754E + data = length 336, hash 8C435F6A sample 30: time = 720000 flags = 1 - data = length 384, hash 8242C434 + data = length 336, hash 60D3F80C sample 31: time = 744000 flags = 1 - data = length 384, hash 686C06FB + data = length 336, hash DC15B68B sample 32: time = 768000 flags = 1 - data = length 384, hash 1D872A3F + data = length 288, hash FF3DF141 sample 33: time = 792000 flags = 1 - data = length 384, hash 900A20BC + data = length 336, hash A64B3042 sample 34: time = 816000 flags = 1 - data = length 384, hash B72FD8E7 + data = length 336, hash ACA622A1 sample 35: time = 840000 flags = 1 - data = length 384, hash 85C9A1FB + data = length 288, hash 3E34B8D4 sample 36: time = 864000 flags = 1 - data = length 384, hash 1600DF3 + data = length 288, hash 9B96F72A sample 37: time = 888000 flags = 1 - data = length 384, hash D6C2138A + data = length 336, hash E917C122 sample 38: time = 912000 flags = 1 - data = length 384, hash 737BA69E + data = length 336, hash 10ED1470 sample 39: time = 936000 flags = 1 - data = length 384, hash F7E344F4 + data = length 288, hash 706B8A7C sample 40: time = 960000 flags = 1 - data = length 384, hash 14EF6AFD + data = length 336, hash 71FFE4A0 sample 41: time = 984000 flags = 1 - data = length 384, hash 61C9B92C + data = length 336, hash D4160463 sample 42: time = 1008000 flags = 1 - data = length 384, hash ABE1368 + data = length 336, hash EC557B14 sample 43: time = 1032000 flags = 1 - data = length 384, hash 6A3B8547 + data = length 288, hash 5598CF8B sample 44: time = 1056000 flags = 1 - data = length 384, hash 30E905FA + data = length 336, hash 7E0AB41 sample 45: time = 1080000 flags = 1 - data = length 384, hash 21A267CD + data = length 336, hash 1C585FEF sample 46: time = 1104000 flags = 1 - data = length 384, hash D96A2651 + data = length 336, hash A4A4855E sample 47: time = 1128000 flags = 1 - data = length 384, hash 72340177 + data = length 336, hash CECA51D3 sample 48: time = 1152000 flags = 1 - data = length 384, hash 9345E744 + data = length 288, hash 2D362DC5 sample 49: time = 1176000 flags = 1 - data = length 384, hash FDE39E3A + data = length 336, hash 9EB2609D sample 50: time = 1200000 flags = 1 - data = length 384, hash F0B7465 + data = length 336, hash 28FFB3FE sample 51: time = 1224000 flags = 1 - data = length 384, hash 3693AB86 + data = length 288, hash 2AA2D216 sample 52: time = 1248000 flags = 1 - data = length 384, hash F39719B1 + data = length 336, hash CDBC7032 sample 53: time = 1272000 flags = 1 - data = length 384, hash DA3958DC + data = length 336, hash 25B13FE7 sample 54: time = 1296000 flags = 1 - data = length 384, hash FDC7599F + data = length 336, hash DB6BB1E sample 55: time = 1320000 flags = 1 - data = length 384, hash AEFF8471 + data = length 336, hash EBE951F4 sample 56: time = 1344000 flags = 1 - data = length 384, hash 89C92C19 + data = length 288, hash 9E2EBFF7 sample 57: time = 1368000 flags = 1 - data = length 384, hash 5C786A4B + data = length 336, hash 36A7D455 sample 58: time = 1392000 flags = 1 - data = length 384, hash 5ACA8B + data = length 336, hash 84545F8C sample 59: time = 1416000 flags = 1 - data = length 384, hash 7755974C + data = length 336, hash F66F3045 sample 60: time = 1440000 flags = 1 - data = length 384, hash 3934B73C + data = length 576, hash 5AB089EA sample 61: time = 1464000 flags = 1 - data = length 384, hash DDD70A2F + data = length 336, hash 8868086 sample 62: time = 1488000 flags = 1 - data = length 384, hash 8FACE2EF + data = length 336, hash D5EB6D63 sample 63: time = 1512000 flags = 1 - data = length 384, hash 4A602591 + data = length 288, hash 7A5374B7 sample 64: time = 1536000 flags = 1 - data = length 384, hash D019AA2D + data = length 336, hash BEB27A75 sample 65: time = 1560000 flags = 1 - data = length 384, hash 8A680B9D + data = length 336, hash E251E0FD sample 66: time = 1584000 flags = 1 - data = length 384, hash B655C959 + data = length 288, hash D54C970 sample 67: time = 1608000 flags = 1 - data = length 384, hash 2168336B + data = length 336, hash 52C473B9 sample 68: time = 1632000 flags = 1 - data = length 384, hash D77F6D31 + data = length 336, hash F5F13334 sample 69: time = 1656000 flags = 1 - data = length 384, hash 524B4B2F + data = length 480, hash A5F1E987 sample 70: time = 1680000 flags = 1 - data = length 384, hash 4752DDFC + data = length 288, hash 453A1267 sample 71: time = 1704000 flags = 1 - data = length 384, hash E786727F + data = length 288, hash 7C6C2EA9 sample 72: time = 1728000 flags = 1 - data = length 384, hash 5DA6FB8C + data = length 336, hash F4BFECA4 sample 73: time = 1752000 flags = 1 - data = length 384, hash 92F24269 + data = length 336, hash 751A395A sample 74: time = 1776000 flags = 1 - data = length 384, hash CD0A3BA1 + data = length 336, hash EE38DB02 sample 75: time = 1800000 flags = 1 - data = length 384, hash 7D00409F + data = length 336, hash F18837E2 sample 76: time = 1824000 flags = 1 - data = length 384, hash D7ADB5FA + data = length 336, hash ED36B78E sample 77: time = 1848000 flags = 1 - data = length 384, hash 4A140209 + data = length 336, hash B3D28289 sample 78: time = 1872000 flags = 1 - data = length 384, hash E801184A + data = length 288, hash 8BDE28E1 sample 79: time = 1896000 flags = 1 - data = length 384, hash 53C6CF9C + data = length 336, hash CFD5E966 sample 80: time = 1920000 flags = 1 - data = length 384, hash 19A8D99F + data = length 288, hash DC08E267 sample 81: time = 1944000 flags = 1 - data = length 384, hash E47EB43F + data = length 336, hash 6530CB78 sample 82: time = 1968000 flags = 1 - data = length 384, hash 4EA329E7 + data = length 336, hash 6CC6636E sample 83: time = 1992000 flags = 1 - data = length 384, hash 1CCAAE62 + data = length 336, hash 613047C1 sample 84: time = 2016000 flags = 1 - data = length 384, hash ED3F8C66 + data = length 288, hash CDC747BF sample 85: time = 2040000 flags = 1 - data = length 384, hash D3D646B6 + data = length 336, hash AF22AA74 sample 86: time = 2064000 flags = 1 - data = length 384, hash 68CD1574 + data = length 384, hash 82F326AA sample 87: time = 2088000 flags = 1 - data = length 384, hash 8CEAB382 + data = length 384, hash EDA26C4D sample 88: time = 2112000 flags = 1 - data = length 384, hash D54B1C48 + data = length 336, hash 94C643DC sample 89: time = 2136000 flags = 1 - data = length 384, hash FFE2EE90 + data = length 288, hash CB5D9C40 sample 90: time = 2160000 flags = 1 - data = length 384, hash BFE8A673 + data = length 336, hash 1E69DE3F sample 91: time = 2184000 flags = 1 - data = length 384, hash 978B1C92 + data = length 336, hash 7E472219 sample 92: time = 2208000 flags = 1 - data = length 384, hash 810CC71E + data = length 336, hash DA47B9FA sample 93: time = 2232000 flags = 1 - data = length 384, hash 44FE42D9 + data = length 336, hash DD0ABB7C sample 94: time = 2256000 flags = 1 - data = length 384, hash 2F5BB02C + data = length 288, hash DBF93FAC sample 95: time = 2280000 flags = 1 - data = length 384, hash 77DDB90 + data = length 336, hash 243F4B2 sample 96: time = 2304000 flags = 1 - data = length 384, hash 24FB5EDA + data = length 336, hash 2E881490 sample 97: time = 2328000 flags = 1 - data = length 384, hash E73203C6 + data = length 288, hash 1C28C8BE sample 98: time = 2352000 flags = 1 - data = length 384, hash 14B525F1 + data = length 336, hash C73E5D30 sample 99: time = 2376000 flags = 1 - data = length 384, hash 5E0F4E2E + data = length 288, hash 98B5BFF6 sample 100: time = 2400000 flags = 1 - data = length 384, hash 67EE4E31 + data = length 336, hash E0135533 sample 101: time = 2424000 flags = 1 - data = length 384, hash 2E04EC4C + data = length 336, hash D13C9DBC sample 102: time = 2448000 flags = 1 - data = length 384, hash 852CABA7 + data = length 336, hash 63D524CA sample 103: time = 2472000 flags = 1 - data = length 384, hash 19928903 + data = length 288, hash A28514C3 sample 104: time = 2496000 flags = 1 - data = length 384, hash 5DA42021 + data = length 336, hash 72B647FF sample 105: time = 2520000 flags = 1 - data = length 384, hash 45B20B7C + data = length 336, hash 8F740AB1 sample 106: time = 2544000 flags = 1 - data = length 384, hash D108A215 + data = length 336, hash 5E3C7E93 sample 107: time = 2568000 flags = 1 - data = length 384, hash BD25DB7C + data = length 336, hash 121B913B sample 108: time = 2592000 flags = 1 - data = length 384, hash DA7F9861 + data = length 336, hash 578FCCF2 sample 109: time = 2616000 flags = 1 - data = length 384, hash CCD576F + data = length 336, hash 5B5823DE sample 110: time = 2640000 flags = 1 - data = length 384, hash 405C1EB5 + data = length 384, hash D8B83F78 sample 111: time = 2664000 flags = 1 - data = length 384, hash 6640B74E + data = length 240, hash E649682F sample 112: time = 2688000 flags = 1 - data = length 384, hash B4E5937A + data = length 96, hash C559A6F4 sample 113: time = 2712000 flags = 1 - data = length 384, hash CEE17733 + data = length 96, hash 792796BC sample 114: time = 2736000 flags = 1 - data = length 384, hash 2A0DA733 + data = length 120, hash 8172CD0E sample 115: time = 2760000 flags = 1 - data = length 384, hash 97F4129B + data = length 120, hash F562B52F + sample 116: + time = 2784000 + flags = 1 + data = length 96, hash FF8D5B98 tracksEnded = true diff --git a/library/extractor/src/test/assets/mp3/bear-vbr.mp3.1.dump b/library/extractor/src/test/assets/mp3/bear-vbr-no-seek-table.mp3.1.dump similarity index 97% rename from library/extractor/src/test/assets/mp3/bear-vbr.mp3.1.dump rename to library/extractor/src/test/assets/mp3/bear-vbr-no-seek-table.mp3.1.dump index dabe8be921..ebdbb9cdb0 100644 --- a/library/extractor/src/test/assets/mp3/bear-vbr.mp3.1.dump +++ b/library/extractor/src/test/assets/mp3/bear-vbr-no-seek-table.mp3.1.dump @@ -1,7 +1,7 @@ seekMap: isSeekable = true - duration = 2808000 - getPosition(0) = [[timeUs=0, position=237]] + duration = UNSET TIME + getPosition(0) = [[timeUs=0, position=224]] numberOfTracks = 1 track 0: format: @@ -18,13 +18,13 @@ track 0: channelCount = 2 sampleRate = 48000 pcmEncoding = -1 - encoderDelay = 576 - encoderPadding = 576 + encoderDelay = 0 + encoderPadding = 0 subsampleOffsetUs = 9223372036854775807 selectionFlags = 0 language = null drmInitData = - - metadata = entries=[TSSE: description=null: value=Lavf58.29.100] + metadata = null initializationData: total output bytes = 25920 sample count = 82 diff --git a/library/extractor/src/test/assets/mp3/bear-vbr.mp3.2.dump b/library/extractor/src/test/assets/mp3/bear-vbr-no-seek-table.mp3.2.dump similarity index 95% rename from library/extractor/src/test/assets/mp3/bear-vbr.mp3.2.dump rename to library/extractor/src/test/assets/mp3/bear-vbr-no-seek-table.mp3.2.dump index 2d5af88b15..d505251f61 100644 --- a/library/extractor/src/test/assets/mp3/bear-vbr.mp3.2.dump +++ b/library/extractor/src/test/assets/mp3/bear-vbr-no-seek-table.mp3.2.dump @@ -1,7 +1,7 @@ seekMap: isSeekable = true - duration = 2808000 - getPosition(0) = [[timeUs=0, position=237]] + duration = UNSET TIME + getPosition(0) = [[timeUs=0, position=224]] numberOfTracks = 1 track 0: format: @@ -18,13 +18,13 @@ track 0: channelCount = 2 sampleRate = 48000 pcmEncoding = -1 - encoderDelay = 576 - encoderPadding = 576 + encoderDelay = 0 + encoderPadding = 0 subsampleOffsetUs = 9223372036854775807 selectionFlags = 0 language = null drmInitData = - - metadata = entries=[TSSE: description=null: value=Lavf58.29.100] + metadata = null initializationData: total output bytes = 12624 sample count = 42 diff --git a/library/extractor/src/test/assets/mp3/bear-vbr.mp3.3.dump b/library/extractor/src/test/assets/mp3/bear-vbr-no-seek-table.mp3.3.dump similarity index 79% rename from library/extractor/src/test/assets/mp3/bear-vbr.mp3.3.dump rename to library/extractor/src/test/assets/mp3/bear-vbr-no-seek-table.mp3.3.dump index 1dc7fa9258..1341231b6a 100644 --- a/library/extractor/src/test/assets/mp3/bear-vbr.mp3.3.dump +++ b/library/extractor/src/test/assets/mp3/bear-vbr-no-seek-table.mp3.3.dump @@ -1,7 +1,7 @@ seekMap: isSeekable = true - duration = 2808000 - getPosition(0) = [[timeUs=0, position=237]] + duration = UNSET TIME + getPosition(0) = [[timeUs=0, position=224]] numberOfTracks = 1 track 0: format: @@ -18,13 +18,13 @@ track 0: channelCount = 2 sampleRate = 48000 pcmEncoding = -1 - encoderDelay = 576 - encoderPadding = 576 + encoderDelay = 0 + encoderPadding = 0 subsampleOffsetUs = 9223372036854775807 selectionFlags = 0 language = null drmInitData = - - metadata = entries=[TSSE: description=null: value=Lavf58.29.100] + metadata = null initializationData: total output bytes = 216 sample count = 2 diff --git a/library/extractor/src/test/assets/mp3/bear-vbr.mp3 b/library/extractor/src/test/assets/mp3/bear-vbr-xing-header.mp3 similarity index 100% rename from library/extractor/src/test/assets/mp3/bear-vbr.mp3 rename to library/extractor/src/test/assets/mp3/bear-vbr-xing-header.mp3 diff --git a/library/extractor/src/test/assets/mp3/bear-vbr.mp3.0.dump b/library/extractor/src/test/assets/mp3/bear-vbr-xing-header.mp3.0.dump similarity index 100% rename from library/extractor/src/test/assets/mp3/bear-vbr.mp3.0.dump rename to library/extractor/src/test/assets/mp3/bear-vbr-xing-header.mp3.0.dump diff --git a/library/extractor/src/test/assets/mp3/bear-vbr-xing-header.mp3.1.dump b/library/extractor/src/test/assets/mp3/bear-vbr-xing-header.mp3.1.dump new file mode 100644 index 0000000000..7ecdb77281 --- /dev/null +++ b/library/extractor/src/test/assets/mp3/bear-vbr-xing-header.mp3.1.dump @@ -0,0 +1,339 @@ +seekMap: + isSeekable = true + duration = 2808000 + getPosition(0) = [[timeUs=0, position=237]] +numberOfTracks = 1 +track 0: + format: + bitrate = -1 + id = null + containerMimeType = null + sampleMimeType = audio/mpeg + maxInputSize = 4096 + width = -1 + height = -1 + frameRate = -1.0 + rotationDegrees = 0 + pixelWidthHeightRatio = 1.0 + channelCount = 2 + sampleRate = 48000 + pcmEncoding = -1 + encoderDelay = 576 + encoderPadding = 576 + subsampleOffsetUs = 9223372036854775807 + selectionFlags = 0 + language = null + drmInitData = - + metadata = entries=[TSSE: description=null: value=Lavf58.29.100] + initializationData: + total output bytes = 24384 + sample count = 77 + sample 0: + time = 958041 + flags = 1 + data = length 336, hash 71FFE4A0 + sample 1: + time = 982041 + flags = 1 + data = length 336, hash D4160463 + sample 2: + time = 1006041 + flags = 1 + data = length 336, hash EC557B14 + sample 3: + time = 1030041 + flags = 1 + data = length 288, hash 5598CF8B + sample 4: + time = 1054041 + flags = 1 + data = length 336, hash 7E0AB41 + sample 5: + time = 1078041 + flags = 1 + data = length 336, hash 1C585FEF + sample 6: + time = 1102041 + flags = 1 + data = length 336, hash A4A4855E + sample 7: + time = 1126041 + flags = 1 + data = length 336, hash CECA51D3 + sample 8: + time = 1150041 + flags = 1 + data = length 288, hash 2D362DC5 + sample 9: + time = 1174041 + flags = 1 + data = length 336, hash 9EB2609D + sample 10: + time = 1198041 + flags = 1 + data = length 336, hash 28FFB3FE + sample 11: + time = 1222041 + flags = 1 + data = length 288, hash 2AA2D216 + sample 12: + time = 1246041 + flags = 1 + data = length 336, hash CDBC7032 + sample 13: + time = 1270041 + flags = 1 + data = length 336, hash 25B13FE7 + sample 14: + time = 1294041 + flags = 1 + data = length 336, hash DB6BB1E + sample 15: + time = 1318041 + flags = 1 + data = length 336, hash EBE951F4 + sample 16: + time = 1342041 + flags = 1 + data = length 288, hash 9E2EBFF7 + sample 17: + time = 1366041 + flags = 1 + data = length 336, hash 36A7D455 + sample 18: + time = 1390041 + flags = 1 + data = length 336, hash 84545F8C + sample 19: + time = 1414041 + flags = 1 + data = length 336, hash F66F3045 + sample 20: + time = 1438041 + flags = 1 + data = length 576, hash 5AB089EA + sample 21: + time = 1462041 + flags = 1 + data = length 336, hash 8868086 + sample 22: + time = 1486041 + flags = 1 + data = length 336, hash D5EB6D63 + sample 23: + time = 1510041 + flags = 1 + data = length 288, hash 7A5374B7 + sample 24: + time = 1534041 + flags = 1 + data = length 336, hash BEB27A75 + sample 25: + time = 1558041 + flags = 1 + data = length 336, hash E251E0FD + sample 26: + time = 1582041 + flags = 1 + data = length 288, hash D54C970 + sample 27: + time = 1606041 + flags = 1 + data = length 336, hash 52C473B9 + sample 28: + time = 1630041 + flags = 1 + data = length 336, hash F5F13334 + sample 29: + time = 1654041 + flags = 1 + data = length 480, hash A5F1E987 + sample 30: + time = 1678041 + flags = 1 + data = length 288, hash 453A1267 + sample 31: + time = 1702041 + flags = 1 + data = length 288, hash 7C6C2EA9 + sample 32: + time = 1726041 + flags = 1 + data = length 336, hash F4BFECA4 + sample 33: + time = 1750041 + flags = 1 + data = length 336, hash 751A395A + sample 34: + time = 1774041 + flags = 1 + data = length 336, hash EE38DB02 + sample 35: + time = 1798041 + flags = 1 + data = length 336, hash F18837E2 + sample 36: + time = 1822041 + flags = 1 + data = length 336, hash ED36B78E + sample 37: + time = 1846041 + flags = 1 + data = length 336, hash B3D28289 + sample 38: + time = 1870041 + flags = 1 + data = length 288, hash 8BDE28E1 + sample 39: + time = 1894041 + flags = 1 + data = length 336, hash CFD5E966 + sample 40: + time = 1918041 + flags = 1 + data = length 288, hash DC08E267 + sample 41: + time = 1942041 + flags = 1 + data = length 336, hash 6530CB78 + sample 42: + time = 1966041 + flags = 1 + data = length 336, hash 6CC6636E + sample 43: + time = 1990041 + flags = 1 + data = length 336, hash 613047C1 + sample 44: + time = 2014041 + flags = 1 + data = length 288, hash CDC747BF + sample 45: + time = 2038041 + flags = 1 + data = length 336, hash AF22AA74 + sample 46: + time = 2062041 + flags = 1 + data = length 384, hash 82F326AA + sample 47: + time = 2086041 + flags = 1 + data = length 384, hash EDA26C4D + sample 48: + time = 2110041 + flags = 1 + data = length 336, hash 94C643DC + sample 49: + time = 2134041 + flags = 1 + data = length 288, hash CB5D9C40 + sample 50: + time = 2158041 + flags = 1 + data = length 336, hash 1E69DE3F + sample 51: + time = 2182041 + flags = 1 + data = length 336, hash 7E472219 + sample 52: + time = 2206041 + flags = 1 + data = length 336, hash DA47B9FA + sample 53: + time = 2230041 + flags = 1 + data = length 336, hash DD0ABB7C + sample 54: + time = 2254041 + flags = 1 + data = length 288, hash DBF93FAC + sample 55: + time = 2278041 + flags = 1 + data = length 336, hash 243F4B2 + sample 56: + time = 2302041 + flags = 1 + data = length 336, hash 2E881490 + sample 57: + time = 2326041 + flags = 1 + data = length 288, hash 1C28C8BE + sample 58: + time = 2350041 + flags = 1 + data = length 336, hash C73E5D30 + sample 59: + time = 2374041 + flags = 1 + data = length 288, hash 98B5BFF6 + sample 60: + time = 2398041 + flags = 1 + data = length 336, hash E0135533 + sample 61: + time = 2422041 + flags = 1 + data = length 336, hash D13C9DBC + sample 62: + time = 2446041 + flags = 1 + data = length 336, hash 63D524CA + sample 63: + time = 2470041 + flags = 1 + data = length 288, hash A28514C3 + sample 64: + time = 2494041 + flags = 1 + data = length 336, hash 72B647FF + sample 65: + time = 2518041 + flags = 1 + data = length 336, hash 8F740AB1 + sample 66: + time = 2542041 + flags = 1 + data = length 336, hash 5E3C7E93 + sample 67: + time = 2566041 + flags = 1 + data = length 336, hash 121B913B + sample 68: + time = 2590041 + flags = 1 + data = length 336, hash 578FCCF2 + sample 69: + time = 2614041 + flags = 1 + data = length 336, hash 5B5823DE + sample 70: + time = 2638041 + flags = 1 + data = length 384, hash D8B83F78 + sample 71: + time = 2662041 + flags = 1 + data = length 240, hash E649682F + sample 72: + time = 2686041 + flags = 1 + data = length 96, hash C559A6F4 + sample 73: + time = 2710041 + flags = 1 + data = length 96, hash 792796BC + sample 74: + time = 2734041 + flags = 1 + data = length 120, hash 8172CD0E + sample 75: + time = 2758041 + flags = 1 + data = length 120, hash F562B52F + sample 76: + time = 2782041 + flags = 1 + data = length 96, hash FF8D5B98 +tracksEnded = true diff --git a/library/extractor/src/test/assets/mp3/bear-vbr-xing-header.mp3.2.dump b/library/extractor/src/test/assets/mp3/bear-vbr-xing-header.mp3.2.dump new file mode 100644 index 0000000000..c756efe59d --- /dev/null +++ b/library/extractor/src/test/assets/mp3/bear-vbr-xing-header.mp3.2.dump @@ -0,0 +1,183 @@ +seekMap: + isSeekable = true + duration = 2808000 + getPosition(0) = [[timeUs=0, position=237]] +numberOfTracks = 1 +track 0: + format: + bitrate = -1 + id = null + containerMimeType = null + sampleMimeType = audio/mpeg + maxInputSize = 4096 + width = -1 + height = -1 + frameRate = -1.0 + rotationDegrees = 0 + pixelWidthHeightRatio = 1.0 + channelCount = 2 + sampleRate = 48000 + pcmEncoding = -1 + encoderDelay = 576 + encoderPadding = 576 + subsampleOffsetUs = 9223372036854775807 + selectionFlags = 0 + language = null + drmInitData = - + metadata = entries=[TSSE: description=null: value=Lavf58.29.100] + initializationData: + total output bytes = 11328 + sample count = 38 + sample 0: + time = 1886772 + flags = 1 + data = length 336, hash CFD5E966 + sample 1: + time = 1910772 + flags = 1 + data = length 288, hash DC08E267 + sample 2: + time = 1934772 + flags = 1 + data = length 336, hash 6530CB78 + sample 3: + time = 1958772 + flags = 1 + data = length 336, hash 6CC6636E + sample 4: + time = 1982772 + flags = 1 + data = length 336, hash 613047C1 + sample 5: + time = 2006772 + flags = 1 + data = length 288, hash CDC747BF + sample 6: + time = 2030772 + flags = 1 + data = length 336, hash AF22AA74 + sample 7: + time = 2054772 + flags = 1 + data = length 384, hash 82F326AA + sample 8: + time = 2078772 + flags = 1 + data = length 384, hash EDA26C4D + sample 9: + time = 2102772 + flags = 1 + data = length 336, hash 94C643DC + sample 10: + time = 2126772 + flags = 1 + data = length 288, hash CB5D9C40 + sample 11: + time = 2150772 + flags = 1 + data = length 336, hash 1E69DE3F + sample 12: + time = 2174772 + flags = 1 + data = length 336, hash 7E472219 + sample 13: + time = 2198772 + flags = 1 + data = length 336, hash DA47B9FA + sample 14: + time = 2222772 + flags = 1 + data = length 336, hash DD0ABB7C + sample 15: + time = 2246772 + flags = 1 + data = length 288, hash DBF93FAC + sample 16: + time = 2270772 + flags = 1 + data = length 336, hash 243F4B2 + sample 17: + time = 2294772 + flags = 1 + data = length 336, hash 2E881490 + sample 18: + time = 2318772 + flags = 1 + data = length 288, hash 1C28C8BE + sample 19: + time = 2342772 + flags = 1 + data = length 336, hash C73E5D30 + sample 20: + time = 2366772 + flags = 1 + data = length 288, hash 98B5BFF6 + sample 21: + time = 2390772 + flags = 1 + data = length 336, hash E0135533 + sample 22: + time = 2414772 + flags = 1 + data = length 336, hash D13C9DBC + sample 23: + time = 2438772 + flags = 1 + data = length 336, hash 63D524CA + sample 24: + time = 2462772 + flags = 1 + data = length 288, hash A28514C3 + sample 25: + time = 2486772 + flags = 1 + data = length 336, hash 72B647FF + sample 26: + time = 2510772 + flags = 1 + data = length 336, hash 8F740AB1 + sample 27: + time = 2534772 + flags = 1 + data = length 336, hash 5E3C7E93 + sample 28: + time = 2558772 + flags = 1 + data = length 336, hash 121B913B + sample 29: + time = 2582772 + flags = 1 + data = length 336, hash 578FCCF2 + sample 30: + time = 2606772 + flags = 1 + data = length 336, hash 5B5823DE + sample 31: + time = 2630772 + flags = 1 + data = length 384, hash D8B83F78 + sample 32: + time = 2654772 + flags = 1 + data = length 240, hash E649682F + sample 33: + time = 2678772 + flags = 1 + data = length 96, hash C559A6F4 + sample 34: + time = 2702772 + flags = 1 + data = length 96, hash 792796BC + sample 35: + time = 2726772 + flags = 1 + data = length 120, hash 8172CD0E + sample 36: + time = 2750772 + flags = 1 + data = length 120, hash F562B52F + sample 37: + time = 2774772 + flags = 1 + data = length 96, hash FF8D5B98 +tracksEnded = true diff --git a/library/extractor/src/test/assets/mp3/bear-xing-header.mp3.3.dump b/library/extractor/src/test/assets/mp3/bear-vbr-xing-header.mp3.3.dump similarity index 74% rename from library/extractor/src/test/assets/mp3/bear-xing-header.mp3.3.dump rename to library/extractor/src/test/assets/mp3/bear-vbr-xing-header.mp3.3.dump index 744244bf47..bb2bde8900 100644 --- a/library/extractor/src/test/assets/mp3/bear-xing-header.mp3.3.dump +++ b/library/extractor/src/test/assets/mp3/bear-vbr-xing-header.mp3.3.dump @@ -1,7 +1,7 @@ seekMap: isSeekable = true - duration = 2784000 - getPosition(0) = [[timeUs=0, position=201]] + duration = 2808000 + getPosition(0) = [[timeUs=0, position=237]] numberOfTracks = 1 track 0: format: @@ -18,13 +18,13 @@ track 0: channelCount = 2 sampleRate = 48000 pcmEncoding = -1 - encoderDelay = 956 - encoderPadding = 3352 + encoderDelay = 576 + encoderPadding = 576 subsampleOffsetUs = 9223372036854775807 selectionFlags = 0 language = null drmInitData = - - metadata = entries=[TSSE: description=null: value=Lavf54.20.4] + metadata = entries=[TSSE: description=null: value=Lavf58.29.100] initializationData: total output bytes = 0 sample count = 0 diff --git a/library/extractor/src/test/assets/mp3/bear-xing-header.mp3 b/library/extractor/src/test/assets/mp3/bear-xing-header.mp3 deleted file mode 100644 index 0c1001ce3993c617ca52a7969b4ce58fd22fc78b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 44745 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%0A^Ef>{)Y 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 Kul@h;Oa2GE^8UjB diff --git a/library/extractor/src/test/assets/mp3/bear-xing-header.mp3.1.dump b/library/extractor/src/test/assets/mp3/bear-xing-header.mp3.1.dump deleted file mode 100644 index a7f7f699fb..0000000000 --- a/library/extractor/src/test/assets/mp3/bear-xing-header.mp3.1.dump +++ /dev/null @@ -1,339 +0,0 @@ -seekMap: - isSeekable = true - duration = 2784000 - getPosition(0) = [[timeUs=0, position=201]] -numberOfTracks = 1 -track 0: - format: - bitrate = -1 - id = null - containerMimeType = null - sampleMimeType = audio/mpeg - maxInputSize = 4096 - width = -1 - height = -1 - frameRate = -1.0 - rotationDegrees = 0 - pixelWidthHeightRatio = 1.0 - channelCount = 2 - sampleRate = 48000 - pcmEncoding = -1 - encoderDelay = 956 - encoderPadding = 3352 - subsampleOffsetUs = 9223372036854775807 - selectionFlags = 0 - language = null - drmInitData = - - metadata = entries=[TSSE: description=null: value=Lavf54.20.4] - initializationData: - total output bytes = 29568 - sample count = 77 - sample 0: - time = 928568 - flags = 1 - data = length 384, hash F7E344F4 - sample 1: - time = 952568 - flags = 1 - data = length 384, hash 14EF6AFD - sample 2: - time = 976568 - flags = 1 - data = length 384, hash 61C9B92C - sample 3: - time = 1000568 - flags = 1 - data = length 384, hash ABE1368 - sample 4: - time = 1024568 - flags = 1 - data = length 384, hash 6A3B8547 - sample 5: - time = 1048568 - flags = 1 - data = length 384, hash 30E905FA - sample 6: - time = 1072568 - flags = 1 - data = length 384, hash 21A267CD - sample 7: - time = 1096568 - flags = 1 - data = length 384, hash D96A2651 - sample 8: - time = 1120568 - flags = 1 - data = length 384, hash 72340177 - sample 9: - time = 1144568 - flags = 1 - data = length 384, hash 9345E744 - sample 10: - time = 1168568 - flags = 1 - data = length 384, hash FDE39E3A - sample 11: - time = 1192568 - flags = 1 - data = length 384, hash F0B7465 - sample 12: - time = 1216568 - flags = 1 - data = length 384, hash 3693AB86 - sample 13: - time = 1240568 - flags = 1 - data = length 384, hash F39719B1 - sample 14: - time = 1264568 - flags = 1 - data = length 384, hash DA3958DC - sample 15: - time = 1288568 - flags = 1 - data = length 384, hash FDC7599F - sample 16: - time = 1312568 - flags = 1 - data = length 384, hash AEFF8471 - sample 17: - time = 1336568 - flags = 1 - data = length 384, hash 89C92C19 - sample 18: - time = 1360568 - flags = 1 - data = length 384, hash 5C786A4B - sample 19: - time = 1384568 - flags = 1 - data = length 384, hash 5ACA8B - sample 20: - time = 1408568 - flags = 1 - data = length 384, hash 7755974C - sample 21: - time = 1432568 - flags = 1 - data = length 384, hash 3934B73C - sample 22: - time = 1456568 - flags = 1 - data = length 384, hash DDD70A2F - sample 23: - time = 1480568 - flags = 1 - data = length 384, hash 8FACE2EF - sample 24: - time = 1504568 - flags = 1 - data = length 384, hash 4A602591 - sample 25: - time = 1528568 - flags = 1 - data = length 384, hash D019AA2D - sample 26: - time = 1552568 - flags = 1 - data = length 384, hash 8A680B9D - sample 27: - time = 1576568 - flags = 1 - data = length 384, hash B655C959 - sample 28: - time = 1600568 - flags = 1 - data = length 384, hash 2168336B - sample 29: - time = 1624568 - flags = 1 - data = length 384, hash D77F6D31 - sample 30: - time = 1648568 - flags = 1 - data = length 384, hash 524B4B2F - sample 31: - time = 1672568 - flags = 1 - data = length 384, hash 4752DDFC - sample 32: - time = 1696568 - flags = 1 - data = length 384, hash E786727F - sample 33: - time = 1720568 - flags = 1 - data = length 384, hash 5DA6FB8C - sample 34: - time = 1744568 - flags = 1 - data = length 384, hash 92F24269 - sample 35: - time = 1768568 - flags = 1 - data = length 384, hash CD0A3BA1 - sample 36: - time = 1792568 - flags = 1 - data = length 384, hash 7D00409F - sample 37: - time = 1816568 - flags = 1 - data = length 384, hash D7ADB5FA - sample 38: - time = 1840568 - flags = 1 - data = length 384, hash 4A140209 - sample 39: - time = 1864568 - flags = 1 - data = length 384, hash E801184A - sample 40: - time = 1888568 - flags = 1 - data = length 384, hash 53C6CF9C - sample 41: - time = 1912568 - flags = 1 - data = length 384, hash 19A8D99F - sample 42: - time = 1936568 - flags = 1 - data = length 384, hash E47EB43F - sample 43: - time = 1960568 - flags = 1 - data = length 384, hash 4EA329E7 - sample 44: - time = 1984568 - flags = 1 - data = length 384, hash 1CCAAE62 - sample 45: - time = 2008568 - flags = 1 - data = length 384, hash ED3F8C66 - sample 46: - time = 2032568 - flags = 1 - data = length 384, hash D3D646B6 - sample 47: - time = 2056568 - flags = 1 - data = length 384, hash 68CD1574 - sample 48: - time = 2080568 - flags = 1 - data = length 384, hash 8CEAB382 - sample 49: - time = 2104568 - flags = 1 - data = length 384, hash D54B1C48 - sample 50: - time = 2128568 - flags = 1 - data = length 384, hash FFE2EE90 - sample 51: - time = 2152568 - flags = 1 - data = length 384, hash BFE8A673 - sample 52: - time = 2176568 - flags = 1 - data = length 384, hash 978B1C92 - sample 53: - time = 2200568 - flags = 1 - data = length 384, hash 810CC71E - sample 54: - time = 2224568 - flags = 1 - data = length 384, hash 44FE42D9 - sample 55: - time = 2248568 - flags = 1 - data = length 384, hash 2F5BB02C - sample 56: - time = 2272568 - flags = 1 - data = length 384, hash 77DDB90 - sample 57: - time = 2296568 - flags = 1 - data = length 384, hash 24FB5EDA - sample 58: - time = 2320568 - flags = 1 - data = length 384, hash E73203C6 - sample 59: - time = 2344568 - flags = 1 - data = length 384, hash 14B525F1 - sample 60: - time = 2368568 - flags = 1 - data = length 384, hash 5E0F4E2E - sample 61: - time = 2392568 - flags = 1 - data = length 384, hash 67EE4E31 - sample 62: - time = 2416568 - flags = 1 - data = length 384, hash 2E04EC4C - sample 63: - time = 2440568 - flags = 1 - data = length 384, hash 852CABA7 - sample 64: - time = 2464568 - flags = 1 - data = length 384, hash 19928903 - sample 65: - time = 2488568 - flags = 1 - data = length 384, hash 5DA42021 - sample 66: - time = 2512568 - flags = 1 - data = length 384, hash 45B20B7C - sample 67: - time = 2536568 - flags = 1 - data = length 384, hash D108A215 - sample 68: - time = 2560568 - flags = 1 - data = length 384, hash BD25DB7C - sample 69: - time = 2584568 - flags = 1 - data = length 384, hash DA7F9861 - sample 70: - time = 2608568 - flags = 1 - data = length 384, hash CCD576F - sample 71: - time = 2632568 - flags = 1 - data = length 384, hash 405C1EB5 - sample 72: - time = 2656568 - flags = 1 - data = length 384, hash 6640B74E - sample 73: - time = 2680568 - flags = 1 - data = length 384, hash B4E5937A - sample 74: - time = 2704568 - flags = 1 - data = length 384, hash CEE17733 - sample 75: - time = 2728568 - flags = 1 - data = length 384, hash 2A0DA733 - sample 76: - time = 2752568 - flags = 1 - data = length 384, hash 97F4129B -tracksEnded = true diff --git a/library/extractor/src/test/assets/mp3/bear-xing-header.mp3.2.dump b/library/extractor/src/test/assets/mp3/bear-xing-header.mp3.2.dump deleted file mode 100644 index 981a141120..0000000000 --- a/library/extractor/src/test/assets/mp3/bear-xing-header.mp3.2.dump +++ /dev/null @@ -1,183 +0,0 @@ -seekMap: - isSeekable = true - duration = 2784000 - getPosition(0) = [[timeUs=0, position=201]] -numberOfTracks = 1 -track 0: - format: - bitrate = -1 - id = null - containerMimeType = null - sampleMimeType = audio/mpeg - maxInputSize = 4096 - width = -1 - height = -1 - frameRate = -1.0 - rotationDegrees = 0 - pixelWidthHeightRatio = 1.0 - channelCount = 2 - sampleRate = 48000 - pcmEncoding = -1 - encoderDelay = 956 - encoderPadding = 3352 - subsampleOffsetUs = 9223372036854775807 - selectionFlags = 0 - language = null - drmInitData = - - metadata = entries=[TSSE: description=null: value=Lavf54.20.4] - initializationData: - total output bytes = 14592 - sample count = 38 - sample 0: - time = 1871586 - flags = 1 - data = length 384, hash E801184A - sample 1: - time = 1895586 - flags = 1 - data = length 384, hash 53C6CF9C - sample 2: - time = 1919586 - flags = 1 - data = length 384, hash 19A8D99F - sample 3: - time = 1943586 - flags = 1 - data = length 384, hash E47EB43F - sample 4: - time = 1967586 - flags = 1 - data = length 384, hash 4EA329E7 - sample 5: - time = 1991586 - flags = 1 - data = length 384, hash 1CCAAE62 - sample 6: - time = 2015586 - flags = 1 - data = length 384, hash ED3F8C66 - sample 7: - time = 2039586 - flags = 1 - data = length 384, hash D3D646B6 - sample 8: - time = 2063586 - flags = 1 - data = length 384, hash 68CD1574 - sample 9: - time = 2087586 - flags = 1 - data = length 384, hash 8CEAB382 - sample 10: - time = 2111586 - flags = 1 - data = length 384, hash D54B1C48 - sample 11: - time = 2135586 - flags = 1 - data = length 384, hash FFE2EE90 - sample 12: - time = 2159586 - flags = 1 - data = length 384, hash BFE8A673 - sample 13: - time = 2183586 - flags = 1 - data = length 384, hash 978B1C92 - sample 14: - time = 2207586 - flags = 1 - data = length 384, hash 810CC71E - sample 15: - time = 2231586 - flags = 1 - data = length 384, hash 44FE42D9 - sample 16: - time = 2255586 - flags = 1 - data = length 384, hash 2F5BB02C - sample 17: - time = 2279586 - flags = 1 - data = length 384, hash 77DDB90 - sample 18: - time = 2303586 - flags = 1 - data = length 384, hash 24FB5EDA - sample 19: - time = 2327586 - flags = 1 - data = length 384, hash E73203C6 - sample 20: - time = 2351586 - flags = 1 - data = length 384, hash 14B525F1 - sample 21: - time = 2375586 - flags = 1 - data = length 384, hash 5E0F4E2E - sample 22: - time = 2399586 - flags = 1 - data = length 384, hash 67EE4E31 - sample 23: - time = 2423586 - flags = 1 - data = length 384, hash 2E04EC4C - sample 24: - time = 2447586 - flags = 1 - data = length 384, hash 852CABA7 - sample 25: - time = 2471586 - flags = 1 - data = length 384, hash 19928903 - sample 26: - time = 2495586 - flags = 1 - data = length 384, hash 5DA42021 - sample 27: - time = 2519586 - flags = 1 - data = length 384, hash 45B20B7C - sample 28: - time = 2543586 - flags = 1 - data = length 384, hash D108A215 - sample 29: - time = 2567586 - flags = 1 - data = length 384, hash BD25DB7C - sample 30: - time = 2591586 - flags = 1 - data = length 384, hash DA7F9861 - sample 31: - time = 2615586 - flags = 1 - data = length 384, hash CCD576F - sample 32: - time = 2639586 - flags = 1 - data = length 384, hash 405C1EB5 - sample 33: - time = 2663586 - flags = 1 - data = length 384, hash 6640B74E - sample 34: - time = 2687586 - flags = 1 - data = length 384, hash B4E5937A - sample 35: - time = 2711586 - flags = 1 - data = length 384, hash CEE17733 - sample 36: - time = 2735586 - flags = 1 - data = length 384, hash 2A0DA733 - sample 37: - time = 2759586 - flags = 1 - data = length 384, hash 97F4129B -tracksEnded = true diff --git a/library/extractor/src/test/java/com/google/android/exoplayer2/extractor/FlacMetadataReaderTest.java b/library/extractor/src/test/java/com/google/android/exoplayer2/extractor/FlacMetadataReaderTest.java index a2c51a39c7..c699e1e2ef 100644 --- a/library/extractor/src/test/java/com/google/android/exoplayer2/extractor/FlacMetadataReaderTest.java +++ b/library/extractor/src/test/java/com/google/android/exoplayer2/extractor/FlacMetadataReaderTest.java @@ -103,7 +103,7 @@ public class FlacMetadataReaderTest { @Test public void checkAndPeekStreamMarker_invalidData_isFalse() throws Exception { - ExtractorInput input = buildExtractorInput("mp3/bear-xing-header.mp3"); + ExtractorInput input = buildExtractorInput("mp3/bear-vbr-xing-header.mp3"); boolean result = FlacMetadataReader.checkAndPeekStreamMarker(input); @@ -163,7 +163,7 @@ public class FlacMetadataReaderTest { @Test public void readStreamMarker_invalidData_throwsException() throws Exception { - ExtractorInput input = buildExtractorInput("mp3/bear-xing-header.mp3"); + ExtractorInput input = buildExtractorInput("mp3/bear-vbr-xing-header.mp3"); assertThrows(ParserException.class, () -> FlacMetadataReader.readStreamMarker(input)); } diff --git a/library/extractor/src/test/java/com/google/android/exoplayer2/extractor/mp3/IndexSeekerTest.java b/library/extractor/src/test/java/com/google/android/exoplayer2/extractor/mp3/IndexSeekerTest.java index 82cfdf4e44..3f0f356aed 100644 --- a/library/extractor/src/test/java/com/google/android/exoplayer2/extractor/mp3/IndexSeekerTest.java +++ b/library/extractor/src/test/java/com/google/android/exoplayer2/extractor/mp3/IndexSeekerTest.java @@ -39,7 +39,7 @@ import org.junit.runner.RunWith; @RunWith(AndroidJUnit4.class) public class IndexSeekerTest { - private static final String TEST_FILE = "mp3/bear-vbr.mp3"; + private static final String TEST_FILE = "mp3/bear-vbr-xing-header.mp3"; private Mp3Extractor extractor; private FakeExtractorOutput extractorOutput; diff --git a/library/extractor/src/test/java/com/google/android/exoplayer2/extractor/mp3/Mp3ExtractorTest.java b/library/extractor/src/test/java/com/google/android/exoplayer2/extractor/mp3/Mp3ExtractorTest.java index ed7484bdb1..a5bedf94d4 100644 --- a/library/extractor/src/test/java/com/google/android/exoplayer2/extractor/mp3/Mp3ExtractorTest.java +++ b/library/extractor/src/test/java/com/google/android/exoplayer2/extractor/mp3/Mp3ExtractorTest.java @@ -26,7 +26,7 @@ public final class Mp3ExtractorTest { @Test public void testMp3SampleWithXingHeader() throws Exception { - ExtractorAsserts.assertBehavior(Mp3Extractor::new, "mp3/bear-xing-header.mp3"); + ExtractorAsserts.assertBehavior(Mp3Extractor::new, "mp3/bear-vbr-xing-header.mp3"); } @Test @@ -38,7 +38,8 @@ public final class Mp3ExtractorTest { @Test public void testMp3SampleWithIndexSeeker() throws Exception { ExtractorAsserts.assertBehavior( - () -> new Mp3Extractor(Mp3Extractor.FLAG_ENABLE_INDEX_SEEKING), "mp3/bear-vbr.mp3"); + () -> new Mp3Extractor(Mp3Extractor.FLAG_ENABLE_INDEX_SEEKING), + "mp3/bear-vbr-no-seek-table.mp3"); } @Test