MP3: Use bytes field from VBRI frame instead of deriving from ToC

The previous code assumed that the `VBRI` Table of Contents (ToC)
covers all the MP3 data in the file. In a file with an invalid VBRI ToC
where this isn't the case, this results in playback silently stopping
mid-playback (and either advancing to the next item, or continuing to
count up the playback clock forever). This change considers the `bytes`
field to determine the end of the MP3 data, in addition to deriving it
from the ToC. If they disagree we log a warning and take the max value.
This is because we handle accidentally reading non-MP3 data at the end
(or hitting EoF) better than stopping reading valid MP3 data partway
through.

Issue: androidx/media#1904

#cherrypick

PiperOrigin-RevId: 700319250
This commit is contained in:
ibaker 2024-11-26 06:15:19 -08:00 committed by Copybara-Service
parent 2a4bae01ef
commit 46578ee0a6
11 changed files with 3428 additions and 5 deletions

View File

@ -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`

View File

@ -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");

View File

@ -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;

View File

@ -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(

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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