Fix audio encode timestamp off by one

Simplify the audio encoder input timestamp calculation. The new calculation
avoids drifting by tracking the total number of bytes encoded rather than
tracking the timestamp and remainder separately, and also makes the timestamps
match the decoder output buffer timestamps.

Also switch one of the export tests that was passing through AMR samples over
to using WAVE audio. The problem with using AMR is that the compressed samples
are not necessarily an integer number of audio frames and the shadow decoder
would pass them from input to output, so the audio encoder was receiving
non-integer numbers of audio frames.

Tested by logging the timestamps at the decoder output and encoder input with
forcing transcoding audio, and verifying that after this change the audio
timestamps are no longer off by one.

PiperOrigin-RevId: 523409869
This commit is contained in:
andrewlewis 2023-04-11 16:33:38 +01:00 committed by Rohit Singh
parent 0b40bc37ab
commit d43fe3470f
14 changed files with 433 additions and 1695 deletions

View file

@ -25,55 +25,55 @@ sample:
dataHashCode = 2000837254
size = 418
isKeyFrame = true
presentationTimeUs = 4717
presentationTimeUs = 4716
sample:
trackIndex = 1
dataHashCode = -1593942879
size = 418
isKeyFrame = true
presentationTimeUs = 9456
presentationTimeUs = 9455
sample:
trackIndex = 1
dataHashCode = 587837542
size = 418
isKeyFrame = true
presentationTimeUs = 14196
presentationTimeUs = 14195
sample:
trackIndex = 1
dataHashCode = -1836423877
size = 418
isKeyFrame = true
presentationTimeUs = 18935
presentationTimeUs = 18934
sample:
trackIndex = 1
dataHashCode = 874705099
size = 418
isKeyFrame = true
presentationTimeUs = 23674
presentationTimeUs = 23673
sample:
trackIndex = 1
dataHashCode = -269206181
size = 418
isKeyFrame = true
presentationTimeUs = 28413
presentationTimeUs = 28412
sample:
trackIndex = 1
dataHashCode = -58682425
size = 418
isKeyFrame = true
presentationTimeUs = 33152
presentationTimeUs = 33151
sample:
trackIndex = 1
dataHashCode = -859796970
size = 418
isKeyFrame = true
presentationTimeUs = 37892
presentationTimeUs = 37891
sample:
trackIndex = 1
dataHashCode = 711911523
size = 418
isKeyFrame = true
presentationTimeUs = 42631
presentationTimeUs = 42630
sample:
trackIndex = 0
dataHashCode = -252482306
@ -139,61 +139,61 @@ sample:
dataHashCode = -694513071
size = 418
isKeyFrame = true
presentationTimeUs = 47370
presentationTimeUs = 47369
sample:
trackIndex = 1
dataHashCode = -1124371059
size = 418
isKeyFrame = true
presentationTimeUs = 52109
presentationTimeUs = 52108
sample:
trackIndex = 1
dataHashCode = 297166745
size = 418
isKeyFrame = true
presentationTimeUs = 56849
presentationTimeUs = 56848
sample:
trackIndex = 1
dataHashCode = -937110638
size = 418
isKeyFrame = true
presentationTimeUs = 61588
presentationTimeUs = 61587
sample:
trackIndex = 1
dataHashCode = -1050158990
size = 418
isKeyFrame = true
presentationTimeUs = 66327
presentationTimeUs = 66326
sample:
trackIndex = 1
dataHashCode = 1109510229
size = 418
isKeyFrame = true
presentationTimeUs = 71066
presentationTimeUs = 71065
sample:
trackIndex = 1
dataHashCode = 1297086772
size = 418
isKeyFrame = true
presentationTimeUs = 75805
presentationTimeUs = 75804
sample:
trackIndex = 1
dataHashCode = -1739939803
size = 418
isKeyFrame = true
presentationTimeUs = 80545
presentationTimeUs = 80544
sample:
trackIndex = 1
dataHashCode = -1149727930
size = 418
isKeyFrame = true
presentationTimeUs = 85284
presentationTimeUs = 85283
sample:
trackIndex = 1
dataHashCode = -1627652713
size = 418
isKeyFrame = true
presentationTimeUs = 90023
presentationTimeUs = 90022
sample:
trackIndex = 0
dataHashCode = 1556608231
@ -247,55 +247,55 @@ sample:
dataHashCode = -551926260
size = 418
isKeyFrame = true
presentationTimeUs = 94762
presentationTimeUs = 94761
sample:
trackIndex = 1
dataHashCode = 45987178
size = 418
isKeyFrame = true
presentationTimeUs = 99502
presentationTimeUs = 99501
sample:
trackIndex = 1
dataHashCode = -903675808
size = 418
isKeyFrame = true
presentationTimeUs = 104241
presentationTimeUs = 104240
sample:
trackIndex = 1
dataHashCode = -755916991
size = 418
isKeyFrame = true
presentationTimeUs = 108980
presentationTimeUs = 108979
sample:
trackIndex = 1
dataHashCode = -1355207303
size = 418
isKeyFrame = true
presentationTimeUs = 113719
presentationTimeUs = 113718
sample:
trackIndex = 1
dataHashCode = -975703389
size = 418
isKeyFrame = true
presentationTimeUs = 118459
presentationTimeUs = 118458
sample:
trackIndex = 1
dataHashCode = 1933194670
size = 418
isKeyFrame = true
presentationTimeUs = 123198
presentationTimeUs = 123197
sample:
trackIndex = 1
dataHashCode = -565778989
size = 418
isKeyFrame = true
presentationTimeUs = 127937
presentationTimeUs = 127936
sample:
trackIndex = 1
dataHashCode = 1454083383
size = 418
isKeyFrame = true
presentationTimeUs = 132676
presentationTimeUs = 132675
sample:
trackIndex = 0
dataHashCode = -952425536

View file

@ -29,19 +29,19 @@ sample:
dataHashCode = 1552866193
size = 8
isKeyFrame = true
presentationTimeUs = 230
presentationTimeUs = 229
sample:
trackIndex = 1
dataHashCode = 701848493
size = 160
isKeyFrame = true
presentationTimeUs = 313
presentationTimeUs = 312
sample:
trackIndex = 1
dataHashCode = 2000505720
size = 206
isKeyFrame = true
presentationTimeUs = 1980
presentationTimeUs = 1979
sample:
trackIndex = 1
dataHashCode = 57276327
@ -53,31 +53,31 @@ sample:
dataHashCode = 382237408
size = 228
isKeyFrame = true
presentationTimeUs = 6438
presentationTimeUs = 6437
sample:
trackIndex = 1
dataHashCode = 795308374
size = 228
isKeyFrame = true
presentationTimeUs = 8813
presentationTimeUs = 8812
sample:
trackIndex = 1
dataHashCode = 356270426
size = 224
isKeyFrame = true
presentationTimeUs = 11188
presentationTimeUs = 11187
sample:
trackIndex = 1
dataHashCode = 963641614
size = 244
isKeyFrame = true
presentationTimeUs = 13521
presentationTimeUs = 13520
sample:
trackIndex = 1
dataHashCode = 2045272193
size = 234
isKeyFrame = true
presentationTimeUs = 16063
presentationTimeUs = 16062
sample:
trackIndex = 0
dataHashCode = -770308242
@ -155,49 +155,49 @@ sample:
dataHashCode = -1536715689
size = 248
isKeyFrame = true
presentationTimeUs = 23313
presentationTimeUs = 23312
sample:
trackIndex = 1
dataHashCode = -1275249610
size = 254
isKeyFrame = true
presentationTimeUs = 25896
presentationTimeUs = 25895
sample:
trackIndex = 1
dataHashCode = -2081231470
size = 254
isKeyFrame = true
presentationTimeUs = 28542
presentationTimeUs = 28541
sample:
trackIndex = 1
dataHashCode = 1912348529
size = 250
isKeyFrame = true
presentationTimeUs = 31188
presentationTimeUs = 31187
sample:
trackIndex = 1
dataHashCode = -1393642278
size = 246
isKeyFrame = true
presentationTimeUs = 33792
presentationTimeUs = 33791
sample:
trackIndex = 1
dataHashCode = -2073671562
size = 236
isKeyFrame = true
presentationTimeUs = 36355
presentationTimeUs = 36354
sample:
trackIndex = 1
dataHashCode = -381095129
size = 248
isKeyFrame = true
presentationTimeUs = 38813
presentationTimeUs = 38812
sample:
trackIndex = 1
dataHashCode = -804721381
size = 238
isKeyFrame = true
presentationTimeUs = 41396
presentationTimeUs = 41395
sample:
trackIndex = 0
dataHashCode = 1949198785
@ -233,13 +233,13 @@ sample:
dataHashCode = -1045486664
size = 248
isKeyFrame = true
presentationTimeUs = 46584
presentationTimeUs = 46583
sample:
trackIndex = 1
dataHashCode = -1465283679
size = 260
isKeyFrame = true
presentationTimeUs = 49167
presentationTimeUs = 49166
sample:
trackIndex = 1
dataHashCode = 1840117006
@ -251,7 +251,7 @@ sample:
dataHashCode = -631848848
size = 250
isKeyFrame = true
presentationTimeUs = 54521
presentationTimeUs = 54520
sample:
trackIndex = 1
dataHashCode = -1207491554
@ -263,19 +263,19 @@ sample:
dataHashCode = 838792456
size = 258
isKeyFrame = true
presentationTimeUs = 59584
presentationTimeUs = 59583
sample:
trackIndex = 1
dataHashCode = -1131122284
size = 264
isKeyFrame = true
presentationTimeUs = 62271
presentationTimeUs = 62270
sample:
trackIndex = 1
dataHashCode = -122326555
size = 250
isKeyFrame = true
presentationTimeUs = 65021
presentationTimeUs = 65020
sample:
trackIndex = 1
dataHashCode = -1340323720
@ -311,43 +311,43 @@ sample:
dataHashCode = -1290952882
size = 260
isKeyFrame = true
presentationTimeUs = 70230
presentationTimeUs = 70229
sample:
trackIndex = 1
dataHashCode = 2118216858
size = 244
isKeyFrame = true
presentationTimeUs = 72938
presentationTimeUs = 72937
sample:
trackIndex = 1
dataHashCode = 879520231
size = 252
isKeyFrame = true
presentationTimeUs = 75480
presentationTimeUs = 75479
sample:
trackIndex = 1
dataHashCode = -174892555
size = 264
isKeyFrame = true
presentationTimeUs = 78105
presentationTimeUs = 78104
sample:
trackIndex = 1
dataHashCode = -555873771
size = 252
isKeyFrame = true
presentationTimeUs = 80855
presentationTimeUs = 80854
sample:
trackIndex = 1
dataHashCode = -1479853263
size = 256
isKeyFrame = true
presentationTimeUs = 83480
presentationTimeUs = 83479
sample:
trackIndex = 1
dataHashCode = -1068971504
size = 250
isKeyFrame = true
presentationTimeUs = 86146
presentationTimeUs = 86145
sample:
trackIndex = 1
dataHashCode = -866214350
@ -359,49 +359,49 @@ sample:
dataHashCode = -2111034853
size = 288
isKeyFrame = true
presentationTimeUs = 91396
presentationTimeUs = 91395
sample:
trackIndex = 1
dataHashCode = -1445430754
size = 278
isKeyFrame = true
presentationTimeUs = 94396
presentationTimeUs = 94395
sample:
trackIndex = 1
dataHashCode = 1200468541
size = 246
isKeyFrame = true
presentationTimeUs = 97292
presentationTimeUs = 97291
sample:
trackIndex = 1
dataHashCode = -1853596884
size = 246
isKeyFrame = true
presentationTimeUs = 99855
presentationTimeUs = 99854
sample:
trackIndex = 1
dataHashCode = -1266372568
size = 254
isKeyFrame = true
presentationTimeUs = 102417
presentationTimeUs = 102416
sample:
trackIndex = 1
dataHashCode = -212017561
size = 248
isKeyFrame = true
presentationTimeUs = 105063
presentationTimeUs = 105062
sample:
trackIndex = 1
dataHashCode = -1464702479
size = 8
isKeyFrame = true
presentationTimeUs = 107646
presentationTimeUs = 107645
sample:
trackIndex = 1
dataHashCode = -2065
size = 2
isKeyFrame = true
presentationTimeUs = 107730
presentationTimeUs = 107729
sample:
trackIndex = 0
dataHashCode = -1408463661

View file

@ -16,191 +16,191 @@ sample:
dataHashCode = -1580893866
size = 678
isKeyFrame = true
presentationTimeUs = 8980
presentationTimeUs = 8979
sample:
trackIndex = 0
dataHashCode = -31547651
size = 304
isKeyFrame = true
presentationTimeUs = 16667
presentationTimeUs = 16666
sample:
trackIndex = 0
dataHashCode = 1415140636
size = 460
isKeyFrame = true
presentationTimeUs = 20114
presentationTimeUs = 20113
sample:
trackIndex = 0
dataHashCode = 1721060815
size = 850
isKeyFrame = true
presentationTimeUs = 25329
presentationTimeUs = 25328
sample:
trackIndex = 0
dataHashCode = 1707913464
size = 446
isKeyFrame = true
presentationTimeUs = 34966
presentationTimeUs = 34965
sample:
trackIndex = 0
dataHashCode = -776771764
size = 852
isKeyFrame = true
presentationTimeUs = 40023
presentationTimeUs = 40022
sample:
trackIndex = 0
dataHashCode = -609146892
size = 368
isKeyFrame = true
presentationTimeUs = 49683
presentationTimeUs = 49682
sample:
trackIndex = 0
dataHashCode = -2044977387
size = 1166
isKeyFrame = true
presentationTimeUs = 53855
presentationTimeUs = 53854
sample:
trackIndex = 0
dataHashCode = -753877175
size = 506
isKeyFrame = true
presentationTimeUs = 67075
presentationTimeUs = 67074
sample:
trackIndex = 0
dataHashCode = 1491046836
size = 578
isKeyFrame = true
presentationTimeUs = 72812
presentationTimeUs = 72811
sample:
trackIndex = 0
dataHashCode = 621394572
size = 668
isKeyFrame = true
presentationTimeUs = 79366
presentationTimeUs = 79365
sample:
trackIndex = 0
dataHashCode = -58393202
size = 268
isKeyFrame = true
presentationTimeUs = 86939
presentationTimeUs = 86938
sample:
trackIndex = 0
dataHashCode = 1253593269
size = 318
isKeyFrame = true
presentationTimeUs = 89978
presentationTimeUs = 89977
sample:
trackIndex = 0
dataHashCode = -1544714160
size = 424
isKeyFrame = true
presentationTimeUs = 93583
presentationTimeUs = 93582
sample:
trackIndex = 0
dataHashCode = -2038565545
size = 294
isKeyFrame = true
presentationTimeUs = 98391
presentationTimeUs = 98390
sample:
trackIndex = 0
dataHashCode = 803611858
size = 394
isKeyFrame = true
presentationTimeUs = 101724
presentationTimeUs = 101723
sample:
trackIndex = 0
dataHashCode = 890682839
size = 812
isKeyFrame = true
presentationTimeUs = 106191
presentationTimeUs = 106190
sample:
trackIndex = 0
dataHashCode = 1798765816
size = 332
isKeyFrame = true
presentationTimeUs = 115397
presentationTimeUs = 115396
sample:
trackIndex = 0
dataHashCode = -155329417
size = 250
isKeyFrame = true
presentationTimeUs = 119161
presentationTimeUs = 119160
sample:
trackIndex = 0
dataHashCode = 2061435630
size = 304
isKeyFrame = true
presentationTimeUs = 121996
presentationTimeUs = 121995
sample:
trackIndex = 0
dataHashCode = -667770092
size = 1318
isKeyFrame = true
presentationTimeUs = 125443
presentationTimeUs = 125442
sample:
trackIndex = 0
dataHashCode = 1947321516
size = 224
isKeyFrame = true
presentationTimeUs = 140386
presentationTimeUs = 140385
sample:
trackIndex = 0
dataHashCode = 1744495738
size = 446
isKeyFrame = true
presentationTimeUs = 142926
presentationTimeUs = 142925
sample:
trackIndex = 0
dataHashCode = 801488010
size = 838
isKeyFrame = true
presentationTimeUs = 147982
presentationTimeUs = 147981
sample:
trackIndex = 0
dataHashCode = -867204691
size = 520
isKeyFrame = true
presentationTimeUs = 157483
presentationTimeUs = 157482
sample:
trackIndex = 0
dataHashCode = 1994555264
size = 230
isKeyFrame = true
presentationTimeUs = 163379
presentationTimeUs = 163378
sample:
trackIndex = 0
dataHashCode = -748724753
size = 380
isKeyFrame = true
presentationTimeUs = 165987
presentationTimeUs = 165986
sample:
trackIndex = 0
dataHashCode = -1557661843
size = 692
isKeyFrame = true
presentationTimeUs = 170295
presentationTimeUs = 170294
sample:
trackIndex = 0
dataHashCode = 461522726
size = 270
isKeyFrame = true
presentationTimeUs = 178141
presentationTimeUs = 178140
sample:
trackIndex = 0
dataHashCode = 1058760091
size = 238
isKeyFrame = true
presentationTimeUs = 181202
presentationTimeUs = 181201
sample:
trackIndex = 0
dataHashCode = 1541647596
size = 722
isKeyFrame = true
presentationTimeUs = 183901
presentationTimeUs = 183900
sample:
trackIndex = 0
dataHashCode = -2107816707
size = 2062
isKeyFrame = true
presentationTimeUs = 192087
presentationTimeUs = 192086
released = true

View file

@ -27,127 +27,127 @@ sample:
dataHashCode = 1742602241
size = 4096
isKeyFrame = true
presentationTimeUs = 23220
presentationTimeUs = 23219
sample:
trackIndex = 1
dataHashCode = 1742602241
size = 4096
isKeyFrame = true
presentationTimeUs = 46440
presentationTimeUs = 46439
sample:
trackIndex = 1
dataHashCode = 1742602241
size = 4096
isKeyFrame = true
presentationTimeUs = 69660
presentationTimeUs = 69659
sample:
trackIndex = 1
dataHashCode = 1742602241
size = 4096
isKeyFrame = true
presentationTimeUs = 92880
presentationTimeUs = 92879
sample:
trackIndex = 1
dataHashCode = 1742602241
size = 4096
isKeyFrame = true
presentationTimeUs = 116100
presentationTimeUs = 116099
sample:
trackIndex = 1
dataHashCode = 1742602241
size = 4096
isKeyFrame = true
presentationTimeUs = 139320
presentationTimeUs = 139319
sample:
trackIndex = 1
dataHashCode = 1742602241
size = 4096
isKeyFrame = true
presentationTimeUs = 162540
presentationTimeUs = 162539
sample:
trackIndex = 1
dataHashCode = 1742602241
size = 4096
isKeyFrame = true
presentationTimeUs = 185760
presentationTimeUs = 185759
sample:
trackIndex = 1
dataHashCode = 1742602241
size = 4096
isKeyFrame = true
presentationTimeUs = 208980
presentationTimeUs = 208979
sample:
trackIndex = 1
dataHashCode = 1742602241
size = 4096
isKeyFrame = true
presentationTimeUs = 232200
presentationTimeUs = 232199
sample:
trackIndex = 1
dataHashCode = 1742602241
size = 4096
isKeyFrame = true
presentationTimeUs = 255420
presentationTimeUs = 255419
sample:
trackIndex = 1
dataHashCode = 1742602241
size = 4096
isKeyFrame = true
presentationTimeUs = 278640
presentationTimeUs = 278639
sample:
trackIndex = 1
dataHashCode = 1742602241
size = 4096
isKeyFrame = true
presentationTimeUs = 301860
presentationTimeUs = 301859
sample:
trackIndex = 1
dataHashCode = 1742602241
size = 4096
isKeyFrame = true
presentationTimeUs = 325080
presentationTimeUs = 325079
sample:
trackIndex = 1
dataHashCode = 1742602241
size = 4096
isKeyFrame = true
presentationTimeUs = 348300
presentationTimeUs = 348299
sample:
trackIndex = 1
dataHashCode = 1742602241
size = 4096
isKeyFrame = true
presentationTimeUs = 371520
presentationTimeUs = 371519
sample:
trackIndex = 1
dataHashCode = 1742602241
size = 4096
isKeyFrame = true
presentationTimeUs = 394740
presentationTimeUs = 394739
sample:
trackIndex = 1
dataHashCode = 1742602241
size = 4096
isKeyFrame = true
presentationTimeUs = 417960
presentationTimeUs = 417959
sample:
trackIndex = 1
dataHashCode = 1742602241
size = 4096
isKeyFrame = true
presentationTimeUs = 441180
presentationTimeUs = 441179
sample:
trackIndex = 1
dataHashCode = 1742602241
size = 4096
isKeyFrame = true
presentationTimeUs = 464400
presentationTimeUs = 464399
sample:
trackIndex = 1
dataHashCode = 1742602241
size = 4096
isKeyFrame = true
presentationTimeUs = 487620
presentationTimeUs = 487619
sample:
trackIndex = 0
dataHashCode = -770308242
@ -213,85 +213,85 @@ sample:
dataHashCode = 1742602241
size = 4096
isKeyFrame = true
presentationTimeUs = 510840
presentationTimeUs = 510839
sample:
trackIndex = 1
dataHashCode = 1742602241
size = 4096
isKeyFrame = true
presentationTimeUs = 534059
presentationTimeUs = 534058
sample:
trackIndex = 1
dataHashCode = 1742602241
size = 4096
isKeyFrame = true
presentationTimeUs = 557279
presentationTimeUs = 557278
sample:
trackIndex = 1
dataHashCode = 1742602241
size = 4096
isKeyFrame = true
presentationTimeUs = 580499
presentationTimeUs = 580498
sample:
trackIndex = 1
dataHashCode = 1742602241
size = 4096
isKeyFrame = true
presentationTimeUs = 603719
presentationTimeUs = 603718
sample:
trackIndex = 1
dataHashCode = 1742602241
size = 4096
isKeyFrame = true
presentationTimeUs = 626939
presentationTimeUs = 626938
sample:
trackIndex = 1
dataHashCode = 1742602241
size = 4096
isKeyFrame = true
presentationTimeUs = 650159
presentationTimeUs = 650158
sample:
trackIndex = 1
dataHashCode = 1742602241
size = 4096
isKeyFrame = true
presentationTimeUs = 673379
presentationTimeUs = 673378
sample:
trackIndex = 1
dataHashCode = 1742602241
size = 4096
isKeyFrame = true
presentationTimeUs = 696599
presentationTimeUs = 696598
sample:
trackIndex = 1
dataHashCode = 1742602241
size = 4096
isKeyFrame = true
presentationTimeUs = 719819
presentationTimeUs = 719818
sample:
trackIndex = 1
dataHashCode = 1742602241
size = 4096
isKeyFrame = true
presentationTimeUs = 743039
presentationTimeUs = 743038
sample:
trackIndex = 1
dataHashCode = 1742602241
size = 4096
isKeyFrame = true
presentationTimeUs = 766259
presentationTimeUs = 766258
sample:
trackIndex = 1
dataHashCode = 1742602241
size = 4096
isKeyFrame = true
presentationTimeUs = 789479
presentationTimeUs = 789478
sample:
trackIndex = 1
dataHashCode = 1742602241
size = 4096
isKeyFrame = true
presentationTimeUs = 812699
presentationTimeUs = 812698
sample:
trackIndex = 0
dataHashCode = 1949198785
@ -357,55 +357,55 @@ sample:
dataHashCode = 1742602241
size = 4096
isKeyFrame = true
presentationTimeUs = 835919
presentationTimeUs = 835918
sample:
trackIndex = 1
dataHashCode = 1742602241
size = 4096
isKeyFrame = true
presentationTimeUs = 859139
presentationTimeUs = 859138
sample:
trackIndex = 1
dataHashCode = 1742602241
size = 4096
isKeyFrame = true
presentationTimeUs = 882359
presentationTimeUs = 882358
sample:
trackIndex = 1
dataHashCode = 1742602241
size = 4096
isKeyFrame = true
presentationTimeUs = 905579
presentationTimeUs = 905578
sample:
trackIndex = 1
dataHashCode = 1742602241
size = 4096
isKeyFrame = true
presentationTimeUs = 928799
presentationTimeUs = 928798
sample:
trackIndex = 1
dataHashCode = 1742602241
size = 4096
isKeyFrame = true
presentationTimeUs = 952019
presentationTimeUs = 952018
sample:
trackIndex = 1
dataHashCode = 1742602241
size = 4096
isKeyFrame = true
presentationTimeUs = 975239
presentationTimeUs = 975238
sample:
trackIndex = 1
dataHashCode = 1742602241
size = 4096
isKeyFrame = true
presentationTimeUs = 998459
presentationTimeUs = 998458
sample:
trackIndex = 1
dataHashCode = -587391743
size = 408
isKeyFrame = true
presentationTimeUs = 1021679
presentationTimeUs = 1021678
sample:
trackIndex = 0
dataHashCode = -1723778407
@ -489,61 +489,61 @@ sample:
dataHashCode = 1205768497
size = 23
isKeyFrame = true
presentationTimeUs = 1023991
presentationTimeUs = 1023990
sample:
trackIndex = 1
dataHashCode = 837571078
size = 6
isKeyFrame = true
presentationTimeUs = 1024122
presentationTimeUs = 1024104
sample:
trackIndex = 1
dataHashCode = -1991633045
size = 148
isKeyFrame = true
presentationTimeUs = 1024156
presentationTimeUs = 1024149
sample:
trackIndex = 1
dataHashCode = -822987359
size = 189
isKeyFrame = true
presentationTimeUs = 1024995
presentationTimeUs = 1024988
sample:
trackIndex = 1
dataHashCode = -1141508176
size = 205
isKeyFrame = true
presentationTimeUs = 1026066
presentationTimeUs = 1026054
sample:
trackIndex = 1
dataHashCode = -226971245
size = 210
isKeyFrame = true
presentationTimeUs = 1027228
presentationTimeUs = 1027210
sample:
trackIndex = 1
dataHashCode = -2099636855
size = 210
isKeyFrame = true
presentationTimeUs = 1028419
presentationTimeUs = 1028412
sample:
trackIndex = 1
dataHashCode = 1541550559
size = 207
isKeyFrame = true
presentationTimeUs = 1029609
presentationTimeUs = 1029591
sample:
trackIndex = 1
dataHashCode = 411148001
size = 225
isKeyFrame = true
presentationTimeUs = 1030783
presentationTimeUs = 1030770
sample:
trackIndex = 1
dataHashCode = -897603973
size = 215
isKeyFrame = true
presentationTimeUs = 1032058
presentationTimeUs = 1032040
sample:
trackIndex = 0
dataHashCode = 1150349584
@ -609,61 +609,61 @@ sample:
dataHashCode = 1478106136
size = 211
isKeyFrame = true
presentationTimeUs = 1033277
presentationTimeUs = 1033265
sample:
trackIndex = 1
dataHashCode = -1380417145
size = 216
isKeyFrame = true
presentationTimeUs = 1034473
presentationTimeUs = 1034467
sample:
trackIndex = 1
dataHashCode = 780903644
size = 229
isKeyFrame = true
presentationTimeUs = 1035698
presentationTimeUs = 1035691
sample:
trackIndex = 1
dataHashCode = 586204432
size = 232
isKeyFrame = true
presentationTimeUs = 1036996
presentationTimeUs = 1036984
sample:
trackIndex = 1
dataHashCode = -2038771492
size = 235
isKeyFrame = true
presentationTimeUs = 1038311
presentationTimeUs = 1038299
sample:
trackIndex = 1
dataHashCode = -2065161304
size = 231
isKeyFrame = true
presentationTimeUs = 1039643
presentationTimeUs = 1039637
sample:
trackIndex = 1
dataHashCode = 468662933
size = 226
isKeyFrame = true
presentationTimeUs = 1040953
presentationTimeUs = 1040952
sample:
trackIndex = 1
dataHashCode = -358398546
size = 216
isKeyFrame = true
presentationTimeUs = 1042234
presentationTimeUs = 1042222
sample:
trackIndex = 1
dataHashCode = 1767325983
size = 229
isKeyFrame = true
presentationTimeUs = 1043459
presentationTimeUs = 1043446
sample:
trackIndex = 1
dataHashCode = 1093095458
size = 219
isKeyFrame = true
presentationTimeUs = 1044757
presentationTimeUs = 1044739
sample:
trackIndex = 0
dataHashCode = 965782073
@ -675,151 +675,151 @@ sample:
dataHashCode = 1687543702
size = 241
isKeyFrame = true
presentationTimeUs = 1045998
presentationTimeUs = 1045986
sample:
trackIndex = 1
dataHashCode = 1675188486
size = 228
isKeyFrame = true
presentationTimeUs = 1047364
presentationTimeUs = 1047346
sample:
trackIndex = 1
dataHashCode = 888567545
size = 238
isKeyFrame = true
presentationTimeUs = 1048657
presentationTimeUs = 1048639
sample:
trackIndex = 1
dataHashCode = -439631803
size = 234
isKeyFrame = true
presentationTimeUs = 1050006
presentationTimeUs = 1050000
sample:
trackIndex = 1
dataHashCode = 1606694497
size = 231
isKeyFrame = true
presentationTimeUs = 1051333
presentationTimeUs = 1051315
sample:
trackIndex = 1
dataHashCode = 1747388653
size = 217
isKeyFrame = true
presentationTimeUs = 1052642
presentationTimeUs = 1052630
sample:
trackIndex = 1
dataHashCode = -734560004
size = 239
isKeyFrame = true
presentationTimeUs = 1053872
presentationTimeUs = 1053854
sample:
trackIndex = 1
dataHashCode = -975079040
size = 243
isKeyFrame = true
presentationTimeUs = 1055227
presentationTimeUs = 1055215
sample:
trackIndex = 1
dataHashCode = -1403504710
size = 231
isKeyFrame = true
presentationTimeUs = 1056605
presentationTimeUs = 1056598
sample:
trackIndex = 1
dataHashCode = 379512981
size = 230
isKeyFrame = true
presentationTimeUs = 1057914
presentationTimeUs = 1057913
sample:
trackIndex = 1
dataHashCode = -997198863
size = 238
isKeyFrame = true
presentationTimeUs = 1059218
presentationTimeUs = 1059206
sample:
trackIndex = 1
dataHashCode = 1394492825
size = 225
isKeyFrame = true
presentationTimeUs = 1060567
presentationTimeUs = 1060566
sample:
trackIndex = 1
dataHashCode = -885232755
size = 232
isKeyFrame = true
presentationTimeUs = 1061843
presentationTimeUs = 1061836
sample:
trackIndex = 1
dataHashCode = 260871367
size = 243
isKeyFrame = true
presentationTimeUs = 1063158
presentationTimeUs = 1063151
sample:
trackIndex = 1
dataHashCode = -1505318960
size = 232
isKeyFrame = true
presentationTimeUs = 1064536
presentationTimeUs = 1064535
sample:
trackIndex = 1
dataHashCode = -390625371
size = 237
isKeyFrame = true
presentationTimeUs = 1065851
presentationTimeUs = 1065850
sample:
trackIndex = 1
dataHashCode = 1067950751
size = 228
isKeyFrame = true
presentationTimeUs = 1067194
presentationTimeUs = 1067188
sample:
trackIndex = 1
dataHashCode = -1179436278
size = 235
isKeyFrame = true
presentationTimeUs = 1068487
presentationTimeUs = 1068480
sample:
trackIndex = 1
dataHashCode = 1906607774
size = 264
isKeyFrame = true
presentationTimeUs = 1069819
presentationTimeUs = 1069818
sample:
trackIndex = 1
dataHashCode = -800475828
size = 257
isKeyFrame = true
presentationTimeUs = 1071316
presentationTimeUs = 1071315
sample:
trackIndex = 1
dataHashCode = 1718972977
size = 227
isKeyFrame = true
presentationTimeUs = 1072773
presentationTimeUs = 1072766
sample:
trackIndex = 1
dataHashCode = -1120448741
size = 227
isKeyFrame = true
presentationTimeUs = 1074059
presentationTimeUs = 1074058
sample:
trackIndex = 1
dataHashCode = -1718323210
size = 235
isKeyFrame = true
presentationTimeUs = 1075346
presentationTimeUs = 1075328
sample:
trackIndex = 1
dataHashCode = -422416
size = 229
isKeyFrame = true
presentationTimeUs = 1076679
presentationTimeUs = 1076666
sample:
trackIndex = 1
dataHashCode = 833757830
size = 6
isKeyFrame = true
presentationTimeUs = 1077977
presentationTimeUs = 1077959
sample:
trackIndex = 0
dataHashCode = -261176150

View file

@ -27,127 +27,127 @@ sample:
dataHashCode = 571187457
size = 3960
isKeyFrame = true
presentationTimeUs = 17461
presentationTimeUs = 17460
sample:
trackIndex = 1
dataHashCode = 571187457
size = 3960
isKeyFrame = true
presentationTimeUs = 39910
presentationTimeUs = 39909
sample:
trackIndex = 1
dataHashCode = -1264223743
size = 4400
isKeyFrame = true
presentationTimeUs = 62359
presentationTimeUs = 62358
sample:
trackIndex = 1
dataHashCode = 571187457
size = 3960
isKeyFrame = true
presentationTimeUs = 87302
presentationTimeUs = 87301
sample:
trackIndex = 1
dataHashCode = -448902783
size = 3956
isKeyFrame = true
presentationTimeUs = 109751
presentationTimeUs = 109750
sample:
trackIndex = 1
dataHashCode = -1264223743
size = 4400
isKeyFrame = true
presentationTimeUs = 132177
presentationTimeUs = 132176
sample:
trackIndex = 1
dataHashCode = 571187457
size = 3960
isKeyFrame = true
presentationTimeUs = 157121
presentationTimeUs = 157120
sample:
trackIndex = 1
dataHashCode = 571187457
size = 3960
isKeyFrame = true
presentationTimeUs = 179570
presentationTimeUs = 179569
sample:
trackIndex = 1
dataHashCode = -1264223743
size = 4400
isKeyFrame = true
presentationTimeUs = 202019
presentationTimeUs = 202018
sample:
trackIndex = 1
dataHashCode = 571187457
size = 3960
isKeyFrame = true
presentationTimeUs = 226962
presentationTimeUs = 226961
sample:
trackIndex = 1
dataHashCode = 571187457
size = 3960
isKeyFrame = true
presentationTimeUs = 249411
presentationTimeUs = 249410
sample:
trackIndex = 1
dataHashCode = -1264223743
size = 4400
isKeyFrame = true
presentationTimeUs = 271860
presentationTimeUs = 271859
sample:
trackIndex = 1
dataHashCode = 571187457
size = 3960
isKeyFrame = true
presentationTimeUs = 296803
presentationTimeUs = 296802
sample:
trackIndex = 1
dataHashCode = 571187457
size = 3960
isKeyFrame = true
presentationTimeUs = 319252
presentationTimeUs = 319251
sample:
trackIndex = 1
dataHashCode = 571187457
size = 3960
isKeyFrame = true
presentationTimeUs = 341701
presentationTimeUs = 341700
sample:
trackIndex = 1
dataHashCode = -122903935
size = 4396
isKeyFrame = true
presentationTimeUs = 364150
presentationTimeUs = 364149
sample:
trackIndex = 1
dataHashCode = 571187457
size = 3960
isKeyFrame = true
presentationTimeUs = 389071
presentationTimeUs = 389070
sample:
trackIndex = 1
dataHashCode = 571187457
size = 3960
isKeyFrame = true
presentationTimeUs = 411520
presentationTimeUs = 411519
sample:
trackIndex = 1
dataHashCode = -1264223743
size = 4400
isKeyFrame = true
presentationTimeUs = 433969
presentationTimeUs = 433968
sample:
trackIndex = 1
dataHashCode = 571187457
size = 3960
isKeyFrame = true
presentationTimeUs = 458912
presentationTimeUs = 458911
sample:
trackIndex = 1
dataHashCode = 571187457
size = 3960
isKeyFrame = true
presentationTimeUs = 481361
presentationTimeUs = 481360
sample:
trackIndex = 0
dataHashCode = -770308242
@ -213,91 +213,91 @@ sample:
dataHashCode = -1264223743
size = 4400
isKeyFrame = true
presentationTimeUs = 503810
presentationTimeUs = 503809
sample:
trackIndex = 1
dataHashCode = 571187457
size = 3960
isKeyFrame = true
presentationTimeUs = 528753
presentationTimeUs = 528752
sample:
trackIndex = 1
dataHashCode = 571187457
size = 3960
isKeyFrame = true
presentationTimeUs = 551202
presentationTimeUs = 551201
sample:
trackIndex = 1
dataHashCode = -1264223743
size = 4400
isKeyFrame = true
presentationTimeUs = 573651
presentationTimeUs = 573650
sample:
trackIndex = 1
dataHashCode = 571187457
size = 3960
isKeyFrame = true
presentationTimeUs = 598595
presentationTimeUs = 598594
sample:
trackIndex = 1
dataHashCode = -448902783
size = 3956
isKeyFrame = true
presentationTimeUs = 621044
presentationTimeUs = 621043
sample:
trackIndex = 1
dataHashCode = 571187457
size = 3960
isKeyFrame = true
presentationTimeUs = 643470
presentationTimeUs = 643469
sample:
trackIndex = 1
dataHashCode = -1264223743
size = 4400
isKeyFrame = true
presentationTimeUs = 665919
presentationTimeUs = 665918
sample:
trackIndex = 1
dataHashCode = 571187457
size = 3960
isKeyFrame = true
presentationTimeUs = 690862
presentationTimeUs = 690861
sample:
trackIndex = 1
dataHashCode = 571187457
size = 3960
isKeyFrame = true
presentationTimeUs = 713311
presentationTimeUs = 713310
sample:
trackIndex = 1
dataHashCode = -1264223743
size = 4400
isKeyFrame = true
presentationTimeUs = 735760
presentationTimeUs = 735759
sample:
trackIndex = 1
dataHashCode = 571187457
size = 3960
isKeyFrame = true
presentationTimeUs = 760703
presentationTimeUs = 760702
sample:
trackIndex = 1
dataHashCode = 571187457
size = 3960
isKeyFrame = true
presentationTimeUs = 783152
presentationTimeUs = 783151
sample:
trackIndex = 1
dataHashCode = -1264223743
size = 4400
isKeyFrame = true
presentationTimeUs = 805601
presentationTimeUs = 805600
sample:
trackIndex = 1
dataHashCode = 571187457
size = 3960
isKeyFrame = true
presentationTimeUs = 830545
presentationTimeUs = 830544
sample:
trackIndex = 0
dataHashCode = 1949198785
@ -363,43 +363,43 @@ sample:
dataHashCode = -448902783
size = 3956
isKeyFrame = true
presentationTimeUs = 852994
presentationTimeUs = 852993
sample:
trackIndex = 1
dataHashCode = -1264223743
size = 4400
isKeyFrame = true
presentationTimeUs = 875420
presentationTimeUs = 875419
sample:
trackIndex = 1
dataHashCode = 571187457
size = 3960
isKeyFrame = true
presentationTimeUs = 900363
presentationTimeUs = 900362
sample:
trackIndex = 1
dataHashCode = 571187457
size = 3960
isKeyFrame = true
presentationTimeUs = 922812
presentationTimeUs = 922811
sample:
trackIndex = 1
dataHashCode = 571187457
size = 3960
isKeyFrame = true
presentationTimeUs = 945261
presentationTimeUs = 945260
sample:
trackIndex = 1
dataHashCode = -1264223743
size = 4400
isKeyFrame = true
presentationTimeUs = 967710
presentationTimeUs = 967709
sample:
trackIndex = 1
dataHashCode = -1759454975
size = 440
isKeyFrame = true
presentationTimeUs = 992654
presentationTimeUs = 992653
sample:
trackIndex = 0
dataHashCode = -1723778407
@ -483,19 +483,19 @@ sample:
dataHashCode = -1759454975
size = 440
isKeyFrame = true
presentationTimeUs = 995148
presentationTimeUs = 995147
sample:
trackIndex = 1
dataHashCode = -1759454975
size = 440
isKeyFrame = true
presentationTimeUs = 997642
presentationTimeUs = 997641
sample:
trackIndex = 1
dataHashCode = -1759454975
size = 440
isKeyFrame = true
presentationTimeUs = 1000137
presentationTimeUs = 1000136
sample:
trackIndex = 0
dataHashCode = 1150349584
@ -561,31 +561,31 @@ sample:
dataHashCode = -1759454975
size = 440
isKeyFrame = true
presentationTimeUs = 1002631
presentationTimeUs = 1002630
sample:
trackIndex = 1
dataHashCode = -1759454975
size = 440
isKeyFrame = true
presentationTimeUs = 1005125
presentationTimeUs = 1005124
sample:
trackIndex = 1
dataHashCode = -1759454975
size = 440
isKeyFrame = true
presentationTimeUs = 1007620
presentationTimeUs = 1007619
sample:
trackIndex = 1
dataHashCode = -1759454975
size = 440
isKeyFrame = true
presentationTimeUs = 1010114
presentationTimeUs = 1010113
sample:
trackIndex = 1
dataHashCode = -1759454975
size = 440
isKeyFrame = true
presentationTimeUs = 1012608
presentationTimeUs = 1012607
sample:
trackIndex = 0
dataHashCode = 965782073
@ -597,67 +597,67 @@ sample:
dataHashCode = -1759454975
size = 440
isKeyFrame = true
presentationTimeUs = 1015103
presentationTimeUs = 1015102
sample:
trackIndex = 1
dataHashCode = -1759454975
size = 440
isKeyFrame = true
presentationTimeUs = 1017597
presentationTimeUs = 1017596
sample:
trackIndex = 1
dataHashCode = 1769039399
size = 440
isKeyFrame = true
presentationTimeUs = 1020091
presentationTimeUs = 1020090
sample:
trackIndex = 1
dataHashCode = 2055596432
size = 440
isKeyFrame = true
presentationTimeUs = 1022586
presentationTimeUs = 1022585
sample:
trackIndex = 1
dataHashCode = 1256378735
size = 552
isKeyFrame = true
presentationTimeUs = 1025080
presentationTimeUs = 1025079
sample:
trackIndex = 1
dataHashCode = 252271772
size = 508
isKeyFrame = true
presentationTimeUs = 1028209
presentationTimeUs = 1028208
sample:
trackIndex = 1
dataHashCode = 858405415
size = 656
isKeyFrame = true
presentationTimeUs = 1031089
presentationTimeUs = 1031088
sample:
trackIndex = 1
dataHashCode = -809646068
size = 492
isKeyFrame = true
presentationTimeUs = 1034808
presentationTimeUs = 1034807
sample:
trackIndex = 1
dataHashCode = -724992735
size = 844
isKeyFrame = true
presentationTimeUs = 1037597
presentationTimeUs = 1037596
sample:
trackIndex = 1
dataHashCode = -1464088455
size = 800
isKeyFrame = true
presentationTimeUs = 1042381
presentationTimeUs = 1042380
sample:
trackIndex = 1
dataHashCode = -1270518800
size = 5396
isKeyFrame = true
presentationTimeUs = 1046917
presentationTimeUs = 1046916
sample:
trackIndex = 0
dataHashCode = -261176150

View file

@ -27,127 +27,127 @@ sample:
dataHashCode = 1742602241
size = 4096
isKeyFrame = true
presentationTimeUs = 23220
presentationTimeUs = 23219
sample:
trackIndex = 1
dataHashCode = 1742602241
size = 4096
isKeyFrame = true
presentationTimeUs = 46440
presentationTimeUs = 46439
sample:
trackIndex = 1
dataHashCode = 1742602241
size = 4096
isKeyFrame = true
presentationTimeUs = 69660
presentationTimeUs = 69659
sample:
trackIndex = 1
dataHashCode = 1742602241
size = 4096
isKeyFrame = true
presentationTimeUs = 92880
presentationTimeUs = 92879
sample:
trackIndex = 1
dataHashCode = 1742602241
size = 4096
isKeyFrame = true
presentationTimeUs = 116100
presentationTimeUs = 116099
sample:
trackIndex = 1
dataHashCode = 1742602241
size = 4096
isKeyFrame = true
presentationTimeUs = 139320
presentationTimeUs = 139319
sample:
trackIndex = 1
dataHashCode = 1742602241
size = 4096
isKeyFrame = true
presentationTimeUs = 162540
presentationTimeUs = 162539
sample:
trackIndex = 1
dataHashCode = 1742602241
size = 4096
isKeyFrame = true
presentationTimeUs = 185760
presentationTimeUs = 185759
sample:
trackIndex = 1
dataHashCode = 1742602241
size = 4096
isKeyFrame = true
presentationTimeUs = 208980
presentationTimeUs = 208979
sample:
trackIndex = 1
dataHashCode = 1742602241
size = 4096
isKeyFrame = true
presentationTimeUs = 232200
presentationTimeUs = 232199
sample:
trackIndex = 1
dataHashCode = 1742602241
size = 4096
isKeyFrame = true
presentationTimeUs = 255420
presentationTimeUs = 255419
sample:
trackIndex = 1
dataHashCode = 1742602241
size = 4096
isKeyFrame = true
presentationTimeUs = 278640
presentationTimeUs = 278639
sample:
trackIndex = 1
dataHashCode = 1742602241
size = 4096
isKeyFrame = true
presentationTimeUs = 301860
presentationTimeUs = 301859
sample:
trackIndex = 1
dataHashCode = 1742602241
size = 4096
isKeyFrame = true
presentationTimeUs = 325080
presentationTimeUs = 325079
sample:
trackIndex = 1
dataHashCode = 1742602241
size = 4096
isKeyFrame = true
presentationTimeUs = 348300
presentationTimeUs = 348299
sample:
trackIndex = 1
dataHashCode = 1742602241
size = 4096
isKeyFrame = true
presentationTimeUs = 371520
presentationTimeUs = 371519
sample:
trackIndex = 1
dataHashCode = 1742602241
size = 4096
isKeyFrame = true
presentationTimeUs = 394740
presentationTimeUs = 394739
sample:
trackIndex = 1
dataHashCode = 1742602241
size = 4096
isKeyFrame = true
presentationTimeUs = 417960
presentationTimeUs = 417959
sample:
trackIndex = 1
dataHashCode = 1742602241
size = 4096
isKeyFrame = true
presentationTimeUs = 441180
presentationTimeUs = 441179
sample:
trackIndex = 1
dataHashCode = 1742602241
size = 4096
isKeyFrame = true
presentationTimeUs = 464400
presentationTimeUs = 464399
sample:
trackIndex = 1
dataHashCode = 1742602241
size = 4096
isKeyFrame = true
presentationTimeUs = 487620
presentationTimeUs = 487619
sample:
trackIndex = 0
dataHashCode = -770308242
@ -213,85 +213,85 @@ sample:
dataHashCode = 1742602241
size = 4096
isKeyFrame = true
presentationTimeUs = 510840
presentationTimeUs = 510839
sample:
trackIndex = 1
dataHashCode = 1742602241
size = 4096
isKeyFrame = true
presentationTimeUs = 534059
presentationTimeUs = 534058
sample:
trackIndex = 1
dataHashCode = 1742602241
size = 4096
isKeyFrame = true
presentationTimeUs = 557279
presentationTimeUs = 557278
sample:
trackIndex = 1
dataHashCode = 1742602241
size = 4096
isKeyFrame = true
presentationTimeUs = 580499
presentationTimeUs = 580498
sample:
trackIndex = 1
dataHashCode = 1742602241
size = 4096
isKeyFrame = true
presentationTimeUs = 603719
presentationTimeUs = 603718
sample:
trackIndex = 1
dataHashCode = 1742602241
size = 4096
isKeyFrame = true
presentationTimeUs = 626939
presentationTimeUs = 626938
sample:
trackIndex = 1
dataHashCode = 1742602241
size = 4096
isKeyFrame = true
presentationTimeUs = 650159
presentationTimeUs = 650158
sample:
trackIndex = 1
dataHashCode = 1742602241
size = 4096
isKeyFrame = true
presentationTimeUs = 673379
presentationTimeUs = 673378
sample:
trackIndex = 1
dataHashCode = 1742602241
size = 4096
isKeyFrame = true
presentationTimeUs = 696599
presentationTimeUs = 696598
sample:
trackIndex = 1
dataHashCode = 1742602241
size = 4096
isKeyFrame = true
presentationTimeUs = 719819
presentationTimeUs = 719818
sample:
trackIndex = 1
dataHashCode = 1742602241
size = 4096
isKeyFrame = true
presentationTimeUs = 743039
presentationTimeUs = 743038
sample:
trackIndex = 1
dataHashCode = 1742602241
size = 4096
isKeyFrame = true
presentationTimeUs = 766259
presentationTimeUs = 766258
sample:
trackIndex = 1
dataHashCode = 1742602241
size = 4096
isKeyFrame = true
presentationTimeUs = 789479
presentationTimeUs = 789478
sample:
trackIndex = 1
dataHashCode = 1742602241
size = 4096
isKeyFrame = true
presentationTimeUs = 812699
presentationTimeUs = 812698
sample:
trackIndex = 0
dataHashCode = 1949198785
@ -357,55 +357,55 @@ sample:
dataHashCode = 1742602241
size = 4096
isKeyFrame = true
presentationTimeUs = 835919
presentationTimeUs = 835918
sample:
trackIndex = 1
dataHashCode = 1742602241
size = 4096
isKeyFrame = true
presentationTimeUs = 859139
presentationTimeUs = 859138
sample:
trackIndex = 1
dataHashCode = 1742602241
size = 4096
isKeyFrame = true
presentationTimeUs = 882359
presentationTimeUs = 882358
sample:
trackIndex = 1
dataHashCode = 1742602241
size = 4096
isKeyFrame = true
presentationTimeUs = 905579
presentationTimeUs = 905578
sample:
trackIndex = 1
dataHashCode = 1742602241
size = 4096
isKeyFrame = true
presentationTimeUs = 928799
presentationTimeUs = 928798
sample:
trackIndex = 1
dataHashCode = 1742602241
size = 4096
isKeyFrame = true
presentationTimeUs = 952019
presentationTimeUs = 952018
sample:
trackIndex = 1
dataHashCode = 1742602241
size = 4096
isKeyFrame = true
presentationTimeUs = 975239
presentationTimeUs = 975238
sample:
trackIndex = 1
dataHashCode = 1742602241
size = 4096
isKeyFrame = true
presentationTimeUs = 998459
presentationTimeUs = 998458
sample:
trackIndex = 1
dataHashCode = -587391743
size = 408
isKeyFrame = true
presentationTimeUs = 1021679
presentationTimeUs = 1021678
sample:
trackIndex = 0
dataHashCode = -1723778407

View file

@ -30,127 +30,127 @@ sample:
dataHashCode = 1742602241
size = 4096
isKeyFrame = true
presentationTimeUs = 23220
presentationTimeUs = 23219
sample:
trackIndex = 1
dataHashCode = 1742602241
size = 4096
isKeyFrame = true
presentationTimeUs = 46440
presentationTimeUs = 46439
sample:
trackIndex = 1
dataHashCode = 1742602241
size = 4096
isKeyFrame = true
presentationTimeUs = 69660
presentationTimeUs = 69659
sample:
trackIndex = 1
dataHashCode = 1742602241
size = 4096
isKeyFrame = true
presentationTimeUs = 92880
presentationTimeUs = 92879
sample:
trackIndex = 1
dataHashCode = 1742602241
size = 4096
isKeyFrame = true
presentationTimeUs = 116100
presentationTimeUs = 116099
sample:
trackIndex = 1
dataHashCode = 1742602241
size = 4096
isKeyFrame = true
presentationTimeUs = 139320
presentationTimeUs = 139319
sample:
trackIndex = 1
dataHashCode = 1742602241
size = 4096
isKeyFrame = true
presentationTimeUs = 162540
presentationTimeUs = 162539
sample:
trackIndex = 1
dataHashCode = 1742602241
size = 4096
isKeyFrame = true
presentationTimeUs = 185760
presentationTimeUs = 185759
sample:
trackIndex = 1
dataHashCode = 1742602241
size = 4096
isKeyFrame = true
presentationTimeUs = 208980
presentationTimeUs = 208979
sample:
trackIndex = 1
dataHashCode = 1742602241
size = 4096
isKeyFrame = true
presentationTimeUs = 232200
presentationTimeUs = 232199
sample:
trackIndex = 1
dataHashCode = 1742602241
size = 4096
isKeyFrame = true
presentationTimeUs = 255420
presentationTimeUs = 255419
sample:
trackIndex = 1
dataHashCode = 1742602241
size = 4096
isKeyFrame = true
presentationTimeUs = 278640
presentationTimeUs = 278639
sample:
trackIndex = 1
dataHashCode = 1742602241
size = 4096
isKeyFrame = true
presentationTimeUs = 301860
presentationTimeUs = 301859
sample:
trackIndex = 1
dataHashCode = 1742602241
size = 4096
isKeyFrame = true
presentationTimeUs = 325080
presentationTimeUs = 325079
sample:
trackIndex = 1
dataHashCode = 1742602241
size = 4096
isKeyFrame = true
presentationTimeUs = 348300
presentationTimeUs = 348299
sample:
trackIndex = 1
dataHashCode = 1742602241
size = 4096
isKeyFrame = true
presentationTimeUs = 371520
presentationTimeUs = 371519
sample:
trackIndex = 1
dataHashCode = 1742602241
size = 4096
isKeyFrame = true
presentationTimeUs = 394740
presentationTimeUs = 394739
sample:
trackIndex = 1
dataHashCode = 1742602241
size = 4096
isKeyFrame = true
presentationTimeUs = 417960
presentationTimeUs = 417959
sample:
trackIndex = 1
dataHashCode = 1742602241
size = 4096
isKeyFrame = true
presentationTimeUs = 441180
presentationTimeUs = 441179
sample:
trackIndex = 1
dataHashCode = 1742602241
size = 4096
isKeyFrame = true
presentationTimeUs = 464400
presentationTimeUs = 464399
sample:
trackIndex = 1
dataHashCode = 1742602241
size = 4096
isKeyFrame = true
presentationTimeUs = 487620
presentationTimeUs = 487619
sample:
trackIndex = 0
dataHashCode = -770308242
@ -216,85 +216,85 @@ sample:
dataHashCode = 1742602241
size = 4096
isKeyFrame = true
presentationTimeUs = 510840
presentationTimeUs = 510839
sample:
trackIndex = 1
dataHashCode = 1742602241
size = 4096
isKeyFrame = true
presentationTimeUs = 534059
presentationTimeUs = 534058
sample:
trackIndex = 1
dataHashCode = 1742602241
size = 4096
isKeyFrame = true
presentationTimeUs = 557279
presentationTimeUs = 557278
sample:
trackIndex = 1
dataHashCode = 1742602241
size = 4096
isKeyFrame = true
presentationTimeUs = 580499
presentationTimeUs = 580498
sample:
trackIndex = 1
dataHashCode = 1742602241
size = 4096
isKeyFrame = true
presentationTimeUs = 603719
presentationTimeUs = 603718
sample:
trackIndex = 1
dataHashCode = 1742602241
size = 4096
isKeyFrame = true
presentationTimeUs = 626939
presentationTimeUs = 626938
sample:
trackIndex = 1
dataHashCode = 1742602241
size = 4096
isKeyFrame = true
presentationTimeUs = 650159
presentationTimeUs = 650158
sample:
trackIndex = 1
dataHashCode = 1742602241
size = 4096
isKeyFrame = true
presentationTimeUs = 673379
presentationTimeUs = 673378
sample:
trackIndex = 1
dataHashCode = 1742602241
size = 4096
isKeyFrame = true
presentationTimeUs = 696599
presentationTimeUs = 696598
sample:
trackIndex = 1
dataHashCode = 1742602241
size = 4096
isKeyFrame = true
presentationTimeUs = 719819
presentationTimeUs = 719818
sample:
trackIndex = 1
dataHashCode = 1742602241
size = 4096
isKeyFrame = true
presentationTimeUs = 743039
presentationTimeUs = 743038
sample:
trackIndex = 1
dataHashCode = 1742602241
size = 4096
isKeyFrame = true
presentationTimeUs = 766259
presentationTimeUs = 766258
sample:
trackIndex = 1
dataHashCode = 1742602241
size = 4096
isKeyFrame = true
presentationTimeUs = 789479
presentationTimeUs = 789478
sample:
trackIndex = 1
dataHashCode = 1742602241
size = 4096
isKeyFrame = true
presentationTimeUs = 812699
presentationTimeUs = 812698
sample:
trackIndex = 0
dataHashCode = 1949198785
@ -360,49 +360,49 @@ sample:
dataHashCode = 1742602241
size = 4096
isKeyFrame = true
presentationTimeUs = 835919
presentationTimeUs = 835918
sample:
trackIndex = 1
dataHashCode = 1742602241
size = 4096
isKeyFrame = true
presentationTimeUs = 859139
presentationTimeUs = 859138
sample:
trackIndex = 1
dataHashCode = 1742602241
size = 4096
isKeyFrame = true
presentationTimeUs = 882359
presentationTimeUs = 882358
sample:
trackIndex = 1
dataHashCode = 1742602241
size = 4096
isKeyFrame = true
presentationTimeUs = 905579
presentationTimeUs = 905578
sample:
trackIndex = 1
dataHashCode = 1742602241
size = 4096
isKeyFrame = true
presentationTimeUs = 928799
presentationTimeUs = 928798
sample:
trackIndex = 1
dataHashCode = 1742602241
size = 4096
isKeyFrame = true
presentationTimeUs = 952019
presentationTimeUs = 952018
sample:
trackIndex = 1
dataHashCode = 1742602241
size = 4096
isKeyFrame = true
presentationTimeUs = 975239
presentationTimeUs = 975238
sample:
trackIndex = 1
dataHashCode = 226248705
size = 448
isKeyFrame = true
presentationTimeUs = 998459
presentationTimeUs = 998458
sample:
trackIndex = 0
dataHashCode = -1723778407

View file

@ -14,13 +14,13 @@ sample:
dataHashCode = -2134951116
size = 1536
isKeyFrame = true
presentationTimeUs = 2667
presentationTimeUs = 2666
sample:
trackIndex = 0
dataHashCode = 97556101
size = 1536
isKeyFrame = true
presentationTimeUs = 5334
presentationTimeUs = 5333
sample:
trackIndex = 0
dataHashCode = -1448980924
@ -32,13 +32,13 @@ sample:
dataHashCode = 1871012467
size = 1536
isKeyFrame = true
presentationTimeUs = 10667
presentationTimeUs = 10666
sample:
trackIndex = 0
dataHashCode = -1317831364
size = 1536
isKeyFrame = true
presentationTimeUs = 13334
presentationTimeUs = 13333
sample:
trackIndex = 0
dataHashCode = -1728189539
@ -50,11 +50,11 @@ sample:
dataHashCode = -1715881661
size = 1536
isKeyFrame = true
presentationTimeUs = 18667
presentationTimeUs = 18666
sample:
trackIndex = 0
dataHashCode = -1428554542
size = 1536
isKeyFrame = true
presentationTimeUs = 21334
presentationTimeUs = 21333
released = true

View file

@ -29,19 +29,19 @@ sample:
dataHashCode = -1948569090
size = 72
isKeyFrame = true
presentationTimeUs = 417
presentationTimeUs = 416
sample:
trackIndex = 1
dataHashCode = -1316750072
size = 84
isKeyFrame = true
presentationTimeUs = 1917
presentationTimeUs = 1916
sample:
trackIndex = 1
dataHashCode = 1016428949
size = 88
isKeyFrame = true
presentationTimeUs = 3667
presentationTimeUs = 3666
sample:
trackIndex = 1
dataHashCode = -1127325245
@ -119,7 +119,7 @@ sample:
dataHashCode = -2125685540
size = 76
isKeyFrame = true
presentationTimeUs = 9417
presentationTimeUs = 9416
sample:
trackIndex = 1
dataHashCode = 473329679
@ -137,7 +137,7 @@ sample:
dataHashCode = 777637182
size = 196
isKeyFrame = true
presentationTimeUs = 15167
presentationTimeUs = 15166
sample:
trackIndex = 1
dataHashCode = 1872106264
@ -155,7 +155,7 @@ sample:
dataHashCode = 1580199067
size = 232
isKeyFrame = true
presentationTimeUs = 25917
presentationTimeUs = 25916
sample:
trackIndex = 1
dataHashCode = 475464086
@ -167,13 +167,13 @@ sample:
dataHashCode = -211754132
size = 172
isKeyFrame = true
presentationTimeUs = 34584
presentationTimeUs = 34583
sample:
trackIndex = 1
dataHashCode = 1236547164
size = 172
isKeyFrame = true
presentationTimeUs = 38167
presentationTimeUs = 38166
sample:
trackIndex = 1
dataHashCode = -2064216186
@ -227,13 +227,13 @@ sample:
dataHashCode = -682950885
size = 260
isKeyFrame = true
presentationTimeUs = 45667
presentationTimeUs = 45666
sample:
trackIndex = 1
dataHashCode = 1301206627
size = 236
isKeyFrame = true
presentationTimeUs = 51084
presentationTimeUs = 51083
sample:
trackIndex = 1
dataHashCode = 256580525
@ -245,13 +245,13 @@ sample:
dataHashCode = -1086601304
size = 236
isKeyFrame = true
presentationTimeUs = 60917
presentationTimeUs = 60916
sample:
trackIndex = 1
dataHashCode = -2046131588
size = 224
isKeyFrame = true
presentationTimeUs = 65834
presentationTimeUs = 65833
sample:
trackIndex = 1
dataHashCode = 1550955865
@ -263,7 +263,7 @@ sample:
dataHashCode = -274800552
size = 220
isKeyFrame = true
presentationTimeUs = 75167
presentationTimeUs = 75166
sample:
trackIndex = 1
dataHashCode = 382420909
@ -275,7 +275,7 @@ sample:
dataHashCode = -1431575865
size = 232
isKeyFrame = true
presentationTimeUs = 84417
presentationTimeUs = 84416
sample:
trackIndex = 0
dataHashCode = 2112365658

View file

@ -0,0 +1,66 @@
format 0:
sampleMimeType = audio/mp4a-latm
channelCount = 1
sampleRate = 44100
pcmEncoding = 2
sample:
trackIndex = 0
dataHashCode = -85819864
size = 8820
isKeyFrame = true
presentationTimeUs = 0
sample:
trackIndex = 0
dataHashCode = 566487491
size = 8820
isKeyFrame = true
presentationTimeUs = 100000
sample:
trackIndex = 0
dataHashCode = -1256531710
size = 8820
isKeyFrame = true
presentationTimeUs = 200000
sample:
trackIndex = 0
dataHashCode = 793455796
size = 8820
isKeyFrame = true
presentationTimeUs = 300000
sample:
trackIndex = 0
dataHashCode = -268235582
size = 8820
isKeyFrame = true
presentationTimeUs = 400000
sample:
trackIndex = 0
dataHashCode = -8136122
size = 8820
isKeyFrame = true
presentationTimeUs = 500000
sample:
trackIndex = 0
dataHashCode = 1750866613
size = 8820
isKeyFrame = true
presentationTimeUs = 600000
sample:
trackIndex = 0
dataHashCode = -1100753636
size = 8820
isKeyFrame = true
presentationTimeUs = 700000
sample:
trackIndex = 0
dataHashCode = 507833230
size = 8820
isKeyFrame = true
presentationTimeUs = 800000
sample:
trackIndex = 0
dataHashCode = 1472467506
size = 8820
isKeyFrame = true
presentationTimeUs = 900000
released = true

View file

@ -53,8 +53,7 @@ import org.checkerframework.dataflow.qual.Pure;
private final DecoderInputBuffer encoderInputBuffer;
private final DecoderInputBuffer encoderOutputBuffer;
private long nextEncoderInputBufferTimeUs;
private long encoderBufferDurationRemainder;
private long encoderTotalInputBytes;
private volatile boolean queueEndOfStreamAfterSilence;
@ -334,9 +333,8 @@ import org.checkerframework.dataflow.qual.Pure;
int bufferLimit = inputBuffer.limit();
inputBuffer.limit(min(bufferLimit, inputBuffer.position() + encoderInputBufferData.capacity()));
encoderInputBufferData.put(inputBuffer);
encoderInputBuffer.timeUs = nextEncoderInputBufferTimeUs;
computeNextEncoderInputBufferTimeUs(
/* bytesWritten= */ encoderInputBufferData.position(), encoderInputAudioFormat);
encoderInputBuffer.timeUs = getOutputAudioDurationUs();
encoderTotalInputBytes += encoderInputBufferData.position();
encoderInputBuffer.setFlags(0);
encoderInputBuffer.flip();
inputBuffer.limit(bufferLimit);
@ -345,7 +343,7 @@ import org.checkerframework.dataflow.qual.Pure;
private void queueEndOfStreamToEncoder() throws ExportException {
checkState(checkNotNull(encoderInputBuffer.data).position() == 0);
encoderInputBuffer.timeUs = nextEncoderInputBufferTimeUs;
encoderInputBuffer.timeUs = getOutputAudioDurationUs();
encoderInputBuffer.addFlag(C.BUFFER_FLAG_END_OF_STREAM);
encoderInputBuffer.flip();
// Queuing EOS should only occur with an empty buffer.
@ -363,21 +361,9 @@ import org.checkerframework.dataflow.qual.Pure;
return transformationRequest.buildUpon().setAudioMimeType(actualFormat.sampleMimeType).build();
}
private void computeNextEncoderInputBufferTimeUs(long bytesWritten, AudioFormat audioFormat) {
// The calculation below accounts for remainders and rounding. Without that it corresponds to
// the following:
// bufferDurationUs = numberOfFramesInBuffer * sampleDurationUs
// where numberOfFramesInBuffer = bytesWritten / bytesPerFrame
// and sampleDurationUs = C.MICROS_PER_SECOND / sampleRate
long numerator = bytesWritten * C.MICROS_PER_SECOND + encoderBufferDurationRemainder;
long denominator = (long) audioFormat.bytesPerFrame * audioFormat.sampleRate;
long bufferDurationUs = numerator / denominator;
encoderBufferDurationRemainder = numerator - bufferDurationUs * denominator;
if (encoderBufferDurationRemainder > 0) { // Ceil division result.
bufferDurationUs += 1;
encoderBufferDurationRemainder -= denominator;
}
nextEncoderInputBufferTimeUs += bufferDurationUs;
private long getOutputAudioDurationUs() {
long totalFramesWritten = encoderTotalInputBytes / encoderInputAudioFormat.bytesPerFrame;
return (totalFramesWritten * C.MICROS_PER_SECOND) / encoderInputAudioFormat.sampleRate;
}
private boolean shouldGenerateSilence() {

View file

@ -21,6 +21,7 @@ import static androidx.media3.test.utils.robolectric.RobolectricUtil.runLooperUn
import static androidx.media3.transformer.AssetLoader.SUPPORTED_OUTPUT_TYPE_DECODED;
import static androidx.media3.transformer.AssetLoader.SUPPORTED_OUTPUT_TYPE_ENCODED;
import static androidx.media3.transformer.TestUtil.ASSET_URI_PREFIX;
import static androidx.media3.transformer.TestUtil.FILE_AUDIO_RAW;
import static androidx.media3.transformer.TestUtil.FILE_AUDIO_UNSUPPORTED_BY_DECODER;
import static androidx.media3.transformer.TestUtil.FILE_AUDIO_UNSUPPORTED_BY_ENCODER;
import static androidx.media3.transformer.TestUtil.FILE_AUDIO_UNSUPPORTED_BY_MUXER;
@ -161,15 +162,13 @@ public final class MediaItemExportTest {
.setAudioMimeType(MimeTypes.AUDIO_AAC) // supported by encoder and muxer
.build())
.build();
MediaItem mediaItem = MediaItem.fromUri(ASSET_URI_PREFIX + FILE_AUDIO_UNSUPPORTED_BY_ENCODER);
MediaItem mediaItem = MediaItem.fromUri(ASSET_URI_PREFIX + FILE_AUDIO_RAW);
transformer.start(mediaItem, outputPath);
TransformerTestRunner.runLooper(transformer);
DumpFileAsserts.assertOutput(
context,
checkNotNull(testMuxerHolder.testMuxer),
getDumpFileName(FILE_AUDIO_UNSUPPORTED_BY_ENCODER + ".aac"));
context, checkNotNull(testMuxerHolder.testMuxer), getDumpFileName(FILE_AUDIO_RAW + ".aac"));
}
@Test

View file

@ -150,6 +150,7 @@ public final class TestUtil {
public static final String FILE_AUDIO_VIDEO = "mp4/sample.mp4";
public static final String FILE_AUDIO_VIDEO_INCREASING_TIMESTAMPS_15S =
"mp4/sample_with_increasing_timestamps_320w_240h.mp4";
public static final String FILE_AUDIO_RAW = "wav/sample.wav";
public static final String FILE_WITH_SUBTITLES = "mkv/sample_with_srt.mkv";
public static final String FILE_WITH_SEF_SLOW_MOTION = "mp4/sample_sef_slow_motion.mp4";
public static final String FILE_AUDIO_UNSUPPORTED_BY_DECODER = "amr/sample_wb.amr";
@ -179,7 +180,7 @@ public final class TestUtil {
/* colorFormats= */ ImmutableList.of(),
/* isDecoder= */ true);
addCodec(
MimeTypes.AUDIO_AMR_NB,
MimeTypes.AUDIO_RAW,
codecConfig,
/* colorFormats= */ ImmutableList.of(),
/* isDecoder= */ true);