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
This commit is contained in:
ibaker 2024-01-09 11:14:06 -08:00 committed by Copybara-Service
parent ba8f55694a
commit 1c1d4d506d
14 changed files with 347 additions and 343 deletions

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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