From 1c1d4d506dcb00a59dc20287070a052495b79382 Mon Sep 17 00:00:00 2001 From: ibaker Date: Tue, 9 Jan 2024 11:14:06 -0800 Subject: [PATCH] MP3: Correct duration calculation in `XingSeeker` An audio file can only play sound between two PCM samples (the 'start' and 'end' of section of a wave form). Therefore when calculating duration from a count of PCM samples we need to subtract one first (the 'end' sample which has no duration of its own). This only changes durations by one PCM sample (21us - 22us for 44.1kHz sample rate). PiperOrigin-RevId: 596990306 --- .../media3/extractor/mp3/XingSeeker.java | 5 +- .../media3/extractor/mp3/XingSeekerTest.java | 7 +- .../mp3/bear-vbr-xing-header.mp3.0.dump | 6 +- .../mp3/bear-vbr-xing-header.mp3.1.dump | 160 +++++++++--------- .../mp3/bear-vbr-xing-header.mp3.2.dump | 82 ++++----- .../mp3/bear-vbr-xing-header.mp3.3.dump | 6 +- ...ar-vbr-xing-header.mp3.unknown_length.dump | 6 +- .../mp3/test-cbr-info-header.mp3.0.dump | 6 +- .../mp3/test-cbr-info-header.mp3.1.dump | 58 +++---- .../mp3/test-cbr-info-header.mp3.2.dump | 32 ++-- .../mp3/test-cbr-info-header.mp3.3.dump | 6 +- ...st-cbr-info-header.mp3.unknown_length.dump | 6 +- ...mixedWith_sample_18byte_nclx_colr.mp4.dump | 150 ++++++++-------- ...ng_mixedWith_test-cbr-info-header.mp3.dump | 160 +++++++++--------- 14 files changed, 347 insertions(+), 343 deletions(-) diff --git a/libraries/extractor/src/main/java/androidx/media3/extractor/mp3/XingSeeker.java b/libraries/extractor/src/main/java/androidx/media3/extractor/mp3/XingSeeker.java index 1642e53367..db8d322676 100644 --- a/libraries/extractor/src/main/java/androidx/media3/extractor/mp3/XingSeeker.java +++ b/libraries/extractor/src/main/java/androidx/media3/extractor/mp3/XingSeeker.java @@ -57,8 +57,9 @@ import androidx.media3.extractor.SeekPoint; // If the frame count is missing/invalid, the header can't be used to determine the duration. return null; } - long durationUs = - Util.scaleLargeTimestamp(frameCount, samplesPerFrame * C.MICROS_PER_SECOND, sampleRate); + // Audio requires both a start and end PCM sample, so subtract one from the sample count before + // calculating the duration. + long durationUs = Util.sampleCountToDurationUs((frameCount * samplesPerFrame) - 1, sampleRate); if ((flags & 0x06) != 0x06) { // If the size in bytes or table of contents is missing, the stream is not seekable. return new XingSeeker(position, mpegAudioHeader.frameSize, durationUs); diff --git a/libraries/extractor/src/test/java/androidx/media3/extractor/mp3/XingSeekerTest.java b/libraries/extractor/src/test/java/androidx/media3/extractor/mp3/XingSeekerTest.java index 11fbb3e204..bd88b6cfcb 100644 --- a/libraries/extractor/src/test/java/androidx/media3/extractor/mp3/XingSeekerTest.java +++ b/libraries/extractor/src/test/java/androidx/media3/extractor/mp3/XingSeekerTest.java @@ -44,8 +44,11 @@ public final class XingSeekerTest { /** Data size, as encoded in {@link #XING_FRAME_PAYLOAD}. */ private static final int DATA_SIZE_BYTES = 948505; - /** Duration of the audio stream in microseconds, encoded in {@link #XING_FRAME_PAYLOAD}. */ - private static final int STREAM_DURATION_US = 59271836; + /** + * Duration of the audio stream in microseconds, encoded as a frame count in {@link + * #XING_FRAME_PAYLOAD}. + */ + private static final int STREAM_DURATION_US = 59271814; /** The length of the stream in bytes. */ private static final int STREAM_LENGTH = XING_FRAME_POSITION + DATA_SIZE_BYTES; diff --git a/libraries/test_data/src/test/assets/extractordumps/mp3/bear-vbr-xing-header.mp3.0.dump b/libraries/test_data/src/test/assets/extractordumps/mp3/bear-vbr-xing-header.mp3.0.dump index 352641de04..633b451d6b 100644 --- a/libraries/test_data/src/test/assets/extractordumps/mp3/bear-vbr-xing-header.mp3.0.dump +++ b/libraries/test_data/src/test/assets/extractordumps/mp3/bear-vbr-xing-header.mp3.0.dump @@ -1,10 +1,10 @@ seekMap: isSeekable = true - duration = 2808000 + duration = 2807979 getPosition(0) = [[timeUs=0, position=237]] getPosition(1) = [[timeUs=1, position=237]] - getPosition(1404000) = [[timeUs=1404000, position=20120]] - getPosition(2808000) = [[timeUs=2808000, position=38396]] + getPosition(1403989) = [[timeUs=1403989, position=20120]] + getPosition(2807979) = [[timeUs=2807979, position=38396]] numberOfTracks = 1 track 0: total output bytes = 38160 diff --git a/libraries/test_data/src/test/assets/extractordumps/mp3/bear-vbr-xing-header.mp3.1.dump b/libraries/test_data/src/test/assets/extractordumps/mp3/bear-vbr-xing-header.mp3.1.dump index 811fd0aaaa..4c022e760b 100644 --- a/libraries/test_data/src/test/assets/extractordumps/mp3/bear-vbr-xing-header.mp3.1.dump +++ b/libraries/test_data/src/test/assets/extractordumps/mp3/bear-vbr-xing-header.mp3.1.dump @@ -1,10 +1,10 @@ seekMap: isSeekable = true - duration = 2808000 + duration = 2807979 getPosition(0) = [[timeUs=0, position=237]] getPosition(1) = [[timeUs=1, position=237]] - getPosition(1404000) = [[timeUs=1404000, position=20120]] - getPosition(2808000) = [[timeUs=2808000, position=38396]] + getPosition(1403989) = [[timeUs=1403989, position=20120]] + getPosition(2807979) = [[timeUs=2807979, position=38396]] numberOfTracks = 1 track 0: total output bytes = 24384 @@ -18,311 +18,311 @@ track 0: encoderPadding = 576 metadata = entries=[TSSE: description=null: values=[Lavf58.29.100]] sample 0: - time = 958041 + time = 958033 flags = 1 data = length 336, hash 71FFE4A0 sample 1: - time = 982041 + time = 982033 flags = 1 data = length 336, hash D4160463 sample 2: - time = 1006041 + time = 1006033 flags = 1 data = length 336, hash EC557B14 sample 3: - time = 1030041 + time = 1030033 flags = 1 data = length 288, hash 5598CF8B sample 4: - time = 1054041 + time = 1054033 flags = 1 data = length 336, hash 7E0AB41 sample 5: - time = 1078041 + time = 1078033 flags = 1 data = length 336, hash 1C585FEF sample 6: - time = 1102041 + time = 1102033 flags = 1 data = length 336, hash A4A4855E sample 7: - time = 1126041 + time = 1126033 flags = 1 data = length 336, hash CECA51D3 sample 8: - time = 1150041 + time = 1150033 flags = 1 data = length 288, hash 2D362DC5 sample 9: - time = 1174041 + time = 1174033 flags = 1 data = length 336, hash 9EB2609D sample 10: - time = 1198041 + time = 1198033 flags = 1 data = length 336, hash 28FFB3FE sample 11: - time = 1222041 + time = 1222033 flags = 1 data = length 288, hash 2AA2D216 sample 12: - time = 1246041 + time = 1246033 flags = 1 data = length 336, hash CDBC7032 sample 13: - time = 1270041 + time = 1270033 flags = 1 data = length 336, hash 25B13FE7 sample 14: - time = 1294041 + time = 1294033 flags = 1 data = length 336, hash DB6BB1E sample 15: - time = 1318041 + time = 1318033 flags = 1 data = length 336, hash EBE951F4 sample 16: - time = 1342041 + time = 1342033 flags = 1 data = length 288, hash 9E2EBFF7 sample 17: - time = 1366041 + time = 1366033 flags = 1 data = length 336, hash 36A7D455 sample 18: - time = 1390041 + time = 1390033 flags = 1 data = length 336, hash 84545F8C sample 19: - time = 1414041 + time = 1414033 flags = 1 data = length 336, hash F66F3045 sample 20: - time = 1438041 + time = 1438033 flags = 1 data = length 576, hash 5AB089EA sample 21: - time = 1462041 + time = 1462033 flags = 1 data = length 336, hash 8868086 sample 22: - time = 1486041 + time = 1486033 flags = 1 data = length 336, hash D5EB6D63 sample 23: - time = 1510041 + time = 1510033 flags = 1 data = length 288, hash 7A5374B7 sample 24: - time = 1534041 + time = 1534033 flags = 1 data = length 336, hash BEB27A75 sample 25: - time = 1558041 + time = 1558033 flags = 1 data = length 336, hash E251E0FD sample 26: - time = 1582041 + time = 1582033 flags = 1 data = length 288, hash D54C970 sample 27: - time = 1606041 + time = 1606033 flags = 1 data = length 336, hash 52C473B9 sample 28: - time = 1630041 + time = 1630033 flags = 1 data = length 336, hash F5F13334 sample 29: - time = 1654041 + time = 1654033 flags = 1 data = length 480, hash A5F1E987 sample 30: - time = 1678041 + time = 1678033 flags = 1 data = length 288, hash 453A1267 sample 31: - time = 1702041 + time = 1702033 flags = 1 data = length 288, hash 7C6C2EA9 sample 32: - time = 1726041 + time = 1726033 flags = 1 data = length 336, hash F4BFECA4 sample 33: - time = 1750041 + time = 1750033 flags = 1 data = length 336, hash 751A395A sample 34: - time = 1774041 + time = 1774033 flags = 1 data = length 336, hash EE38DB02 sample 35: - time = 1798041 + time = 1798033 flags = 1 data = length 336, hash F18837E2 sample 36: - time = 1822041 + time = 1822033 flags = 1 data = length 336, hash ED36B78E sample 37: - time = 1846041 + time = 1846033 flags = 1 data = length 336, hash B3D28289 sample 38: - time = 1870041 + time = 1870033 flags = 1 data = length 288, hash 8BDE28E1 sample 39: - time = 1894041 + time = 1894033 flags = 1 data = length 336, hash CFD5E966 sample 40: - time = 1918041 + time = 1918033 flags = 1 data = length 288, hash DC08E267 sample 41: - time = 1942041 + time = 1942033 flags = 1 data = length 336, hash 6530CB78 sample 42: - time = 1966041 + time = 1966033 flags = 1 data = length 336, hash 6CC6636E sample 43: - time = 1990041 + time = 1990033 flags = 1 data = length 336, hash 613047C1 sample 44: - time = 2014041 + time = 2014033 flags = 1 data = length 288, hash CDC747BF sample 45: - time = 2038041 + time = 2038033 flags = 1 data = length 336, hash AF22AA74 sample 46: - time = 2062041 + time = 2062033 flags = 1 data = length 384, hash 82F326AA sample 47: - time = 2086041 + time = 2086033 flags = 1 data = length 384, hash EDA26C4D sample 48: - time = 2110041 + time = 2110033 flags = 1 data = length 336, hash 94C643DC sample 49: - time = 2134041 + time = 2134033 flags = 1 data = length 288, hash CB5D9C40 sample 50: - time = 2158041 + time = 2158033 flags = 1 data = length 336, hash 1E69DE3F sample 51: - time = 2182041 + time = 2182033 flags = 1 data = length 336, hash 7E472219 sample 52: - time = 2206041 + time = 2206033 flags = 1 data = length 336, hash DA47B9FA sample 53: - time = 2230041 + time = 2230033 flags = 1 data = length 336, hash DD0ABB7C sample 54: - time = 2254041 + time = 2254033 flags = 1 data = length 288, hash DBF93FAC sample 55: - time = 2278041 + time = 2278033 flags = 1 data = length 336, hash 243F4B2 sample 56: - time = 2302041 + time = 2302033 flags = 1 data = length 336, hash 2E881490 sample 57: - time = 2326041 + time = 2326033 flags = 1 data = length 288, hash 1C28C8BE sample 58: - time = 2350041 + time = 2350033 flags = 1 data = length 336, hash C73E5D30 sample 59: - time = 2374041 + time = 2374033 flags = 1 data = length 288, hash 98B5BFF6 sample 60: - time = 2398041 + time = 2398033 flags = 1 data = length 336, hash E0135533 sample 61: - time = 2422041 + time = 2422033 flags = 1 data = length 336, hash D13C9DBC sample 62: - time = 2446041 + time = 2446033 flags = 1 data = length 336, hash 63D524CA sample 63: - time = 2470041 + time = 2470033 flags = 1 data = length 288, hash A28514C3 sample 64: - time = 2494041 + time = 2494033 flags = 1 data = length 336, hash 72B647FF sample 65: - time = 2518041 + time = 2518033 flags = 1 data = length 336, hash 8F740AB1 sample 66: - time = 2542041 + time = 2542033 flags = 1 data = length 336, hash 5E3C7E93 sample 67: - time = 2566041 + time = 2566033 flags = 1 data = length 336, hash 121B913B sample 68: - time = 2590041 + time = 2590033 flags = 1 data = length 336, hash 578FCCF2 sample 69: - time = 2614041 + time = 2614033 flags = 1 data = length 336, hash 5B5823DE sample 70: - time = 2638041 + time = 2638033 flags = 1 data = length 384, hash D8B83F78 sample 71: - time = 2662041 + time = 2662033 flags = 1 data = length 240, hash E649682F sample 72: - time = 2686041 + time = 2686033 flags = 1 data = length 96, hash C559A6F4 sample 73: - time = 2710041 + time = 2710033 flags = 1 data = length 96, hash 792796BC sample 74: - time = 2734041 + time = 2734033 flags = 1 data = length 120, hash 8172CD0E sample 75: - time = 2758041 + time = 2758033 flags = 1 data = length 120, hash F562B52F sample 76: - time = 2782041 + time = 2782033 flags = 1 data = length 96, hash FF8D5B98 tracksEnded = true diff --git a/libraries/test_data/src/test/assets/extractordumps/mp3/bear-vbr-xing-header.mp3.2.dump b/libraries/test_data/src/test/assets/extractordumps/mp3/bear-vbr-xing-header.mp3.2.dump index 7e2745f280..95a79c22a8 100644 --- a/libraries/test_data/src/test/assets/extractordumps/mp3/bear-vbr-xing-header.mp3.2.dump +++ b/libraries/test_data/src/test/assets/extractordumps/mp3/bear-vbr-xing-header.mp3.2.dump @@ -1,10 +1,10 @@ seekMap: isSeekable = true - duration = 2808000 + duration = 2807979 getPosition(0) = [[timeUs=0, position=237]] getPosition(1) = [[timeUs=1, position=237]] - getPosition(1404000) = [[timeUs=1404000, position=20120]] - getPosition(2808000) = [[timeUs=2808000, position=38396]] + getPosition(1403989) = [[timeUs=1403989, position=20120]] + getPosition(2807979) = [[timeUs=2807979, position=38396]] numberOfTracks = 1 track 0: total output bytes = 11328 @@ -18,155 +18,155 @@ track 0: encoderPadding = 576 metadata = entries=[TSSE: description=null: values=[Lavf58.29.100]] sample 0: - time = 1886772 + time = 1886757 flags = 1 data = length 336, hash CFD5E966 sample 1: - time = 1910772 + time = 1910757 flags = 1 data = length 288, hash DC08E267 sample 2: - time = 1934772 + time = 1934757 flags = 1 data = length 336, hash 6530CB78 sample 3: - time = 1958772 + time = 1958757 flags = 1 data = length 336, hash 6CC6636E sample 4: - time = 1982772 + time = 1982757 flags = 1 data = length 336, hash 613047C1 sample 5: - time = 2006772 + time = 2006757 flags = 1 data = length 288, hash CDC747BF sample 6: - time = 2030772 + time = 2030757 flags = 1 data = length 336, hash AF22AA74 sample 7: - time = 2054772 + time = 2054757 flags = 1 data = length 384, hash 82F326AA sample 8: - time = 2078772 + time = 2078757 flags = 1 data = length 384, hash EDA26C4D sample 9: - time = 2102772 + time = 2102757 flags = 1 data = length 336, hash 94C643DC sample 10: - time = 2126772 + time = 2126757 flags = 1 data = length 288, hash CB5D9C40 sample 11: - time = 2150772 + time = 2150757 flags = 1 data = length 336, hash 1E69DE3F sample 12: - time = 2174772 + time = 2174757 flags = 1 data = length 336, hash 7E472219 sample 13: - time = 2198772 + time = 2198757 flags = 1 data = length 336, hash DA47B9FA sample 14: - time = 2222772 + time = 2222757 flags = 1 data = length 336, hash DD0ABB7C sample 15: - time = 2246772 + time = 2246757 flags = 1 data = length 288, hash DBF93FAC sample 16: - time = 2270772 + time = 2270757 flags = 1 data = length 336, hash 243F4B2 sample 17: - time = 2294772 + time = 2294757 flags = 1 data = length 336, hash 2E881490 sample 18: - time = 2318772 + time = 2318757 flags = 1 data = length 288, hash 1C28C8BE sample 19: - time = 2342772 + time = 2342757 flags = 1 data = length 336, hash C73E5D30 sample 20: - time = 2366772 + time = 2366757 flags = 1 data = length 288, hash 98B5BFF6 sample 21: - time = 2390772 + time = 2390757 flags = 1 data = length 336, hash E0135533 sample 22: - time = 2414772 + time = 2414757 flags = 1 data = length 336, hash D13C9DBC sample 23: - time = 2438772 + time = 2438757 flags = 1 data = length 336, hash 63D524CA sample 24: - time = 2462772 + time = 2462757 flags = 1 data = length 288, hash A28514C3 sample 25: - time = 2486772 + time = 2486757 flags = 1 data = length 336, hash 72B647FF sample 26: - time = 2510772 + time = 2510757 flags = 1 data = length 336, hash 8F740AB1 sample 27: - time = 2534772 + time = 2534757 flags = 1 data = length 336, hash 5E3C7E93 sample 28: - time = 2558772 + time = 2558757 flags = 1 data = length 336, hash 121B913B sample 29: - time = 2582772 + time = 2582757 flags = 1 data = length 336, hash 578FCCF2 sample 30: - time = 2606772 + time = 2606757 flags = 1 data = length 336, hash 5B5823DE sample 31: - time = 2630772 + time = 2630757 flags = 1 data = length 384, hash D8B83F78 sample 32: - time = 2654772 + time = 2654757 flags = 1 data = length 240, hash E649682F sample 33: - time = 2678772 + time = 2678757 flags = 1 data = length 96, hash C559A6F4 sample 34: - time = 2702772 + time = 2702757 flags = 1 data = length 96, hash 792796BC sample 35: - time = 2726772 + time = 2726757 flags = 1 data = length 120, hash 8172CD0E sample 36: - time = 2750772 + time = 2750757 flags = 1 data = length 120, hash F562B52F sample 37: - time = 2774772 + time = 2774757 flags = 1 data = length 96, hash FF8D5B98 tracksEnded = true diff --git a/libraries/test_data/src/test/assets/extractordumps/mp3/bear-vbr-xing-header.mp3.3.dump b/libraries/test_data/src/test/assets/extractordumps/mp3/bear-vbr-xing-header.mp3.3.dump index 11102a27ce..5f8a8b26a4 100644 --- a/libraries/test_data/src/test/assets/extractordumps/mp3/bear-vbr-xing-header.mp3.3.dump +++ b/libraries/test_data/src/test/assets/extractordumps/mp3/bear-vbr-xing-header.mp3.3.dump @@ -1,10 +1,10 @@ seekMap: isSeekable = true - duration = 2808000 + duration = 2807979 getPosition(0) = [[timeUs=0, position=237]] getPosition(1) = [[timeUs=1, position=237]] - getPosition(1404000) = [[timeUs=1404000, position=20120]] - getPosition(2808000) = [[timeUs=2808000, position=38396]] + getPosition(1403989) = [[timeUs=1403989, position=20120]] + getPosition(2807979) = [[timeUs=2807979, position=38396]] numberOfTracks = 1 track 0: total output bytes = 0 diff --git a/libraries/test_data/src/test/assets/extractordumps/mp3/bear-vbr-xing-header.mp3.unknown_length.dump b/libraries/test_data/src/test/assets/extractordumps/mp3/bear-vbr-xing-header.mp3.unknown_length.dump index 352641de04..633b451d6b 100644 --- a/libraries/test_data/src/test/assets/extractordumps/mp3/bear-vbr-xing-header.mp3.unknown_length.dump +++ b/libraries/test_data/src/test/assets/extractordumps/mp3/bear-vbr-xing-header.mp3.unknown_length.dump @@ -1,10 +1,10 @@ seekMap: isSeekable = true - duration = 2808000 + duration = 2807979 getPosition(0) = [[timeUs=0, position=237]] getPosition(1) = [[timeUs=1, position=237]] - getPosition(1404000) = [[timeUs=1404000, position=20120]] - getPosition(2808000) = [[timeUs=2808000, position=38396]] + getPosition(1403989) = [[timeUs=1403989, position=20120]] + getPosition(2807979) = [[timeUs=2807979, position=38396]] numberOfTracks = 1 track 0: total output bytes = 38160 diff --git a/libraries/test_data/src/test/assets/extractordumps/mp3/test-cbr-info-header.mp3.0.dump b/libraries/test_data/src/test/assets/extractordumps/mp3/test-cbr-info-header.mp3.0.dump index 0fcfc94679..04e949490d 100644 --- a/libraries/test_data/src/test/assets/extractordumps/mp3/test-cbr-info-header.mp3.0.dump +++ b/libraries/test_data/src/test/assets/extractordumps/mp3/test-cbr-info-header.mp3.0.dump @@ -1,10 +1,10 @@ seekMap: isSeekable = true - duration = 1044897 + duration = 1044875 getPosition(0) = [[timeUs=0, position=227]] getPosition(1) = [[timeUs=1, position=227]] - getPosition(522448) = [[timeUs=522448, position=4582]] - getPosition(1044897) = [[timeUs=1044897, position=8585]] + getPosition(522437) = [[timeUs=522437, position=4582]] + getPosition(1044875) = [[timeUs=1044875, position=8585]] numberOfTracks = 1 track 0: total output bytes = 8359 diff --git a/libraries/test_data/src/test/assets/extractordumps/mp3/test-cbr-info-header.mp3.1.dump b/libraries/test_data/src/test/assets/extractordumps/mp3/test-cbr-info-header.mp3.1.dump index 220ebe8a69..c397158af2 100644 --- a/libraries/test_data/src/test/assets/extractordumps/mp3/test-cbr-info-header.mp3.1.dump +++ b/libraries/test_data/src/test/assets/extractordumps/mp3/test-cbr-info-header.mp3.1.dump @@ -1,10 +1,10 @@ seekMap: isSeekable = true - duration = 1044897 + duration = 1044875 getPosition(0) = [[timeUs=0, position=227]] getPosition(1) = [[timeUs=1, position=227]] - getPosition(522448) = [[timeUs=522448, position=4582]] - getPosition(1044897) = [[timeUs=1044897, position=8585]] + getPosition(522437) = [[timeUs=522437, position=4582]] + getPosition(1044875) = [[timeUs=1044875, position=8585]] numberOfTracks = 1 track 0: total output bytes = 5434 @@ -18,107 +18,107 @@ track 0: encoderPadding = 1404 metadata = entries=[TSSE: description=null: values=[Lavf58.45.100]] sample 0: - time = 344816 + time = 344808 flags = 1 data = length 209, hash 34191E1 sample 1: - time = 370938 + time = 370930 flags = 1 data = length 209, hash 57323ED7 sample 2: - time = 397060 + time = 397052 flags = 1 data = length 209, hash 75618CF3 sample 3: - time = 423183 + time = 423175 flags = 1 data = length 209, hash 784C973B sample 4: - time = 449305 + time = 449297 flags = 1 data = length 209, hash 49106390 sample 5: - time = 475428 + time = 475420 flags = 1 data = length 209, hash 70F6A563 sample 6: - time = 501550 + time = 501542 flags = 1 data = length 209, hash 721882B0 sample 7: - time = 527673 + time = 527665 flags = 1 data = length 209, hash 81C62AEE sample 8: - time = 553795 + time = 553787 flags = 1 data = length 209, hash 16D22463 sample 9: - time = 579918 + time = 579910 flags = 1 data = length 209, hash 47033534 sample 10: - time = 606040 + time = 606032 flags = 1 data = length 209, hash CECB37A6 sample 11: - time = 632162 + time = 632154 flags = 1 data = length 209, hash 6C9C307B sample 12: - time = 658285 + time = 658277 flags = 1 data = length 209, hash 3EB1A364 sample 13: - time = 684407 + time = 684399 flags = 1 data = length 209, hash 30962500 sample 14: - time = 710530 + time = 710522 flags = 1 data = length 209, hash 2C5CCBB7 sample 15: - time = 736652 + time = 736644 flags = 1 data = length 209, hash F9CB9E37 sample 16: - time = 762775 + time = 762767 flags = 1 data = length 209, hash F75BC8C0 sample 17: - time = 788897 + time = 788889 flags = 1 data = length 209, hash D00ED607 sample 18: - time = 815020 + time = 815012 flags = 1 data = length 209, hash B4338395 sample 19: - time = 841142 + time = 841134 flags = 1 data = length 209, hash E3E838A0 sample 20: - time = 867264 + time = 867256 flags = 1 data = length 209, hash 2B0CF78 sample 21: - time = 893387 + time = 893379 flags = 1 data = length 209, hash 31906FA9 sample 22: - time = 919509 + time = 919501 flags = 1 data = length 209, hash C92FC08F sample 23: - time = 945632 + time = 945624 flags = 1 data = length 209, hash 7C89994 sample 24: - time = 971754 + time = 971746 flags = 1 data = length 209, hash EC37743B sample 25: - time = 997877 + time = 997869 flags = 1 data = length 209, hash C974F6FB tracksEnded = true diff --git a/libraries/test_data/src/test/assets/extractordumps/mp3/test-cbr-info-header.mp3.2.dump b/libraries/test_data/src/test/assets/extractordumps/mp3/test-cbr-info-header.mp3.2.dump index 1a93acf1b9..120494f411 100644 --- a/libraries/test_data/src/test/assets/extractordumps/mp3/test-cbr-info-header.mp3.2.dump +++ b/libraries/test_data/src/test/assets/extractordumps/mp3/test-cbr-info-header.mp3.2.dump @@ -1,10 +1,10 @@ seekMap: isSeekable = true - duration = 1044897 + duration = 1044875 getPosition(0) = [[timeUs=0, position=227]] getPosition(1) = [[timeUs=1, position=227]] - getPosition(522448) = [[timeUs=522448, position=4582]] - getPosition(1044897) = [[timeUs=1044897, position=8585]] + getPosition(522437) = [[timeUs=522437, position=4582]] + getPosition(1044875) = [[timeUs=1044875, position=8585]] numberOfTracks = 1 track 0: total output bytes = 2717 @@ -18,55 +18,55 @@ track 0: encoderPadding = 1404 metadata = entries=[TSSE: description=null: values=[Lavf58.45.100]] sample 0: - time = 679183 + time = 679168 flags = 1 data = length 209, hash 30962500 sample 1: - time = 705305 + time = 705290 flags = 1 data = length 209, hash 2C5CCBB7 sample 2: - time = 731427 + time = 731412 flags = 1 data = length 209, hash F9CB9E37 sample 3: - time = 757550 + time = 757535 flags = 1 data = length 209, hash F75BC8C0 sample 4: - time = 783672 + time = 783657 flags = 1 data = length 209, hash D00ED607 sample 5: - time = 809795 + time = 809780 flags = 1 data = length 209, hash B4338395 sample 6: - time = 835917 + time = 835902 flags = 1 data = length 209, hash E3E838A0 sample 7: - time = 862040 + time = 862025 flags = 1 data = length 209, hash 2B0CF78 sample 8: - time = 888162 + time = 888147 flags = 1 data = length 209, hash 31906FA9 sample 9: - time = 914285 + time = 914270 flags = 1 data = length 209, hash C92FC08F sample 10: - time = 940407 + time = 940392 flags = 1 data = length 209, hash 7C89994 sample 11: - time = 966529 + time = 966514 flags = 1 data = length 209, hash EC37743B sample 12: - time = 992652 + time = 992637 flags = 1 data = length 209, hash C974F6FB tracksEnded = true diff --git a/libraries/test_data/src/test/assets/extractordumps/mp3/test-cbr-info-header.mp3.3.dump b/libraries/test_data/src/test/assets/extractordumps/mp3/test-cbr-info-header.mp3.3.dump index f67a3f3462..571c174f79 100644 --- a/libraries/test_data/src/test/assets/extractordumps/mp3/test-cbr-info-header.mp3.3.dump +++ b/libraries/test_data/src/test/assets/extractordumps/mp3/test-cbr-info-header.mp3.3.dump @@ -1,10 +1,10 @@ seekMap: isSeekable = true - duration = 1044897 + duration = 1044875 getPosition(0) = [[timeUs=0, position=227]] getPosition(1) = [[timeUs=1, position=227]] - getPosition(522448) = [[timeUs=522448, position=4582]] - getPosition(1044897) = [[timeUs=1044897, position=8585]] + getPosition(522437) = [[timeUs=522437, position=4582]] + getPosition(1044875) = [[timeUs=1044875, position=8585]] numberOfTracks = 1 track 0: total output bytes = 0 diff --git a/libraries/test_data/src/test/assets/extractordumps/mp3/test-cbr-info-header.mp3.unknown_length.dump b/libraries/test_data/src/test/assets/extractordumps/mp3/test-cbr-info-header.mp3.unknown_length.dump index 0fcfc94679..04e949490d 100644 --- a/libraries/test_data/src/test/assets/extractordumps/mp3/test-cbr-info-header.mp3.unknown_length.dump +++ b/libraries/test_data/src/test/assets/extractordumps/mp3/test-cbr-info-header.mp3.unknown_length.dump @@ -1,10 +1,10 @@ seekMap: isSeekable = true - duration = 1044897 + duration = 1044875 getPosition(0) = [[timeUs=0, position=227]] getPosition(1) = [[timeUs=1, position=227]] - getPosition(522448) = [[timeUs=522448, position=4582]] - getPosition(1044897) = [[timeUs=1044897, position=8585]] + getPosition(522437) = [[timeUs=522437, position=4582]] + getPosition(1044875) = [[timeUs=1044875, position=8585]] numberOfTracks = 1 track 0: total output bytes = 8359 diff --git a/libraries/test_data/src/test/assets/transformerdumps/mp3/test-cbr-info-header.mp3/looping_mixedWith_sample_18byte_nclx_colr.mp4.dump b/libraries/test_data/src/test/assets/transformerdumps/mp3/test-cbr-info-header.mp3/looping_mixedWith_sample_18byte_nclx_colr.mp4.dump index 4383006226..b71a426130 100644 --- a/libraries/test_data/src/test/assets/transformerdumps/mp3/test-cbr-info-header.mp3/looping_mixedWith_sample_18byte_nclx_colr.mp4.dump +++ b/libraries/test_data/src/test/assets/transformerdumps/mp3/test-cbr-info-header.mp3/looping_mixedWith_sample_18byte_nclx_colr.mp4.dump @@ -271,451 +271,451 @@ sample: dataHashCode = 1582745311 size = 208 isKeyFrame = true - presentationTimeUs = 1044897 + presentationTimeUs = 1044875 sample: trackType = audio dataHashCode = 83510403 size = 209 isKeyFrame = true - presentationTimeUs = 1071019 + presentationTimeUs = 1070997 sample: trackType = audio dataHashCode = -517990520 size = 209 isKeyFrame = true - presentationTimeUs = 1097141 + presentationTimeUs = 1097119 sample: trackType = audio dataHashCode = -38271701 size = 209 isKeyFrame = true - presentationTimeUs = 1123264 + presentationTimeUs = 1123242 sample: trackType = audio dataHashCode = 177205961 size = 209 isKeyFrame = true - presentationTimeUs = 1149386 + presentationTimeUs = 1149364 sample: trackType = audio dataHashCode = -45423354 size = 209 isKeyFrame = true - presentationTimeUs = 1175509 + presentationTimeUs = 1175487 sample: trackType = audio dataHashCode = -368393474 size = 209 isKeyFrame = true - presentationTimeUs = 1201631 + presentationTimeUs = 1201609 sample: trackType = audio dataHashCode = -2068193824 size = 209 isKeyFrame = true - presentationTimeUs = 1227754 + presentationTimeUs = 1227732 sample: trackType = audio dataHashCode = 2037010277 size = 209 isKeyFrame = true - presentationTimeUs = 1253876 + presentationTimeUs = 1253854 sample: trackType = audio dataHashCode = 1307125529 size = 209 isKeyFrame = true - presentationTimeUs = 1279999 + presentationTimeUs = 1279977 sample: trackType = audio dataHashCode = 1166690065 size = 209 isKeyFrame = true - presentationTimeUs = 1306121 + presentationTimeUs = 1306099 sample: trackType = audio dataHashCode = 664096555 size = 209 isKeyFrame = true - presentationTimeUs = 1332243 + presentationTimeUs = 1332221 sample: trackType = audio dataHashCode = 441467568 size = 209 isKeyFrame = true - presentationTimeUs = 1358366 + presentationTimeUs = 1358344 sample: trackType = audio dataHashCode = 1825291067 size = 209 isKeyFrame = true - presentationTimeUs = 1384488 + presentationTimeUs = 1384466 sample: trackType = audio dataHashCode = 54628833 size = 209 isKeyFrame = true - presentationTimeUs = 1410611 + presentationTimeUs = 1410589 sample: trackType = audio dataHashCode = 1462910679 size = 209 isKeyFrame = true - presentationTimeUs = 1436733 + presentationTimeUs = 1436711 sample: trackType = audio dataHashCode = 1969327347 size = 209 isKeyFrame = true - presentationTimeUs = 1462856 + presentationTimeUs = 1462834 sample: trackType = audio dataHashCode = 2018285371 size = 209 isKeyFrame = true - presentationTimeUs = 1488978 + presentationTimeUs = 1488956 sample: trackType = audio dataHashCode = 1225810832 size = 209 isKeyFrame = true - presentationTimeUs = 1515101 + presentationTimeUs = 1515079 sample: trackType = audio dataHashCode = 1895212387 size = 209 isKeyFrame = true - presentationTimeUs = 1541223 + presentationTimeUs = 1541201 sample: trackType = audio dataHashCode = 1914208944 size = 209 isKeyFrame = true - presentationTimeUs = 1567345 + presentationTimeUs = 1567323 sample: trackType = audio dataHashCode = -2117719314 size = 209 isKeyFrame = true - presentationTimeUs = 1593468 + presentationTimeUs = 1593446 sample: trackType = audio dataHashCode = 382870627 size = 209 isKeyFrame = true - presentationTimeUs = 1619590 + presentationTimeUs = 1619568 sample: trackType = audio dataHashCode = 1191392564 size = 209 isKeyFrame = true - presentationTimeUs = 1645713 + presentationTimeUs = 1645691 sample: trackType = audio dataHashCode = -825542746 size = 209 isKeyFrame = true - presentationTimeUs = 1671835 + presentationTimeUs = 1671813 sample: trackType = audio dataHashCode = 1822175355 size = 209 isKeyFrame = true - presentationTimeUs = 1697958 + presentationTimeUs = 1697936 sample: trackType = audio dataHashCode = 1051829092 size = 209 isKeyFrame = true - presentationTimeUs = 1724080 + presentationTimeUs = 1724058 sample: trackType = audio dataHashCode = 815146240 size = 209 isKeyFrame = true - presentationTimeUs = 1750203 + presentationTimeUs = 1750181 sample: trackType = audio dataHashCode = 744278967 size = 209 isKeyFrame = true - presentationTimeUs = 1776325 + presentationTimeUs = 1776303 sample: trackType = audio dataHashCode = -104096201 size = 209 isKeyFrame = true - presentationTimeUs = 1802448 + presentationTimeUs = 1802426 sample: trackType = audio dataHashCode = -144979776 size = 209 isKeyFrame = true - presentationTimeUs = 1828570 + presentationTimeUs = 1828548 sample: trackType = audio dataHashCode = -804334073 size = 209 isKeyFrame = true - presentationTimeUs = 1854692 + presentationTimeUs = 1854670 sample: trackType = audio dataHashCode = -1271692395 size = 209 isKeyFrame = true - presentationTimeUs = 1880815 + presentationTimeUs = 1880793 sample: trackType = audio dataHashCode = -471320416 size = 209 isKeyFrame = true - presentationTimeUs = 1906937 + presentationTimeUs = 1906915 sample: trackType = audio dataHashCode = 45141880 size = 209 isKeyFrame = true - presentationTimeUs = 1933060 + presentationTimeUs = 1933038 sample: trackType = audio dataHashCode = 831549353 size = 209 isKeyFrame = true - presentationTimeUs = 1959182 + presentationTimeUs = 1959160 sample: trackType = audio dataHashCode = -919617393 size = 209 isKeyFrame = true - presentationTimeUs = 1985305 + presentationTimeUs = 1985283 sample: trackType = audio dataHashCode = 130587028 size = 209 isKeyFrame = true - presentationTimeUs = 2011427 + presentationTimeUs = 2011405 sample: trackType = audio dataHashCode = -331910085 size = 209 isKeyFrame = true - presentationTimeUs = 2037550 + presentationTimeUs = 2037528 sample: trackType = audio dataHashCode = -915081477 size = 209 isKeyFrame = true - presentationTimeUs = 2063672 + presentationTimeUs = 2063650 sample: trackType = audio dataHashCode = 1582745311 size = 208 isKeyFrame = true - presentationTimeUs = 2089794 + presentationTimeUs = 2089750 sample: trackType = audio dataHashCode = 83510403 size = 209 isKeyFrame = true - presentationTimeUs = 2115916 + presentationTimeUs = 2115872 sample: trackType = audio dataHashCode = -517990520 size = 209 isKeyFrame = true - presentationTimeUs = 2142038 + presentationTimeUs = 2141994 sample: trackType = audio dataHashCode = -38271701 size = 209 isKeyFrame = true - presentationTimeUs = 2168161 + presentationTimeUs = 2168117 sample: trackType = audio dataHashCode = 177205961 size = 209 isKeyFrame = true - presentationTimeUs = 2194283 + presentationTimeUs = 2194239 sample: trackType = audio dataHashCode = -45423354 size = 209 isKeyFrame = true - presentationTimeUs = 2220406 + presentationTimeUs = 2220362 sample: trackType = audio dataHashCode = -368393474 size = 209 isKeyFrame = true - presentationTimeUs = 2246528 + presentationTimeUs = 2246484 sample: trackType = audio dataHashCode = -2068193824 size = 209 isKeyFrame = true - presentationTimeUs = 2272651 + presentationTimeUs = 2272607 sample: trackType = audio dataHashCode = 2037010277 size = 209 isKeyFrame = true - presentationTimeUs = 2298773 + presentationTimeUs = 2298729 sample: trackType = audio dataHashCode = 1307125529 size = 209 isKeyFrame = true - presentationTimeUs = 2324896 + presentationTimeUs = 2324852 sample: trackType = audio dataHashCode = 1166690065 size = 209 isKeyFrame = true - presentationTimeUs = 2351018 + presentationTimeUs = 2350974 sample: trackType = audio dataHashCode = 664096555 size = 209 isKeyFrame = true - presentationTimeUs = 2377140 + presentationTimeUs = 2377096 sample: trackType = audio dataHashCode = 441467568 size = 209 isKeyFrame = true - presentationTimeUs = 2403263 + presentationTimeUs = 2403219 sample: trackType = audio dataHashCode = 1825291067 size = 209 isKeyFrame = true - presentationTimeUs = 2429385 + presentationTimeUs = 2429341 sample: trackType = audio dataHashCode = 54628833 size = 209 isKeyFrame = true - presentationTimeUs = 2455508 + presentationTimeUs = 2455464 sample: trackType = audio dataHashCode = 1462910679 size = 209 isKeyFrame = true - presentationTimeUs = 2481630 + presentationTimeUs = 2481586 sample: trackType = audio dataHashCode = 1969327347 size = 209 isKeyFrame = true - presentationTimeUs = 2507753 + presentationTimeUs = 2507709 sample: trackType = audio dataHashCode = 2018285371 size = 209 isKeyFrame = true - presentationTimeUs = 2533875 + presentationTimeUs = 2533831 sample: trackType = audio dataHashCode = 1225810832 size = 209 isKeyFrame = true - presentationTimeUs = 2559998 + presentationTimeUs = 2559954 sample: trackType = audio dataHashCode = 1895212387 size = 209 isKeyFrame = true - presentationTimeUs = 2586120 + presentationTimeUs = 2586076 sample: trackType = audio dataHashCode = 1914208944 size = 209 isKeyFrame = true - presentationTimeUs = 2612242 + presentationTimeUs = 2612198 sample: trackType = audio dataHashCode = -2117719314 size = 209 isKeyFrame = true - presentationTimeUs = 2638365 + presentationTimeUs = 2638321 sample: trackType = audio dataHashCode = 382870627 size = 209 isKeyFrame = true - presentationTimeUs = 2664487 + presentationTimeUs = 2664443 sample: trackType = audio dataHashCode = 1191392564 size = 209 isKeyFrame = true - presentationTimeUs = 2690610 + presentationTimeUs = 2690566 sample: trackType = audio dataHashCode = -825542746 size = 209 isKeyFrame = true - presentationTimeUs = 2716732 + presentationTimeUs = 2716688 sample: trackType = audio dataHashCode = 1822175355 size = 209 isKeyFrame = true - presentationTimeUs = 2742855 + presentationTimeUs = 2742811 sample: trackType = audio dataHashCode = 1051829092 size = 209 isKeyFrame = true - presentationTimeUs = 2768977 + presentationTimeUs = 2768933 sample: trackType = audio dataHashCode = 815146240 size = 209 isKeyFrame = true - presentationTimeUs = 2795100 + presentationTimeUs = 2795056 sample: trackType = audio dataHashCode = 744278967 size = 209 isKeyFrame = true - presentationTimeUs = 2821222 + presentationTimeUs = 2821178 sample: trackType = audio dataHashCode = -104096201 size = 209 isKeyFrame = true - presentationTimeUs = 2847345 + presentationTimeUs = 2847301 sample: trackType = audio dataHashCode = -144979776 size = 209 isKeyFrame = true - presentationTimeUs = 2873467 + presentationTimeUs = 2873423 sample: trackType = audio dataHashCode = -804334073 size = 209 isKeyFrame = true - presentationTimeUs = 2899589 + presentationTimeUs = 2899545 sample: trackType = audio dataHashCode = -1271692395 size = 209 isKeyFrame = true - presentationTimeUs = 2925712 + presentationTimeUs = 2925668 sample: trackType = audio dataHashCode = -471320416 size = 209 isKeyFrame = true - presentationTimeUs = 2951834 + presentationTimeUs = 2951790 sample: trackType = audio dataHashCode = 45141880 size = 209 isKeyFrame = true - presentationTimeUs = 2977957 + presentationTimeUs = 2977913 sample: trackType = video dataHashCode = -770308242 diff --git a/libraries/test_data/src/test/assets/transformerdumps/mp4/sample_18byte_nclx_colr.mp4/looping_mixedWith_test-cbr-info-header.mp3.dump b/libraries/test_data/src/test/assets/transformerdumps/mp4/sample_18byte_nclx_colr.mp4/looping_mixedWith_test-cbr-info-header.mp3.dump index 14eebf4163..c2722157e7 100644 --- a/libraries/test_data/src/test/assets/transformerdumps/mp4/sample_18byte_nclx_colr.mp4/looping_mixedWith_test-cbr-info-header.mp3.dump +++ b/libraries/test_data/src/test/assets/transformerdumps/mp4/sample_18byte_nclx_colr.mp4/looping_mixedWith_test-cbr-info-header.mp3.dump @@ -271,481 +271,481 @@ sample: dataHashCode = 1582745311 size = 208 isKeyFrame = true - presentationTimeUs = 1044897 + presentationTimeUs = 1044875 sample: trackType = audio dataHashCode = 83510403 size = 209 isKeyFrame = true - presentationTimeUs = 1071019 + presentationTimeUs = 1070997 sample: trackType = audio dataHashCode = -517990520 size = 209 isKeyFrame = true - presentationTimeUs = 1097141 + presentationTimeUs = 1097119 sample: trackType = audio dataHashCode = -38271701 size = 209 isKeyFrame = true - presentationTimeUs = 1123264 + presentationTimeUs = 1123242 sample: trackType = audio dataHashCode = 177205961 size = 209 isKeyFrame = true - presentationTimeUs = 1149386 + presentationTimeUs = 1149364 sample: trackType = audio dataHashCode = -45423354 size = 209 isKeyFrame = true - presentationTimeUs = 1175509 + presentationTimeUs = 1175487 sample: trackType = audio dataHashCode = -368393474 size = 209 isKeyFrame = true - presentationTimeUs = 1201631 + presentationTimeUs = 1201609 sample: trackType = audio dataHashCode = -2068193824 size = 209 isKeyFrame = true - presentationTimeUs = 1227754 + presentationTimeUs = 1227732 sample: trackType = audio dataHashCode = 2037010277 size = 209 isKeyFrame = true - presentationTimeUs = 1253876 + presentationTimeUs = 1253854 sample: trackType = audio dataHashCode = 1307125529 size = 209 isKeyFrame = true - presentationTimeUs = 1279999 + presentationTimeUs = 1279977 sample: trackType = audio dataHashCode = 1166690065 size = 209 isKeyFrame = true - presentationTimeUs = 1306121 + presentationTimeUs = 1306099 sample: trackType = audio dataHashCode = 664096555 size = 209 isKeyFrame = true - presentationTimeUs = 1332243 + presentationTimeUs = 1332221 sample: trackType = audio dataHashCode = 441467568 size = 209 isKeyFrame = true - presentationTimeUs = 1358366 + presentationTimeUs = 1358344 sample: trackType = audio dataHashCode = 1825291067 size = 209 isKeyFrame = true - presentationTimeUs = 1384488 + presentationTimeUs = 1384466 sample: trackType = audio dataHashCode = 54628833 size = 209 isKeyFrame = true - presentationTimeUs = 1410611 + presentationTimeUs = 1410589 sample: trackType = audio dataHashCode = 1462910679 size = 209 isKeyFrame = true - presentationTimeUs = 1436733 + presentationTimeUs = 1436711 sample: trackType = audio dataHashCode = 1969327347 size = 209 isKeyFrame = true - presentationTimeUs = 1462856 + presentationTimeUs = 1462834 sample: trackType = audio dataHashCode = 2018285371 size = 209 isKeyFrame = true - presentationTimeUs = 1488978 + presentationTimeUs = 1488956 sample: trackType = audio dataHashCode = 1225810832 size = 209 isKeyFrame = true - presentationTimeUs = 1515101 + presentationTimeUs = 1515079 sample: trackType = audio dataHashCode = 1895212387 size = 209 isKeyFrame = true - presentationTimeUs = 1541223 + presentationTimeUs = 1541201 sample: trackType = audio dataHashCode = 1914208944 size = 209 isKeyFrame = true - presentationTimeUs = 1567345 + presentationTimeUs = 1567323 sample: trackType = audio dataHashCode = -2117719314 size = 209 isKeyFrame = true - presentationTimeUs = 1593468 + presentationTimeUs = 1593446 sample: trackType = audio dataHashCode = 382870627 size = 209 isKeyFrame = true - presentationTimeUs = 1619590 + presentationTimeUs = 1619568 sample: trackType = audio dataHashCode = 1191392564 size = 209 isKeyFrame = true - presentationTimeUs = 1645713 + presentationTimeUs = 1645691 sample: trackType = audio dataHashCode = -825542746 size = 209 isKeyFrame = true - presentationTimeUs = 1671835 + presentationTimeUs = 1671813 sample: trackType = audio dataHashCode = 1822175355 size = 209 isKeyFrame = true - presentationTimeUs = 1697958 + presentationTimeUs = 1697936 sample: trackType = audio dataHashCode = 1051829092 size = 209 isKeyFrame = true - presentationTimeUs = 1724080 + presentationTimeUs = 1724058 sample: trackType = audio dataHashCode = 815146240 size = 209 isKeyFrame = true - presentationTimeUs = 1750203 + presentationTimeUs = 1750181 sample: trackType = audio dataHashCode = 744278967 size = 209 isKeyFrame = true - presentationTimeUs = 1776325 + presentationTimeUs = 1776303 sample: trackType = audio dataHashCode = -104096201 size = 209 isKeyFrame = true - presentationTimeUs = 1802448 + presentationTimeUs = 1802426 sample: trackType = audio dataHashCode = -144979776 size = 209 isKeyFrame = true - presentationTimeUs = 1828570 + presentationTimeUs = 1828548 sample: trackType = audio dataHashCode = -804334073 size = 209 isKeyFrame = true - presentationTimeUs = 1854692 + presentationTimeUs = 1854670 sample: trackType = audio dataHashCode = -1271692395 size = 209 isKeyFrame = true - presentationTimeUs = 1880815 + presentationTimeUs = 1880793 sample: trackType = audio dataHashCode = -471320416 size = 209 isKeyFrame = true - presentationTimeUs = 1906937 + presentationTimeUs = 1906915 sample: trackType = audio dataHashCode = 45141880 size = 209 isKeyFrame = true - presentationTimeUs = 1933060 + presentationTimeUs = 1933038 sample: trackType = audio dataHashCode = 831549353 size = 209 isKeyFrame = true - presentationTimeUs = 1959182 + presentationTimeUs = 1959160 sample: trackType = audio dataHashCode = -919617393 size = 209 isKeyFrame = true - presentationTimeUs = 1985305 + presentationTimeUs = 1985283 sample: trackType = audio dataHashCode = 130587028 size = 209 isKeyFrame = true - presentationTimeUs = 2011427 + presentationTimeUs = 2011405 sample: trackType = audio dataHashCode = -331910085 size = 209 isKeyFrame = true - presentationTimeUs = 2037550 + presentationTimeUs = 2037528 sample: trackType = audio dataHashCode = -915081477 size = 209 isKeyFrame = true - presentationTimeUs = 2063672 + presentationTimeUs = 2063650 sample: trackType = audio dataHashCode = 1582745311 size = 208 isKeyFrame = true - presentationTimeUs = 2089794 + presentationTimeUs = 2089750 sample: trackType = audio dataHashCode = 83510403 size = 209 isKeyFrame = true - presentationTimeUs = 2115916 + presentationTimeUs = 2115872 sample: trackType = audio dataHashCode = -517990520 size = 209 isKeyFrame = true - presentationTimeUs = 2142038 + presentationTimeUs = 2141994 sample: trackType = audio dataHashCode = -38271701 size = 209 isKeyFrame = true - presentationTimeUs = 2168161 + presentationTimeUs = 2168117 sample: trackType = audio dataHashCode = 177205961 size = 209 isKeyFrame = true - presentationTimeUs = 2194283 + presentationTimeUs = 2194239 sample: trackType = audio dataHashCode = -45423354 size = 209 isKeyFrame = true - presentationTimeUs = 2220406 + presentationTimeUs = 2220362 sample: trackType = audio dataHashCode = -368393474 size = 209 isKeyFrame = true - presentationTimeUs = 2246528 + presentationTimeUs = 2246484 sample: trackType = audio dataHashCode = -2068193824 size = 209 isKeyFrame = true - presentationTimeUs = 2272651 + presentationTimeUs = 2272607 sample: trackType = audio dataHashCode = 2037010277 size = 209 isKeyFrame = true - presentationTimeUs = 2298773 + presentationTimeUs = 2298729 sample: trackType = audio dataHashCode = 1307125529 size = 209 isKeyFrame = true - presentationTimeUs = 2324896 + presentationTimeUs = 2324852 sample: trackType = audio dataHashCode = 1166690065 size = 209 isKeyFrame = true - presentationTimeUs = 2351018 + presentationTimeUs = 2350974 sample: trackType = audio dataHashCode = 664096555 size = 209 isKeyFrame = true - presentationTimeUs = 2377140 + presentationTimeUs = 2377096 sample: trackType = audio dataHashCode = 441467568 size = 209 isKeyFrame = true - presentationTimeUs = 2403263 + presentationTimeUs = 2403219 sample: trackType = audio dataHashCode = 1825291067 size = 209 isKeyFrame = true - presentationTimeUs = 2429385 + presentationTimeUs = 2429341 sample: trackType = audio dataHashCode = 54628833 size = 209 isKeyFrame = true - presentationTimeUs = 2455508 + presentationTimeUs = 2455464 sample: trackType = audio dataHashCode = 1462910679 size = 209 isKeyFrame = true - presentationTimeUs = 2481630 + presentationTimeUs = 2481586 sample: trackType = audio dataHashCode = 1969327347 size = 209 isKeyFrame = true - presentationTimeUs = 2507753 + presentationTimeUs = 2507709 sample: trackType = audio dataHashCode = 2018285371 size = 209 isKeyFrame = true - presentationTimeUs = 2533875 + presentationTimeUs = 2533831 sample: trackType = audio dataHashCode = 1225810832 size = 209 isKeyFrame = true - presentationTimeUs = 2559998 + presentationTimeUs = 2559954 sample: trackType = audio dataHashCode = 1895212387 size = 209 isKeyFrame = true - presentationTimeUs = 2586120 + presentationTimeUs = 2586076 sample: trackType = audio dataHashCode = 1914208944 size = 209 isKeyFrame = true - presentationTimeUs = 2612242 + presentationTimeUs = 2612198 sample: trackType = audio dataHashCode = -2117719314 size = 209 isKeyFrame = true - presentationTimeUs = 2638365 + presentationTimeUs = 2638321 sample: trackType = audio dataHashCode = 382870627 size = 209 isKeyFrame = true - presentationTimeUs = 2664487 + presentationTimeUs = 2664443 sample: trackType = audio dataHashCode = 1191392564 size = 209 isKeyFrame = true - presentationTimeUs = 2690610 + presentationTimeUs = 2690566 sample: trackType = audio dataHashCode = -825542746 size = 209 isKeyFrame = true - presentationTimeUs = 2716732 + presentationTimeUs = 2716688 sample: trackType = audio dataHashCode = 1822175355 size = 209 isKeyFrame = true - presentationTimeUs = 2742855 + presentationTimeUs = 2742811 sample: trackType = audio dataHashCode = 1051829092 size = 209 isKeyFrame = true - presentationTimeUs = 2768977 + presentationTimeUs = 2768933 sample: trackType = audio dataHashCode = 815146240 size = 209 isKeyFrame = true - presentationTimeUs = 2795100 + presentationTimeUs = 2795056 sample: trackType = audio dataHashCode = 744278967 size = 209 isKeyFrame = true - presentationTimeUs = 2821222 + presentationTimeUs = 2821178 sample: trackType = audio dataHashCode = -104096201 size = 209 isKeyFrame = true - presentationTimeUs = 2847345 + presentationTimeUs = 2847301 sample: trackType = audio dataHashCode = -144979776 size = 209 isKeyFrame = true - presentationTimeUs = 2873467 + presentationTimeUs = 2873423 sample: trackType = audio dataHashCode = -804334073 size = 209 isKeyFrame = true - presentationTimeUs = 2899589 + presentationTimeUs = 2899545 sample: trackType = audio dataHashCode = -1271692395 size = 209 isKeyFrame = true - presentationTimeUs = 2925712 + presentationTimeUs = 2925668 sample: trackType = audio dataHashCode = -471320416 size = 209 isKeyFrame = true - presentationTimeUs = 2951834 + presentationTimeUs = 2951790 sample: trackType = audio dataHashCode = 45141880 size = 209 isKeyFrame = true - presentationTimeUs = 2977957 + presentationTimeUs = 2977913 sample: trackType = audio dataHashCode = 831549353 size = 209 isKeyFrame = true - presentationTimeUs = 3004079 + presentationTimeUs = 3004035 sample: trackType = audio dataHashCode = -919617393 size = 209 isKeyFrame = true - presentationTimeUs = 3030202 + presentationTimeUs = 3030158 sample: trackType = audio dataHashCode = 130587028 size = 209 isKeyFrame = true - presentationTimeUs = 3056324 + presentationTimeUs = 3056280 sample: trackType = audio dataHashCode = -331910085 size = 209 isKeyFrame = true - presentationTimeUs = 3082447 + presentationTimeUs = 3082403 sample: trackType = audio dataHashCode = -915081477 size = 209 isKeyFrame = true - presentationTimeUs = 3108569 + presentationTimeUs = 3108525 sample: trackType = video dataHashCode = -770308242