diff --git a/RELEASENOTES.md b/RELEASENOTES.md index 5e35a9ca8c..1ce272571a 100644 --- a/RELEASENOTES.md +++ b/RELEASENOTES.md @@ -26,6 +26,9 @@ * Add support for transmuxing into alternative backwards compatible formats. * Extractors: + * MP3: Don't stop playback early when a `VBRI` frame's table of contents + doesn't cover all the MP3 data in a file + ([#1904](https://github.com/androidx/media/issues/1904)). * DataSource: * Audio: * Do not bypass `SonicAudioProcessor` when `SpeedChangingAudioProcessor` diff --git a/libraries/exoplayer/src/test/java/androidx/media3/exoplayer/e2etest/Mp3PlaybackTest.java b/libraries/exoplayer/src/test/java/androidx/media3/exoplayer/e2etest/Mp3PlaybackTest.java index d725e7e4f7..374094baa4 100644 --- a/libraries/exoplayer/src/test/java/androidx/media3/exoplayer/e2etest/Mp3PlaybackTest.java +++ b/libraries/exoplayer/src/test/java/androidx/media3/exoplayer/e2etest/Mp3PlaybackTest.java @@ -44,6 +44,7 @@ public final class Mp3PlaybackTest { "bear-id3.mp3", "bear-id3-numeric-genre.mp3", "bear-vbr-no-seek-table.mp3", + "bear-vbr-vbri-header-truncated-toc.mp3", "bear-vbr-xing-header.mp3", "play-trimmed.mp3", "test-cbr-info-header.mp3"); diff --git a/libraries/extractor/src/main/java/androidx/media3/extractor/mp3/VbriSeeker.java b/libraries/extractor/src/main/java/androidx/media3/extractor/mp3/VbriSeeker.java index fa6c07f8cd..56dadf8763 100644 --- a/libraries/extractor/src/main/java/androidx/media3/extractor/mp3/VbriSeeker.java +++ b/libraries/extractor/src/main/java/androidx/media3/extractor/mp3/VbriSeeker.java @@ -15,6 +15,8 @@ */ package androidx.media3.extractor.mp3; +import static java.lang.Math.max; + import androidx.annotation.Nullable; import androidx.media3.common.C; import androidx.media3.common.util.Log; @@ -47,7 +49,9 @@ import androidx.media3.extractor.SeekPoint; long position, MpegAudioUtil.Header mpegAudioHeader, ParsableByteArray frame) { - frame.skipBytes(10); + frame.skipBytes(6); + int bytes = frame.readInt(); + long endOfMp3Data = position + mpegAudioHeader.frameSize + bytes; int numFrames = frame.readInt(); if (numFrames <= 0) { return null; @@ -87,11 +91,21 @@ import androidx.media3.extractor.SeekPoint; } position += segmentSize * ((long) scale); } - if (inputLength != C.LENGTH_UNSET && inputLength != position) { - Log.w(TAG, "VBRI data size mismatch: " + inputLength + ", " + position); + if (inputLength != C.LENGTH_UNSET && inputLength != endOfMp3Data) { + Log.w(TAG, "VBRI data size mismatch: " + inputLength + ", " + endOfMp3Data); } - return new VbriSeeker( - timesUs, positions, durationUs, /* dataEndPosition= */ position, mpegAudioHeader.bitrate); + if (endOfMp3Data != position) { + Log.w( + TAG, + "VBRI bytes and ToC mismatch (using max): " + + endOfMp3Data + + ", " + + position + + "\nSeeking will be inaccurate."); + endOfMp3Data = max(endOfMp3Data, position); + } + + return new VbriSeeker(timesUs, positions, durationUs, endOfMp3Data, mpegAudioHeader.bitrate); } private final long[] timesUs; 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 87cc1fffa9..b0eeca53cd 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 @@ -77,6 +77,13 @@ public final class Mp3ExtractorTest { Mp3Extractor::new, "media/mp3/bear-vbr-vbri-header.mp3", simulationConfig); } + // https://github.com/androidx/media/issues/1904 + @Test + public void mp3SampleWithVbriHeaderWithTruncatedToC() throws Exception { + ExtractorAsserts.assertBehavior( + Mp3Extractor::new, "media/mp3/bear-vbr-vbri-header-truncated-toc.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-truncated-toc.mp3.0.dump b/libraries/test_data/src/test/assets/extractordumps/mp3/bear-vbr-vbri-header-truncated-toc.mp3.0.dump new file mode 100644 index 0000000000..eef73c01f2 --- /dev/null +++ b/libraries/test_data/src/test/assets/extractordumps/mp3/bear-vbr-vbri-header-truncated-toc.mp3.0.dump @@ -0,0 +1,489 @@ +seekMap: + isSeekable = true + duration = 2808000 + getPosition(0) = [[timeUs=0, position=141]] + getPosition(1) = [[timeUs=0, position=141], [timeUs=1404000, position=10413]] + getPosition(1404000) = [[timeUs=1404000, position=10413]] + getPosition(2808000) = [[timeUs=1404000, position=10413]] +numberOfTracks = 1 +track 0: + total output bytes = 38160 + sample count = 117 + 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 + 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-vbri-header-truncated-toc.mp3.1.dump b/libraries/test_data/src/test/assets/extractordumps/mp3/bear-vbr-vbri-header-truncated-toc.mp3.1.dump new file mode 100644 index 0000000000..eef73c01f2 --- /dev/null +++ b/libraries/test_data/src/test/assets/extractordumps/mp3/bear-vbr-vbri-header-truncated-toc.mp3.1.dump @@ -0,0 +1,489 @@ +seekMap: + isSeekable = true + duration = 2808000 + getPosition(0) = [[timeUs=0, position=141]] + getPosition(1) = [[timeUs=0, position=141], [timeUs=1404000, position=10413]] + getPosition(1404000) = [[timeUs=1404000, position=10413]] + getPosition(2808000) = [[timeUs=1404000, position=10413]] +numberOfTracks = 1 +track 0: + total output bytes = 38160 + sample count = 117 + 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 + 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-vbri-header-truncated-toc.mp3.2.dump b/libraries/test_data/src/test/assets/extractordumps/mp3/bear-vbr-vbri-header-truncated-toc.mp3.2.dump new file mode 100644 index 0000000000..e35fb7f541 --- /dev/null +++ b/libraries/test_data/src/test/assets/extractordumps/mp3/bear-vbr-vbri-header-truncated-toc.mp3.2.dump @@ -0,0 +1,373 @@ +seekMap: + isSeekable = true + duration = 2808000 + getPosition(0) = [[timeUs=0, position=141]] + getPosition(1) = [[timeUs=0, position=141], [timeUs=1404000, position=10413]] + getPosition(1404000) = [[timeUs=1404000, position=10413]] + getPosition(2808000) = [[timeUs=1404000, position=10413]] +numberOfTracks = 1 +track 0: + total output bytes = 27888 + sample count = 88 + 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 8C435F6A + sample 1: + time = 1428000 + flags = 1 + data = length 336, hash 60D3F80C + sample 2: + time = 1452000 + flags = 1 + data = length 336, hash DC15B68B + sample 3: + time = 1476000 + flags = 1 + data = length 288, hash FF3DF141 + sample 4: + time = 1500000 + flags = 1 + data = length 336, hash A64B3042 + sample 5: + time = 1524000 + flags = 1 + data = length 336, hash ACA622A1 + sample 6: + time = 1548000 + flags = 1 + data = length 288, hash 3E34B8D4 + sample 7: + time = 1572000 + flags = 1 + data = length 288, hash 9B96F72A + sample 8: + time = 1596000 + flags = 1 + data = length 336, hash E917C122 + sample 9: + time = 1620000 + flags = 1 + data = length 336, hash 10ED1470 + sample 10: + time = 1644000 + flags = 1 + data = length 288, hash 706B8A7C + sample 11: + time = 1668000 + flags = 1 + data = length 336, hash 71FFE4A0 + sample 12: + time = 1692000 + flags = 1 + data = length 336, hash D4160463 + sample 13: + time = 1716000 + flags = 1 + data = length 336, hash EC557B14 + sample 14: + time = 1740000 + flags = 1 + data = length 288, hash 5598CF8B + sample 15: + time = 1764000 + flags = 1 + data = length 336, hash 7E0AB41 + sample 16: + time = 1788000 + flags = 1 + data = length 336, hash 1C585FEF + sample 17: + time = 1812000 + flags = 1 + data = length 336, hash A4A4855E + sample 18: + time = 1836000 + flags = 1 + data = length 336, hash CECA51D3 + sample 19: + time = 1860000 + flags = 1 + data = length 288, hash 2D362DC5 + sample 20: + time = 1884000 + flags = 1 + data = length 336, hash 9EB2609D + sample 21: + time = 1908000 + flags = 1 + data = length 336, hash 28FFB3FE + sample 22: + time = 1932000 + flags = 1 + data = length 288, hash 2AA2D216 + sample 23: + time = 1956000 + flags = 1 + data = length 336, hash CDBC7032 + sample 24: + time = 1980000 + flags = 1 + data = length 336, hash 25B13FE7 + sample 25: + time = 2004000 + flags = 1 + data = length 336, hash DB6BB1E + sample 26: + time = 2028000 + flags = 1 + data = length 336, hash EBE951F4 + sample 27: + time = 2052000 + flags = 1 + data = length 288, hash 9E2EBFF7 + sample 28: + time = 2076000 + flags = 1 + data = length 336, hash 36A7D455 + sample 29: + time = 2100000 + flags = 1 + data = length 336, hash 84545F8C + sample 30: + time = 2124000 + flags = 1 + data = length 336, hash F66F3045 + sample 31: + time = 2148000 + flags = 1 + data = length 576, hash 5AB089EA + sample 32: + time = 2172000 + flags = 1 + data = length 336, hash 8868086 + sample 33: + time = 2196000 + flags = 1 + data = length 336, hash D5EB6D63 + sample 34: + time = 2220000 + flags = 1 + data = length 288, hash 7A5374B7 + sample 35: + time = 2244000 + flags = 1 + data = length 336, hash BEB27A75 + sample 36: + time = 2268000 + flags = 1 + data = length 336, hash E251E0FD + sample 37: + time = 2292000 + flags = 1 + data = length 288, hash D54C970 + sample 38: + time = 2316000 + flags = 1 + data = length 336, hash 52C473B9 + sample 39: + time = 2340000 + flags = 1 + data = length 336, hash F5F13334 + sample 40: + time = 2364000 + flags = 1 + data = length 480, hash A5F1E987 + sample 41: + time = 2388000 + flags = 1 + data = length 288, hash 453A1267 + sample 42: + time = 2412000 + flags = 1 + data = length 288, hash 7C6C2EA9 + sample 43: + time = 2436000 + flags = 1 + data = length 336, hash F4BFECA4 + sample 44: + time = 2460000 + flags = 1 + data = length 336, hash 751A395A + sample 45: + time = 2484000 + flags = 1 + data = length 336, hash EE38DB02 + sample 46: + time = 2508000 + flags = 1 + data = length 336, hash F18837E2 + sample 47: + time = 2532000 + flags = 1 + data = length 336, hash ED36B78E + sample 48: + time = 2556000 + flags = 1 + data = length 336, hash B3D28289 + sample 49: + time = 2580000 + flags = 1 + data = length 288, hash 8BDE28E1 + sample 50: + time = 2604000 + flags = 1 + data = length 336, hash CFD5E966 + sample 51: + time = 2628000 + flags = 1 + data = length 288, hash DC08E267 + sample 52: + time = 2652000 + flags = 1 + data = length 336, hash 6530CB78 + sample 53: + time = 2676000 + flags = 1 + data = length 336, hash 6CC6636E + sample 54: + time = 2700000 + flags = 1 + data = length 336, hash 613047C1 + sample 55: + time = 2724000 + flags = 1 + data = length 288, hash CDC747BF + sample 56: + time = 2748000 + flags = 1 + data = length 336, hash AF22AA74 + sample 57: + time = 2772000 + flags = 1 + data = length 384, hash 82F326AA + sample 58: + time = 2796000 + flags = 1 + data = length 384, hash EDA26C4D + sample 59: + time = 2820000 + flags = 1 + data = length 336, hash 94C643DC + sample 60: + time = 2844000 + flags = 1 + data = length 288, hash CB5D9C40 + sample 61: + time = 2868000 + flags = 1 + data = length 336, hash 1E69DE3F + sample 62: + time = 2892000 + flags = 1 + data = length 336, hash 7E472219 + sample 63: + time = 2916000 + flags = 1 + data = length 336, hash DA47B9FA + sample 64: + time = 2940000 + flags = 1 + data = length 336, hash DD0ABB7C + sample 65: + time = 2964000 + flags = 1 + data = length 288, hash DBF93FAC + sample 66: + time = 2988000 + flags = 1 + data = length 336, hash 243F4B2 + sample 67: + time = 3012000 + flags = 1 + data = length 336, hash 2E881490 + sample 68: + time = 3036000 + flags = 1 + data = length 288, hash 1C28C8BE + sample 69: + time = 3060000 + flags = 1 + data = length 336, hash C73E5D30 + sample 70: + time = 3084000 + flags = 1 + data = length 288, hash 98B5BFF6 + sample 71: + time = 3108000 + flags = 1 + data = length 336, hash E0135533 + sample 72: + time = 3132000 + flags = 1 + data = length 336, hash D13C9DBC + sample 73: + time = 3156000 + flags = 1 + data = length 336, hash 63D524CA + sample 74: + time = 3180000 + flags = 1 + data = length 288, hash A28514C3 + sample 75: + time = 3204000 + flags = 1 + data = length 336, hash 72B647FF + sample 76: + time = 3228000 + flags = 1 + data = length 336, hash 8F740AB1 + sample 77: + time = 3252000 + flags = 1 + data = length 336, hash 5E3C7E93 + sample 78: + time = 3276000 + flags = 1 + data = length 336, hash 121B913B + sample 79: + time = 3300000 + flags = 1 + data = length 336, hash 578FCCF2 + sample 80: + time = 3324000 + flags = 1 + data = length 336, hash 5B5823DE + sample 81: + time = 3348000 + flags = 1 + data = length 384, hash D8B83F78 + sample 82: + time = 3372000 + flags = 1 + data = length 240, hash E649682F + sample 83: + time = 3396000 + flags = 1 + data = length 96, hash C559A6F4 + sample 84: + time = 3420000 + flags = 1 + data = length 96, hash 792796BC + sample 85: + time = 3444000 + flags = 1 + data = length 120, hash 8172CD0E + sample 86: + time = 3468000 + flags = 1 + data = length 120, hash F562B52F + sample 87: + time = 3492000 + flags = 1 + data = length 96, hash FF8D5B98 +tracksEnded = true diff --git a/libraries/test_data/src/test/assets/extractordumps/mp3/bear-vbr-vbri-header-truncated-toc.mp3.3.dump b/libraries/test_data/src/test/assets/extractordumps/mp3/bear-vbr-vbri-header-truncated-toc.mp3.3.dump new file mode 100644 index 0000000000..e35fb7f541 --- /dev/null +++ b/libraries/test_data/src/test/assets/extractordumps/mp3/bear-vbr-vbri-header-truncated-toc.mp3.3.dump @@ -0,0 +1,373 @@ +seekMap: + isSeekable = true + duration = 2808000 + getPosition(0) = [[timeUs=0, position=141]] + getPosition(1) = [[timeUs=0, position=141], [timeUs=1404000, position=10413]] + getPosition(1404000) = [[timeUs=1404000, position=10413]] + getPosition(2808000) = [[timeUs=1404000, position=10413]] +numberOfTracks = 1 +track 0: + total output bytes = 27888 + sample count = 88 + 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 8C435F6A + sample 1: + time = 1428000 + flags = 1 + data = length 336, hash 60D3F80C + sample 2: + time = 1452000 + flags = 1 + data = length 336, hash DC15B68B + sample 3: + time = 1476000 + flags = 1 + data = length 288, hash FF3DF141 + sample 4: + time = 1500000 + flags = 1 + data = length 336, hash A64B3042 + sample 5: + time = 1524000 + flags = 1 + data = length 336, hash ACA622A1 + sample 6: + time = 1548000 + flags = 1 + data = length 288, hash 3E34B8D4 + sample 7: + time = 1572000 + flags = 1 + data = length 288, hash 9B96F72A + sample 8: + time = 1596000 + flags = 1 + data = length 336, hash E917C122 + sample 9: + time = 1620000 + flags = 1 + data = length 336, hash 10ED1470 + sample 10: + time = 1644000 + flags = 1 + data = length 288, hash 706B8A7C + sample 11: + time = 1668000 + flags = 1 + data = length 336, hash 71FFE4A0 + sample 12: + time = 1692000 + flags = 1 + data = length 336, hash D4160463 + sample 13: + time = 1716000 + flags = 1 + data = length 336, hash EC557B14 + sample 14: + time = 1740000 + flags = 1 + data = length 288, hash 5598CF8B + sample 15: + time = 1764000 + flags = 1 + data = length 336, hash 7E0AB41 + sample 16: + time = 1788000 + flags = 1 + data = length 336, hash 1C585FEF + sample 17: + time = 1812000 + flags = 1 + data = length 336, hash A4A4855E + sample 18: + time = 1836000 + flags = 1 + data = length 336, hash CECA51D3 + sample 19: + time = 1860000 + flags = 1 + data = length 288, hash 2D362DC5 + sample 20: + time = 1884000 + flags = 1 + data = length 336, hash 9EB2609D + sample 21: + time = 1908000 + flags = 1 + data = length 336, hash 28FFB3FE + sample 22: + time = 1932000 + flags = 1 + data = length 288, hash 2AA2D216 + sample 23: + time = 1956000 + flags = 1 + data = length 336, hash CDBC7032 + sample 24: + time = 1980000 + flags = 1 + data = length 336, hash 25B13FE7 + sample 25: + time = 2004000 + flags = 1 + data = length 336, hash DB6BB1E + sample 26: + time = 2028000 + flags = 1 + data = length 336, hash EBE951F4 + sample 27: + time = 2052000 + flags = 1 + data = length 288, hash 9E2EBFF7 + sample 28: + time = 2076000 + flags = 1 + data = length 336, hash 36A7D455 + sample 29: + time = 2100000 + flags = 1 + data = length 336, hash 84545F8C + sample 30: + time = 2124000 + flags = 1 + data = length 336, hash F66F3045 + sample 31: + time = 2148000 + flags = 1 + data = length 576, hash 5AB089EA + sample 32: + time = 2172000 + flags = 1 + data = length 336, hash 8868086 + sample 33: + time = 2196000 + flags = 1 + data = length 336, hash D5EB6D63 + sample 34: + time = 2220000 + flags = 1 + data = length 288, hash 7A5374B7 + sample 35: + time = 2244000 + flags = 1 + data = length 336, hash BEB27A75 + sample 36: + time = 2268000 + flags = 1 + data = length 336, hash E251E0FD + sample 37: + time = 2292000 + flags = 1 + data = length 288, hash D54C970 + sample 38: + time = 2316000 + flags = 1 + data = length 336, hash 52C473B9 + sample 39: + time = 2340000 + flags = 1 + data = length 336, hash F5F13334 + sample 40: + time = 2364000 + flags = 1 + data = length 480, hash A5F1E987 + sample 41: + time = 2388000 + flags = 1 + data = length 288, hash 453A1267 + sample 42: + time = 2412000 + flags = 1 + data = length 288, hash 7C6C2EA9 + sample 43: + time = 2436000 + flags = 1 + data = length 336, hash F4BFECA4 + sample 44: + time = 2460000 + flags = 1 + data = length 336, hash 751A395A + sample 45: + time = 2484000 + flags = 1 + data = length 336, hash EE38DB02 + sample 46: + time = 2508000 + flags = 1 + data = length 336, hash F18837E2 + sample 47: + time = 2532000 + flags = 1 + data = length 336, hash ED36B78E + sample 48: + time = 2556000 + flags = 1 + data = length 336, hash B3D28289 + sample 49: + time = 2580000 + flags = 1 + data = length 288, hash 8BDE28E1 + sample 50: + time = 2604000 + flags = 1 + data = length 336, hash CFD5E966 + sample 51: + time = 2628000 + flags = 1 + data = length 288, hash DC08E267 + sample 52: + time = 2652000 + flags = 1 + data = length 336, hash 6530CB78 + sample 53: + time = 2676000 + flags = 1 + data = length 336, hash 6CC6636E + sample 54: + time = 2700000 + flags = 1 + data = length 336, hash 613047C1 + sample 55: + time = 2724000 + flags = 1 + data = length 288, hash CDC747BF + sample 56: + time = 2748000 + flags = 1 + data = length 336, hash AF22AA74 + sample 57: + time = 2772000 + flags = 1 + data = length 384, hash 82F326AA + sample 58: + time = 2796000 + flags = 1 + data = length 384, hash EDA26C4D + sample 59: + time = 2820000 + flags = 1 + data = length 336, hash 94C643DC + sample 60: + time = 2844000 + flags = 1 + data = length 288, hash CB5D9C40 + sample 61: + time = 2868000 + flags = 1 + data = length 336, hash 1E69DE3F + sample 62: + time = 2892000 + flags = 1 + data = length 336, hash 7E472219 + sample 63: + time = 2916000 + flags = 1 + data = length 336, hash DA47B9FA + sample 64: + time = 2940000 + flags = 1 + data = length 336, hash DD0ABB7C + sample 65: + time = 2964000 + flags = 1 + data = length 288, hash DBF93FAC + sample 66: + time = 2988000 + flags = 1 + data = length 336, hash 243F4B2 + sample 67: + time = 3012000 + flags = 1 + data = length 336, hash 2E881490 + sample 68: + time = 3036000 + flags = 1 + data = length 288, hash 1C28C8BE + sample 69: + time = 3060000 + flags = 1 + data = length 336, hash C73E5D30 + sample 70: + time = 3084000 + flags = 1 + data = length 288, hash 98B5BFF6 + sample 71: + time = 3108000 + flags = 1 + data = length 336, hash E0135533 + sample 72: + time = 3132000 + flags = 1 + data = length 336, hash D13C9DBC + sample 73: + time = 3156000 + flags = 1 + data = length 336, hash 63D524CA + sample 74: + time = 3180000 + flags = 1 + data = length 288, hash A28514C3 + sample 75: + time = 3204000 + flags = 1 + data = length 336, hash 72B647FF + sample 76: + time = 3228000 + flags = 1 + data = length 336, hash 8F740AB1 + sample 77: + time = 3252000 + flags = 1 + data = length 336, hash 5E3C7E93 + sample 78: + time = 3276000 + flags = 1 + data = length 336, hash 121B913B + sample 79: + time = 3300000 + flags = 1 + data = length 336, hash 578FCCF2 + sample 80: + time = 3324000 + flags = 1 + data = length 336, hash 5B5823DE + sample 81: + time = 3348000 + flags = 1 + data = length 384, hash D8B83F78 + sample 82: + time = 3372000 + flags = 1 + data = length 240, hash E649682F + sample 83: + time = 3396000 + flags = 1 + data = length 96, hash C559A6F4 + sample 84: + time = 3420000 + flags = 1 + data = length 96, hash 792796BC + sample 85: + time = 3444000 + flags = 1 + data = length 120, hash 8172CD0E + sample 86: + time = 3468000 + flags = 1 + data = length 120, hash F562B52F + sample 87: + time = 3492000 + flags = 1 + data = length 96, hash FF8D5B98 +tracksEnded = true diff --git a/libraries/test_data/src/test/assets/extractordumps/mp3/bear-vbr-vbri-header-truncated-toc.mp3.unknown_length.dump b/libraries/test_data/src/test/assets/extractordumps/mp3/bear-vbr-vbri-header-truncated-toc.mp3.unknown_length.dump new file mode 100644 index 0000000000..eef73c01f2 --- /dev/null +++ b/libraries/test_data/src/test/assets/extractordumps/mp3/bear-vbr-vbri-header-truncated-toc.mp3.unknown_length.dump @@ -0,0 +1,489 @@ +seekMap: + isSeekable = true + duration = 2808000 + getPosition(0) = [[timeUs=0, position=141]] + getPosition(1) = [[timeUs=0, position=141], [timeUs=1404000, position=10413]] + getPosition(1404000) = [[timeUs=1404000, position=10413]] + getPosition(2808000) = [[timeUs=1404000, position=10413]] +numberOfTracks = 1 +track 0: + total output bytes = 38160 + sample count = 117 + 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 + sample 116: + time = 2784000 + flags = 1 + data = length 96, hash FF8D5B98 +tracksEnded = true diff --git a/libraries/test_data/src/test/assets/media/mp3/bear-vbr-vbri-header-truncated-toc.mp3 b/libraries/test_data/src/test/assets/media/mp3/bear-vbr-vbri-header-truncated-toc.mp3 new file mode 100644 index 0000000000..c108e9696c Binary files /dev/null and b/libraries/test_data/src/test/assets/media/mp3/bear-vbr-vbri-header-truncated-toc.mp3 differ diff --git a/libraries/test_data/src/test/assets/playbackdumps/mp3/bear-vbr-vbri-header-truncated-toc.mp3.dump b/libraries/test_data/src/test/assets/playbackdumps/mp3/bear-vbr-vbri-header-truncated-toc.mp3.dump new file mode 100644 index 0000000000..718b553e80 --- /dev/null +++ b/libraries/test_data/src/test/assets/playbackdumps/mp3/bear-vbr-vbri-header-truncated-toc.mp3.dump @@ -0,0 +1,1185 @@ +MediaCodecAdapter (exotest.audio.mpeg): + inputBuffers: + count = 118 + input buffer #0: + timeUs = 1000000000000 + contents = length 96, hash 1F161542 + input buffer #1: + timeUs = 1000000024000 + contents = length 768, hash CD1DC50F + input buffer #2: + timeUs = 1000000048000 + contents = length 336, hash 3F64124B + input buffer #3: + timeUs = 1000000072000 + contents = length 336, hash 8FFED94E + input buffer #4: + timeUs = 1000000096000 + contents = length 288, hash 9CD77D47 + input buffer #5: + timeUs = 1000000120000 + contents = length 384, hash 24607BB5 + input buffer #6: + timeUs = 1000000144000 + contents = length 480, hash 4937EBAB + input buffer #7: + timeUs = 1000000168000 + contents = length 336, hash 546342B1 + input buffer #8: + timeUs = 1000000192000 + contents = length 336, hash 79E0923F + input buffer #9: + timeUs = 1000000216000 + contents = length 336, hash AB1F3948 + input buffer #10: + timeUs = 1000000240000 + contents = length 336, hash C3A4D888 + input buffer #11: + timeUs = 1000000264000 + contents = length 288, hash 7867DA45 + input buffer #12: + timeUs = 1000000288000 + contents = length 336, hash B1240B73 + input buffer #13: + timeUs = 1000000312000 + contents = length 336, hash 94CFCD35 + input buffer #14: + timeUs = 1000000336000 + contents = length 288, hash 94F412C + input buffer #15: + timeUs = 1000000360000 + contents = length 336, hash A1D9FF41 + input buffer #16: + timeUs = 1000000384000 + contents = length 288, hash 2A8DA21B + input buffer #17: + timeUs = 1000000408000 + contents = length 336, hash 6A429CE + input buffer #18: + timeUs = 1000000432000 + contents = length 336, hash 68853982 + input buffer #19: + timeUs = 1000000456000 + contents = length 384, hash 1D6F779C + input buffer #20: + timeUs = 1000000480000 + contents = length 480, hash 6B31EBEE + input buffer #21: + timeUs = 1000000504000 + contents = length 336, hash 888335BE + input buffer #22: + timeUs = 1000000528000 + contents = length 336, hash 6072AC8B + input buffer #23: + timeUs = 1000000552000 + contents = length 336, hash C9D24234 + input buffer #24: + timeUs = 1000000576000 + contents = length 288, hash 52BF4D1E + input buffer #25: + timeUs = 1000000600000 + contents = length 336, hash F93F4F0 + input buffer #26: + timeUs = 1000000624000 + contents = length 336, hash 8617688A + input buffer #27: + timeUs = 1000000648000 + contents = length 480, hash FAB0D31B + input buffer #28: + timeUs = 1000000672000 + contents = length 384, hash FA4B53E2 + input buffer #29: + timeUs = 1000000696000 + contents = length 336, hash 8C435F6A + input buffer #30: + timeUs = 1000000720000 + contents = length 336, hash 60D3F80C + input buffer #31: + timeUs = 1000000744000 + contents = length 336, hash DC15B68B + input buffer #32: + timeUs = 1000000768000 + contents = length 288, hash FF3DF141 + input buffer #33: + timeUs = 1000000792000 + contents = length 336, hash A64B3042 + input buffer #34: + timeUs = 1000000816000 + contents = length 336, hash ACA622A1 + input buffer #35: + timeUs = 1000000840000 + contents = length 288, hash 3E34B8D4 + input buffer #36: + timeUs = 1000000864000 + contents = length 288, hash 9B96F72A + input buffer #37: + timeUs = 1000000888000 + contents = length 336, hash E917C122 + input buffer #38: + timeUs = 1000000912000 + contents = length 336, hash 10ED1470 + input buffer #39: + timeUs = 1000000936000 + contents = length 288, hash 706B8A7C + input buffer #40: + timeUs = 1000000960000 + contents = length 336, hash 71FFE4A0 + input buffer #41: + timeUs = 1000000984000 + contents = length 336, hash D4160463 + input buffer #42: + timeUs = 1000001008000 + contents = length 336, hash EC557B14 + input buffer #43: + timeUs = 1000001032000 + contents = length 288, hash 5598CF8B + input buffer #44: + timeUs = 1000001056000 + contents = length 336, hash 7E0AB41 + input buffer #45: + timeUs = 1000001080000 + contents = length 336, hash 1C585FEF + input buffer #46: + timeUs = 1000001104000 + contents = length 336, hash A4A4855E + input buffer #47: + timeUs = 1000001128000 + contents = length 336, hash CECA51D3 + input buffer #48: + timeUs = 1000001152000 + contents = length 288, hash 2D362DC5 + input buffer #49: + timeUs = 1000001176000 + contents = length 336, hash 9EB2609D + input buffer #50: + timeUs = 1000001200000 + contents = length 336, hash 28FFB3FE + input buffer #51: + timeUs = 1000001224000 + contents = length 288, hash 2AA2D216 + input buffer #52: + timeUs = 1000001248000 + contents = length 336, hash CDBC7032 + input buffer #53: + timeUs = 1000001272000 + contents = length 336, hash 25B13FE7 + input buffer #54: + timeUs = 1000001296000 + contents = length 336, hash DB6BB1E + input buffer #55: + timeUs = 1000001320000 + contents = length 336, hash EBE951F4 + input buffer #56: + timeUs = 1000001344000 + contents = length 288, hash 9E2EBFF7 + input buffer #57: + timeUs = 1000001368000 + contents = length 336, hash 36A7D455 + input buffer #58: + timeUs = 1000001392000 + contents = length 336, hash 84545F8C + input buffer #59: + timeUs = 1000001416000 + contents = length 336, hash F66F3045 + input buffer #60: + timeUs = 1000001440000 + contents = length 576, hash 5AB089EA + input buffer #61: + timeUs = 1000001464000 + contents = length 336, hash 8868086 + input buffer #62: + timeUs = 1000001488000 + contents = length 336, hash D5EB6D63 + input buffer #63: + timeUs = 1000001512000 + contents = length 288, hash 7A5374B7 + input buffer #64: + timeUs = 1000001536000 + contents = length 336, hash BEB27A75 + input buffer #65: + timeUs = 1000001560000 + contents = length 336, hash E251E0FD + input buffer #66: + timeUs = 1000001584000 + contents = length 288, hash D54C970 + input buffer #67: + timeUs = 1000001608000 + contents = length 336, hash 52C473B9 + input buffer #68: + timeUs = 1000001632000 + contents = length 336, hash F5F13334 + input buffer #69: + timeUs = 1000001656000 + contents = length 480, hash A5F1E987 + input buffer #70: + timeUs = 1000001680000 + contents = length 288, hash 453A1267 + input buffer #71: + timeUs = 1000001704000 + contents = length 288, hash 7C6C2EA9 + input buffer #72: + timeUs = 1000001728000 + contents = length 336, hash F4BFECA4 + input buffer #73: + timeUs = 1000001752000 + contents = length 336, hash 751A395A + input buffer #74: + timeUs = 1000001776000 + contents = length 336, hash EE38DB02 + input buffer #75: + timeUs = 1000001800000 + contents = length 336, hash F18837E2 + input buffer #76: + timeUs = 1000001824000 + contents = length 336, hash ED36B78E + input buffer #77: + timeUs = 1000001848000 + contents = length 336, hash B3D28289 + input buffer #78: + timeUs = 1000001872000 + contents = length 288, hash 8BDE28E1 + input buffer #79: + timeUs = 1000001896000 + contents = length 336, hash CFD5E966 + input buffer #80: + timeUs = 1000001920000 + contents = length 288, hash DC08E267 + input buffer #81: + timeUs = 1000001944000 + contents = length 336, hash 6530CB78 + input buffer #82: + timeUs = 1000001968000 + contents = length 336, hash 6CC6636E + input buffer #83: + timeUs = 1000001992000 + contents = length 336, hash 613047C1 + input buffer #84: + timeUs = 1000002016000 + contents = length 288, hash CDC747BF + input buffer #85: + timeUs = 1000002040000 + contents = length 336, hash AF22AA74 + input buffer #86: + timeUs = 1000002064000 + contents = length 384, hash 82F326AA + input buffer #87: + timeUs = 1000002088000 + contents = length 384, hash EDA26C4D + input buffer #88: + timeUs = 1000002112000 + contents = length 336, hash 94C643DC + input buffer #89: + timeUs = 1000002136000 + contents = length 288, hash CB5D9C40 + input buffer #90: + timeUs = 1000002160000 + contents = length 336, hash 1E69DE3F + input buffer #91: + timeUs = 1000002184000 + contents = length 336, hash 7E472219 + input buffer #92: + timeUs = 1000002208000 + contents = length 336, hash DA47B9FA + input buffer #93: + timeUs = 1000002232000 + contents = length 336, hash DD0ABB7C + input buffer #94: + timeUs = 1000002256000 + contents = length 288, hash DBF93FAC + input buffer #95: + timeUs = 1000002280000 + contents = length 336, hash 243F4B2 + input buffer #96: + timeUs = 1000002304000 + contents = length 336, hash 2E881490 + input buffer #97: + timeUs = 1000002328000 + contents = length 288, hash 1C28C8BE + input buffer #98: + timeUs = 1000002352000 + contents = length 336, hash C73E5D30 + input buffer #99: + timeUs = 1000002376000 + contents = length 288, hash 98B5BFF6 + input buffer #100: + timeUs = 1000002400000 + contents = length 336, hash E0135533 + input buffer #101: + timeUs = 1000002424000 + contents = length 336, hash D13C9DBC + input buffer #102: + timeUs = 1000002448000 + contents = length 336, hash 63D524CA + input buffer #103: + timeUs = 1000002472000 + contents = length 288, hash A28514C3 + input buffer #104: + timeUs = 1000002496000 + contents = length 336, hash 72B647FF + input buffer #105: + timeUs = 1000002520000 + contents = length 336, hash 8F740AB1 + input buffer #106: + timeUs = 1000002544000 + contents = length 336, hash 5E3C7E93 + input buffer #107: + timeUs = 1000002568000 + contents = length 336, hash 121B913B + input buffer #108: + timeUs = 1000002592000 + contents = length 336, hash 578FCCF2 + input buffer #109: + timeUs = 1000002616000 + contents = length 336, hash 5B5823DE + input buffer #110: + timeUs = 1000002640000 + contents = length 384, hash D8B83F78 + input buffer #111: + timeUs = 1000002664000 + contents = length 240, hash E649682F + input buffer #112: + timeUs = 1000002688000 + contents = length 96, hash C559A6F4 + input buffer #113: + timeUs = 1000002712000 + contents = length 96, hash 792796BC + input buffer #114: + timeUs = 1000002736000 + contents = length 120, hash 8172CD0E + input buffer #115: + timeUs = 1000002760000 + contents = length 120, hash F562B52F + input buffer #116: + timeUs = 1000002784000 + contents = length 96, hash FF8D5B98 + input buffer #117: + timeUs = 0 + flags = 4 + contents = length 0, hash 1 + outputBuffers: + count = 117 + output buffer #0: + timeUs = 1000000000000 + size = 0 + rendered = false + output buffer #1: + timeUs = 1000000024000 + size = 0 + rendered = false + output buffer #2: + timeUs = 1000000048000 + size = 0 + rendered = false + output buffer #3: + timeUs = 1000000072000 + size = 0 + rendered = false + output buffer #4: + timeUs = 1000000096000 + size = 0 + rendered = false + output buffer #5: + timeUs = 1000000120000 + size = 0 + rendered = false + output buffer #6: + timeUs = 1000000144000 + size = 0 + rendered = false + output buffer #7: + timeUs = 1000000168000 + size = 0 + rendered = false + output buffer #8: + timeUs = 1000000192000 + size = 0 + rendered = false + output buffer #9: + timeUs = 1000000216000 + size = 0 + rendered = false + output buffer #10: + timeUs = 1000000240000 + size = 0 + rendered = false + output buffer #11: + timeUs = 1000000264000 + size = 0 + rendered = false + output buffer #12: + timeUs = 1000000288000 + size = 0 + rendered = false + output buffer #13: + timeUs = 1000000312000 + size = 0 + rendered = false + output buffer #14: + timeUs = 1000000336000 + size = 0 + rendered = false + output buffer #15: + timeUs = 1000000360000 + size = 0 + rendered = false + output buffer #16: + timeUs = 1000000384000 + size = 0 + rendered = false + output buffer #17: + timeUs = 1000000408000 + size = 0 + rendered = false + output buffer #18: + timeUs = 1000000432000 + size = 0 + rendered = false + output buffer #19: + timeUs = 1000000456000 + size = 0 + rendered = false + output buffer #20: + timeUs = 1000000480000 + size = 0 + rendered = false + output buffer #21: + timeUs = 1000000504000 + size = 0 + rendered = false + output buffer #22: + timeUs = 1000000528000 + size = 0 + rendered = false + output buffer #23: + timeUs = 1000000552000 + size = 0 + rendered = false + output buffer #24: + timeUs = 1000000576000 + size = 0 + rendered = false + output buffer #25: + timeUs = 1000000600000 + size = 0 + rendered = false + output buffer #26: + timeUs = 1000000624000 + size = 0 + rendered = false + output buffer #27: + timeUs = 1000000648000 + size = 0 + rendered = false + output buffer #28: + timeUs = 1000000672000 + size = 0 + rendered = false + output buffer #29: + timeUs = 1000000696000 + size = 0 + rendered = false + output buffer #30: + timeUs = 1000000720000 + size = 0 + rendered = false + output buffer #31: + timeUs = 1000000744000 + size = 0 + rendered = false + output buffer #32: + timeUs = 1000000768000 + size = 0 + rendered = false + output buffer #33: + timeUs = 1000000792000 + size = 0 + rendered = false + output buffer #34: + timeUs = 1000000816000 + size = 0 + rendered = false + output buffer #35: + timeUs = 1000000840000 + size = 0 + rendered = false + output buffer #36: + timeUs = 1000000864000 + size = 0 + rendered = false + output buffer #37: + timeUs = 1000000888000 + size = 0 + rendered = false + output buffer #38: + timeUs = 1000000912000 + size = 0 + rendered = false + output buffer #39: + timeUs = 1000000936000 + size = 0 + rendered = false + output buffer #40: + timeUs = 1000000960000 + size = 0 + rendered = false + output buffer #41: + timeUs = 1000000984000 + size = 0 + rendered = false + output buffer #42: + timeUs = 1000001008000 + size = 0 + rendered = false + output buffer #43: + timeUs = 1000001032000 + size = 0 + rendered = false + output buffer #44: + timeUs = 1000001056000 + size = 0 + rendered = false + output buffer #45: + timeUs = 1000001080000 + size = 0 + rendered = false + output buffer #46: + timeUs = 1000001104000 + size = 0 + rendered = false + output buffer #47: + timeUs = 1000001128000 + size = 0 + rendered = false + output buffer #48: + timeUs = 1000001152000 + size = 0 + rendered = false + output buffer #49: + timeUs = 1000001176000 + size = 0 + rendered = false + output buffer #50: + timeUs = 1000001200000 + size = 0 + rendered = false + output buffer #51: + timeUs = 1000001224000 + size = 0 + rendered = false + output buffer #52: + timeUs = 1000001248000 + size = 0 + rendered = false + output buffer #53: + timeUs = 1000001272000 + size = 0 + rendered = false + output buffer #54: + timeUs = 1000001296000 + size = 0 + rendered = false + output buffer #55: + timeUs = 1000001320000 + size = 0 + rendered = false + output buffer #56: + timeUs = 1000001344000 + size = 0 + rendered = false + output buffer #57: + timeUs = 1000001368000 + size = 0 + rendered = false + output buffer #58: + timeUs = 1000001392000 + size = 0 + rendered = false + output buffer #59: + timeUs = 1000001416000 + size = 0 + rendered = false + output buffer #60: + timeUs = 1000001440000 + size = 0 + rendered = false + output buffer #61: + timeUs = 1000001464000 + size = 0 + rendered = false + output buffer #62: + timeUs = 1000001488000 + size = 0 + rendered = false + output buffer #63: + timeUs = 1000001512000 + size = 0 + rendered = false + output buffer #64: + timeUs = 1000001536000 + size = 0 + rendered = false + output buffer #65: + timeUs = 1000001560000 + size = 0 + rendered = false + output buffer #66: + timeUs = 1000001584000 + size = 0 + rendered = false + output buffer #67: + timeUs = 1000001608000 + size = 0 + rendered = false + output buffer #68: + timeUs = 1000001632000 + size = 0 + rendered = false + output buffer #69: + timeUs = 1000001656000 + size = 0 + rendered = false + output buffer #70: + timeUs = 1000001680000 + size = 0 + rendered = false + output buffer #71: + timeUs = 1000001704000 + size = 0 + rendered = false + output buffer #72: + timeUs = 1000001728000 + size = 0 + rendered = false + output buffer #73: + timeUs = 1000001752000 + size = 0 + rendered = false + output buffer #74: + timeUs = 1000001776000 + size = 0 + rendered = false + output buffer #75: + timeUs = 1000001800000 + size = 0 + rendered = false + output buffer #76: + timeUs = 1000001824000 + size = 0 + rendered = false + output buffer #77: + timeUs = 1000001848000 + size = 0 + rendered = false + output buffer #78: + timeUs = 1000001872000 + size = 0 + rendered = false + output buffer #79: + timeUs = 1000001896000 + size = 0 + rendered = false + output buffer #80: + timeUs = 1000001920000 + size = 0 + rendered = false + output buffer #81: + timeUs = 1000001944000 + size = 0 + rendered = false + output buffer #82: + timeUs = 1000001968000 + size = 0 + rendered = false + output buffer #83: + timeUs = 1000001992000 + size = 0 + rendered = false + output buffer #84: + timeUs = 1000002016000 + size = 0 + rendered = false + output buffer #85: + timeUs = 1000002040000 + size = 0 + rendered = false + output buffer #86: + timeUs = 1000002064000 + size = 0 + rendered = false + output buffer #87: + timeUs = 1000002088000 + size = 0 + rendered = false + output buffer #88: + timeUs = 1000002112000 + size = 0 + rendered = false + output buffer #89: + timeUs = 1000002136000 + size = 0 + rendered = false + output buffer #90: + timeUs = 1000002160000 + size = 0 + rendered = false + output buffer #91: + timeUs = 1000002184000 + size = 0 + rendered = false + output buffer #92: + timeUs = 1000002208000 + size = 0 + rendered = false + output buffer #93: + timeUs = 1000002232000 + size = 0 + rendered = false + output buffer #94: + timeUs = 1000002256000 + size = 0 + rendered = false + output buffer #95: + timeUs = 1000002280000 + size = 0 + rendered = false + output buffer #96: + timeUs = 1000002304000 + size = 0 + rendered = false + output buffer #97: + timeUs = 1000002328000 + size = 0 + rendered = false + output buffer #98: + timeUs = 1000002352000 + size = 0 + rendered = false + output buffer #99: + timeUs = 1000002376000 + size = 0 + rendered = false + output buffer #100: + timeUs = 1000002400000 + size = 0 + rendered = false + output buffer #101: + timeUs = 1000002424000 + size = 0 + rendered = false + output buffer #102: + timeUs = 1000002448000 + size = 0 + rendered = false + output buffer #103: + timeUs = 1000002472000 + size = 0 + rendered = false + output buffer #104: + timeUs = 1000002496000 + size = 0 + rendered = false + output buffer #105: + timeUs = 1000002520000 + size = 0 + rendered = false + output buffer #106: + timeUs = 1000002544000 + size = 0 + rendered = false + output buffer #107: + timeUs = 1000002568000 + size = 0 + rendered = false + output buffer #108: + timeUs = 1000002592000 + size = 0 + rendered = false + output buffer #109: + timeUs = 1000002616000 + size = 0 + rendered = false + output buffer #110: + timeUs = 1000002640000 + size = 0 + rendered = false + output buffer #111: + timeUs = 1000002664000 + size = 0 + rendered = false + output buffer #112: + timeUs = 1000002688000 + size = 0 + rendered = false + output buffer #113: + timeUs = 1000002712000 + size = 0 + rendered = false + output buffer #114: + timeUs = 1000002736000 + size = 0 + rendered = false + output buffer #115: + timeUs = 1000002760000 + size = 0 + rendered = false + output buffer #116: + timeUs = 1000002784000 + size = 0 + rendered = false +AudioSink: + buffer count = 117 + config: + pcmEncoding = 2 + channelCount = 2 + sampleRate = 48000 + buffer #0: + time = 1000000000000 + data = 1 + buffer #1: + time = 1000000024000 + data = 1 + buffer #2: + time = 1000000048000 + data = 1 + buffer #3: + time = 1000000072000 + data = 1 + buffer #4: + time = 1000000096000 + data = 1 + buffer #5: + time = 1000000120000 + data = 1 + buffer #6: + time = 1000000144000 + data = 1 + buffer #7: + time = 1000000168000 + data = 1 + buffer #8: + time = 1000000192000 + data = 1 + buffer #9: + time = 1000000216000 + data = 1 + buffer #10: + time = 1000000240000 + data = 1 + buffer #11: + time = 1000000264000 + data = 1 + buffer #12: + time = 1000000288000 + data = 1 + buffer #13: + time = 1000000312000 + data = 1 + buffer #14: + time = 1000000336000 + data = 1 + buffer #15: + time = 1000000360000 + data = 1 + buffer #16: + time = 1000000384000 + data = 1 + buffer #17: + time = 1000000408000 + data = 1 + buffer #18: + time = 1000000432000 + data = 1 + buffer #19: + time = 1000000456000 + data = 1 + buffer #20: + time = 1000000480000 + data = 1 + buffer #21: + time = 1000000504000 + data = 1 + buffer #22: + time = 1000000528000 + data = 1 + buffer #23: + time = 1000000552000 + data = 1 + buffer #24: + time = 1000000576000 + data = 1 + buffer #25: + time = 1000000600000 + data = 1 + buffer #26: + time = 1000000624000 + data = 1 + buffer #27: + time = 1000000648000 + data = 1 + buffer #28: + time = 1000000672000 + data = 1 + buffer #29: + time = 1000000696000 + data = 1 + buffer #30: + time = 1000000720000 + data = 1 + buffer #31: + time = 1000000744000 + data = 1 + buffer #32: + time = 1000000768000 + data = 1 + buffer #33: + time = 1000000792000 + data = 1 + buffer #34: + time = 1000000816000 + data = 1 + buffer #35: + time = 1000000840000 + data = 1 + buffer #36: + time = 1000000864000 + data = 1 + buffer #37: + time = 1000000888000 + data = 1 + buffer #38: + time = 1000000912000 + data = 1 + buffer #39: + time = 1000000936000 + data = 1 + buffer #40: + time = 1000000960000 + data = 1 + buffer #41: + time = 1000000984000 + data = 1 + buffer #42: + time = 1000001008000 + data = 1 + buffer #43: + time = 1000001032000 + data = 1 + buffer #44: + time = 1000001056000 + data = 1 + buffer #45: + time = 1000001080000 + data = 1 + buffer #46: + time = 1000001104000 + data = 1 + buffer #47: + time = 1000001128000 + data = 1 + buffer #48: + time = 1000001152000 + data = 1 + buffer #49: + time = 1000001176000 + data = 1 + buffer #50: + time = 1000001200000 + data = 1 + buffer #51: + time = 1000001224000 + data = 1 + buffer #52: + time = 1000001248000 + data = 1 + buffer #53: + time = 1000001272000 + data = 1 + buffer #54: + time = 1000001296000 + data = 1 + buffer #55: + time = 1000001320000 + data = 1 + buffer #56: + time = 1000001344000 + data = 1 + buffer #57: + time = 1000001368000 + data = 1 + buffer #58: + time = 1000001392000 + data = 1 + buffer #59: + time = 1000001416000 + data = 1 + buffer #60: + time = 1000001440000 + data = 1 + buffer #61: + time = 1000001464000 + data = 1 + buffer #62: + time = 1000001488000 + data = 1 + buffer #63: + time = 1000001512000 + data = 1 + buffer #64: + time = 1000001536000 + data = 1 + buffer #65: + time = 1000001560000 + data = 1 + buffer #66: + time = 1000001584000 + data = 1 + buffer #67: + time = 1000001608000 + data = 1 + buffer #68: + time = 1000001632000 + data = 1 + buffer #69: + time = 1000001656000 + data = 1 + buffer #70: + time = 1000001680000 + data = 1 + buffer #71: + time = 1000001704000 + data = 1 + buffer #72: + time = 1000001728000 + data = 1 + buffer #73: + time = 1000001752000 + data = 1 + buffer #74: + time = 1000001776000 + data = 1 + buffer #75: + time = 1000001800000 + data = 1 + buffer #76: + time = 1000001824000 + data = 1 + buffer #77: + time = 1000001848000 + data = 1 + buffer #78: + time = 1000001872000 + data = 1 + buffer #79: + time = 1000001896000 + data = 1 + buffer #80: + time = 1000001920000 + data = 1 + buffer #81: + time = 1000001944000 + data = 1 + buffer #82: + time = 1000001968000 + data = 1 + buffer #83: + time = 1000001992000 + data = 1 + buffer #84: + time = 1000002016000 + data = 1 + buffer #85: + time = 1000002040000 + data = 1 + buffer #86: + time = 1000002064000 + data = 1 + buffer #87: + time = 1000002088000 + data = 1 + buffer #88: + time = 1000002112000 + data = 1 + buffer #89: + time = 1000002136000 + data = 1 + buffer #90: + time = 1000002160000 + data = 1 + buffer #91: + time = 1000002184000 + data = 1 + buffer #92: + time = 1000002208000 + data = 1 + buffer #93: + time = 1000002232000 + data = 1 + buffer #94: + time = 1000002256000 + data = 1 + buffer #95: + time = 1000002280000 + data = 1 + buffer #96: + time = 1000002304000 + data = 1 + buffer #97: + time = 1000002328000 + data = 1 + buffer #98: + time = 1000002352000 + data = 1 + buffer #99: + time = 1000002376000 + data = 1 + buffer #100: + time = 1000002400000 + data = 1 + buffer #101: + time = 1000002424000 + data = 1 + buffer #102: + time = 1000002448000 + data = 1 + buffer #103: + time = 1000002472000 + data = 1 + buffer #104: + time = 1000002496000 + data = 1 + buffer #105: + time = 1000002520000 + data = 1 + buffer #106: + time = 1000002544000 + data = 1 + buffer #107: + time = 1000002568000 + data = 1 + buffer #108: + time = 1000002592000 + data = 1 + buffer #109: + time = 1000002616000 + data = 1 + buffer #110: + time = 1000002640000 + data = 1 + buffer #111: + time = 1000002664000 + data = 1 + buffer #112: + time = 1000002688000 + data = 1 + buffer #113: + time = 1000002712000 + data = 1 + buffer #114: + time = 1000002736000 + data = 1 + buffer #115: + time = 1000002760000 + data = 1 + buffer #116: + time = 1000002784000 + data = 1