mirror of
https://github.com/samsonjs/media.git
synced 2026-04-27 15:07:40 +00:00
Add PassthroughSamplePipeline for audio.
When no transformation is needed, the passthrough pipeline allows us to skip decoding and re-encoding. PiperOrigin-RevId: 407789767
This commit is contained in:
parent
05c7a30bd7
commit
64466356b2
6 changed files with 528 additions and 432 deletions
File diff suppressed because it is too large
Load diff
|
|
@ -1,9 +1,15 @@
|
||||||
containerMimeType = video/mp4
|
containerMimeType = video/mp4
|
||||||
format 0:
|
format 0:
|
||||||
|
id = 2
|
||||||
sampleMimeType = audio/mp4a-latm
|
sampleMimeType = audio/mp4a-latm
|
||||||
|
codecs = mp4a.40.2
|
||||||
|
maxInputSize = 294
|
||||||
channelCount = 1
|
channelCount = 1
|
||||||
sampleRate = 44100
|
sampleRate = 44100
|
||||||
pcmEncoding = 2
|
language = und
|
||||||
|
metadata = entries=[TSSE: description=null: value=Lavf56.1.0]
|
||||||
|
initializationData:
|
||||||
|
data = length 2, hash 5F7
|
||||||
format 1:
|
format 1:
|
||||||
id = 1
|
id = 1
|
||||||
sampleMimeType = video/avc
|
sampleMimeType = video/avc
|
||||||
|
|
@ -110,271 +116,127 @@ sample:
|
||||||
dataHashCode = 1205768497
|
dataHashCode = 1205768497
|
||||||
size = 23
|
size = 23
|
||||||
isKeyFrame = true
|
isKeyFrame = true
|
||||||
presentationTimeUs = 0
|
presentationTimeUs = 44000
|
||||||
sample:
|
sample:
|
||||||
trackIndex = 0
|
trackIndex = 0
|
||||||
dataHashCode = 837571078
|
dataHashCode = 837571078
|
||||||
size = 6
|
size = 6
|
||||||
isKeyFrame = true
|
isKeyFrame = true
|
||||||
presentationTimeUs = 249
|
presentationTimeUs = 67219
|
||||||
sample:
|
sample:
|
||||||
trackIndex = 0
|
trackIndex = 0
|
||||||
dataHashCode = -1991633045
|
dataHashCode = -1991633045
|
||||||
size = 148
|
size = 148
|
||||||
isKeyFrame = true
|
isKeyFrame = true
|
||||||
presentationTimeUs = 317
|
presentationTimeUs = 90439
|
||||||
sample:
|
sample:
|
||||||
trackIndex = 0
|
trackIndex = 0
|
||||||
dataHashCode = -822987359
|
dataHashCode = -822987359
|
||||||
size = 189
|
size = 189
|
||||||
isKeyFrame = true
|
isKeyFrame = true
|
||||||
presentationTimeUs = 1995
|
presentationTimeUs = 113659
|
||||||
sample:
|
sample:
|
||||||
trackIndex = 0
|
trackIndex = 0
|
||||||
dataHashCode = -1141508176
|
dataHashCode = -1141508176
|
||||||
size = 205
|
size = 205
|
||||||
isKeyFrame = true
|
isKeyFrame = true
|
||||||
presentationTimeUs = 4126
|
presentationTimeUs = 136879
|
||||||
sample:
|
sample:
|
||||||
trackIndex = 0
|
trackIndex = 0
|
||||||
dataHashCode = -226971245
|
dataHashCode = -226971245
|
||||||
size = 210
|
size = 210
|
||||||
isKeyFrame = true
|
isKeyFrame = true
|
||||||
presentationTimeUs = 6438
|
presentationTimeUs = 160099
|
||||||
sample:
|
sample:
|
||||||
trackIndex = 0
|
trackIndex = 0
|
||||||
dataHashCode = -2099636855
|
dataHashCode = -2099636855
|
||||||
size = 210
|
size = 210
|
||||||
isKeyFrame = true
|
isKeyFrame = true
|
||||||
presentationTimeUs = 8818
|
presentationTimeUs = 183319
|
||||||
sample:
|
sample:
|
||||||
trackIndex = 0
|
trackIndex = 0
|
||||||
dataHashCode = 1541550559
|
dataHashCode = 1541550559
|
||||||
size = 207
|
size = 207
|
||||||
isKeyFrame = true
|
isKeyFrame = true
|
||||||
presentationTimeUs = 11198
|
presentationTimeUs = 206539
|
||||||
sample:
|
sample:
|
||||||
trackIndex = 0
|
trackIndex = 0
|
||||||
dataHashCode = 411148001
|
dataHashCode = 411148001
|
||||||
size = 225
|
size = 225
|
||||||
isKeyFrame = true
|
isKeyFrame = true
|
||||||
presentationTimeUs = 13533
|
presentationTimeUs = 229759
|
||||||
sample:
|
sample:
|
||||||
trackIndex = 0
|
trackIndex = 0
|
||||||
dataHashCode = -897603973
|
dataHashCode = -897603973
|
||||||
size = 215
|
size = 215
|
||||||
isKeyFrame = true
|
isKeyFrame = true
|
||||||
presentationTimeUs = 16072
|
presentationTimeUs = 252979
|
||||||
sample:
|
sample:
|
||||||
trackIndex = 0
|
trackIndex = 0
|
||||||
dataHashCode = 1478106136
|
dataHashCode = 1478106136
|
||||||
size = 211
|
size = 211
|
||||||
isKeyFrame = true
|
isKeyFrame = true
|
||||||
presentationTimeUs = 18498
|
presentationTimeUs = 276199
|
||||||
sample:
|
sample:
|
||||||
trackIndex = 0
|
trackIndex = 0
|
||||||
dataHashCode = -1380417145
|
dataHashCode = -1380417145
|
||||||
size = 216
|
size = 216
|
||||||
isKeyFrame = true
|
isKeyFrame = true
|
||||||
presentationTimeUs = 20878
|
presentationTimeUs = 299419
|
||||||
sample:
|
sample:
|
||||||
trackIndex = 0
|
trackIndex = 0
|
||||||
dataHashCode = 780903644
|
dataHashCode = 780903644
|
||||||
size = 229
|
size = 229
|
||||||
isKeyFrame = true
|
isKeyFrame = true
|
||||||
presentationTimeUs = 23326
|
presentationTimeUs = 322639
|
||||||
sample:
|
sample:
|
||||||
trackIndex = 0
|
trackIndex = 0
|
||||||
dataHashCode = 586204432
|
dataHashCode = 586204432
|
||||||
size = 232
|
size = 232
|
||||||
isKeyFrame = true
|
isKeyFrame = true
|
||||||
presentationTimeUs = 25911
|
presentationTimeUs = 345859
|
||||||
sample:
|
sample:
|
||||||
trackIndex = 0
|
trackIndex = 0
|
||||||
dataHashCode = -2038771492
|
dataHashCode = -2038771492
|
||||||
size = 235
|
size = 235
|
||||||
isKeyFrame = true
|
isKeyFrame = true
|
||||||
presentationTimeUs = 28541
|
presentationTimeUs = 369079
|
||||||
sample:
|
sample:
|
||||||
trackIndex = 0
|
trackIndex = 0
|
||||||
dataHashCode = -2065161304
|
dataHashCode = -2065161304
|
||||||
size = 231
|
size = 231
|
||||||
isKeyFrame = true
|
isKeyFrame = true
|
||||||
presentationTimeUs = 31194
|
presentationTimeUs = 392299
|
||||||
sample:
|
sample:
|
||||||
trackIndex = 0
|
trackIndex = 0
|
||||||
dataHashCode = 468662933
|
dataHashCode = 468662933
|
||||||
size = 226
|
size = 226
|
||||||
isKeyFrame = true
|
isKeyFrame = true
|
||||||
presentationTimeUs = 33801
|
presentationTimeUs = 415519
|
||||||
sample:
|
sample:
|
||||||
trackIndex = 0
|
trackIndex = 0
|
||||||
dataHashCode = -358398546
|
dataHashCode = -358398546
|
||||||
size = 216
|
size = 216
|
||||||
isKeyFrame = true
|
isKeyFrame = true
|
||||||
presentationTimeUs = 36363
|
presentationTimeUs = 438739
|
||||||
sample:
|
sample:
|
||||||
trackIndex = 0
|
trackIndex = 0
|
||||||
dataHashCode = 1767325983
|
dataHashCode = 1767325983
|
||||||
size = 229
|
size = 229
|
||||||
isKeyFrame = true
|
isKeyFrame = true
|
||||||
presentationTimeUs = 38811
|
presentationTimeUs = 461959
|
||||||
sample:
|
sample:
|
||||||
trackIndex = 0
|
trackIndex = 0
|
||||||
dataHashCode = 1093095458
|
dataHashCode = 1093095458
|
||||||
size = 219
|
size = 219
|
||||||
isKeyFrame = true
|
isKeyFrame = true
|
||||||
presentationTimeUs = 41396
|
presentationTimeUs = 485179
|
||||||
sample:
|
sample:
|
||||||
trackIndex = 0
|
trackIndex = 0
|
||||||
dataHashCode = 1687543702
|
dataHashCode = 1687543702
|
||||||
size = 241
|
size = 241
|
||||||
isKeyFrame = true
|
isKeyFrame = true
|
||||||
presentationTimeUs = 43867
|
presentationTimeUs = 508399
|
||||||
sample:
|
|
||||||
trackIndex = 0
|
|
||||||
dataHashCode = 1675188486
|
|
||||||
size = 228
|
|
||||||
isKeyFrame = true
|
|
||||||
presentationTimeUs = 46588
|
|
||||||
sample:
|
|
||||||
trackIndex = 0
|
|
||||||
dataHashCode = 888567545
|
|
||||||
size = 238
|
|
||||||
isKeyFrame = true
|
|
||||||
presentationTimeUs = 49173
|
|
||||||
sample:
|
|
||||||
trackIndex = 0
|
|
||||||
dataHashCode = -439631803
|
|
||||||
size = 234
|
|
||||||
isKeyFrame = true
|
|
||||||
presentationTimeUs = 51871
|
|
||||||
sample:
|
|
||||||
trackIndex = 0
|
|
||||||
dataHashCode = 1606694497
|
|
||||||
size = 231
|
|
||||||
isKeyFrame = true
|
|
||||||
presentationTimeUs = 54524
|
|
||||||
sample:
|
|
||||||
trackIndex = 0
|
|
||||||
dataHashCode = 1747388653
|
|
||||||
size = 217
|
|
||||||
isKeyFrame = true
|
|
||||||
presentationTimeUs = 57131
|
|
||||||
sample:
|
|
||||||
trackIndex = 0
|
|
||||||
dataHashCode = -734560004
|
|
||||||
size = 239
|
|
||||||
isKeyFrame = true
|
|
||||||
presentationTimeUs = 59579
|
|
||||||
sample:
|
|
||||||
trackIndex = 0
|
|
||||||
dataHashCode = -975079040
|
|
||||||
size = 243
|
|
||||||
isKeyFrame = true
|
|
||||||
presentationTimeUs = 62277
|
|
||||||
sample:
|
|
||||||
trackIndex = 0
|
|
||||||
dataHashCode = -1403504710
|
|
||||||
size = 231
|
|
||||||
isKeyFrame = true
|
|
||||||
presentationTimeUs = 65020
|
|
||||||
sample:
|
|
||||||
trackIndex = 0
|
|
||||||
dataHashCode = 379512981
|
|
||||||
size = 230
|
|
||||||
isKeyFrame = true
|
|
||||||
presentationTimeUs = 67627
|
|
||||||
sample:
|
|
||||||
trackIndex = 0
|
|
||||||
dataHashCode = -997198863
|
|
||||||
size = 238
|
|
||||||
isKeyFrame = true
|
|
||||||
presentationTimeUs = 70234
|
|
||||||
sample:
|
|
||||||
trackIndex = 0
|
|
||||||
dataHashCode = 1394492825
|
|
||||||
size = 225
|
|
||||||
isKeyFrame = true
|
|
||||||
presentationTimeUs = 72932
|
|
||||||
sample:
|
|
||||||
trackIndex = 0
|
|
||||||
dataHashCode = -885232755
|
|
||||||
size = 232
|
|
||||||
isKeyFrame = true
|
|
||||||
presentationTimeUs = 75471
|
|
||||||
sample:
|
|
||||||
trackIndex = 0
|
|
||||||
dataHashCode = 260871367
|
|
||||||
size = 243
|
|
||||||
isKeyFrame = true
|
|
||||||
presentationTimeUs = 78101
|
|
||||||
sample:
|
|
||||||
trackIndex = 0
|
|
||||||
dataHashCode = -1505318960
|
|
||||||
size = 232
|
|
||||||
isKeyFrame = true
|
|
||||||
presentationTimeUs = 80844
|
|
||||||
sample:
|
|
||||||
trackIndex = 0
|
|
||||||
dataHashCode = -390625371
|
|
||||||
size = 237
|
|
||||||
isKeyFrame = true
|
|
||||||
presentationTimeUs = 83474
|
|
||||||
sample:
|
|
||||||
trackIndex = 0
|
|
||||||
dataHashCode = 1067950751
|
|
||||||
size = 228
|
|
||||||
isKeyFrame = true
|
|
||||||
presentationTimeUs = 86149
|
|
||||||
sample:
|
|
||||||
trackIndex = 0
|
|
||||||
dataHashCode = -1179436278
|
|
||||||
size = 235
|
|
||||||
isKeyFrame = true
|
|
||||||
presentationTimeUs = 88734
|
|
||||||
sample:
|
|
||||||
trackIndex = 0
|
|
||||||
dataHashCode = 1906607774
|
|
||||||
size = 264
|
|
||||||
isKeyFrame = true
|
|
||||||
presentationTimeUs = 91387
|
|
||||||
sample:
|
|
||||||
trackIndex = 0
|
|
||||||
dataHashCode = -800475828
|
|
||||||
size = 257
|
|
||||||
isKeyFrame = true
|
|
||||||
presentationTimeUs = 94380
|
|
||||||
sample:
|
|
||||||
trackIndex = 0
|
|
||||||
dataHashCode = 1718972977
|
|
||||||
size = 227
|
|
||||||
isKeyFrame = true
|
|
||||||
presentationTimeUs = 97282
|
|
||||||
sample:
|
|
||||||
trackIndex = 0
|
|
||||||
dataHashCode = -1120448741
|
|
||||||
size = 227
|
|
||||||
isKeyFrame = true
|
|
||||||
presentationTimeUs = 99844
|
|
||||||
sample:
|
|
||||||
trackIndex = 0
|
|
||||||
dataHashCode = -1718323210
|
|
||||||
size = 235
|
|
||||||
isKeyFrame = true
|
|
||||||
presentationTimeUs = 102406
|
|
||||||
sample:
|
|
||||||
trackIndex = 0
|
|
||||||
dataHashCode = -422416
|
|
||||||
size = 229
|
|
||||||
isKeyFrame = true
|
|
||||||
presentationTimeUs = 105059
|
|
||||||
sample:
|
|
||||||
trackIndex = 0
|
|
||||||
dataHashCode = 833757830
|
|
||||||
size = 6
|
|
||||||
isKeyFrame = true
|
|
||||||
presentationTimeUs = 107644
|
|
||||||
sample:
|
sample:
|
||||||
trackIndex = 1
|
trackIndex = 1
|
||||||
dataHashCode = -1830836678
|
dataHashCode = -1830836678
|
||||||
|
|
@ -465,4 +327,148 @@ sample:
|
||||||
size = 568
|
size = 568
|
||||||
isKeyFrame = false
|
isKeyFrame = false
|
||||||
presentationTimeUs = 934266
|
presentationTimeUs = 934266
|
||||||
|
sample:
|
||||||
|
trackIndex = 0
|
||||||
|
dataHashCode = 1675188486
|
||||||
|
size = 228
|
||||||
|
isKeyFrame = true
|
||||||
|
presentationTimeUs = 531619
|
||||||
|
sample:
|
||||||
|
trackIndex = 0
|
||||||
|
dataHashCode = 888567545
|
||||||
|
size = 238
|
||||||
|
isKeyFrame = true
|
||||||
|
presentationTimeUs = 554839
|
||||||
|
sample:
|
||||||
|
trackIndex = 0
|
||||||
|
dataHashCode = -439631803
|
||||||
|
size = 234
|
||||||
|
isKeyFrame = true
|
||||||
|
presentationTimeUs = 578058
|
||||||
|
sample:
|
||||||
|
trackIndex = 0
|
||||||
|
dataHashCode = 1606694497
|
||||||
|
size = 231
|
||||||
|
isKeyFrame = true
|
||||||
|
presentationTimeUs = 601278
|
||||||
|
sample:
|
||||||
|
trackIndex = 0
|
||||||
|
dataHashCode = 1747388653
|
||||||
|
size = 217
|
||||||
|
isKeyFrame = true
|
||||||
|
presentationTimeUs = 624498
|
||||||
|
sample:
|
||||||
|
trackIndex = 0
|
||||||
|
dataHashCode = -734560004
|
||||||
|
size = 239
|
||||||
|
isKeyFrame = true
|
||||||
|
presentationTimeUs = 647718
|
||||||
|
sample:
|
||||||
|
trackIndex = 0
|
||||||
|
dataHashCode = -975079040
|
||||||
|
size = 243
|
||||||
|
isKeyFrame = true
|
||||||
|
presentationTimeUs = 670938
|
||||||
|
sample:
|
||||||
|
trackIndex = 0
|
||||||
|
dataHashCode = -1403504710
|
||||||
|
size = 231
|
||||||
|
isKeyFrame = true
|
||||||
|
presentationTimeUs = 694158
|
||||||
|
sample:
|
||||||
|
trackIndex = 0
|
||||||
|
dataHashCode = 379512981
|
||||||
|
size = 230
|
||||||
|
isKeyFrame = true
|
||||||
|
presentationTimeUs = 717378
|
||||||
|
sample:
|
||||||
|
trackIndex = 0
|
||||||
|
dataHashCode = -997198863
|
||||||
|
size = 238
|
||||||
|
isKeyFrame = true
|
||||||
|
presentationTimeUs = 740598
|
||||||
|
sample:
|
||||||
|
trackIndex = 0
|
||||||
|
dataHashCode = 1394492825
|
||||||
|
size = 225
|
||||||
|
isKeyFrame = true
|
||||||
|
presentationTimeUs = 763818
|
||||||
|
sample:
|
||||||
|
trackIndex = 0
|
||||||
|
dataHashCode = -885232755
|
||||||
|
size = 232
|
||||||
|
isKeyFrame = true
|
||||||
|
presentationTimeUs = 787038
|
||||||
|
sample:
|
||||||
|
trackIndex = 0
|
||||||
|
dataHashCode = 260871367
|
||||||
|
size = 243
|
||||||
|
isKeyFrame = true
|
||||||
|
presentationTimeUs = 810258
|
||||||
|
sample:
|
||||||
|
trackIndex = 0
|
||||||
|
dataHashCode = -1505318960
|
||||||
|
size = 232
|
||||||
|
isKeyFrame = true
|
||||||
|
presentationTimeUs = 833478
|
||||||
|
sample:
|
||||||
|
trackIndex = 0
|
||||||
|
dataHashCode = -390625371
|
||||||
|
size = 237
|
||||||
|
isKeyFrame = true
|
||||||
|
presentationTimeUs = 856698
|
||||||
|
sample:
|
||||||
|
trackIndex = 0
|
||||||
|
dataHashCode = 1067950751
|
||||||
|
size = 228
|
||||||
|
isKeyFrame = true
|
||||||
|
presentationTimeUs = 879918
|
||||||
|
sample:
|
||||||
|
trackIndex = 0
|
||||||
|
dataHashCode = -1179436278
|
||||||
|
size = 235
|
||||||
|
isKeyFrame = true
|
||||||
|
presentationTimeUs = 903138
|
||||||
|
sample:
|
||||||
|
trackIndex = 0
|
||||||
|
dataHashCode = 1906607774
|
||||||
|
size = 264
|
||||||
|
isKeyFrame = true
|
||||||
|
presentationTimeUs = 926358
|
||||||
|
sample:
|
||||||
|
trackIndex = 0
|
||||||
|
dataHashCode = -800475828
|
||||||
|
size = 257
|
||||||
|
isKeyFrame = true
|
||||||
|
presentationTimeUs = 949578
|
||||||
|
sample:
|
||||||
|
trackIndex = 0
|
||||||
|
dataHashCode = 1718972977
|
||||||
|
size = 227
|
||||||
|
isKeyFrame = true
|
||||||
|
presentationTimeUs = 972798
|
||||||
|
sample:
|
||||||
|
trackIndex = 0
|
||||||
|
dataHashCode = -1120448741
|
||||||
|
size = 227
|
||||||
|
isKeyFrame = true
|
||||||
|
presentationTimeUs = 996018
|
||||||
|
sample:
|
||||||
|
trackIndex = 0
|
||||||
|
dataHashCode = -1718323210
|
||||||
|
size = 235
|
||||||
|
isKeyFrame = true
|
||||||
|
presentationTimeUs = 1019238
|
||||||
|
sample:
|
||||||
|
trackIndex = 0
|
||||||
|
dataHashCode = -422416
|
||||||
|
size = 229
|
||||||
|
isKeyFrame = true
|
||||||
|
presentationTimeUs = 1042458
|
||||||
|
sample:
|
||||||
|
trackIndex = 0
|
||||||
|
dataHashCode = 833757830
|
||||||
|
size = 6
|
||||||
|
isKeyFrame = true
|
||||||
|
presentationTimeUs = 1065678
|
||||||
released = true
|
released = true
|
||||||
|
|
|
||||||
|
|
@ -1,277 +1,283 @@
|
||||||
containerMimeType = video/mp4
|
containerMimeType = video/mp4
|
||||||
format 0:
|
format 0:
|
||||||
|
id = 2
|
||||||
sampleMimeType = audio/mp4a-latm
|
sampleMimeType = audio/mp4a-latm
|
||||||
|
codecs = mp4a.40.2
|
||||||
|
maxInputSize = 294
|
||||||
channelCount = 1
|
channelCount = 1
|
||||||
sampleRate = 44100
|
sampleRate = 44100
|
||||||
pcmEncoding = 2
|
language = und
|
||||||
|
metadata = entries=[TSSE: description=null: value=Lavf56.1.0]
|
||||||
|
initializationData:
|
||||||
|
data = length 2, hash 5F7
|
||||||
sample:
|
sample:
|
||||||
trackIndex = 0
|
trackIndex = 0
|
||||||
dataHashCode = 1205768497
|
dataHashCode = 1205768497
|
||||||
size = 23
|
size = 23
|
||||||
isKeyFrame = true
|
isKeyFrame = true
|
||||||
presentationTimeUs = 0
|
presentationTimeUs = 44000
|
||||||
sample:
|
sample:
|
||||||
trackIndex = 0
|
trackIndex = 0
|
||||||
dataHashCode = 837571078
|
dataHashCode = 837571078
|
||||||
size = 6
|
size = 6
|
||||||
isKeyFrame = true
|
isKeyFrame = true
|
||||||
presentationTimeUs = 249
|
presentationTimeUs = 67219
|
||||||
sample:
|
sample:
|
||||||
trackIndex = 0
|
trackIndex = 0
|
||||||
dataHashCode = -1991633045
|
dataHashCode = -1991633045
|
||||||
size = 148
|
size = 148
|
||||||
isKeyFrame = true
|
isKeyFrame = true
|
||||||
presentationTimeUs = 317
|
presentationTimeUs = 90439
|
||||||
sample:
|
sample:
|
||||||
trackIndex = 0
|
trackIndex = 0
|
||||||
dataHashCode = -822987359
|
dataHashCode = -822987359
|
||||||
size = 189
|
size = 189
|
||||||
isKeyFrame = true
|
isKeyFrame = true
|
||||||
presentationTimeUs = 1995
|
presentationTimeUs = 113659
|
||||||
sample:
|
sample:
|
||||||
trackIndex = 0
|
trackIndex = 0
|
||||||
dataHashCode = -1141508176
|
dataHashCode = -1141508176
|
||||||
size = 205
|
size = 205
|
||||||
isKeyFrame = true
|
isKeyFrame = true
|
||||||
presentationTimeUs = 4126
|
presentationTimeUs = 136879
|
||||||
sample:
|
sample:
|
||||||
trackIndex = 0
|
trackIndex = 0
|
||||||
dataHashCode = -226971245
|
dataHashCode = -226971245
|
||||||
size = 210
|
size = 210
|
||||||
isKeyFrame = true
|
isKeyFrame = true
|
||||||
presentationTimeUs = 6438
|
presentationTimeUs = 160099
|
||||||
sample:
|
sample:
|
||||||
trackIndex = 0
|
trackIndex = 0
|
||||||
dataHashCode = -2099636855
|
dataHashCode = -2099636855
|
||||||
size = 210
|
size = 210
|
||||||
isKeyFrame = true
|
isKeyFrame = true
|
||||||
presentationTimeUs = 8818
|
presentationTimeUs = 183319
|
||||||
sample:
|
sample:
|
||||||
trackIndex = 0
|
trackIndex = 0
|
||||||
dataHashCode = 1541550559
|
dataHashCode = 1541550559
|
||||||
size = 207
|
size = 207
|
||||||
isKeyFrame = true
|
isKeyFrame = true
|
||||||
presentationTimeUs = 11198
|
presentationTimeUs = 206539
|
||||||
sample:
|
sample:
|
||||||
trackIndex = 0
|
trackIndex = 0
|
||||||
dataHashCode = 411148001
|
dataHashCode = 411148001
|
||||||
size = 225
|
size = 225
|
||||||
isKeyFrame = true
|
isKeyFrame = true
|
||||||
presentationTimeUs = 13533
|
presentationTimeUs = 229759
|
||||||
sample:
|
sample:
|
||||||
trackIndex = 0
|
trackIndex = 0
|
||||||
dataHashCode = -897603973
|
dataHashCode = -897603973
|
||||||
size = 215
|
size = 215
|
||||||
isKeyFrame = true
|
isKeyFrame = true
|
||||||
presentationTimeUs = 16072
|
presentationTimeUs = 252979
|
||||||
sample:
|
sample:
|
||||||
trackIndex = 0
|
trackIndex = 0
|
||||||
dataHashCode = 1478106136
|
dataHashCode = 1478106136
|
||||||
size = 211
|
size = 211
|
||||||
isKeyFrame = true
|
isKeyFrame = true
|
||||||
presentationTimeUs = 18498
|
presentationTimeUs = 276199
|
||||||
sample:
|
sample:
|
||||||
trackIndex = 0
|
trackIndex = 0
|
||||||
dataHashCode = -1380417145
|
dataHashCode = -1380417145
|
||||||
size = 216
|
size = 216
|
||||||
isKeyFrame = true
|
isKeyFrame = true
|
||||||
presentationTimeUs = 20878
|
presentationTimeUs = 299419
|
||||||
sample:
|
sample:
|
||||||
trackIndex = 0
|
trackIndex = 0
|
||||||
dataHashCode = 780903644
|
dataHashCode = 780903644
|
||||||
size = 229
|
size = 229
|
||||||
isKeyFrame = true
|
isKeyFrame = true
|
||||||
presentationTimeUs = 23326
|
presentationTimeUs = 322639
|
||||||
sample:
|
sample:
|
||||||
trackIndex = 0
|
trackIndex = 0
|
||||||
dataHashCode = 586204432
|
dataHashCode = 586204432
|
||||||
size = 232
|
size = 232
|
||||||
isKeyFrame = true
|
isKeyFrame = true
|
||||||
presentationTimeUs = 25911
|
presentationTimeUs = 345859
|
||||||
sample:
|
sample:
|
||||||
trackIndex = 0
|
trackIndex = 0
|
||||||
dataHashCode = -2038771492
|
dataHashCode = -2038771492
|
||||||
size = 235
|
size = 235
|
||||||
isKeyFrame = true
|
isKeyFrame = true
|
||||||
presentationTimeUs = 28541
|
presentationTimeUs = 369079
|
||||||
sample:
|
sample:
|
||||||
trackIndex = 0
|
trackIndex = 0
|
||||||
dataHashCode = -2065161304
|
dataHashCode = -2065161304
|
||||||
size = 231
|
size = 231
|
||||||
isKeyFrame = true
|
isKeyFrame = true
|
||||||
presentationTimeUs = 31194
|
presentationTimeUs = 392299
|
||||||
sample:
|
sample:
|
||||||
trackIndex = 0
|
trackIndex = 0
|
||||||
dataHashCode = 468662933
|
dataHashCode = 468662933
|
||||||
size = 226
|
size = 226
|
||||||
isKeyFrame = true
|
isKeyFrame = true
|
||||||
presentationTimeUs = 33801
|
presentationTimeUs = 415519
|
||||||
sample:
|
sample:
|
||||||
trackIndex = 0
|
trackIndex = 0
|
||||||
dataHashCode = -358398546
|
dataHashCode = -358398546
|
||||||
size = 216
|
size = 216
|
||||||
isKeyFrame = true
|
isKeyFrame = true
|
||||||
presentationTimeUs = 36363
|
presentationTimeUs = 438739
|
||||||
sample:
|
sample:
|
||||||
trackIndex = 0
|
trackIndex = 0
|
||||||
dataHashCode = 1767325983
|
dataHashCode = 1767325983
|
||||||
size = 229
|
size = 229
|
||||||
isKeyFrame = true
|
isKeyFrame = true
|
||||||
presentationTimeUs = 38811
|
presentationTimeUs = 461959
|
||||||
sample:
|
sample:
|
||||||
trackIndex = 0
|
trackIndex = 0
|
||||||
dataHashCode = 1093095458
|
dataHashCode = 1093095458
|
||||||
size = 219
|
size = 219
|
||||||
isKeyFrame = true
|
isKeyFrame = true
|
||||||
presentationTimeUs = 41396
|
presentationTimeUs = 485179
|
||||||
sample:
|
sample:
|
||||||
trackIndex = 0
|
trackIndex = 0
|
||||||
dataHashCode = 1687543702
|
dataHashCode = 1687543702
|
||||||
size = 241
|
size = 241
|
||||||
isKeyFrame = true
|
isKeyFrame = true
|
||||||
presentationTimeUs = 43867
|
presentationTimeUs = 508399
|
||||||
sample:
|
sample:
|
||||||
trackIndex = 0
|
trackIndex = 0
|
||||||
dataHashCode = 1675188486
|
dataHashCode = 1675188486
|
||||||
size = 228
|
size = 228
|
||||||
isKeyFrame = true
|
isKeyFrame = true
|
||||||
presentationTimeUs = 46588
|
presentationTimeUs = 531619
|
||||||
sample:
|
sample:
|
||||||
trackIndex = 0
|
trackIndex = 0
|
||||||
dataHashCode = 888567545
|
dataHashCode = 888567545
|
||||||
size = 238
|
size = 238
|
||||||
isKeyFrame = true
|
isKeyFrame = true
|
||||||
presentationTimeUs = 49173
|
presentationTimeUs = 554839
|
||||||
sample:
|
sample:
|
||||||
trackIndex = 0
|
trackIndex = 0
|
||||||
dataHashCode = -439631803
|
dataHashCode = -439631803
|
||||||
size = 234
|
size = 234
|
||||||
isKeyFrame = true
|
isKeyFrame = true
|
||||||
presentationTimeUs = 51871
|
presentationTimeUs = 578058
|
||||||
sample:
|
sample:
|
||||||
trackIndex = 0
|
trackIndex = 0
|
||||||
dataHashCode = 1606694497
|
dataHashCode = 1606694497
|
||||||
size = 231
|
size = 231
|
||||||
isKeyFrame = true
|
isKeyFrame = true
|
||||||
presentationTimeUs = 54524
|
presentationTimeUs = 601278
|
||||||
sample:
|
sample:
|
||||||
trackIndex = 0
|
trackIndex = 0
|
||||||
dataHashCode = 1747388653
|
dataHashCode = 1747388653
|
||||||
size = 217
|
size = 217
|
||||||
isKeyFrame = true
|
isKeyFrame = true
|
||||||
presentationTimeUs = 57131
|
presentationTimeUs = 624498
|
||||||
sample:
|
sample:
|
||||||
trackIndex = 0
|
trackIndex = 0
|
||||||
dataHashCode = -734560004
|
dataHashCode = -734560004
|
||||||
size = 239
|
size = 239
|
||||||
isKeyFrame = true
|
isKeyFrame = true
|
||||||
presentationTimeUs = 59579
|
presentationTimeUs = 647718
|
||||||
sample:
|
sample:
|
||||||
trackIndex = 0
|
trackIndex = 0
|
||||||
dataHashCode = -975079040
|
dataHashCode = -975079040
|
||||||
size = 243
|
size = 243
|
||||||
isKeyFrame = true
|
isKeyFrame = true
|
||||||
presentationTimeUs = 62277
|
presentationTimeUs = 670938
|
||||||
sample:
|
sample:
|
||||||
trackIndex = 0
|
trackIndex = 0
|
||||||
dataHashCode = -1403504710
|
dataHashCode = -1403504710
|
||||||
size = 231
|
size = 231
|
||||||
isKeyFrame = true
|
isKeyFrame = true
|
||||||
presentationTimeUs = 65020
|
presentationTimeUs = 694158
|
||||||
sample:
|
sample:
|
||||||
trackIndex = 0
|
trackIndex = 0
|
||||||
dataHashCode = 379512981
|
dataHashCode = 379512981
|
||||||
size = 230
|
size = 230
|
||||||
isKeyFrame = true
|
isKeyFrame = true
|
||||||
presentationTimeUs = 67627
|
presentationTimeUs = 717378
|
||||||
sample:
|
sample:
|
||||||
trackIndex = 0
|
trackIndex = 0
|
||||||
dataHashCode = -997198863
|
dataHashCode = -997198863
|
||||||
size = 238
|
size = 238
|
||||||
isKeyFrame = true
|
isKeyFrame = true
|
||||||
presentationTimeUs = 70234
|
presentationTimeUs = 740598
|
||||||
sample:
|
sample:
|
||||||
trackIndex = 0
|
trackIndex = 0
|
||||||
dataHashCode = 1394492825
|
dataHashCode = 1394492825
|
||||||
size = 225
|
size = 225
|
||||||
isKeyFrame = true
|
isKeyFrame = true
|
||||||
presentationTimeUs = 72932
|
presentationTimeUs = 763818
|
||||||
sample:
|
sample:
|
||||||
trackIndex = 0
|
trackIndex = 0
|
||||||
dataHashCode = -885232755
|
dataHashCode = -885232755
|
||||||
size = 232
|
size = 232
|
||||||
isKeyFrame = true
|
isKeyFrame = true
|
||||||
presentationTimeUs = 75471
|
presentationTimeUs = 787038
|
||||||
sample:
|
sample:
|
||||||
trackIndex = 0
|
trackIndex = 0
|
||||||
dataHashCode = 260871367
|
dataHashCode = 260871367
|
||||||
size = 243
|
size = 243
|
||||||
isKeyFrame = true
|
isKeyFrame = true
|
||||||
presentationTimeUs = 78101
|
presentationTimeUs = 810258
|
||||||
sample:
|
sample:
|
||||||
trackIndex = 0
|
trackIndex = 0
|
||||||
dataHashCode = -1505318960
|
dataHashCode = -1505318960
|
||||||
size = 232
|
size = 232
|
||||||
isKeyFrame = true
|
isKeyFrame = true
|
||||||
presentationTimeUs = 80844
|
presentationTimeUs = 833478
|
||||||
sample:
|
sample:
|
||||||
trackIndex = 0
|
trackIndex = 0
|
||||||
dataHashCode = -390625371
|
dataHashCode = -390625371
|
||||||
size = 237
|
size = 237
|
||||||
isKeyFrame = true
|
isKeyFrame = true
|
||||||
presentationTimeUs = 83474
|
presentationTimeUs = 856698
|
||||||
sample:
|
sample:
|
||||||
trackIndex = 0
|
trackIndex = 0
|
||||||
dataHashCode = 1067950751
|
dataHashCode = 1067950751
|
||||||
size = 228
|
size = 228
|
||||||
isKeyFrame = true
|
isKeyFrame = true
|
||||||
presentationTimeUs = 86149
|
presentationTimeUs = 879918
|
||||||
sample:
|
sample:
|
||||||
trackIndex = 0
|
trackIndex = 0
|
||||||
dataHashCode = -1179436278
|
dataHashCode = -1179436278
|
||||||
size = 235
|
size = 235
|
||||||
isKeyFrame = true
|
isKeyFrame = true
|
||||||
presentationTimeUs = 88734
|
presentationTimeUs = 903138
|
||||||
sample:
|
sample:
|
||||||
trackIndex = 0
|
trackIndex = 0
|
||||||
dataHashCode = 1906607774
|
dataHashCode = 1906607774
|
||||||
size = 264
|
size = 264
|
||||||
isKeyFrame = true
|
isKeyFrame = true
|
||||||
presentationTimeUs = 91387
|
presentationTimeUs = 926358
|
||||||
sample:
|
sample:
|
||||||
trackIndex = 0
|
trackIndex = 0
|
||||||
dataHashCode = -800475828
|
dataHashCode = -800475828
|
||||||
size = 257
|
size = 257
|
||||||
isKeyFrame = true
|
isKeyFrame = true
|
||||||
presentationTimeUs = 94380
|
presentationTimeUs = 949578
|
||||||
sample:
|
sample:
|
||||||
trackIndex = 0
|
trackIndex = 0
|
||||||
dataHashCode = 1718972977
|
dataHashCode = 1718972977
|
||||||
size = 227
|
size = 227
|
||||||
isKeyFrame = true
|
isKeyFrame = true
|
||||||
presentationTimeUs = 97282
|
presentationTimeUs = 972798
|
||||||
sample:
|
sample:
|
||||||
trackIndex = 0
|
trackIndex = 0
|
||||||
dataHashCode = -1120448741
|
dataHashCode = -1120448741
|
||||||
size = 227
|
size = 227
|
||||||
isKeyFrame = true
|
isKeyFrame = true
|
||||||
presentationTimeUs = 99844
|
presentationTimeUs = 996018
|
||||||
sample:
|
sample:
|
||||||
trackIndex = 0
|
trackIndex = 0
|
||||||
dataHashCode = -1718323210
|
dataHashCode = -1718323210
|
||||||
size = 235
|
size = 235
|
||||||
isKeyFrame = true
|
isKeyFrame = true
|
||||||
presentationTimeUs = 102406
|
presentationTimeUs = 1019238
|
||||||
sample:
|
sample:
|
||||||
trackIndex = 0
|
trackIndex = 0
|
||||||
dataHashCode = -422416
|
dataHashCode = -422416
|
||||||
size = 229
|
size = 229
|
||||||
isKeyFrame = true
|
isKeyFrame = true
|
||||||
presentationTimeUs = 105059
|
presentationTimeUs = 1042458
|
||||||
sample:
|
sample:
|
||||||
trackIndex = 0
|
trackIndex = 0
|
||||||
dataHashCode = 833757830
|
dataHashCode = 833757830
|
||||||
size = 6
|
size = 6
|
||||||
isKeyFrame = true
|
isKeyFrame = true
|
||||||
presentationTimeUs = 107644
|
presentationTimeUs = 1065678
|
||||||
released = true
|
released = true
|
||||||
|
|
|
||||||
|
|
@ -366,6 +366,7 @@ import org.checkerframework.checker.nullness.qual.RequiresNonNull;
|
||||||
errorCode);
|
errorCode);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// TODO(internal b/204978301): Ensure encoder and decoder timestamps match when no speed change.
|
||||||
private static long getBufferDurationUs(long bytesWritten, int bytesPerFrame, int sampleRate) {
|
private static long getBufferDurationUs(long bytesWritten, int bytesPerFrame, int sampleRate) {
|
||||||
long framesWritten = bytesWritten / bytesPerFrame;
|
long framesWritten = bytesWritten / bytesPerFrame;
|
||||||
return framesWritten * C.MICROS_PER_SECOND / sampleRate;
|
return framesWritten * C.MICROS_PER_SECOND / sampleRate;
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,77 @@
|
||||||
|
/*
|
||||||
|
* Copyright 2021 The Android Open Source Project
|
||||||
|
*
|
||||||
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
* you may not use this file except in compliance with the License.
|
||||||
|
* You may obtain a copy of the License at
|
||||||
|
*
|
||||||
|
* http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
*
|
||||||
|
* Unless required by applicable law or agreed to in writing, software
|
||||||
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
* See the License for the specific language governing permissions and
|
||||||
|
* limitations under the License.
|
||||||
|
*/
|
||||||
|
|
||||||
|
package androidx.media3.transformer;
|
||||||
|
|
||||||
|
import androidx.annotation.Nullable;
|
||||||
|
import androidx.media3.common.Format;
|
||||||
|
import androidx.media3.decoder.DecoderInputBuffer;
|
||||||
|
|
||||||
|
/** Pipeline that passes through the samples without any re-encoding or transformation. */
|
||||||
|
/* package */ final class PassthroughSamplePipeline implements SamplePipeline {
|
||||||
|
|
||||||
|
private final DecoderInputBuffer buffer;
|
||||||
|
private final Format format;
|
||||||
|
|
||||||
|
private boolean hasPendingBuffer;
|
||||||
|
|
||||||
|
public PassthroughSamplePipeline(Format format) {
|
||||||
|
this.format = format;
|
||||||
|
buffer = new DecoderInputBuffer(DecoderInputBuffer.BUFFER_REPLACEMENT_MODE_DIRECT);
|
||||||
|
hasPendingBuffer = false;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
@Nullable
|
||||||
|
public DecoderInputBuffer dequeueInputBuffer() {
|
||||||
|
return hasPendingBuffer ? null : buffer;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void queueInputBuffer() {
|
||||||
|
hasPendingBuffer = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean processData() {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Format getOutputFormat() {
|
||||||
|
return format;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
@Nullable
|
||||||
|
public DecoderInputBuffer getOutputBuffer() {
|
||||||
|
return hasPendingBuffer ? buffer : null;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void releaseOutputBuffer() {
|
||||||
|
buffer.clear();
|
||||||
|
hasPendingBuffer = false;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean isEnded() {
|
||||||
|
return buffer.isEndOfStream();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void release() {}
|
||||||
|
}
|
||||||
|
|
@ -89,8 +89,14 @@ import org.checkerframework.checker.nullness.qual.RequiresNonNull;
|
||||||
if (result != C.RESULT_FORMAT_READ) {
|
if (result != C.RESULT_FORMAT_READ) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
samplePipeline =
|
Format decoderInputFormat = checkNotNull(formatHolder.format);
|
||||||
new AudioSamplePipeline(checkNotNull(formatHolder.format), transformation, getIndex());
|
if ((transformation.audioMimeType != null
|
||||||
|
&& !transformation.audioMimeType.equals(decoderInputFormat.sampleMimeType))
|
||||||
|
|| transformation.flattenForSlowMotion) {
|
||||||
|
samplePipeline = new AudioSamplePipeline(decoderInputFormat, transformation, getIndex());
|
||||||
|
} else {
|
||||||
|
samplePipeline = new PassthroughSamplePipeline(decoderInputFormat);
|
||||||
|
}
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue