Fix rounding error in fMP4 presentation time calculation
The presentation time in fMP4 is calculated by adding and subtracting 3 values. All 3 values are currently converted to microseconds first before the calculation, leading to rounding errors. The rounding errors can be avoided by doing the conversion to microseconds as the last step. For example: In timescale 96000: 8008+8008-16016 = 0 Rounding to us first: 83416+83416-166833=-1 #minor-release PiperOrigin-RevId: 406809844
This commit is contained in:
parent
7b84d6b051
commit
d1e13b629d
@ -1001,21 +1001,18 @@ public class FragmentedMp4Extractor implements Extractor {
|
||||
|
||||
// Offset to the entire video timeline. In the presence of B-frames this is usually used to
|
||||
// ensure that the first frame's presentation timestamp is zero.
|
||||
long edtsOffsetUs = 0;
|
||||
long edtsOffset = 0;
|
||||
|
||||
// Currently we only support a single edit that moves the entire media timeline (indicated by
|
||||
// duration == 0). Other uses of edit lists are uncommon and unsupported.
|
||||
if (track.editListDurations != null
|
||||
&& track.editListDurations.length == 1
|
||||
&& track.editListDurations[0] == 0) {
|
||||
edtsOffsetUs =
|
||||
Util.scaleLargeTimestamp(
|
||||
castNonNull(track.editListMediaTimes)[0], C.MICROS_PER_SECOND, track.timescale);
|
||||
edtsOffset = castNonNull(track.editListMediaTimes)[0];
|
||||
}
|
||||
|
||||
int[] sampleSizeTable = fragment.sampleSizeTable;
|
||||
int[] sampleCompositionTimeOffsetUsTable = fragment.sampleCompositionTimeOffsetUsTable;
|
||||
long[] sampleDecodingTimeUsTable = fragment.sampleDecodingTimeUsTable;
|
||||
long[] samplePresentationTimesUs = fragment.samplePresentationTimesUs;
|
||||
boolean[] sampleIsSyncFrameTable = fragment.sampleIsSyncFrameTable;
|
||||
|
||||
boolean workaroundEveryVideoFrameIsSyncFrame =
|
||||
@ -1035,22 +1032,20 @@ public class FragmentedMp4Extractor implements Extractor {
|
||||
sampleFlagsPresent
|
||||
? trun.readInt()
|
||||
: (i == 0 && firstSampleFlagsPresent) ? firstSampleFlags : defaultSampleValues.flags;
|
||||
int sampleCompositionTimeOffset = 0;
|
||||
if (sampleCompositionTimeOffsetsPresent) {
|
||||
// The BMFF spec (ISO 14496-12) states that sample offsets should be unsigned integers in
|
||||
// version 0 trun boxes, however a significant number of streams violate the spec and use
|
||||
// signed integers instead. It's safe to always decode sample offsets as signed integers
|
||||
// here, because unsigned integers will still be parsed correctly (unless their top bit is
|
||||
// set, which is never true in practice because sample offsets are always small).
|
||||
int sampleOffset = trun.readInt();
|
||||
sampleCompositionTimeOffsetUsTable[i] =
|
||||
(int) ((sampleOffset * C.MICROS_PER_SECOND) / timescale);
|
||||
} else {
|
||||
sampleCompositionTimeOffsetUsTable[i] = 0;
|
||||
sampleCompositionTimeOffset = trun.readInt();
|
||||
}
|
||||
sampleDecodingTimeUsTable[i] =
|
||||
Util.scaleLargeTimestamp(cumulativeTime, C.MICROS_PER_SECOND, timescale) - edtsOffsetUs;
|
||||
long samplePresentationTime = cumulativeTime + sampleCompositionTimeOffset - edtsOffset;
|
||||
samplePresentationTimesUs[i] =
|
||||
Util.scaleLargeTimestamp(samplePresentationTime, C.MICROS_PER_SECOND, timescale);
|
||||
if (!fragment.nextFragmentDecodeTimeIncludesMoov) {
|
||||
sampleDecodingTimeUsTable[i] += trackBundle.moovSampleTable.durationUs;
|
||||
samplePresentationTimesUs[i] += trackBundle.moovSampleTable.durationUs;
|
||||
}
|
||||
sampleSizeTable[i] = sampleSize;
|
||||
sampleIsSyncFrameTable[i] =
|
||||
|
@ -42,10 +42,8 @@ import org.checkerframework.checker.nullness.qual.MonotonicNonNull;
|
||||
public int[] trunLength;
|
||||
/** The size of each sample in the fragment. */
|
||||
public int[] sampleSizeTable;
|
||||
/** The composition time offset of each sample in the fragment, in microseconds. */
|
||||
public int[] sampleCompositionTimeOffsetUsTable;
|
||||
/** The decoding time of each sample in the fragment, in microseconds. */
|
||||
public long[] sampleDecodingTimeUsTable;
|
||||
/** The presentation time of each sample in the fragment, in microseconds. */
|
||||
public long[] samplePresentationTimesUs;
|
||||
/** Indicates which samples are sync frames. */
|
||||
public boolean[] sampleIsSyncFrameTable;
|
||||
/** Whether the fragment defines encryption data. */
|
||||
@ -80,8 +78,7 @@ import org.checkerframework.checker.nullness.qual.MonotonicNonNull;
|
||||
trunDataPosition = new long[0];
|
||||
trunLength = new int[0];
|
||||
sampleSizeTable = new int[0];
|
||||
sampleCompositionTimeOffsetUsTable = new int[0];
|
||||
sampleDecodingTimeUsTable = new long[0];
|
||||
samplePresentationTimesUs = new long[0];
|
||||
sampleIsSyncFrameTable = new boolean[0];
|
||||
sampleHasSubsampleEncryptionTable = new boolean[0];
|
||||
sampleEncryptionData = new ParsableByteArray();
|
||||
@ -123,8 +120,7 @@ import org.checkerframework.checker.nullness.qual.MonotonicNonNull;
|
||||
// likely. The choice of 25% is relatively arbitrary.
|
||||
int tableSize = (sampleCount * 125) / 100;
|
||||
sampleSizeTable = new int[tableSize];
|
||||
sampleCompositionTimeOffsetUsTable = new int[tableSize];
|
||||
sampleDecodingTimeUsTable = new long[tableSize];
|
||||
samplePresentationTimesUs = new long[tableSize];
|
||||
sampleIsSyncFrameTable = new boolean[tableSize];
|
||||
sampleHasSubsampleEncryptionTable = new boolean[tableSize];
|
||||
}
|
||||
@ -173,7 +169,7 @@ import org.checkerframework.checker.nullness.qual.MonotonicNonNull;
|
||||
* @return The presentation timestamps of this sample in microseconds.
|
||||
*/
|
||||
public long getSamplePresentationTimeUs(int index) {
|
||||
return sampleDecodingTimeUsTable[index] + sampleCompositionTimeOffsetUsTable[index];
|
||||
return samplePresentationTimesUs[index];
|
||||
}
|
||||
|
||||
/** Returns whether the sample at the given index has a subsample encryption table. */
|
||||
|
@ -20,7 +20,7 @@ track 0:
|
||||
flags = 1
|
||||
data = length 38070, hash B58E1AEE
|
||||
sample 1:
|
||||
time = 200199
|
||||
time = 200200
|
||||
flags = 0
|
||||
data = length 8340, hash 8AC449FF
|
||||
sample 2:
|
||||
@ -32,7 +32,7 @@ track 0:
|
||||
flags = 0
|
||||
data = length 469, hash D6E0A200
|
||||
sample 4:
|
||||
time = 166832
|
||||
time = 166833
|
||||
flags = 0
|
||||
data = length 564, hash E5F56C5B
|
||||
sample 5:
|
||||
@ -48,7 +48,7 @@ track 0:
|
||||
flags = 0
|
||||
data = length 455, hash B9CCE047
|
||||
sample 8:
|
||||
time = 300299
|
||||
time = 300300
|
||||
flags = 0
|
||||
data = length 467, hash 69806D94
|
||||
sample 9:
|
||||
@ -56,7 +56,7 @@ track 0:
|
||||
flags = 0
|
||||
data = length 4549, hash 3944F501
|
||||
sample 10:
|
||||
time = 400399
|
||||
time = 400400
|
||||
flags = 0
|
||||
data = length 1087, hash 491BF106
|
||||
sample 11:
|
||||
@ -68,7 +68,7 @@ track 0:
|
||||
flags = 0
|
||||
data = length 455, hash 8A0610
|
||||
sample 13:
|
||||
time = 600599
|
||||
time = 600600
|
||||
flags = 0
|
||||
data = length 5190, hash B9031D8
|
||||
sample 14:
|
||||
@ -80,7 +80,7 @@ track 0:
|
||||
flags = 0
|
||||
data = length 653, hash 8494F326
|
||||
sample 16:
|
||||
time = 567232
|
||||
time = 567233
|
||||
flags = 0
|
||||
data = length 485, hash 2CCC85F4
|
||||
sample 17:
|
||||
@ -96,7 +96,7 @@ track 0:
|
||||
flags = 0
|
||||
data = length 640, hash F664125B
|
||||
sample 20:
|
||||
time = 700699
|
||||
time = 700700
|
||||
flags = 0
|
||||
data = length 491, hash B5930C7C
|
||||
sample 21:
|
||||
@ -104,7 +104,7 @@ track 0:
|
||||
flags = 0
|
||||
data = length 2989, hash 92CF4FCF
|
||||
sample 22:
|
||||
time = 800799
|
||||
time = 800800
|
||||
flags = 0
|
||||
data = length 838, hash 294A3451
|
||||
sample 23:
|
||||
@ -116,7 +116,7 @@ track 0:
|
||||
flags = 0
|
||||
data = length 329, hash A654FFA1
|
||||
sample 25:
|
||||
time = 1000999
|
||||
time = 1001000
|
||||
flags = 0
|
||||
data = length 1517, hash 5F7EBF8B
|
||||
sample 26:
|
||||
@ -128,7 +128,7 @@ track 0:
|
||||
flags = 0
|
||||
data = length 415, hash B31BBC3B
|
||||
sample 28:
|
||||
time = 967632
|
||||
time = 967633
|
||||
flags = 0
|
||||
data = length 415, hash 850DFEA3
|
||||
sample 29:
|
||||
|
@ -20,7 +20,7 @@ track 0:
|
||||
flags = 1
|
||||
data = length 38070, hash B58E1AEE
|
||||
sample 1:
|
||||
time = 200199
|
||||
time = 200200
|
||||
flags = 0
|
||||
data = length 8340, hash 8AC449FF
|
||||
sample 2:
|
||||
@ -32,7 +32,7 @@ track 0:
|
||||
flags = 0
|
||||
data = length 469, hash D6E0A200
|
||||
sample 4:
|
||||
time = 166832
|
||||
time = 166833
|
||||
flags = 0
|
||||
data = length 564, hash E5F56C5B
|
||||
sample 5:
|
||||
@ -48,7 +48,7 @@ track 0:
|
||||
flags = 0
|
||||
data = length 455, hash B9CCE047
|
||||
sample 8:
|
||||
time = 300299
|
||||
time = 300300
|
||||
flags = 0
|
||||
data = length 467, hash 69806D94
|
||||
sample 9:
|
||||
@ -56,7 +56,7 @@ track 0:
|
||||
flags = 0
|
||||
data = length 4549, hash 3944F501
|
||||
sample 10:
|
||||
time = 400399
|
||||
time = 400400
|
||||
flags = 0
|
||||
data = length 1087, hash 491BF106
|
||||
sample 11:
|
||||
@ -68,7 +68,7 @@ track 0:
|
||||
flags = 0
|
||||
data = length 455, hash 8A0610
|
||||
sample 13:
|
||||
time = 600599
|
||||
time = 600600
|
||||
flags = 0
|
||||
data = length 5190, hash B9031D8
|
||||
sample 14:
|
||||
@ -80,7 +80,7 @@ track 0:
|
||||
flags = 0
|
||||
data = length 653, hash 8494F326
|
||||
sample 16:
|
||||
time = 567232
|
||||
time = 567233
|
||||
flags = 0
|
||||
data = length 485, hash 2CCC85F4
|
||||
sample 17:
|
||||
@ -96,7 +96,7 @@ track 0:
|
||||
flags = 0
|
||||
data = length 640, hash F664125B
|
||||
sample 20:
|
||||
time = 700699
|
||||
time = 700700
|
||||
flags = 0
|
||||
data = length 491, hash B5930C7C
|
||||
sample 21:
|
||||
@ -104,7 +104,7 @@ track 0:
|
||||
flags = 0
|
||||
data = length 2989, hash 92CF4FCF
|
||||
sample 22:
|
||||
time = 800799
|
||||
time = 800800
|
||||
flags = 0
|
||||
data = length 838, hash 294A3451
|
||||
sample 23:
|
||||
@ -116,7 +116,7 @@ track 0:
|
||||
flags = 0
|
||||
data = length 329, hash A654FFA1
|
||||
sample 25:
|
||||
time = 1000999
|
||||
time = 1001000
|
||||
flags = 0
|
||||
data = length 1517, hash 5F7EBF8B
|
||||
sample 26:
|
||||
@ -128,7 +128,7 @@ track 0:
|
||||
flags = 0
|
||||
data = length 415, hash B31BBC3B
|
||||
sample 28:
|
||||
time = 967632
|
||||
time = 967633
|
||||
flags = 0
|
||||
data = length 415, hash 850DFEA3
|
||||
sample 29:
|
||||
|
@ -23,7 +23,7 @@ track 0:
|
||||
flags = 1
|
||||
data = length 38070, hash B58E1AEE
|
||||
sample 1:
|
||||
time = 200199
|
||||
time = 200200
|
||||
flags = 0
|
||||
data = length 8340, hash 8AC449FF
|
||||
sample 2:
|
||||
@ -35,7 +35,7 @@ track 0:
|
||||
flags = 0
|
||||
data = length 469, hash D6E0A200
|
||||
sample 4:
|
||||
time = 166832
|
||||
time = 166833
|
||||
flags = 0
|
||||
data = length 564, hash E5F56C5B
|
||||
sample 5:
|
||||
@ -51,7 +51,7 @@ track 0:
|
||||
flags = 0
|
||||
data = length 455, hash B9CCE047
|
||||
sample 8:
|
||||
time = 300299
|
||||
time = 300300
|
||||
flags = 0
|
||||
data = length 467, hash 69806D94
|
||||
sample 9:
|
||||
@ -59,7 +59,7 @@ track 0:
|
||||
flags = 0
|
||||
data = length 4549, hash 3944F501
|
||||
sample 10:
|
||||
time = 400399
|
||||
time = 400400
|
||||
flags = 0
|
||||
data = length 1087, hash 491BF106
|
||||
sample 11:
|
||||
@ -71,7 +71,7 @@ track 0:
|
||||
flags = 0
|
||||
data = length 455, hash 8A0610
|
||||
sample 13:
|
||||
time = 600599
|
||||
time = 600600
|
||||
flags = 0
|
||||
data = length 5190, hash B9031D8
|
||||
sample 14:
|
||||
@ -83,7 +83,7 @@ track 0:
|
||||
flags = 0
|
||||
data = length 653, hash 8494F326
|
||||
sample 16:
|
||||
time = 567232
|
||||
time = 567233
|
||||
flags = 0
|
||||
data = length 485, hash 2CCC85F4
|
||||
sample 17:
|
||||
@ -99,7 +99,7 @@ track 0:
|
||||
flags = 0
|
||||
data = length 640, hash F664125B
|
||||
sample 20:
|
||||
time = 700699
|
||||
time = 700700
|
||||
flags = 0
|
||||
data = length 491, hash B5930C7C
|
||||
sample 21:
|
||||
@ -107,7 +107,7 @@ track 0:
|
||||
flags = 0
|
||||
data = length 2989, hash 92CF4FCF
|
||||
sample 22:
|
||||
time = 800799
|
||||
time = 800800
|
||||
flags = 0
|
||||
data = length 838, hash 294A3451
|
||||
sample 23:
|
||||
@ -119,7 +119,7 @@ track 0:
|
||||
flags = 0
|
||||
data = length 329, hash A654FFA1
|
||||
sample 25:
|
||||
time = 1000999
|
||||
time = 1001000
|
||||
flags = 0
|
||||
data = length 1517, hash 5F7EBF8B
|
||||
sample 26:
|
||||
@ -131,7 +131,7 @@ track 0:
|
||||
flags = 0
|
||||
data = length 415, hash B31BBC3B
|
||||
sample 28:
|
||||
time = 967632
|
||||
time = 967633
|
||||
flags = 0
|
||||
data = length 415, hash 850DFEA3
|
||||
sample 29:
|
||||
|
@ -23,7 +23,7 @@ track 0:
|
||||
flags = 1
|
||||
data = length 38070, hash B58E1AEE
|
||||
sample 1:
|
||||
time = 200199
|
||||
time = 200200
|
||||
flags = 0
|
||||
data = length 8340, hash 8AC449FF
|
||||
sample 2:
|
||||
@ -35,7 +35,7 @@ track 0:
|
||||
flags = 0
|
||||
data = length 469, hash D6E0A200
|
||||
sample 4:
|
||||
time = 166832
|
||||
time = 166833
|
||||
flags = 0
|
||||
data = length 564, hash E5F56C5B
|
||||
sample 5:
|
||||
@ -51,7 +51,7 @@ track 0:
|
||||
flags = 0
|
||||
data = length 455, hash B9CCE047
|
||||
sample 8:
|
||||
time = 300299
|
||||
time = 300300
|
||||
flags = 0
|
||||
data = length 467, hash 69806D94
|
||||
sample 9:
|
||||
@ -59,7 +59,7 @@ track 0:
|
||||
flags = 0
|
||||
data = length 4549, hash 3944F501
|
||||
sample 10:
|
||||
time = 400399
|
||||
time = 400400
|
||||
flags = 0
|
||||
data = length 1087, hash 491BF106
|
||||
sample 11:
|
||||
@ -71,7 +71,7 @@ track 0:
|
||||
flags = 0
|
||||
data = length 455, hash 8A0610
|
||||
sample 13:
|
||||
time = 600599
|
||||
time = 600600
|
||||
flags = 0
|
||||
data = length 5190, hash B9031D8
|
||||
sample 14:
|
||||
@ -83,7 +83,7 @@ track 0:
|
||||
flags = 0
|
||||
data = length 653, hash 8494F326
|
||||
sample 16:
|
||||
time = 567232
|
||||
time = 567233
|
||||
flags = 0
|
||||
data = length 485, hash 2CCC85F4
|
||||
sample 17:
|
||||
@ -99,7 +99,7 @@ track 0:
|
||||
flags = 0
|
||||
data = length 640, hash F664125B
|
||||
sample 20:
|
||||
time = 700699
|
||||
time = 700700
|
||||
flags = 0
|
||||
data = length 491, hash B5930C7C
|
||||
sample 21:
|
||||
@ -107,7 +107,7 @@ track 0:
|
||||
flags = 0
|
||||
data = length 2989, hash 92CF4FCF
|
||||
sample 22:
|
||||
time = 800799
|
||||
time = 800800
|
||||
flags = 0
|
||||
data = length 838, hash 294A3451
|
||||
sample 23:
|
||||
@ -119,7 +119,7 @@ track 0:
|
||||
flags = 0
|
||||
data = length 329, hash A654FFA1
|
||||
sample 25:
|
||||
time = 1000999
|
||||
time = 1001000
|
||||
flags = 0
|
||||
data = length 1517, hash 5F7EBF8B
|
||||
sample 26:
|
||||
@ -131,7 +131,7 @@ track 0:
|
||||
flags = 0
|
||||
data = length 415, hash B31BBC3B
|
||||
sample 28:
|
||||
time = 967632
|
||||
time = 967633
|
||||
flags = 0
|
||||
data = length 415, hash 850DFEA3
|
||||
sample 29:
|
||||
|
@ -23,7 +23,7 @@ track 0:
|
||||
flags = 1
|
||||
data = length 38070, hash B58E1AEE
|
||||
sample 1:
|
||||
time = 200199
|
||||
time = 200200
|
||||
flags = 0
|
||||
data = length 8340, hash 8AC449FF
|
||||
sample 2:
|
||||
@ -35,7 +35,7 @@ track 0:
|
||||
flags = 0
|
||||
data = length 469, hash D6E0A200
|
||||
sample 4:
|
||||
time = 166832
|
||||
time = 166833
|
||||
flags = 0
|
||||
data = length 564, hash E5F56C5B
|
||||
sample 5:
|
||||
@ -51,7 +51,7 @@ track 0:
|
||||
flags = 0
|
||||
data = length 455, hash B9CCE047
|
||||
sample 8:
|
||||
time = 300299
|
||||
time = 300300
|
||||
flags = 0
|
||||
data = length 467, hash 69806D94
|
||||
sample 9:
|
||||
@ -59,7 +59,7 @@ track 0:
|
||||
flags = 0
|
||||
data = length 4549, hash 3944F501
|
||||
sample 10:
|
||||
time = 400399
|
||||
time = 400400
|
||||
flags = 0
|
||||
data = length 1087, hash 491BF106
|
||||
sample 11:
|
||||
@ -71,7 +71,7 @@ track 0:
|
||||
flags = 0
|
||||
data = length 455, hash 8A0610
|
||||
sample 13:
|
||||
time = 600599
|
||||
time = 600600
|
||||
flags = 0
|
||||
data = length 5190, hash B9031D8
|
||||
sample 14:
|
||||
@ -83,7 +83,7 @@ track 0:
|
||||
flags = 0
|
||||
data = length 653, hash 8494F326
|
||||
sample 16:
|
||||
time = 567232
|
||||
time = 567233
|
||||
flags = 0
|
||||
data = length 485, hash 2CCC85F4
|
||||
sample 17:
|
||||
@ -99,7 +99,7 @@ track 0:
|
||||
flags = 0
|
||||
data = length 640, hash F664125B
|
||||
sample 20:
|
||||
time = 700699
|
||||
time = 700700
|
||||
flags = 0
|
||||
data = length 491, hash B5930C7C
|
||||
sample 21:
|
||||
@ -107,7 +107,7 @@ track 0:
|
||||
flags = 0
|
||||
data = length 2989, hash 92CF4FCF
|
||||
sample 22:
|
||||
time = 800799
|
||||
time = 800800
|
||||
flags = 0
|
||||
data = length 838, hash 294A3451
|
||||
sample 23:
|
||||
@ -119,7 +119,7 @@ track 0:
|
||||
flags = 0
|
||||
data = length 329, hash A654FFA1
|
||||
sample 25:
|
||||
time = 1000999
|
||||
time = 1001000
|
||||
flags = 0
|
||||
data = length 1517, hash 5F7EBF8B
|
||||
sample 26:
|
||||
@ -131,7 +131,7 @@ track 0:
|
||||
flags = 0
|
||||
data = length 415, hash B31BBC3B
|
||||
sample 28:
|
||||
time = 967632
|
||||
time = 967633
|
||||
flags = 0
|
||||
data = length 415, hash 850DFEA3
|
||||
sample 29:
|
||||
|
@ -23,7 +23,7 @@ track 0:
|
||||
flags = 1
|
||||
data = length 38070, hash B58E1AEE
|
||||
sample 1:
|
||||
time = 200199
|
||||
time = 200200
|
||||
flags = 0
|
||||
data = length 8340, hash 8AC449FF
|
||||
sample 2:
|
||||
@ -35,7 +35,7 @@ track 0:
|
||||
flags = 0
|
||||
data = length 469, hash D6E0A200
|
||||
sample 4:
|
||||
time = 166832
|
||||
time = 166833
|
||||
flags = 0
|
||||
data = length 564, hash E5F56C5B
|
||||
sample 5:
|
||||
@ -51,7 +51,7 @@ track 0:
|
||||
flags = 0
|
||||
data = length 455, hash B9CCE047
|
||||
sample 8:
|
||||
time = 300299
|
||||
time = 300300
|
||||
flags = 0
|
||||
data = length 467, hash 69806D94
|
||||
sample 9:
|
||||
@ -59,7 +59,7 @@ track 0:
|
||||
flags = 0
|
||||
data = length 4549, hash 3944F501
|
||||
sample 10:
|
||||
time = 400399
|
||||
time = 400400
|
||||
flags = 0
|
||||
data = length 1087, hash 491BF106
|
||||
sample 11:
|
||||
@ -71,7 +71,7 @@ track 0:
|
||||
flags = 0
|
||||
data = length 455, hash 8A0610
|
||||
sample 13:
|
||||
time = 600599
|
||||
time = 600600
|
||||
flags = 0
|
||||
data = length 5190, hash B9031D8
|
||||
sample 14:
|
||||
@ -83,7 +83,7 @@ track 0:
|
||||
flags = 0
|
||||
data = length 653, hash 8494F326
|
||||
sample 16:
|
||||
time = 567232
|
||||
time = 567233
|
||||
flags = 0
|
||||
data = length 485, hash 2CCC85F4
|
||||
sample 17:
|
||||
@ -99,7 +99,7 @@ track 0:
|
||||
flags = 0
|
||||
data = length 640, hash F664125B
|
||||
sample 20:
|
||||
time = 700699
|
||||
time = 700700
|
||||
flags = 0
|
||||
data = length 491, hash B5930C7C
|
||||
sample 21:
|
||||
@ -107,7 +107,7 @@ track 0:
|
||||
flags = 0
|
||||
data = length 2989, hash 92CF4FCF
|
||||
sample 22:
|
||||
time = 800799
|
||||
time = 800800
|
||||
flags = 0
|
||||
data = length 838, hash 294A3451
|
||||
sample 23:
|
||||
@ -119,7 +119,7 @@ track 0:
|
||||
flags = 0
|
||||
data = length 329, hash A654FFA1
|
||||
sample 25:
|
||||
time = 1000999
|
||||
time = 1001000
|
||||
flags = 0
|
||||
data = length 1517, hash 5F7EBF8B
|
||||
sample 26:
|
||||
@ -131,7 +131,7 @@ track 0:
|
||||
flags = 0
|
||||
data = length 415, hash B31BBC3B
|
||||
sample 28:
|
||||
time = 967632
|
||||
time = 967633
|
||||
flags = 0
|
||||
data = length 415, hash 850DFEA3
|
||||
sample 29:
|
||||
|
@ -23,7 +23,7 @@ track 0:
|
||||
flags = 1
|
||||
data = length 38070, hash B58E1AEE
|
||||
sample 1:
|
||||
time = 200199
|
||||
time = 200200
|
||||
flags = 0
|
||||
data = length 8340, hash 8AC449FF
|
||||
sample 2:
|
||||
@ -35,7 +35,7 @@ track 0:
|
||||
flags = 0
|
||||
data = length 469, hash D6E0A200
|
||||
sample 4:
|
||||
time = 166832
|
||||
time = 166833
|
||||
flags = 0
|
||||
data = length 564, hash E5F56C5B
|
||||
sample 5:
|
||||
@ -51,7 +51,7 @@ track 0:
|
||||
flags = 0
|
||||
data = length 455, hash B9CCE047
|
||||
sample 8:
|
||||
time = 300299
|
||||
time = 300300
|
||||
flags = 0
|
||||
data = length 467, hash 69806D94
|
||||
sample 9:
|
||||
@ -59,7 +59,7 @@ track 0:
|
||||
flags = 0
|
||||
data = length 4549, hash 3944F501
|
||||
sample 10:
|
||||
time = 400399
|
||||
time = 400400
|
||||
flags = 0
|
||||
data = length 1087, hash 491BF106
|
||||
sample 11:
|
||||
@ -71,7 +71,7 @@ track 0:
|
||||
flags = 0
|
||||
data = length 455, hash 8A0610
|
||||
sample 13:
|
||||
time = 600599
|
||||
time = 600600
|
||||
flags = 0
|
||||
data = length 5190, hash B9031D8
|
||||
sample 14:
|
||||
@ -83,7 +83,7 @@ track 0:
|
||||
flags = 0
|
||||
data = length 653, hash 8494F326
|
||||
sample 16:
|
||||
time = 567232
|
||||
time = 567233
|
||||
flags = 0
|
||||
data = length 485, hash 2CCC85F4
|
||||
sample 17:
|
||||
@ -99,7 +99,7 @@ track 0:
|
||||
flags = 0
|
||||
data = length 640, hash F664125B
|
||||
sample 20:
|
||||
time = 700699
|
||||
time = 700700
|
||||
flags = 0
|
||||
data = length 491, hash B5930C7C
|
||||
sample 21:
|
||||
@ -107,7 +107,7 @@ track 0:
|
||||
flags = 0
|
||||
data = length 2989, hash 92CF4FCF
|
||||
sample 22:
|
||||
time = 800799
|
||||
time = 800800
|
||||
flags = 0
|
||||
data = length 838, hash 294A3451
|
||||
sample 23:
|
||||
@ -119,7 +119,7 @@ track 0:
|
||||
flags = 0
|
||||
data = length 329, hash A654FFA1
|
||||
sample 25:
|
||||
time = 1000999
|
||||
time = 1001000
|
||||
flags = 0
|
||||
data = length 1517, hash 5F7EBF8B
|
||||
sample 26:
|
||||
@ -131,7 +131,7 @@ track 0:
|
||||
flags = 0
|
||||
data = length 415, hash B31BBC3B
|
||||
sample 28:
|
||||
time = 967632
|
||||
time = 967633
|
||||
flags = 0
|
||||
data = length 415, hash 850DFEA3
|
||||
sample 29:
|
||||
|
@ -20,7 +20,7 @@ track 0:
|
||||
flags = 1
|
||||
data = length 38070, hash B58E1AEE
|
||||
sample 1:
|
||||
time = 200199
|
||||
time = 200200
|
||||
flags = 0
|
||||
data = length 8340, hash 8AC449FF
|
||||
sample 2:
|
||||
@ -32,7 +32,7 @@ track 0:
|
||||
flags = 0
|
||||
data = length 469, hash D6E0A200
|
||||
sample 4:
|
||||
time = 166832
|
||||
time = 166833
|
||||
flags = 0
|
||||
data = length 564, hash E5F56C5B
|
||||
sample 5:
|
||||
@ -48,7 +48,7 @@ track 0:
|
||||
flags = 0
|
||||
data = length 455, hash B9CCE047
|
||||
sample 8:
|
||||
time = 300299
|
||||
time = 300300
|
||||
flags = 0
|
||||
data = length 467, hash 69806D94
|
||||
sample 9:
|
||||
@ -56,7 +56,7 @@ track 0:
|
||||
flags = 0
|
||||
data = length 4549, hash 3944F501
|
||||
sample 10:
|
||||
time = 400399
|
||||
time = 400400
|
||||
flags = 0
|
||||
data = length 1087, hash 491BF106
|
||||
sample 11:
|
||||
@ -68,7 +68,7 @@ track 0:
|
||||
flags = 0
|
||||
data = length 455, hash 8A0610
|
||||
sample 13:
|
||||
time = 600599
|
||||
time = 600600
|
||||
flags = 0
|
||||
data = length 5190, hash B9031D8
|
||||
sample 14:
|
||||
@ -80,7 +80,7 @@ track 0:
|
||||
flags = 0
|
||||
data = length 653, hash 8494F326
|
||||
sample 16:
|
||||
time = 567232
|
||||
time = 567233
|
||||
flags = 0
|
||||
data = length 485, hash 2CCC85F4
|
||||
sample 17:
|
||||
@ -96,7 +96,7 @@ track 0:
|
||||
flags = 0
|
||||
data = length 640, hash F664125B
|
||||
sample 20:
|
||||
time = 700699
|
||||
time = 700700
|
||||
flags = 0
|
||||
data = length 491, hash B5930C7C
|
||||
sample 21:
|
||||
@ -104,7 +104,7 @@ track 0:
|
||||
flags = 0
|
||||
data = length 2989, hash 92CF4FCF
|
||||
sample 22:
|
||||
time = 800799
|
||||
time = 800800
|
||||
flags = 0
|
||||
data = length 838, hash 294A3451
|
||||
sample 23:
|
||||
@ -116,7 +116,7 @@ track 0:
|
||||
flags = 0
|
||||
data = length 329, hash A654FFA1
|
||||
sample 25:
|
||||
time = 1000999
|
||||
time = 1001000
|
||||
flags = 0
|
||||
data = length 1517, hash 5F7EBF8B
|
||||
sample 26:
|
||||
@ -128,7 +128,7 @@ track 0:
|
||||
flags = 0
|
||||
data = length 415, hash B31BBC3B
|
||||
sample 28:
|
||||
time = 967632
|
||||
time = 967633
|
||||
flags = 0
|
||||
data = length 415, hash 850DFEA3
|
||||
sample 29:
|
||||
|
@ -20,7 +20,7 @@ track 0:
|
||||
flags = 1
|
||||
data = length 38070, hash B58E1AEE
|
||||
sample 1:
|
||||
time = 200199
|
||||
time = 200200
|
||||
flags = 0
|
||||
data = length 8340, hash 8AC449FF
|
||||
sample 2:
|
||||
@ -32,7 +32,7 @@ track 0:
|
||||
flags = 0
|
||||
data = length 469, hash D6E0A200
|
||||
sample 4:
|
||||
time = 166832
|
||||
time = 166833
|
||||
flags = 0
|
||||
data = length 564, hash E5F56C5B
|
||||
sample 5:
|
||||
@ -48,7 +48,7 @@ track 0:
|
||||
flags = 0
|
||||
data = length 455, hash B9CCE047
|
||||
sample 8:
|
||||
time = 300299
|
||||
time = 300300
|
||||
flags = 0
|
||||
data = length 467, hash 69806D94
|
||||
sample 9:
|
||||
@ -56,7 +56,7 @@ track 0:
|
||||
flags = 0
|
||||
data = length 4549, hash 3944F501
|
||||
sample 10:
|
||||
time = 400399
|
||||
time = 400400
|
||||
flags = 0
|
||||
data = length 1087, hash 491BF106
|
||||
sample 11:
|
||||
@ -68,7 +68,7 @@ track 0:
|
||||
flags = 0
|
||||
data = length 455, hash 8A0610
|
||||
sample 13:
|
||||
time = 600599
|
||||
time = 600600
|
||||
flags = 0
|
||||
data = length 5190, hash B9031D8
|
||||
sample 14:
|
||||
@ -80,7 +80,7 @@ track 0:
|
||||
flags = 0
|
||||
data = length 653, hash 8494F326
|
||||
sample 16:
|
||||
time = 567232
|
||||
time = 567233
|
||||
flags = 0
|
||||
data = length 485, hash 2CCC85F4
|
||||
sample 17:
|
||||
@ -96,7 +96,7 @@ track 0:
|
||||
flags = 0
|
||||
data = length 640, hash F664125B
|
||||
sample 20:
|
||||
time = 700699
|
||||
time = 700700
|
||||
flags = 0
|
||||
data = length 491, hash B5930C7C
|
||||
sample 21:
|
||||
@ -104,7 +104,7 @@ track 0:
|
||||
flags = 0
|
||||
data = length 2989, hash 92CF4FCF
|
||||
sample 22:
|
||||
time = 800799
|
||||
time = 800800
|
||||
flags = 0
|
||||
data = length 838, hash 294A3451
|
||||
sample 23:
|
||||
@ -116,7 +116,7 @@ track 0:
|
||||
flags = 0
|
||||
data = length 329, hash A654FFA1
|
||||
sample 25:
|
||||
time = 1000999
|
||||
time = 1001000
|
||||
flags = 0
|
||||
data = length 1517, hash 5F7EBF8B
|
||||
sample 26:
|
||||
@ -128,7 +128,7 @@ track 0:
|
||||
flags = 0
|
||||
data = length 415, hash B31BBC3B
|
||||
sample 28:
|
||||
time = 967632
|
||||
time = 967633
|
||||
flags = 0
|
||||
data = length 415, hash 850DFEA3
|
||||
sample 29:
|
||||
|
@ -13,7 +13,7 @@ track 0:
|
||||
flags = 1
|
||||
data = length 38070, hash B58E1AEE
|
||||
sample 1:
|
||||
time = 200199
|
||||
time = 200200
|
||||
flags = 0
|
||||
data = length 8340, hash 8AC449FF
|
||||
sample 2:
|
||||
@ -25,7 +25,7 @@ track 0:
|
||||
flags = 0
|
||||
data = length 469, hash D6E0A200
|
||||
sample 4:
|
||||
time = 166832
|
||||
time = 166833
|
||||
flags = 0
|
||||
data = length 564, hash E5F56C5B
|
||||
sample 5:
|
||||
@ -41,7 +41,7 @@ track 0:
|
||||
flags = 0
|
||||
data = length 455, hash B9CCE047
|
||||
sample 8:
|
||||
time = 300299
|
||||
time = 300300
|
||||
flags = 0
|
||||
data = length 467, hash 69806D94
|
||||
sample 9:
|
||||
@ -49,7 +49,7 @@ track 0:
|
||||
flags = 0
|
||||
data = length 4549, hash 3944F501
|
||||
sample 10:
|
||||
time = 400399
|
||||
time = 400400
|
||||
flags = 0
|
||||
data = length 1087, hash 491BF106
|
||||
sample 11:
|
||||
@ -61,7 +61,7 @@ track 0:
|
||||
flags = 0
|
||||
data = length 455, hash 8A0610
|
||||
sample 13:
|
||||
time = 600599
|
||||
time = 600600
|
||||
flags = 0
|
||||
data = length 5190, hash B9031D8
|
||||
sample 14:
|
||||
@ -73,7 +73,7 @@ track 0:
|
||||
flags = 0
|
||||
data = length 653, hash 8494F326
|
||||
sample 16:
|
||||
time = 567232
|
||||
time = 567233
|
||||
flags = 0
|
||||
data = length 485, hash 2CCC85F4
|
||||
sample 17:
|
||||
@ -89,7 +89,7 @@ track 0:
|
||||
flags = 0
|
||||
data = length 640, hash F664125B
|
||||
sample 20:
|
||||
time = 700699
|
||||
time = 700700
|
||||
flags = 0
|
||||
data = length 491, hash B5930C7C
|
||||
sample 21:
|
||||
@ -97,7 +97,7 @@ track 0:
|
||||
flags = 0
|
||||
data = length 2989, hash 92CF4FCF
|
||||
sample 22:
|
||||
time = 800799
|
||||
time = 800800
|
||||
flags = 0
|
||||
data = length 838, hash 294A3451
|
||||
sample 23:
|
||||
@ -109,7 +109,7 @@ track 0:
|
||||
flags = 0
|
||||
data = length 329, hash A654FFA1
|
||||
sample 25:
|
||||
time = 1000999
|
||||
time = 1001000
|
||||
flags = 0
|
||||
data = length 1517, hash 5F7EBF8B
|
||||
sample 26:
|
||||
@ -121,7 +121,7 @@ track 0:
|
||||
flags = 0
|
||||
data = length 415, hash B31BBC3B
|
||||
sample 28:
|
||||
time = 967632
|
||||
time = 967633
|
||||
flags = 0
|
||||
data = length 415, hash 850DFEA3
|
||||
sample 29:
|
||||
|
@ -13,7 +13,7 @@ track 0:
|
||||
flags = 1
|
||||
data = length 38070, hash B58E1AEE
|
||||
sample 1:
|
||||
time = 200199
|
||||
time = 200200
|
||||
flags = 0
|
||||
data = length 8340, hash 8AC449FF
|
||||
sample 2:
|
||||
@ -25,7 +25,7 @@ track 0:
|
||||
flags = 0
|
||||
data = length 469, hash D6E0A200
|
||||
sample 4:
|
||||
time = 166832
|
||||
time = 166833
|
||||
flags = 0
|
||||
data = length 564, hash E5F56C5B
|
||||
sample 5:
|
||||
@ -41,7 +41,7 @@ track 0:
|
||||
flags = 0
|
||||
data = length 455, hash B9CCE047
|
||||
sample 8:
|
||||
time = 300299
|
||||
time = 300300
|
||||
flags = 0
|
||||
data = length 467, hash 69806D94
|
||||
sample 9:
|
||||
@ -49,7 +49,7 @@ track 0:
|
||||
flags = 0
|
||||
data = length 4549, hash 3944F501
|
||||
sample 10:
|
||||
time = 400399
|
||||
time = 400400
|
||||
flags = 0
|
||||
data = length 1087, hash 491BF106
|
||||
sample 11:
|
||||
@ -61,7 +61,7 @@ track 0:
|
||||
flags = 0
|
||||
data = length 455, hash 8A0610
|
||||
sample 13:
|
||||
time = 600599
|
||||
time = 600600
|
||||
flags = 0
|
||||
data = length 5190, hash B9031D8
|
||||
sample 14:
|
||||
@ -73,7 +73,7 @@ track 0:
|
||||
flags = 0
|
||||
data = length 653, hash 8494F326
|
||||
sample 16:
|
||||
time = 567232
|
||||
time = 567233
|
||||
flags = 0
|
||||
data = length 485, hash 2CCC85F4
|
||||
sample 17:
|
||||
@ -89,7 +89,7 @@ track 0:
|
||||
flags = 0
|
||||
data = length 640, hash F664125B
|
||||
sample 20:
|
||||
time = 700699
|
||||
time = 700700
|
||||
flags = 0
|
||||
data = length 491, hash B5930C7C
|
||||
sample 21:
|
||||
@ -97,7 +97,7 @@ track 0:
|
||||
flags = 0
|
||||
data = length 2989, hash 92CF4FCF
|
||||
sample 22:
|
||||
time = 800799
|
||||
time = 800800
|
||||
flags = 0
|
||||
data = length 838, hash 294A3451
|
||||
sample 23:
|
||||
@ -109,7 +109,7 @@ track 0:
|
||||
flags = 0
|
||||
data = length 329, hash A654FFA1
|
||||
sample 25:
|
||||
time = 1000999
|
||||
time = 1001000
|
||||
flags = 0
|
||||
data = length 1517, hash 5F7EBF8B
|
||||
sample 26:
|
||||
@ -121,7 +121,7 @@ track 0:
|
||||
flags = 0
|
||||
data = length 415, hash B31BBC3B
|
||||
sample 28:
|
||||
time = 967632
|
||||
time = 967633
|
||||
flags = 0
|
||||
data = length 415, hash 850DFEA3
|
||||
sample 29:
|
||||
|
@ -32,7 +32,7 @@ track 0:
|
||||
flags = 536870912
|
||||
data = length 5867, hash 56F9EE87
|
||||
sample 4:
|
||||
time = 166832
|
||||
time = 166833
|
||||
flags = 0
|
||||
data = length 570, hash 984421BD
|
||||
sample 5:
|
||||
@ -48,7 +48,7 @@ track 0:
|
||||
flags = 0
|
||||
data = length 4310, hash 291E6161
|
||||
sample 8:
|
||||
time = 300299
|
||||
time = 300300
|
||||
flags = 0
|
||||
data = length 497, hash 398CBFAA
|
||||
sample 9:
|
||||
@ -56,7 +56,7 @@ track 0:
|
||||
flags = 0
|
||||
data = length 4449, hash 322CAA2B
|
||||
sample 10:
|
||||
time = 400399
|
||||
time = 400400
|
||||
flags = 0
|
||||
data = length 1076, hash B479B634
|
||||
sample 11:
|
||||
@ -68,7 +68,7 @@ track 0:
|
||||
flags = 0
|
||||
data = length 463, hash A85F9769
|
||||
sample 13:
|
||||
time = 600599
|
||||
time = 600600
|
||||
flags = 0
|
||||
data = length 5339, hash F232195D
|
||||
sample 14:
|
||||
@ -80,7 +80,7 @@ track 0:
|
||||
flags = 0
|
||||
data = length 689, hash 3EB753A3
|
||||
sample 16:
|
||||
time = 567232
|
||||
time = 567233
|
||||
flags = 0
|
||||
data = length 516, hash E6DF9C1C
|
||||
sample 17:
|
||||
@ -96,7 +96,7 @@ track 0:
|
||||
flags = 0
|
||||
data = length 625, hash ED1C8EF1
|
||||
sample 20:
|
||||
time = 700699
|
||||
time = 700700
|
||||
flags = 0
|
||||
data = length 492, hash E6E066EA
|
||||
sample 21:
|
||||
@ -104,7 +104,7 @@ track 0:
|
||||
flags = 0
|
||||
data = length 2973, hash A3C54C3B
|
||||
sample 22:
|
||||
time = 800799
|
||||
time = 800800
|
||||
flags = 0
|
||||
data = length 833, hash 41CA807D
|
||||
sample 23:
|
||||
@ -116,7 +116,7 @@ track 0:
|
||||
flags = 0
|
||||
data = length 384, hash A0E8FA50
|
||||
sample 25:
|
||||
time = 1000999
|
||||
time = 1001000
|
||||
flags = 0
|
||||
data = length 1450, hash 92741C3B
|
||||
sample 26:
|
||||
@ -128,7 +128,7 @@ track 0:
|
||||
flags = 0
|
||||
data = length 413, hash 886904C
|
||||
sample 28:
|
||||
time = 967632
|
||||
time = 967633
|
||||
flags = 0
|
||||
data = length 427, hash FC2FA8CC
|
||||
sample 29:
|
||||
|
@ -32,7 +32,7 @@ track 0:
|
||||
flags = 536870912
|
||||
data = length 5867, hash 56F9EE87
|
||||
sample 4:
|
||||
time = 166832
|
||||
time = 166833
|
||||
flags = 0
|
||||
data = length 570, hash 984421BD
|
||||
sample 5:
|
||||
@ -48,7 +48,7 @@ track 0:
|
||||
flags = 0
|
||||
data = length 4310, hash 291E6161
|
||||
sample 8:
|
||||
time = 300299
|
||||
time = 300300
|
||||
flags = 0
|
||||
data = length 497, hash 398CBFAA
|
||||
sample 9:
|
||||
@ -56,7 +56,7 @@ track 0:
|
||||
flags = 0
|
||||
data = length 4449, hash 322CAA2B
|
||||
sample 10:
|
||||
time = 400399
|
||||
time = 400400
|
||||
flags = 0
|
||||
data = length 1076, hash B479B634
|
||||
sample 11:
|
||||
@ -68,7 +68,7 @@ track 0:
|
||||
flags = 0
|
||||
data = length 463, hash A85F9769
|
||||
sample 13:
|
||||
time = 600599
|
||||
time = 600600
|
||||
flags = 0
|
||||
data = length 5339, hash F232195D
|
||||
sample 14:
|
||||
@ -80,7 +80,7 @@ track 0:
|
||||
flags = 0
|
||||
data = length 689, hash 3EB753A3
|
||||
sample 16:
|
||||
time = 567232
|
||||
time = 567233
|
||||
flags = 0
|
||||
data = length 516, hash E6DF9C1C
|
||||
sample 17:
|
||||
@ -96,7 +96,7 @@ track 0:
|
||||
flags = 0
|
||||
data = length 625, hash ED1C8EF1
|
||||
sample 20:
|
||||
time = 700699
|
||||
time = 700700
|
||||
flags = 0
|
||||
data = length 492, hash E6E066EA
|
||||
sample 21:
|
||||
@ -104,7 +104,7 @@ track 0:
|
||||
flags = 0
|
||||
data = length 2973, hash A3C54C3B
|
||||
sample 22:
|
||||
time = 800799
|
||||
time = 800800
|
||||
flags = 0
|
||||
data = length 833, hash 41CA807D
|
||||
sample 23:
|
||||
@ -116,7 +116,7 @@ track 0:
|
||||
flags = 0
|
||||
data = length 384, hash A0E8FA50
|
||||
sample 25:
|
||||
time = 1000999
|
||||
time = 1001000
|
||||
flags = 0
|
||||
data = length 1450, hash 92741C3B
|
||||
sample 26:
|
||||
@ -128,7 +128,7 @@ track 0:
|
||||
flags = 0
|
||||
data = length 413, hash 886904C
|
||||
sample 28:
|
||||
time = 967632
|
||||
time = 967633
|
||||
flags = 0
|
||||
data = length 427, hash FC2FA8CC
|
||||
sample 29:
|
||||
|
Loading…
x
Reference in New Issue
Block a user