mirror of
https://github.com/androidx/media.git
synced 2025-04-30 06:46:50 +08:00
Allow allocating more buffers when transmuxing
When transmuxing, the `EncodedSampleExporter` maintains a queue of input buffers that get filled with encoded data by the asset loader. The number of buffers was limited to avoid using more and more memory if producer (asset loader) gets far ahead of the consumer (exporter). Previously this limit was fixed at 10 buffers, but increasing the number of buffers can make some transmux operations much faster. Allow allocating between a min and max number of buffers, and also set a target allocation size beyond which new buffers can't be allocated. This allows audio formats which require many small buffers to be processed more quickly, while preventing allocating too much memory for hypothetical very high bitrate formats. 'Remove video' edits on local videos in particular get much faster, because audio buffers are very short and there are lots of them. With a sample 10 minute video, a 'remove video' edit took 2 seconds (36 seconds before this change). With a sample 1 minute removing video took 0.25 seconds after this change (2.5 seconds before). The speed improvement is smaller for other types of edits that retain the video track. Transmuxing a 10 minute video retaining the video track took 26 seconds (40 seconds before). PiperOrigin-RevId: 583390284
This commit is contained in:
parent
66c162dabd
commit
7b9aa87344
@ -24,6 +24,7 @@
|
|||||||
by default with null `ImageOutput` and `ImageDecoder.Factory.DEFAULT`.
|
by default with null `ImageOutput` and `ImageDecoder.Factory.DEFAULT`.
|
||||||
* Transformer:
|
* Transformer:
|
||||||
* Add support for flattening H.265/HEVC SEF slow motion videos.
|
* Add support for flattening H.265/HEVC SEF slow motion videos.
|
||||||
|
* Increase transmuxing speed, especially for 'remove video' edits.
|
||||||
* Track Selection:
|
* Track Selection:
|
||||||
* Add `DefaultTrackSelector.selectImageTrack` to enable image track
|
* Add `DefaultTrackSelector.selectImageTrack` to enable image track
|
||||||
selection.
|
selection.
|
||||||
|
@ -932,16 +932,16 @@ sample:
|
|||||||
presentationTimeUs = 3145020
|
presentationTimeUs = 3145020
|
||||||
sample:
|
sample:
|
||||||
trackType = audio
|
trackType = audio
|
||||||
dataHashCode = -738966527
|
dataHashCode = 202646529
|
||||||
size = 8160
|
size = 4320
|
||||||
isKeyFrame = true
|
isKeyFrame = true
|
||||||
presentationTimeUs = 3165020
|
presentationTimeUs = 3165020
|
||||||
sample:
|
sample:
|
||||||
trackType = audio
|
trackType = audio
|
||||||
dataHashCode = 202646529
|
dataHashCode = -738966527
|
||||||
size = 4320
|
size = 8160
|
||||||
isKeyFrame = true
|
isKeyFrame = true
|
||||||
presentationTimeUs = 3207520
|
presentationTimeUs = 3187520
|
||||||
sample:
|
sample:
|
||||||
trackType = audio
|
trackType = audio
|
||||||
dataHashCode = -1017110527
|
dataHashCode = -1017110527
|
||||||
@ -986,10 +986,16 @@ sample:
|
|||||||
presentationTimeUs = 3357520
|
presentationTimeUs = 3357520
|
||||||
sample:
|
sample:
|
||||||
trackType = audio
|
trackType = audio
|
||||||
dataHashCode = -738966527
|
dataHashCode = 202646529
|
||||||
size = 8160
|
size = 4320
|
||||||
isKeyFrame = true
|
isKeyFrame = true
|
||||||
presentationTimeUs = 3377520
|
presentationTimeUs = 3377520
|
||||||
|
sample:
|
||||||
|
trackType = audio
|
||||||
|
dataHashCode = -1017110527
|
||||||
|
size = 3840
|
||||||
|
isKeyFrame = true
|
||||||
|
presentationTimeUs = 3400020
|
||||||
sample:
|
sample:
|
||||||
trackType = audio
|
trackType = audio
|
||||||
dataHashCode = 202646529
|
dataHashCode = 202646529
|
||||||
@ -1028,10 +1034,16 @@ sample:
|
|||||||
presentationTimeUs = 3527520
|
presentationTimeUs = 3527520
|
||||||
sample:
|
sample:
|
||||||
trackType = audio
|
trackType = audio
|
||||||
dataHashCode = -738966527
|
dataHashCode = -1017110527
|
||||||
size = 8160
|
size = 3840
|
||||||
isKeyFrame = true
|
isKeyFrame = true
|
||||||
presentationTimeUs = 3550020
|
presentationTimeUs = 3550020
|
||||||
|
sample:
|
||||||
|
trackType = audio
|
||||||
|
dataHashCode = 202646529
|
||||||
|
size = 4320
|
||||||
|
isKeyFrame = true
|
||||||
|
presentationTimeUs = 3570020
|
||||||
sample:
|
sample:
|
||||||
trackType = audio
|
trackType = audio
|
||||||
dataHashCode = -1017110527
|
dataHashCode = -1017110527
|
||||||
@ -1058,16 +1070,10 @@ sample:
|
|||||||
presentationTimeUs = 3655020
|
presentationTimeUs = 3655020
|
||||||
sample:
|
sample:
|
||||||
trackType = audio
|
trackType = audio
|
||||||
dataHashCode = -1017110527
|
dataHashCode = -738966527
|
||||||
size = 3840
|
size = 8160
|
||||||
isKeyFrame = true
|
isKeyFrame = true
|
||||||
presentationTimeUs = 3677520
|
presentationTimeUs = 3677520
|
||||||
sample:
|
|
||||||
trackType = audio
|
|
||||||
dataHashCode = 202646529
|
|
||||||
size = 4320
|
|
||||||
isKeyFrame = true
|
|
||||||
presentationTimeUs = 3697520
|
|
||||||
sample:
|
sample:
|
||||||
trackType = audio
|
trackType = audio
|
||||||
dataHashCode = -1017110527
|
dataHashCode = -1017110527
|
||||||
@ -1088,10 +1094,16 @@ sample:
|
|||||||
presentationTimeUs = 3762520
|
presentationTimeUs = 3762520
|
||||||
sample:
|
sample:
|
||||||
trackType = audio
|
trackType = audio
|
||||||
dataHashCode = -738966527
|
dataHashCode = -1017110527
|
||||||
size = 8160
|
size = 3840
|
||||||
isKeyFrame = true
|
isKeyFrame = true
|
||||||
presentationTimeUs = 3785020
|
presentationTimeUs = 3785020
|
||||||
|
sample:
|
||||||
|
trackType = audio
|
||||||
|
dataHashCode = 202646529
|
||||||
|
size = 4320
|
||||||
|
isKeyFrame = true
|
||||||
|
presentationTimeUs = 3805020
|
||||||
sample:
|
sample:
|
||||||
trackType = audio
|
trackType = audio
|
||||||
dataHashCode = -1017110527
|
dataHashCode = -1017110527
|
||||||
@ -1130,10 +1142,16 @@ sample:
|
|||||||
presentationTimeUs = 3932520
|
presentationTimeUs = 3932520
|
||||||
sample:
|
sample:
|
||||||
trackType = audio
|
trackType = audio
|
||||||
dataHashCode = -422154111
|
dataHashCode = 304617473
|
||||||
size = 8636
|
size = 2880
|
||||||
isKeyFrame = true
|
isKeyFrame = true
|
||||||
presentationTimeUs = 3955020
|
presentationTimeUs = 3955020
|
||||||
|
sample:
|
||||||
|
trackType = audio
|
||||||
|
dataHashCode = -933078911
|
||||||
|
size = 5756
|
||||||
|
isKeyFrame = true
|
||||||
|
presentationTimeUs = 3970020
|
||||||
sample:
|
sample:
|
||||||
trackType = audio
|
trackType = audio
|
||||||
dataHashCode = -1807454463
|
dataHashCode = -1807454463
|
||||||
|
@ -1016,10 +1016,16 @@ sample:
|
|||||||
presentationTimeUs = 3500000
|
presentationTimeUs = 3500000
|
||||||
sample:
|
sample:
|
||||||
trackType = audio
|
trackType = audio
|
||||||
dataHashCode = -809762815
|
dataHashCode = 1742602241
|
||||||
size = 8192
|
size = 4096
|
||||||
isKeyFrame = true
|
isKeyFrame = true
|
||||||
presentationTimeUs = 3536000
|
presentationTimeUs = 3536000
|
||||||
|
sample:
|
||||||
|
trackType = audio
|
||||||
|
dataHashCode = 1742602241
|
||||||
|
size = 4096
|
||||||
|
isKeyFrame = true
|
||||||
|
presentationTimeUs = 3557333
|
||||||
sample:
|
sample:
|
||||||
trackType = audio
|
trackType = audio
|
||||||
dataHashCode = 1742602241
|
dataHashCode = 1742602241
|
||||||
@ -1058,16 +1064,10 @@ sample:
|
|||||||
presentationTimeUs = 3685333
|
presentationTimeUs = 3685333
|
||||||
sample:
|
sample:
|
||||||
trackType = audio
|
trackType = audio
|
||||||
dataHashCode = 1742602241
|
dataHashCode = -809762815
|
||||||
size = 4096
|
size = 8192
|
||||||
isKeyFrame = true
|
isKeyFrame = true
|
||||||
presentationTimeUs = 3706666
|
presentationTimeUs = 3706666
|
||||||
sample:
|
|
||||||
trackType = audio
|
|
||||||
dataHashCode = 1742602241
|
|
||||||
size = 4096
|
|
||||||
isKeyFrame = true
|
|
||||||
presentationTimeUs = 3728000
|
|
||||||
sample:
|
sample:
|
||||||
trackType = audio
|
trackType = audio
|
||||||
dataHashCode = 1742602241
|
dataHashCode = 1742602241
|
||||||
@ -1082,10 +1082,16 @@ sample:
|
|||||||
presentationTimeUs = 3770666
|
presentationTimeUs = 3770666
|
||||||
sample:
|
sample:
|
||||||
trackType = audio
|
trackType = audio
|
||||||
dataHashCode = -809762815
|
dataHashCode = 1742602241
|
||||||
size = 8192
|
size = 4096
|
||||||
isKeyFrame = true
|
isKeyFrame = true
|
||||||
presentationTimeUs = 3792000
|
presentationTimeUs = 3792000
|
||||||
|
sample:
|
||||||
|
trackType = audio
|
||||||
|
dataHashCode = 1742602241
|
||||||
|
size = 4096
|
||||||
|
isKeyFrame = true
|
||||||
|
presentationTimeUs = 3813333
|
||||||
sample:
|
sample:
|
||||||
trackType = audio
|
trackType = audio
|
||||||
dataHashCode = 1742602241
|
dataHashCode = 1742602241
|
||||||
@ -1118,10 +1124,16 @@ sample:
|
|||||||
presentationTimeUs = 3920000
|
presentationTimeUs = 3920000
|
||||||
sample:
|
sample:
|
||||||
trackType = audio
|
trackType = audio
|
||||||
dataHashCode = -809762815
|
dataHashCode = 1742602241
|
||||||
size = 8192
|
size = 4096
|
||||||
isKeyFrame = true
|
isKeyFrame = true
|
||||||
presentationTimeUs = 3941333
|
presentationTimeUs = 3941333
|
||||||
|
sample:
|
||||||
|
trackType = audio
|
||||||
|
dataHashCode = 1742602241
|
||||||
|
size = 4096
|
||||||
|
isKeyFrame = true
|
||||||
|
presentationTimeUs = 3962666
|
||||||
sample:
|
sample:
|
||||||
trackType = audio
|
trackType = audio
|
||||||
dataHashCode = -303661055
|
dataHashCode = -303661055
|
||||||
|
@ -324,10 +324,16 @@ sample:
|
|||||||
presentationTimeUs = 1160997
|
presentationTimeUs = 1160997
|
||||||
sample:
|
sample:
|
||||||
trackType = audio
|
trackType = audio
|
||||||
dataHashCode = -809762815
|
dataHashCode = 1742602241
|
||||||
size = 8192
|
size = 4096
|
||||||
isKeyFrame = true
|
isKeyFrame = true
|
||||||
presentationTimeUs = 1184217
|
presentationTimeUs = 1184217
|
||||||
|
sample:
|
||||||
|
trackType = audio
|
||||||
|
dataHashCode = 1742602241
|
||||||
|
size = 4096
|
||||||
|
isKeyFrame = true
|
||||||
|
presentationTimeUs = 1207437
|
||||||
sample:
|
sample:
|
||||||
trackType = audio
|
trackType = audio
|
||||||
dataHashCode = 1742602241
|
dataHashCode = 1742602241
|
||||||
@ -348,16 +354,10 @@ sample:
|
|||||||
presentationTimeUs = 1277097
|
presentationTimeUs = 1277097
|
||||||
sample:
|
sample:
|
||||||
trackType = audio
|
trackType = audio
|
||||||
dataHashCode = 1742602241
|
dataHashCode = -809762815
|
||||||
size = 4096
|
size = 8192
|
||||||
isKeyFrame = true
|
isKeyFrame = true
|
||||||
presentationTimeUs = 1300317
|
presentationTimeUs = 1300317
|
||||||
sample:
|
|
||||||
trackType = audio
|
|
||||||
dataHashCode = 1742602241
|
|
||||||
size = 4096
|
|
||||||
isKeyFrame = true
|
|
||||||
presentationTimeUs = 1323537
|
|
||||||
sample:
|
sample:
|
||||||
trackType = audio
|
trackType = audio
|
||||||
dataHashCode = 1742602241
|
dataHashCode = 1742602241
|
||||||
@ -378,10 +378,16 @@ sample:
|
|||||||
presentationTimeUs = 1393197
|
presentationTimeUs = 1393197
|
||||||
sample:
|
sample:
|
||||||
trackType = audio
|
trackType = audio
|
||||||
dataHashCode = -809762815
|
dataHashCode = 1742602241
|
||||||
size = 8192
|
size = 4096
|
||||||
isKeyFrame = true
|
isKeyFrame = true
|
||||||
presentationTimeUs = 1416417
|
presentationTimeUs = 1416417
|
||||||
|
sample:
|
||||||
|
trackType = audio
|
||||||
|
dataHashCode = 1742602241
|
||||||
|
size = 4096
|
||||||
|
isKeyFrame = true
|
||||||
|
presentationTimeUs = 1439637
|
||||||
sample:
|
sample:
|
||||||
trackType = audio
|
trackType = audio
|
||||||
dataHashCode = 1742602241
|
dataHashCode = 1742602241
|
||||||
@ -414,10 +420,16 @@ sample:
|
|||||||
presentationTimeUs = 1555736
|
presentationTimeUs = 1555736
|
||||||
sample:
|
sample:
|
||||||
trackType = audio
|
trackType = audio
|
||||||
dataHashCode = -809762815
|
dataHashCode = 1742602241
|
||||||
size = 8192
|
size = 4096
|
||||||
isKeyFrame = true
|
isKeyFrame = true
|
||||||
presentationTimeUs = 1578956
|
presentationTimeUs = 1578956
|
||||||
|
sample:
|
||||||
|
trackType = audio
|
||||||
|
dataHashCode = 1742602241
|
||||||
|
size = 4096
|
||||||
|
isKeyFrame = true
|
||||||
|
presentationTimeUs = 1602176
|
||||||
sample:
|
sample:
|
||||||
trackType = audio
|
trackType = audio
|
||||||
dataHashCode = 1742602241
|
dataHashCode = 1742602241
|
||||||
@ -462,16 +474,16 @@ sample:
|
|||||||
presentationTimeUs = 1764716
|
presentationTimeUs = 1764716
|
||||||
sample:
|
sample:
|
||||||
trackType = audio
|
trackType = audio
|
||||||
dataHashCode = 1742602241
|
dataHashCode = -809762815
|
||||||
size = 4096
|
size = 8192
|
||||||
isKeyFrame = true
|
isKeyFrame = true
|
||||||
presentationTimeUs = 1787936
|
presentationTimeUs = 1787936
|
||||||
sample:
|
sample:
|
||||||
trackType = audio
|
trackType = audio
|
||||||
dataHashCode = -809762815
|
dataHashCode = 1742602241
|
||||||
size = 8192
|
size = 4096
|
||||||
isKeyFrame = true
|
isKeyFrame = true
|
||||||
presentationTimeUs = 1811156
|
presentationTimeUs = 1834376
|
||||||
sample:
|
sample:
|
||||||
trackType = audio
|
trackType = audio
|
||||||
dataHashCode = 1742602241
|
dataHashCode = 1742602241
|
||||||
@ -504,10 +516,16 @@ sample:
|
|||||||
presentationTimeUs = 1950476
|
presentationTimeUs = 1950476
|
||||||
sample:
|
sample:
|
||||||
trackType = audio
|
trackType = audio
|
||||||
dataHashCode = -474907647
|
dataHashCode = 1742602241
|
||||||
size = 4640
|
size = 4096
|
||||||
isKeyFrame = true
|
isKeyFrame = true
|
||||||
presentationTimeUs = 1973696
|
presentationTimeUs = 1973696
|
||||||
|
sample:
|
||||||
|
trackType = audio
|
||||||
|
dataHashCode = -204243967
|
||||||
|
size = 544
|
||||||
|
isKeyFrame = true
|
||||||
|
presentationTimeUs = 1996916
|
||||||
sample:
|
sample:
|
||||||
trackType = video
|
trackType = video
|
||||||
dataHashCode = 33691269
|
dataHashCode = 33691269
|
||||||
|
@ -324,10 +324,16 @@ sample:
|
|||||||
presentationTimeUs = 1154761
|
presentationTimeUs = 1154761
|
||||||
sample:
|
sample:
|
||||||
trackType = audio
|
trackType = audio
|
||||||
dataHashCode = 644553473
|
dataHashCode = -1264223743
|
||||||
size = 8360
|
size = 4400
|
||||||
isKeyFrame = true
|
isKeyFrame = true
|
||||||
presentationTimeUs = 1177210
|
presentationTimeUs = 1177210
|
||||||
|
sample:
|
||||||
|
trackType = audio
|
||||||
|
dataHashCode = 571187457
|
||||||
|
size = 3960
|
||||||
|
isKeyFrame = true
|
||||||
|
presentationTimeUs = 1202154
|
||||||
sample:
|
sample:
|
||||||
trackType = audio
|
trackType = audio
|
||||||
dataHashCode = 571187457
|
dataHashCode = 571187457
|
||||||
@ -348,16 +354,10 @@ sample:
|
|||||||
presentationTimeUs = 1269501
|
presentationTimeUs = 1269501
|
||||||
sample:
|
sample:
|
||||||
trackType = audio
|
trackType = audio
|
||||||
dataHashCode = 571187457
|
dataHashCode = 2136490497
|
||||||
size = 3960
|
size = 7920
|
||||||
isKeyFrame = true
|
isKeyFrame = true
|
||||||
presentationTimeUs = 1294444
|
presentationTimeUs = 1294444
|
||||||
sample:
|
|
||||||
trackType = audio
|
|
||||||
dataHashCode = 571187457
|
|
||||||
size = 3960
|
|
||||||
isKeyFrame = true
|
|
||||||
presentationTimeUs = 1316893
|
|
||||||
sample:
|
sample:
|
||||||
trackType = audio
|
trackType = audio
|
||||||
dataHashCode = -1264223743
|
dataHashCode = -1264223743
|
||||||
@ -378,10 +378,16 @@ sample:
|
|||||||
presentationTimeUs = 1386712
|
presentationTimeUs = 1386712
|
||||||
sample:
|
sample:
|
||||||
trackType = audio
|
trackType = audio
|
||||||
dataHashCode = 644553473
|
dataHashCode = -1264223743
|
||||||
size = 8360
|
size = 4400
|
||||||
isKeyFrame = true
|
isKeyFrame = true
|
||||||
presentationTimeUs = 1409160
|
presentationTimeUs = 1409160
|
||||||
|
sample:
|
||||||
|
trackType = audio
|
||||||
|
dataHashCode = 571187457
|
||||||
|
size = 3960
|
||||||
|
isKeyFrame = true
|
||||||
|
presentationTimeUs = 1434104
|
||||||
sample:
|
sample:
|
||||||
trackType = audio
|
trackType = audio
|
||||||
dataHashCode = 571187457
|
dataHashCode = 571187457
|
||||||
@ -414,10 +420,16 @@ sample:
|
|||||||
presentationTimeUs = 1548843
|
presentationTimeUs = 1548843
|
||||||
sample:
|
sample:
|
||||||
trackType = audio
|
trackType = audio
|
||||||
dataHashCode = 2136490497
|
dataHashCode = 571187457
|
||||||
size = 7920
|
size = 3960
|
||||||
isKeyFrame = true
|
isKeyFrame = true
|
||||||
presentationTimeUs = 1573786
|
presentationTimeUs = 1573786
|
||||||
|
sample:
|
||||||
|
trackType = audio
|
||||||
|
dataHashCode = 571187457
|
||||||
|
size = 3960
|
||||||
|
isKeyFrame = true
|
||||||
|
presentationTimeUs = 1596235
|
||||||
sample:
|
sample:
|
||||||
trackType = audio
|
trackType = audio
|
||||||
dataHashCode = -448902783
|
dataHashCode = -448902783
|
||||||
@ -462,16 +474,16 @@ sample:
|
|||||||
presentationTimeUs = 1758344
|
presentationTimeUs = 1758344
|
||||||
sample:
|
sample:
|
||||||
trackType = audio
|
trackType = audio
|
||||||
dataHashCode = -1264223743
|
dataHashCode = 644553473
|
||||||
size = 4400
|
size = 8360
|
||||||
isKeyFrame = true
|
isKeyFrame = true
|
||||||
presentationTimeUs = 1780793
|
presentationTimeUs = 1780793
|
||||||
sample:
|
sample:
|
||||||
trackType = audio
|
trackType = audio
|
||||||
dataHashCode = 2136490497
|
dataHashCode = 571187457
|
||||||
size = 7920
|
size = 3960
|
||||||
isKeyFrame = true
|
isKeyFrame = true
|
||||||
presentationTimeUs = 1805736
|
presentationTimeUs = 1828185
|
||||||
sample:
|
sample:
|
||||||
trackType = audio
|
trackType = audio
|
||||||
dataHashCode = -122903935
|
dataHashCode = -122903935
|
||||||
@ -504,10 +516,16 @@ sample:
|
|||||||
presentationTimeUs = 1942902
|
presentationTimeUs = 1942902
|
||||||
sample:
|
sample:
|
||||||
trackType = audio
|
trackType = audio
|
||||||
dataHashCode = 359941761
|
dataHashCode = -1759454975
|
||||||
size = 5644
|
size = 440
|
||||||
isKeyFrame = true
|
isKeyFrame = true
|
||||||
presentationTimeUs = 1967845
|
presentationTimeUs = 1967845
|
||||||
|
sample:
|
||||||
|
trackType = audio
|
||||||
|
dataHashCode = -1409159807
|
||||||
|
size = 5204
|
||||||
|
isKeyFrame = true
|
||||||
|
presentationTimeUs = 1970340
|
||||||
sample:
|
sample:
|
||||||
trackType = audio
|
trackType = audio
|
||||||
dataHashCode = -752508258
|
dataHashCode = -752508258
|
||||||
|
@ -324,10 +324,16 @@ sample:
|
|||||||
presentationTimeUs = 1154761
|
presentationTimeUs = 1154761
|
||||||
sample:
|
sample:
|
||||||
trackType = audio
|
trackType = audio
|
||||||
dataHashCode = 644553473
|
dataHashCode = -1264223743
|
||||||
size = 8360
|
size = 4400
|
||||||
isKeyFrame = true
|
isKeyFrame = true
|
||||||
presentationTimeUs = 1177210
|
presentationTimeUs = 1177210
|
||||||
|
sample:
|
||||||
|
trackType = audio
|
||||||
|
dataHashCode = 571187457
|
||||||
|
size = 3960
|
||||||
|
isKeyFrame = true
|
||||||
|
presentationTimeUs = 1202154
|
||||||
sample:
|
sample:
|
||||||
trackType = audio
|
trackType = audio
|
||||||
dataHashCode = 571187457
|
dataHashCode = 571187457
|
||||||
@ -348,16 +354,10 @@ sample:
|
|||||||
presentationTimeUs = 1269501
|
presentationTimeUs = 1269501
|
||||||
sample:
|
sample:
|
||||||
trackType = audio
|
trackType = audio
|
||||||
dataHashCode = 571187457
|
dataHashCode = 2136490497
|
||||||
size = 3960
|
size = 7920
|
||||||
isKeyFrame = true
|
isKeyFrame = true
|
||||||
presentationTimeUs = 1294444
|
presentationTimeUs = 1294444
|
||||||
sample:
|
|
||||||
trackType = audio
|
|
||||||
dataHashCode = 571187457
|
|
||||||
size = 3960
|
|
||||||
isKeyFrame = true
|
|
||||||
presentationTimeUs = 1316893
|
|
||||||
sample:
|
sample:
|
||||||
trackType = audio
|
trackType = audio
|
||||||
dataHashCode = -1264223743
|
dataHashCode = -1264223743
|
||||||
@ -378,10 +378,16 @@ sample:
|
|||||||
presentationTimeUs = 1386712
|
presentationTimeUs = 1386712
|
||||||
sample:
|
sample:
|
||||||
trackType = audio
|
trackType = audio
|
||||||
dataHashCode = 644553473
|
dataHashCode = -1264223743
|
||||||
size = 8360
|
size = 4400
|
||||||
isKeyFrame = true
|
isKeyFrame = true
|
||||||
presentationTimeUs = 1409160
|
presentationTimeUs = 1409160
|
||||||
|
sample:
|
||||||
|
trackType = audio
|
||||||
|
dataHashCode = 571187457
|
||||||
|
size = 3960
|
||||||
|
isKeyFrame = true
|
||||||
|
presentationTimeUs = 1434104
|
||||||
sample:
|
sample:
|
||||||
trackType = audio
|
trackType = audio
|
||||||
dataHashCode = 571187457
|
dataHashCode = 571187457
|
||||||
@ -414,10 +420,16 @@ sample:
|
|||||||
presentationTimeUs = 1548843
|
presentationTimeUs = 1548843
|
||||||
sample:
|
sample:
|
||||||
trackType = audio
|
trackType = audio
|
||||||
dataHashCode = 2136490497
|
dataHashCode = 571187457
|
||||||
size = 7920
|
size = 3960
|
||||||
isKeyFrame = true
|
isKeyFrame = true
|
||||||
presentationTimeUs = 1573786
|
presentationTimeUs = 1573786
|
||||||
|
sample:
|
||||||
|
trackType = audio
|
||||||
|
dataHashCode = 571187457
|
||||||
|
size = 3960
|
||||||
|
isKeyFrame = true
|
||||||
|
presentationTimeUs = 1596235
|
||||||
sample:
|
sample:
|
||||||
trackType = audio
|
trackType = audio
|
||||||
dataHashCode = -448902783
|
dataHashCode = -448902783
|
||||||
@ -462,16 +474,16 @@ sample:
|
|||||||
presentationTimeUs = 1758344
|
presentationTimeUs = 1758344
|
||||||
sample:
|
sample:
|
||||||
trackType = audio
|
trackType = audio
|
||||||
dataHashCode = -1264223743
|
dataHashCode = 644553473
|
||||||
size = 4400
|
size = 8360
|
||||||
isKeyFrame = true
|
isKeyFrame = true
|
||||||
presentationTimeUs = 1780793
|
presentationTimeUs = 1780793
|
||||||
sample:
|
sample:
|
||||||
trackType = audio
|
trackType = audio
|
||||||
dataHashCode = 2136490497
|
dataHashCode = 571187457
|
||||||
size = 7920
|
size = 3960
|
||||||
isKeyFrame = true
|
isKeyFrame = true
|
||||||
presentationTimeUs = 1805736
|
presentationTimeUs = 1828185
|
||||||
sample:
|
sample:
|
||||||
trackType = audio
|
trackType = audio
|
||||||
dataHashCode = -122903935
|
dataHashCode = -122903935
|
||||||
@ -504,10 +516,16 @@ sample:
|
|||||||
presentationTimeUs = 1942902
|
presentationTimeUs = 1942902
|
||||||
sample:
|
sample:
|
||||||
trackType = audio
|
trackType = audio
|
||||||
dataHashCode = 359941761
|
dataHashCode = -1759454975
|
||||||
size = 5644
|
size = 440
|
||||||
isKeyFrame = true
|
isKeyFrame = true
|
||||||
presentationTimeUs = 1967845
|
presentationTimeUs = 1967845
|
||||||
|
sample:
|
||||||
|
trackType = audio
|
||||||
|
dataHashCode = -1409159807
|
||||||
|
size = 5204
|
||||||
|
isKeyFrame = true
|
||||||
|
presentationTimeUs = 1970340
|
||||||
sample:
|
sample:
|
||||||
trackType = audio
|
trackType = audio
|
||||||
dataHashCode = 693101697
|
dataHashCode = 693101697
|
||||||
@ -798,10 +816,16 @@ sample:
|
|||||||
presentationTimeUs = 3114399
|
presentationTimeUs = 3114399
|
||||||
sample:
|
sample:
|
||||||
trackType = audio
|
trackType = audio
|
||||||
dataHashCode = -809762815
|
dataHashCode = 1742602241
|
||||||
size = 8192
|
size = 4096
|
||||||
isKeyFrame = true
|
isKeyFrame = true
|
||||||
presentationTimeUs = 3137619
|
presentationTimeUs = 3137619
|
||||||
|
sample:
|
||||||
|
trackType = audio
|
||||||
|
dataHashCode = 1742602241
|
||||||
|
size = 4096
|
||||||
|
isKeyFrame = true
|
||||||
|
presentationTimeUs = 3160839
|
||||||
sample:
|
sample:
|
||||||
trackType = audio
|
trackType = audio
|
||||||
dataHashCode = 1742602241
|
dataHashCode = 1742602241
|
||||||
@ -816,16 +840,10 @@ sample:
|
|||||||
presentationTimeUs = 3207278
|
presentationTimeUs = 3207278
|
||||||
sample:
|
sample:
|
||||||
trackType = audio
|
trackType = audio
|
||||||
dataHashCode = 1742602241
|
dataHashCode = -809762815
|
||||||
size = 4096
|
size = 8192
|
||||||
isKeyFrame = true
|
isKeyFrame = true
|
||||||
presentationTimeUs = 3230498
|
presentationTimeUs = 3230498
|
||||||
sample:
|
|
||||||
trackType = audio
|
|
||||||
dataHashCode = 1742602241
|
|
||||||
size = 4096
|
|
||||||
isKeyFrame = true
|
|
||||||
presentationTimeUs = 3253718
|
|
||||||
sample:
|
sample:
|
||||||
trackType = audio
|
trackType = audio
|
||||||
dataHashCode = 1742602241
|
dataHashCode = 1742602241
|
||||||
@ -840,10 +858,16 @@ sample:
|
|||||||
presentationTimeUs = 3300158
|
presentationTimeUs = 3300158
|
||||||
sample:
|
sample:
|
||||||
trackType = audio
|
trackType = audio
|
||||||
dataHashCode = -809762815
|
dataHashCode = 1742602241
|
||||||
size = 8192
|
size = 4096
|
||||||
isKeyFrame = true
|
isKeyFrame = true
|
||||||
presentationTimeUs = 3323378
|
presentationTimeUs = 3323378
|
||||||
|
sample:
|
||||||
|
trackType = audio
|
||||||
|
dataHashCode = 1742602241
|
||||||
|
size = 4096
|
||||||
|
isKeyFrame = true
|
||||||
|
presentationTimeUs = 3346598
|
||||||
sample:
|
sample:
|
||||||
trackType = audio
|
trackType = audio
|
||||||
dataHashCode = 1742602241
|
dataHashCode = 1742602241
|
||||||
@ -900,10 +924,16 @@ sample:
|
|||||||
presentationTimeUs = 3555578
|
presentationTimeUs = 3555578
|
||||||
sample:
|
sample:
|
||||||
trackType = audio
|
trackType = audio
|
||||||
dataHashCode = -809762815
|
dataHashCode = 1742602241
|
||||||
size = 8192
|
size = 4096
|
||||||
isKeyFrame = true
|
isKeyFrame = true
|
||||||
presentationTimeUs = 3578798
|
presentationTimeUs = 3578798
|
||||||
|
sample:
|
||||||
|
trackType = audio
|
||||||
|
dataHashCode = 1742602241
|
||||||
|
size = 4096
|
||||||
|
isKeyFrame = true
|
||||||
|
presentationTimeUs = 3602018
|
||||||
sample:
|
sample:
|
||||||
trackType = audio
|
trackType = audio
|
||||||
dataHashCode = 1742602241
|
dataHashCode = 1742602241
|
||||||
@ -930,16 +960,16 @@ sample:
|
|||||||
presentationTimeUs = 3694897
|
presentationTimeUs = 3694897
|
||||||
sample:
|
sample:
|
||||||
trackType = audio
|
trackType = audio
|
||||||
dataHashCode = 1742602241
|
dataHashCode = -809762815
|
||||||
size = 4096
|
size = 8192
|
||||||
isKeyFrame = true
|
isKeyFrame = true
|
||||||
presentationTimeUs = 3718117
|
presentationTimeUs = 3718117
|
||||||
sample:
|
sample:
|
||||||
trackType = audio
|
trackType = audio
|
||||||
dataHashCode = -809762815
|
dataHashCode = 1742602241
|
||||||
size = 8192
|
size = 4096
|
||||||
isKeyFrame = true
|
isKeyFrame = true
|
||||||
presentationTimeUs = 3741337
|
presentationTimeUs = 3764557
|
||||||
sample:
|
sample:
|
||||||
trackType = audio
|
trackType = audio
|
||||||
dataHashCode = 1742602241
|
dataHashCode = 1742602241
|
||||||
@ -972,10 +1002,16 @@ sample:
|
|||||||
presentationTimeUs = 3880657
|
presentationTimeUs = 3880657
|
||||||
sample:
|
sample:
|
||||||
trackType = audio
|
trackType = audio
|
||||||
dataHashCode = -809762815
|
dataHashCode = 1742602241
|
||||||
size = 8192
|
size = 4096
|
||||||
isKeyFrame = true
|
isKeyFrame = true
|
||||||
presentationTimeUs = 3903877
|
presentationTimeUs = 3903877
|
||||||
|
sample:
|
||||||
|
trackType = audio
|
||||||
|
dataHashCode = 1742602241
|
||||||
|
size = 4096
|
||||||
|
isKeyFrame = true
|
||||||
|
presentationTimeUs = 3927097
|
||||||
sample:
|
sample:
|
||||||
trackType = audio
|
trackType = audio
|
||||||
dataHashCode = 1742602241
|
dataHashCode = 1742602241
|
||||||
|
@ -324,10 +324,16 @@ sample:
|
|||||||
presentationTimeUs = 1154761
|
presentationTimeUs = 1154761
|
||||||
sample:
|
sample:
|
||||||
trackType = audio
|
trackType = audio
|
||||||
dataHashCode = 644553473
|
dataHashCode = -1264223743
|
||||||
size = 8360
|
size = 4400
|
||||||
isKeyFrame = true
|
isKeyFrame = true
|
||||||
presentationTimeUs = 1177210
|
presentationTimeUs = 1177210
|
||||||
|
sample:
|
||||||
|
trackType = audio
|
||||||
|
dataHashCode = 571187457
|
||||||
|
size = 3960
|
||||||
|
isKeyFrame = true
|
||||||
|
presentationTimeUs = 1202154
|
||||||
sample:
|
sample:
|
||||||
trackType = audio
|
trackType = audio
|
||||||
dataHashCode = 571187457
|
dataHashCode = 571187457
|
||||||
@ -348,16 +354,10 @@ sample:
|
|||||||
presentationTimeUs = 1269501
|
presentationTimeUs = 1269501
|
||||||
sample:
|
sample:
|
||||||
trackType = audio
|
trackType = audio
|
||||||
dataHashCode = 571187457
|
dataHashCode = 2136490497
|
||||||
size = 3960
|
size = 7920
|
||||||
isKeyFrame = true
|
isKeyFrame = true
|
||||||
presentationTimeUs = 1294444
|
presentationTimeUs = 1294444
|
||||||
sample:
|
|
||||||
trackType = audio
|
|
||||||
dataHashCode = 571187457
|
|
||||||
size = 3960
|
|
||||||
isKeyFrame = true
|
|
||||||
presentationTimeUs = 1316893
|
|
||||||
sample:
|
sample:
|
||||||
trackType = audio
|
trackType = audio
|
||||||
dataHashCode = -1264223743
|
dataHashCode = -1264223743
|
||||||
@ -378,10 +378,16 @@ sample:
|
|||||||
presentationTimeUs = 1386712
|
presentationTimeUs = 1386712
|
||||||
sample:
|
sample:
|
||||||
trackType = audio
|
trackType = audio
|
||||||
dataHashCode = 644553473
|
dataHashCode = -1264223743
|
||||||
size = 8360
|
size = 4400
|
||||||
isKeyFrame = true
|
isKeyFrame = true
|
||||||
presentationTimeUs = 1409160
|
presentationTimeUs = 1409160
|
||||||
|
sample:
|
||||||
|
trackType = audio
|
||||||
|
dataHashCode = 571187457
|
||||||
|
size = 3960
|
||||||
|
isKeyFrame = true
|
||||||
|
presentationTimeUs = 1434104
|
||||||
sample:
|
sample:
|
||||||
trackType = audio
|
trackType = audio
|
||||||
dataHashCode = 571187457
|
dataHashCode = 571187457
|
||||||
@ -414,10 +420,16 @@ sample:
|
|||||||
presentationTimeUs = 1548843
|
presentationTimeUs = 1548843
|
||||||
sample:
|
sample:
|
||||||
trackType = audio
|
trackType = audio
|
||||||
dataHashCode = 2136490497
|
dataHashCode = 571187457
|
||||||
size = 7920
|
size = 3960
|
||||||
isKeyFrame = true
|
isKeyFrame = true
|
||||||
presentationTimeUs = 1573786
|
presentationTimeUs = 1573786
|
||||||
|
sample:
|
||||||
|
trackType = audio
|
||||||
|
dataHashCode = 571187457
|
||||||
|
size = 3960
|
||||||
|
isKeyFrame = true
|
||||||
|
presentationTimeUs = 1596235
|
||||||
sample:
|
sample:
|
||||||
trackType = audio
|
trackType = audio
|
||||||
dataHashCode = -448902783
|
dataHashCode = -448902783
|
||||||
@ -462,16 +474,16 @@ sample:
|
|||||||
presentationTimeUs = 1758344
|
presentationTimeUs = 1758344
|
||||||
sample:
|
sample:
|
||||||
trackType = audio
|
trackType = audio
|
||||||
dataHashCode = -1264223743
|
dataHashCode = 644553473
|
||||||
size = 4400
|
size = 8360
|
||||||
isKeyFrame = true
|
isKeyFrame = true
|
||||||
presentationTimeUs = 1780793
|
presentationTimeUs = 1780793
|
||||||
sample:
|
sample:
|
||||||
trackType = audio
|
trackType = audio
|
||||||
dataHashCode = 2136490497
|
dataHashCode = 571187457
|
||||||
size = 7920
|
size = 3960
|
||||||
isKeyFrame = true
|
isKeyFrame = true
|
||||||
presentationTimeUs = 1805736
|
presentationTimeUs = 1828185
|
||||||
sample:
|
sample:
|
||||||
trackType = audio
|
trackType = audio
|
||||||
dataHashCode = -122903935
|
dataHashCode = -122903935
|
||||||
@ -504,10 +516,16 @@ sample:
|
|||||||
presentationTimeUs = 1942902
|
presentationTimeUs = 1942902
|
||||||
sample:
|
sample:
|
||||||
trackType = audio
|
trackType = audio
|
||||||
dataHashCode = 359941761
|
dataHashCode = -1759454975
|
||||||
size = 5644
|
size = 440
|
||||||
isKeyFrame = true
|
isKeyFrame = true
|
||||||
presentationTimeUs = 1967845
|
presentationTimeUs = 1967845
|
||||||
|
sample:
|
||||||
|
trackType = audio
|
||||||
|
dataHashCode = -1409159807
|
||||||
|
size = 5204
|
||||||
|
isKeyFrame = true
|
||||||
|
presentationTimeUs = 1970340
|
||||||
sample:
|
sample:
|
||||||
trackType = audio
|
trackType = audio
|
||||||
dataHashCode = 693101697
|
dataHashCode = 693101697
|
||||||
@ -798,10 +816,16 @@ sample:
|
|||||||
presentationTimeUs = 3107233
|
presentationTimeUs = 3107233
|
||||||
sample:
|
sample:
|
||||||
trackType = audio
|
trackType = audio
|
||||||
dataHashCode = 2136490497
|
dataHashCode = 571187457
|
||||||
size = 7920
|
size = 3960
|
||||||
isKeyFrame = true
|
isKeyFrame = true
|
||||||
presentationTimeUs = 3132154
|
presentationTimeUs = 3132154
|
||||||
|
sample:
|
||||||
|
trackType = audio
|
||||||
|
dataHashCode = 571187457
|
||||||
|
size = 3960
|
||||||
|
isKeyFrame = true
|
||||||
|
presentationTimeUs = 3154603
|
||||||
sample:
|
sample:
|
||||||
trackType = audio
|
trackType = audio
|
||||||
dataHashCode = -1264223743
|
dataHashCode = -1264223743
|
||||||
@ -816,16 +840,10 @@ sample:
|
|||||||
presentationTimeUs = 3201995
|
presentationTimeUs = 3201995
|
||||||
sample:
|
sample:
|
||||||
trackType = audio
|
trackType = audio
|
||||||
dataHashCode = 571187457
|
dataHashCode = 2136490497
|
||||||
size = 3960
|
size = 7920
|
||||||
isKeyFrame = true
|
isKeyFrame = true
|
||||||
presentationTimeUs = 3224444
|
presentationTimeUs = 3224444
|
||||||
sample:
|
|
||||||
trackType = audio
|
|
||||||
dataHashCode = 571187457
|
|
||||||
size = 3960
|
|
||||||
isKeyFrame = true
|
|
||||||
presentationTimeUs = 3246893
|
|
||||||
sample:
|
sample:
|
||||||
trackType = audio
|
trackType = audio
|
||||||
dataHashCode = -1264223743
|
dataHashCode = -1264223743
|
||||||
@ -840,10 +858,16 @@ sample:
|
|||||||
presentationTimeUs = 3294285
|
presentationTimeUs = 3294285
|
||||||
sample:
|
sample:
|
||||||
trackType = audio
|
trackType = audio
|
||||||
dataHashCode = 644553473
|
dataHashCode = 571187457
|
||||||
size = 8360
|
size = 3960
|
||||||
isKeyFrame = true
|
isKeyFrame = true
|
||||||
presentationTimeUs = 3316734
|
presentationTimeUs = 3316734
|
||||||
|
sample:
|
||||||
|
trackType = audio
|
||||||
|
dataHashCode = -1264223743
|
||||||
|
size = 4400
|
||||||
|
isKeyFrame = true
|
||||||
|
presentationTimeUs = 3339183
|
||||||
sample:
|
sample:
|
||||||
trackType = audio
|
trackType = audio
|
||||||
dataHashCode = -448902783
|
dataHashCode = -448902783
|
||||||
@ -900,10 +924,16 @@ sample:
|
|||||||
presentationTimeUs = 3548684
|
presentationTimeUs = 3548684
|
||||||
sample:
|
sample:
|
||||||
trackType = audio
|
trackType = audio
|
||||||
dataHashCode = 2136490497
|
dataHashCode = 571187457
|
||||||
size = 7920
|
size = 3960
|
||||||
isKeyFrame = true
|
isKeyFrame = true
|
||||||
presentationTimeUs = 3573628
|
presentationTimeUs = 3573628
|
||||||
|
sample:
|
||||||
|
trackType = audio
|
||||||
|
dataHashCode = 571187457
|
||||||
|
size = 3960
|
||||||
|
isKeyFrame = true
|
||||||
|
presentationTimeUs = 3596077
|
||||||
sample:
|
sample:
|
||||||
trackType = audio
|
trackType = audio
|
||||||
dataHashCode = -448902783
|
dataHashCode = -448902783
|
||||||
@ -930,16 +960,16 @@ sample:
|
|||||||
presentationTimeUs = 3688344
|
presentationTimeUs = 3688344
|
||||||
sample:
|
sample:
|
||||||
trackType = audio
|
trackType = audio
|
||||||
dataHashCode = -1264223743
|
dataHashCode = 644553473
|
||||||
size = 4400
|
size = 8360
|
||||||
isKeyFrame = true
|
isKeyFrame = true
|
||||||
presentationTimeUs = 3710793
|
presentationTimeUs = 3710793
|
||||||
sample:
|
sample:
|
||||||
trackType = audio
|
trackType = audio
|
||||||
dataHashCode = 2136490497
|
dataHashCode = 571187457
|
||||||
size = 7920
|
size = 3960
|
||||||
isKeyFrame = true
|
isKeyFrame = true
|
||||||
presentationTimeUs = 3735736
|
presentationTimeUs = 3758185
|
||||||
sample:
|
sample:
|
||||||
trackType = audio
|
trackType = audio
|
||||||
dataHashCode = -1264223743
|
dataHashCode = -1264223743
|
||||||
@ -978,10 +1008,16 @@ sample:
|
|||||||
presentationTimeUs = 3897845
|
presentationTimeUs = 3897845
|
||||||
sample:
|
sample:
|
||||||
trackType = audio
|
trackType = audio
|
||||||
dataHashCode = 644553473
|
dataHashCode = 571187457
|
||||||
size = 8360
|
size = 3960
|
||||||
isKeyFrame = true
|
isKeyFrame = true
|
||||||
presentationTimeUs = 3920294
|
presentationTimeUs = 3920294
|
||||||
|
sample:
|
||||||
|
trackType = audio
|
||||||
|
dataHashCode = -1264223743
|
||||||
|
size = 4400
|
||||||
|
isKeyFrame = true
|
||||||
|
presentationTimeUs = 3942743
|
||||||
sample:
|
sample:
|
||||||
trackType = audio
|
trackType = audio
|
||||||
dataHashCode = -1759454975
|
dataHashCode = -1759454975
|
||||||
|
@ -324,10 +324,16 @@ sample:
|
|||||||
presentationTimeUs = 1160997
|
presentationTimeUs = 1160997
|
||||||
sample:
|
sample:
|
||||||
trackType = audio
|
trackType = audio
|
||||||
dataHashCode = -809762815
|
dataHashCode = 1742602241
|
||||||
size = 8192
|
size = 4096
|
||||||
isKeyFrame = true
|
isKeyFrame = true
|
||||||
presentationTimeUs = 1184217
|
presentationTimeUs = 1184217
|
||||||
|
sample:
|
||||||
|
trackType = audio
|
||||||
|
dataHashCode = 1742602241
|
||||||
|
size = 4096
|
||||||
|
isKeyFrame = true
|
||||||
|
presentationTimeUs = 1207437
|
||||||
sample:
|
sample:
|
||||||
trackType = audio
|
trackType = audio
|
||||||
dataHashCode = 1742602241
|
dataHashCode = 1742602241
|
||||||
@ -348,16 +354,10 @@ sample:
|
|||||||
presentationTimeUs = 1277097
|
presentationTimeUs = 1277097
|
||||||
sample:
|
sample:
|
||||||
trackType = audio
|
trackType = audio
|
||||||
dataHashCode = 1742602241
|
dataHashCode = -809762815
|
||||||
size = 4096
|
size = 8192
|
||||||
isKeyFrame = true
|
isKeyFrame = true
|
||||||
presentationTimeUs = 1300317
|
presentationTimeUs = 1300317
|
||||||
sample:
|
|
||||||
trackType = audio
|
|
||||||
dataHashCode = 1742602241
|
|
||||||
size = 4096
|
|
||||||
isKeyFrame = true
|
|
||||||
presentationTimeUs = 1323537
|
|
||||||
sample:
|
sample:
|
||||||
trackType = audio
|
trackType = audio
|
||||||
dataHashCode = 1742602241
|
dataHashCode = 1742602241
|
||||||
@ -378,10 +378,16 @@ sample:
|
|||||||
presentationTimeUs = 1393197
|
presentationTimeUs = 1393197
|
||||||
sample:
|
sample:
|
||||||
trackType = audio
|
trackType = audio
|
||||||
dataHashCode = -809762815
|
dataHashCode = 1742602241
|
||||||
size = 8192
|
size = 4096
|
||||||
isKeyFrame = true
|
isKeyFrame = true
|
||||||
presentationTimeUs = 1416417
|
presentationTimeUs = 1416417
|
||||||
|
sample:
|
||||||
|
trackType = audio
|
||||||
|
dataHashCode = 1742602241
|
||||||
|
size = 4096
|
||||||
|
isKeyFrame = true
|
||||||
|
presentationTimeUs = 1439637
|
||||||
sample:
|
sample:
|
||||||
trackType = audio
|
trackType = audio
|
||||||
dataHashCode = 1742602241
|
dataHashCode = 1742602241
|
||||||
@ -414,10 +420,16 @@ sample:
|
|||||||
presentationTimeUs = 1555736
|
presentationTimeUs = 1555736
|
||||||
sample:
|
sample:
|
||||||
trackType = audio
|
trackType = audio
|
||||||
dataHashCode = -809762815
|
dataHashCode = 1742602241
|
||||||
size = 8192
|
size = 4096
|
||||||
isKeyFrame = true
|
isKeyFrame = true
|
||||||
presentationTimeUs = 1578956
|
presentationTimeUs = 1578956
|
||||||
|
sample:
|
||||||
|
trackType = audio
|
||||||
|
dataHashCode = 1742602241
|
||||||
|
size = 4096
|
||||||
|
isKeyFrame = true
|
||||||
|
presentationTimeUs = 1602176
|
||||||
sample:
|
sample:
|
||||||
trackType = audio
|
trackType = audio
|
||||||
dataHashCode = 1742602241
|
dataHashCode = 1742602241
|
||||||
@ -462,16 +474,16 @@ sample:
|
|||||||
presentationTimeUs = 1764716
|
presentationTimeUs = 1764716
|
||||||
sample:
|
sample:
|
||||||
trackType = audio
|
trackType = audio
|
||||||
dataHashCode = 1742602241
|
dataHashCode = -809762815
|
||||||
size = 4096
|
size = 8192
|
||||||
isKeyFrame = true
|
isKeyFrame = true
|
||||||
presentationTimeUs = 1787936
|
presentationTimeUs = 1787936
|
||||||
sample:
|
sample:
|
||||||
trackType = audio
|
trackType = audio
|
||||||
dataHashCode = -809762815
|
dataHashCode = 1742602241
|
||||||
size = 8192
|
size = 4096
|
||||||
isKeyFrame = true
|
isKeyFrame = true
|
||||||
presentationTimeUs = 1811156
|
presentationTimeUs = 1834376
|
||||||
sample:
|
sample:
|
||||||
trackType = audio
|
trackType = audio
|
||||||
dataHashCode = 1742602241
|
dataHashCode = 1742602241
|
||||||
@ -504,10 +516,16 @@ sample:
|
|||||||
presentationTimeUs = 1950476
|
presentationTimeUs = 1950476
|
||||||
sample:
|
sample:
|
||||||
trackType = audio
|
trackType = audio
|
||||||
dataHashCode = -474907647
|
dataHashCode = 1742602241
|
||||||
size = 4640
|
size = 4096
|
||||||
isKeyFrame = true
|
isKeyFrame = true
|
||||||
presentationTimeUs = 1973696
|
presentationTimeUs = 1973696
|
||||||
|
sample:
|
||||||
|
trackType = audio
|
||||||
|
dataHashCode = -204243967
|
||||||
|
size = 544
|
||||||
|
isKeyFrame = true
|
||||||
|
presentationTimeUs = 1996916
|
||||||
sample:
|
sample:
|
||||||
trackType = audio
|
trackType = audio
|
||||||
dataHashCode = 838148193
|
dataHashCode = 838148193
|
||||||
|
@ -324,10 +324,16 @@ sample:
|
|||||||
presentationTimeUs = 1160997
|
presentationTimeUs = 1160997
|
||||||
sample:
|
sample:
|
||||||
trackType = audio
|
trackType = audio
|
||||||
dataHashCode = -809762815
|
dataHashCode = 1742602241
|
||||||
size = 8192
|
size = 4096
|
||||||
isKeyFrame = true
|
isKeyFrame = true
|
||||||
presentationTimeUs = 1184217
|
presentationTimeUs = 1184217
|
||||||
|
sample:
|
||||||
|
trackType = audio
|
||||||
|
dataHashCode = 1742602241
|
||||||
|
size = 4096
|
||||||
|
isKeyFrame = true
|
||||||
|
presentationTimeUs = 1207437
|
||||||
sample:
|
sample:
|
||||||
trackType = audio
|
trackType = audio
|
||||||
dataHashCode = 1742602241
|
dataHashCode = 1742602241
|
||||||
@ -348,16 +354,10 @@ sample:
|
|||||||
presentationTimeUs = 1277097
|
presentationTimeUs = 1277097
|
||||||
sample:
|
sample:
|
||||||
trackType = audio
|
trackType = audio
|
||||||
dataHashCode = 1742602241
|
dataHashCode = -809762815
|
||||||
size = 4096
|
size = 8192
|
||||||
isKeyFrame = true
|
isKeyFrame = true
|
||||||
presentationTimeUs = 1300317
|
presentationTimeUs = 1300317
|
||||||
sample:
|
|
||||||
trackType = audio
|
|
||||||
dataHashCode = 1742602241
|
|
||||||
size = 4096
|
|
||||||
isKeyFrame = true
|
|
||||||
presentationTimeUs = 1323537
|
|
||||||
sample:
|
sample:
|
||||||
trackType = audio
|
trackType = audio
|
||||||
dataHashCode = 1742602241
|
dataHashCode = 1742602241
|
||||||
@ -378,10 +378,16 @@ sample:
|
|||||||
presentationTimeUs = 1393197
|
presentationTimeUs = 1393197
|
||||||
sample:
|
sample:
|
||||||
trackType = audio
|
trackType = audio
|
||||||
dataHashCode = -809762815
|
dataHashCode = 1742602241
|
||||||
size = 8192
|
size = 4096
|
||||||
isKeyFrame = true
|
isKeyFrame = true
|
||||||
presentationTimeUs = 1416417
|
presentationTimeUs = 1416417
|
||||||
|
sample:
|
||||||
|
trackType = audio
|
||||||
|
dataHashCode = 1742602241
|
||||||
|
size = 4096
|
||||||
|
isKeyFrame = true
|
||||||
|
presentationTimeUs = 1439637
|
||||||
sample:
|
sample:
|
||||||
trackType = audio
|
trackType = audio
|
||||||
dataHashCode = 1742602241
|
dataHashCode = 1742602241
|
||||||
@ -414,10 +420,16 @@ sample:
|
|||||||
presentationTimeUs = 1555736
|
presentationTimeUs = 1555736
|
||||||
sample:
|
sample:
|
||||||
trackType = audio
|
trackType = audio
|
||||||
dataHashCode = -809762815
|
dataHashCode = 1742602241
|
||||||
size = 8192
|
size = 4096
|
||||||
isKeyFrame = true
|
isKeyFrame = true
|
||||||
presentationTimeUs = 1578956
|
presentationTimeUs = 1578956
|
||||||
|
sample:
|
||||||
|
trackType = audio
|
||||||
|
dataHashCode = 1742602241
|
||||||
|
size = 4096
|
||||||
|
isKeyFrame = true
|
||||||
|
presentationTimeUs = 1602176
|
||||||
sample:
|
sample:
|
||||||
trackType = audio
|
trackType = audio
|
||||||
dataHashCode = 1742602241
|
dataHashCode = 1742602241
|
||||||
@ -462,16 +474,16 @@ sample:
|
|||||||
presentationTimeUs = 1764716
|
presentationTimeUs = 1764716
|
||||||
sample:
|
sample:
|
||||||
trackType = audio
|
trackType = audio
|
||||||
dataHashCode = 1742602241
|
dataHashCode = -809762815
|
||||||
size = 4096
|
size = 8192
|
||||||
isKeyFrame = true
|
isKeyFrame = true
|
||||||
presentationTimeUs = 1787936
|
presentationTimeUs = 1787936
|
||||||
sample:
|
sample:
|
||||||
trackType = audio
|
trackType = audio
|
||||||
dataHashCode = -809762815
|
dataHashCode = 1742602241
|
||||||
size = 8192
|
size = 4096
|
||||||
isKeyFrame = true
|
isKeyFrame = true
|
||||||
presentationTimeUs = 1811156
|
presentationTimeUs = 1834376
|
||||||
sample:
|
sample:
|
||||||
trackType = audio
|
trackType = audio
|
||||||
dataHashCode = 1742602241
|
dataHashCode = 1742602241
|
||||||
@ -504,10 +516,16 @@ sample:
|
|||||||
presentationTimeUs = 1950476
|
presentationTimeUs = 1950476
|
||||||
sample:
|
sample:
|
||||||
trackType = audio
|
trackType = audio
|
||||||
dataHashCode = -474907647
|
dataHashCode = 1742602241
|
||||||
size = 4640
|
size = 4096
|
||||||
isKeyFrame = true
|
isKeyFrame = true
|
||||||
presentationTimeUs = 1973696
|
presentationTimeUs = 1973696
|
||||||
|
sample:
|
||||||
|
trackType = audio
|
||||||
|
dataHashCode = -204243967
|
||||||
|
size = 544
|
||||||
|
isKeyFrame = true
|
||||||
|
presentationTimeUs = 1996916
|
||||||
sample:
|
sample:
|
||||||
trackType = audio
|
trackType = audio
|
||||||
dataHashCode = 1742602241
|
dataHashCode = 1742602241
|
||||||
@ -702,16 +720,16 @@ sample:
|
|||||||
presentationTimeUs = 2719818
|
presentationTimeUs = 2719818
|
||||||
sample:
|
sample:
|
||||||
trackType = audio
|
trackType = audio
|
||||||
dataHashCode = -809762815
|
dataHashCode = 1742602241
|
||||||
size = 8192
|
size = 4096
|
||||||
isKeyFrame = true
|
isKeyFrame = true
|
||||||
presentationTimeUs = 2743038
|
presentationTimeUs = 2743038
|
||||||
sample:
|
sample:
|
||||||
trackType = audio
|
trackType = audio
|
||||||
dataHashCode = 1742602241
|
dataHashCode = -809762815
|
||||||
size = 4096
|
size = 8192
|
||||||
isKeyFrame = true
|
isKeyFrame = true
|
||||||
presentationTimeUs = 2789478
|
presentationTimeUs = 2766258
|
||||||
sample:
|
sample:
|
||||||
trackType = audio
|
trackType = audio
|
||||||
dataHashCode = 1742602241
|
dataHashCode = 1742602241
|
||||||
@ -798,10 +816,16 @@ sample:
|
|||||||
presentationTimeUs = 3114557
|
presentationTimeUs = 3114557
|
||||||
sample:
|
sample:
|
||||||
trackType = audio
|
trackType = audio
|
||||||
dataHashCode = -809762815
|
dataHashCode = 1742602241
|
||||||
size = 8192
|
size = 4096
|
||||||
isKeyFrame = true
|
isKeyFrame = true
|
||||||
presentationTimeUs = 3137777
|
presentationTimeUs = 3137777
|
||||||
|
sample:
|
||||||
|
trackType = audio
|
||||||
|
dataHashCode = 1742602241
|
||||||
|
size = 4096
|
||||||
|
isKeyFrame = true
|
||||||
|
presentationTimeUs = 3160997
|
||||||
sample:
|
sample:
|
||||||
trackType = audio
|
trackType = audio
|
||||||
dataHashCode = 1742602241
|
dataHashCode = 1742602241
|
||||||
@ -822,16 +846,10 @@ sample:
|
|||||||
presentationTimeUs = 3230657
|
presentationTimeUs = 3230657
|
||||||
sample:
|
sample:
|
||||||
trackType = audio
|
trackType = audio
|
||||||
dataHashCode = 1742602241
|
dataHashCode = -809762815
|
||||||
size = 4096
|
size = 8192
|
||||||
isKeyFrame = true
|
isKeyFrame = true
|
||||||
presentationTimeUs = 3253877
|
presentationTimeUs = 3253877
|
||||||
sample:
|
|
||||||
trackType = audio
|
|
||||||
dataHashCode = 1742602241
|
|
||||||
size = 4096
|
|
||||||
isKeyFrame = true
|
|
||||||
presentationTimeUs = 3277097
|
|
||||||
sample:
|
sample:
|
||||||
trackType = audio
|
trackType = audio
|
||||||
dataHashCode = 1742602241
|
dataHashCode = 1742602241
|
||||||
@ -840,10 +858,16 @@ sample:
|
|||||||
presentationTimeUs = 3300317
|
presentationTimeUs = 3300317
|
||||||
sample:
|
sample:
|
||||||
trackType = audio
|
trackType = audio
|
||||||
dataHashCode = -809762815
|
dataHashCode = 1742602241
|
||||||
size = 8192
|
size = 4096
|
||||||
isKeyFrame = true
|
isKeyFrame = true
|
||||||
presentationTimeUs = 3323537
|
presentationTimeUs = 3323537
|
||||||
|
sample:
|
||||||
|
trackType = audio
|
||||||
|
dataHashCode = 1742602241
|
||||||
|
size = 4096
|
||||||
|
isKeyFrame = true
|
||||||
|
presentationTimeUs = 3346757
|
||||||
sample:
|
sample:
|
||||||
trackType = audio
|
trackType = audio
|
||||||
dataHashCode = 1742602241
|
dataHashCode = 1742602241
|
||||||
@ -900,10 +924,16 @@ sample:
|
|||||||
presentationTimeUs = 3555736
|
presentationTimeUs = 3555736
|
||||||
sample:
|
sample:
|
||||||
trackType = audio
|
trackType = audio
|
||||||
dataHashCode = -809762815
|
dataHashCode = 1742602241
|
||||||
size = 8192
|
size = 4096
|
||||||
isKeyFrame = true
|
isKeyFrame = true
|
||||||
presentationTimeUs = 3578956
|
presentationTimeUs = 3578956
|
||||||
|
sample:
|
||||||
|
trackType = audio
|
||||||
|
dataHashCode = 1742602241
|
||||||
|
size = 4096
|
||||||
|
isKeyFrame = true
|
||||||
|
presentationTimeUs = 3602176
|
||||||
sample:
|
sample:
|
||||||
trackType = audio
|
trackType = audio
|
||||||
dataHashCode = 1742602241
|
dataHashCode = 1742602241
|
||||||
@ -972,10 +1002,16 @@ sample:
|
|||||||
presentationTimeUs = 3880816
|
presentationTimeUs = 3880816
|
||||||
sample:
|
sample:
|
||||||
trackType = audio
|
trackType = audio
|
||||||
dataHashCode = -809762815
|
dataHashCode = 1742602241
|
||||||
size = 8192
|
size = 4096
|
||||||
isKeyFrame = true
|
isKeyFrame = true
|
||||||
presentationTimeUs = 3904036
|
presentationTimeUs = 3904036
|
||||||
|
sample:
|
||||||
|
trackType = audio
|
||||||
|
dataHashCode = 1742602241
|
||||||
|
size = 4096
|
||||||
|
isKeyFrame = true
|
||||||
|
presentationTimeUs = 3927256
|
||||||
sample:
|
sample:
|
||||||
trackType = audio
|
trackType = audio
|
||||||
dataHashCode = 1742602241
|
dataHashCode = 1742602241
|
||||||
|
@ -324,10 +324,16 @@ sample:
|
|||||||
presentationTimeUs = 1160997
|
presentationTimeUs = 1160997
|
||||||
sample:
|
sample:
|
||||||
trackType = audio
|
trackType = audio
|
||||||
dataHashCode = -809762815
|
dataHashCode = 1742602241
|
||||||
size = 8192
|
size = 4096
|
||||||
isKeyFrame = true
|
isKeyFrame = true
|
||||||
presentationTimeUs = 1184217
|
presentationTimeUs = 1184217
|
||||||
|
sample:
|
||||||
|
trackType = audio
|
||||||
|
dataHashCode = 1742602241
|
||||||
|
size = 4096
|
||||||
|
isKeyFrame = true
|
||||||
|
presentationTimeUs = 1207437
|
||||||
sample:
|
sample:
|
||||||
trackType = audio
|
trackType = audio
|
||||||
dataHashCode = 1742602241
|
dataHashCode = 1742602241
|
||||||
@ -348,16 +354,10 @@ sample:
|
|||||||
presentationTimeUs = 1277097
|
presentationTimeUs = 1277097
|
||||||
sample:
|
sample:
|
||||||
trackType = audio
|
trackType = audio
|
||||||
dataHashCode = 1742602241
|
dataHashCode = -809762815
|
||||||
size = 4096
|
size = 8192
|
||||||
isKeyFrame = true
|
isKeyFrame = true
|
||||||
presentationTimeUs = 1300317
|
presentationTimeUs = 1300317
|
||||||
sample:
|
|
||||||
trackType = audio
|
|
||||||
dataHashCode = 1742602241
|
|
||||||
size = 4096
|
|
||||||
isKeyFrame = true
|
|
||||||
presentationTimeUs = 1323537
|
|
||||||
sample:
|
sample:
|
||||||
trackType = audio
|
trackType = audio
|
||||||
dataHashCode = 1742602241
|
dataHashCode = 1742602241
|
||||||
@ -378,10 +378,16 @@ sample:
|
|||||||
presentationTimeUs = 1393197
|
presentationTimeUs = 1393197
|
||||||
sample:
|
sample:
|
||||||
trackType = audio
|
trackType = audio
|
||||||
dataHashCode = -809762815
|
dataHashCode = 1742602241
|
||||||
size = 8192
|
size = 4096
|
||||||
isKeyFrame = true
|
isKeyFrame = true
|
||||||
presentationTimeUs = 1416417
|
presentationTimeUs = 1416417
|
||||||
|
sample:
|
||||||
|
trackType = audio
|
||||||
|
dataHashCode = 1742602241
|
||||||
|
size = 4096
|
||||||
|
isKeyFrame = true
|
||||||
|
presentationTimeUs = 1439637
|
||||||
sample:
|
sample:
|
||||||
trackType = audio
|
trackType = audio
|
||||||
dataHashCode = 1742602241
|
dataHashCode = 1742602241
|
||||||
@ -414,10 +420,16 @@ sample:
|
|||||||
presentationTimeUs = 1555736
|
presentationTimeUs = 1555736
|
||||||
sample:
|
sample:
|
||||||
trackType = audio
|
trackType = audio
|
||||||
dataHashCode = -809762815
|
dataHashCode = 1742602241
|
||||||
size = 8192
|
size = 4096
|
||||||
isKeyFrame = true
|
isKeyFrame = true
|
||||||
presentationTimeUs = 1578956
|
presentationTimeUs = 1578956
|
||||||
|
sample:
|
||||||
|
trackType = audio
|
||||||
|
dataHashCode = 1742602241
|
||||||
|
size = 4096
|
||||||
|
isKeyFrame = true
|
||||||
|
presentationTimeUs = 1602176
|
||||||
sample:
|
sample:
|
||||||
trackType = audio
|
trackType = audio
|
||||||
dataHashCode = 1742602241
|
dataHashCode = 1742602241
|
||||||
@ -462,16 +474,16 @@ sample:
|
|||||||
presentationTimeUs = 1764716
|
presentationTimeUs = 1764716
|
||||||
sample:
|
sample:
|
||||||
trackType = audio
|
trackType = audio
|
||||||
dataHashCode = 1742602241
|
dataHashCode = -809762815
|
||||||
size = 4096
|
size = 8192
|
||||||
isKeyFrame = true
|
isKeyFrame = true
|
||||||
presentationTimeUs = 1787936
|
presentationTimeUs = 1787936
|
||||||
sample:
|
sample:
|
||||||
trackType = audio
|
trackType = audio
|
||||||
dataHashCode = -809762815
|
dataHashCode = 1742602241
|
||||||
size = 8192
|
size = 4096
|
||||||
isKeyFrame = true
|
isKeyFrame = true
|
||||||
presentationTimeUs = 1811156
|
presentationTimeUs = 1834376
|
||||||
sample:
|
sample:
|
||||||
trackType = audio
|
trackType = audio
|
||||||
dataHashCode = 1742602241
|
dataHashCode = 1742602241
|
||||||
@ -504,10 +516,16 @@ sample:
|
|||||||
presentationTimeUs = 1950476
|
presentationTimeUs = 1950476
|
||||||
sample:
|
sample:
|
||||||
trackType = audio
|
trackType = audio
|
||||||
dataHashCode = -474907647
|
dataHashCode = 1742602241
|
||||||
size = 4640
|
size = 4096
|
||||||
isKeyFrame = true
|
isKeyFrame = true
|
||||||
presentationTimeUs = 1973696
|
presentationTimeUs = 1973696
|
||||||
|
sample:
|
||||||
|
trackType = audio
|
||||||
|
dataHashCode = -204243967
|
||||||
|
size = 544
|
||||||
|
isKeyFrame = true
|
||||||
|
presentationTimeUs = 1996916
|
||||||
sample:
|
sample:
|
||||||
trackType = audio
|
trackType = audio
|
||||||
dataHashCode = 1940582145
|
dataHashCode = 1940582145
|
||||||
@ -702,16 +720,16 @@ sample:
|
|||||||
presentationTimeUs = 2713310
|
presentationTimeUs = 2713310
|
||||||
sample:
|
sample:
|
||||||
trackType = audio
|
trackType = audio
|
||||||
dataHashCode = 644553473
|
dataHashCode = -1264223743
|
||||||
size = 8360
|
size = 4400
|
||||||
isKeyFrame = true
|
isKeyFrame = true
|
||||||
presentationTimeUs = 2735759
|
presentationTimeUs = 2735759
|
||||||
sample:
|
sample:
|
||||||
trackType = audio
|
trackType = audio
|
||||||
dataHashCode = 571187457
|
dataHashCode = 2136490497
|
||||||
size = 3960
|
size = 7920
|
||||||
isKeyFrame = true
|
isKeyFrame = true
|
||||||
presentationTimeUs = 2783151
|
presentationTimeUs = 2760702
|
||||||
sample:
|
sample:
|
||||||
trackType = audio
|
trackType = audio
|
||||||
dataHashCode = -1264223743
|
dataHashCode = -1264223743
|
||||||
@ -798,10 +816,16 @@ sample:
|
|||||||
presentationTimeUs = 3107392
|
presentationTimeUs = 3107392
|
||||||
sample:
|
sample:
|
||||||
trackType = audio
|
trackType = audio
|
||||||
dataHashCode = 2136490497
|
dataHashCode = 571187457
|
||||||
size = 7920
|
size = 3960
|
||||||
isKeyFrame = true
|
isKeyFrame = true
|
||||||
presentationTimeUs = 3132312
|
presentationTimeUs = 3132312
|
||||||
|
sample:
|
||||||
|
trackType = audio
|
||||||
|
dataHashCode = 571187457
|
||||||
|
size = 3960
|
||||||
|
isKeyFrame = true
|
||||||
|
presentationTimeUs = 3154761
|
||||||
sample:
|
sample:
|
||||||
trackType = audio
|
trackType = audio
|
||||||
dataHashCode = -1264223743
|
dataHashCode = -1264223743
|
||||||
@ -822,16 +846,10 @@ sample:
|
|||||||
presentationTimeUs = 3224603
|
presentationTimeUs = 3224603
|
||||||
sample:
|
sample:
|
||||||
trackType = audio
|
trackType = audio
|
||||||
dataHashCode = 571187457
|
dataHashCode = 644553473
|
||||||
size = 3960
|
size = 8360
|
||||||
isKeyFrame = true
|
isKeyFrame = true
|
||||||
presentationTimeUs = 3247052
|
presentationTimeUs = 3247052
|
||||||
sample:
|
|
||||||
trackType = audio
|
|
||||||
dataHashCode = -1264223743
|
|
||||||
size = 4400
|
|
||||||
isKeyFrame = true
|
|
||||||
presentationTimeUs = 3269501
|
|
||||||
sample:
|
sample:
|
||||||
trackType = audio
|
trackType = audio
|
||||||
dataHashCode = 571187457
|
dataHashCode = 571187457
|
||||||
@ -840,10 +858,16 @@ sample:
|
|||||||
presentationTimeUs = 3294444
|
presentationTimeUs = 3294444
|
||||||
sample:
|
sample:
|
||||||
trackType = audio
|
trackType = audio
|
||||||
dataHashCode = 644553473
|
dataHashCode = 571187457
|
||||||
size = 8360
|
size = 3960
|
||||||
isKeyFrame = true
|
isKeyFrame = true
|
||||||
presentationTimeUs = 3316893
|
presentationTimeUs = 3316893
|
||||||
|
sample:
|
||||||
|
trackType = audio
|
||||||
|
dataHashCode = -1264223743
|
||||||
|
size = 4400
|
||||||
|
isKeyFrame = true
|
||||||
|
presentationTimeUs = 3339342
|
||||||
sample:
|
sample:
|
||||||
trackType = audio
|
trackType = audio
|
||||||
dataHashCode = -448902783
|
dataHashCode = -448902783
|
||||||
@ -900,10 +924,16 @@ sample:
|
|||||||
presentationTimeUs = 3548843
|
presentationTimeUs = 3548843
|
||||||
sample:
|
sample:
|
||||||
trackType = audio
|
trackType = audio
|
||||||
dataHashCode = 2136490497
|
dataHashCode = 571187457
|
||||||
size = 7920
|
size = 3960
|
||||||
isKeyFrame = true
|
isKeyFrame = true
|
||||||
presentationTimeUs = 3573786
|
presentationTimeUs = 3573786
|
||||||
|
sample:
|
||||||
|
trackType = audio
|
||||||
|
dataHashCode = 571187457
|
||||||
|
size = 3960
|
||||||
|
isKeyFrame = true
|
||||||
|
presentationTimeUs = 3596235
|
||||||
sample:
|
sample:
|
||||||
trackType = audio
|
trackType = audio
|
||||||
dataHashCode = -448902783
|
dataHashCode = -448902783
|
||||||
@ -978,10 +1008,16 @@ sample:
|
|||||||
presentationTimeUs = 3898004
|
presentationTimeUs = 3898004
|
||||||
sample:
|
sample:
|
||||||
trackType = audio
|
trackType = audio
|
||||||
dataHashCode = 644553473
|
dataHashCode = 571187457
|
||||||
size = 8360
|
size = 3960
|
||||||
isKeyFrame = true
|
isKeyFrame = true
|
||||||
presentationTimeUs = 3920453
|
presentationTimeUs = 3920453
|
||||||
|
sample:
|
||||||
|
trackType = audio
|
||||||
|
dataHashCode = -1264223743
|
||||||
|
size = 4400
|
||||||
|
isKeyFrame = true
|
||||||
|
presentationTimeUs = 3942902
|
||||||
sample:
|
sample:
|
||||||
trackType = audio
|
trackType = audio
|
||||||
dataHashCode = -1759454975
|
dataHashCode = -1759454975
|
||||||
|
@ -16,9 +16,11 @@
|
|||||||
|
|
||||||
package androidx.media3.transformer;
|
package androidx.media3.transformer;
|
||||||
|
|
||||||
|
import static androidx.media3.common.util.Assertions.checkNotNull;
|
||||||
import static androidx.media3.decoder.DecoderInputBuffer.BUFFER_REPLACEMENT_MODE_DIRECT;
|
import static androidx.media3.decoder.DecoderInputBuffer.BUFFER_REPLACEMENT_MODE_DIRECT;
|
||||||
|
|
||||||
import androidx.annotation.Nullable;
|
import androidx.annotation.Nullable;
|
||||||
|
import androidx.annotation.VisibleForTesting;
|
||||||
import androidx.media3.common.Format;
|
import androidx.media3.common.Format;
|
||||||
import androidx.media3.decoder.DecoderInputBuffer;
|
import androidx.media3.decoder.DecoderInputBuffer;
|
||||||
import java.nio.ByteBuffer;
|
import java.nio.ByteBuffer;
|
||||||
@ -30,7 +32,19 @@ import java.util.concurrent.atomic.AtomicLong;
|
|||||||
/** Muxes encoded samples without any transcoding or transformation. */
|
/** Muxes encoded samples without any transcoding or transformation. */
|
||||||
/* package */ final class EncodedSampleExporter extends SampleExporter implements GraphInput {
|
/* package */ final class EncodedSampleExporter extends SampleExporter implements GraphInput {
|
||||||
|
|
||||||
private static final int MAX_INPUT_BUFFER_COUNT = 10;
|
// These constants limit the number of buffers used to pass input data. More buffers can avoid the
|
||||||
|
// producer/consumer having to wait, but can increase allocation size (determined by the producer
|
||||||
|
// side) so we constrain the number of buffers to be in this range, and prevent allocating more
|
||||||
|
// buffers (above the minimum number) once a target size has been reached. Once the target has
|
||||||
|
// been reached, no new buffers will be created but the producer can still increase the size of
|
||||||
|
// existing buffers.
|
||||||
|
@VisibleForTesting /* package */ static final int MIN_INPUT_BUFFER_COUNT = 10;
|
||||||
|
@VisibleForTesting /* package */ static final int MAX_INPUT_BUFFER_COUNT = 200;
|
||||||
|
@VisibleForTesting /* package */ static final long ALLOCATION_SIZE_TARGET_BYTES = 2 * 1024 * 1024;
|
||||||
|
|
||||||
|
/** An empty, direct {@link ByteBuffer}. */
|
||||||
|
private static final ByteBuffer EMPTY_BUFFER =
|
||||||
|
ByteBuffer.allocateDirect(0).order(ByteOrder.nativeOrder());
|
||||||
|
|
||||||
private final Format format;
|
private final Format format;
|
||||||
private final long initialTimestampOffsetUs;
|
private final long initialTimestampOffsetUs;
|
||||||
@ -38,10 +52,17 @@ import java.util.concurrent.atomic.AtomicLong;
|
|||||||
private final Queue<DecoderInputBuffer> availableInputBuffers;
|
private final Queue<DecoderInputBuffer> availableInputBuffers;
|
||||||
private final Queue<DecoderInputBuffer> pendingInputBuffers;
|
private final Queue<DecoderInputBuffer> pendingInputBuffers;
|
||||||
|
|
||||||
private long mediaItemOffsetUs;
|
// Accessed on the producer and consumer threads.
|
||||||
|
|
||||||
private volatile boolean inputEnded;
|
private volatile boolean inputEnded;
|
||||||
|
|
||||||
|
// Accessed only on the producer thread.
|
||||||
|
|
||||||
|
private long mediaItemOffsetUs;
|
||||||
|
private boolean hasReachedAllocationTarget;
|
||||||
|
private long totalBufferSizeBytes;
|
||||||
|
@Nullable private DecoderInputBuffer nextInputBuffer;
|
||||||
|
|
||||||
public EncodedSampleExporter(
|
public EncodedSampleExporter(
|
||||||
Format format,
|
Format format,
|
||||||
TransformationRequest transformationRequest,
|
TransformationRequest transformationRequest,
|
||||||
@ -53,12 +74,6 @@ import java.util.concurrent.atomic.AtomicLong;
|
|||||||
this.initialTimestampOffsetUs = initialTimestampOffsetUs;
|
this.initialTimestampOffsetUs = initialTimestampOffsetUs;
|
||||||
nextMediaItemOffsetUs = new AtomicLong();
|
nextMediaItemOffsetUs = new AtomicLong();
|
||||||
availableInputBuffers = new ConcurrentLinkedDeque<>();
|
availableInputBuffers = new ConcurrentLinkedDeque<>();
|
||||||
ByteBuffer emptyBuffer = ByteBuffer.allocateDirect(0).order(ByteOrder.nativeOrder());
|
|
||||||
for (int i = 0; i < MAX_INPUT_BUFFER_COUNT; i++) {
|
|
||||||
DecoderInputBuffer inputBuffer = new DecoderInputBuffer(BUFFER_REPLACEMENT_MODE_DIRECT);
|
|
||||||
inputBuffer.data = emptyBuffer;
|
|
||||||
availableInputBuffers.add(inputBuffer);
|
|
||||||
}
|
|
||||||
pendingInputBuffers = new ConcurrentLinkedDeque<>();
|
pendingInputBuffers = new ConcurrentLinkedDeque<>();
|
||||||
fallbackListener.onTransformationRequestFinalized(transformationRequest);
|
fallbackListener.onTransformationRequestFinalized(transformationRequest);
|
||||||
}
|
}
|
||||||
@ -76,18 +91,40 @@ import java.util.concurrent.atomic.AtomicLong;
|
|||||||
@Override
|
@Override
|
||||||
@Nullable
|
@Nullable
|
||||||
public DecoderInputBuffer getInputBuffer() {
|
public DecoderInputBuffer getInputBuffer() {
|
||||||
return availableInputBuffers.peek();
|
if (nextInputBuffer == null) {
|
||||||
|
nextInputBuffer = availableInputBuffers.poll();
|
||||||
|
if (!hasReachedAllocationTarget) {
|
||||||
|
if (nextInputBuffer == null) {
|
||||||
|
nextInputBuffer = new DecoderInputBuffer(BUFFER_REPLACEMENT_MODE_DIRECT);
|
||||||
|
nextInputBuffer.data = EMPTY_BUFFER;
|
||||||
|
} else {
|
||||||
|
// The size of this buffer has already been accounted for but the producer may reallocate
|
||||||
|
// it so remove it from the total and add it back when it's queued again.
|
||||||
|
totalBufferSizeBytes -= checkNotNull(nextInputBuffer.data).capacity();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return nextInputBuffer;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean queueInputBuffer() {
|
public boolean queueInputBuffer() {
|
||||||
DecoderInputBuffer inputBuffer = availableInputBuffers.remove();
|
DecoderInputBuffer inputBuffer = checkNotNull(nextInputBuffer);
|
||||||
|
nextInputBuffer = null;
|
||||||
if (inputBuffer.isEndOfStream()) {
|
if (inputBuffer.isEndOfStream()) {
|
||||||
inputEnded = true;
|
inputEnded = true;
|
||||||
} else {
|
} else {
|
||||||
inputBuffer.timeUs += mediaItemOffsetUs + initialTimestampOffsetUs;
|
inputBuffer.timeUs += mediaItemOffsetUs + initialTimestampOffsetUs;
|
||||||
pendingInputBuffers.add(inputBuffer);
|
pendingInputBuffers.add(inputBuffer);
|
||||||
}
|
}
|
||||||
|
if (!hasReachedAllocationTarget) {
|
||||||
|
int bufferCount = availableInputBuffers.size() + pendingInputBuffers.size();
|
||||||
|
totalBufferSizeBytes += checkNotNull(inputBuffer.data).capacity();
|
||||||
|
hasReachedAllocationTarget =
|
||||||
|
bufferCount >= MIN_INPUT_BUFFER_COUNT
|
||||||
|
&& (bufferCount >= MAX_INPUT_BUFFER_COUNT
|
||||||
|
|| totalBufferSizeBytes >= ALLOCATION_SIZE_TARGET_BYTES);
|
||||||
|
}
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -0,0 +1,134 @@
|
|||||||
|
/*
|
||||||
|
* Copyright 2023 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 static androidx.media3.common.util.Assertions.checkNotNull;
|
||||||
|
import static androidx.media3.transformer.EncodedSampleExporter.ALLOCATION_SIZE_TARGET_BYTES;
|
||||||
|
import static androidx.media3.transformer.EncodedSampleExporter.MAX_INPUT_BUFFER_COUNT;
|
||||||
|
import static androidx.media3.transformer.EncodedSampleExporter.MIN_INPUT_BUFFER_COUNT;
|
||||||
|
import static com.google.common.truth.Truth.assertThat;
|
||||||
|
import static org.mockito.Mockito.mock;
|
||||||
|
|
||||||
|
import android.os.Looper;
|
||||||
|
import androidx.annotation.Nullable;
|
||||||
|
import androidx.media3.common.Format;
|
||||||
|
import androidx.media3.common.MediaItem;
|
||||||
|
import androidx.media3.common.MimeTypes;
|
||||||
|
import androidx.media3.common.util.Clock;
|
||||||
|
import androidx.media3.common.util.HandlerWrapper;
|
||||||
|
import androidx.media3.common.util.ListenerSet;
|
||||||
|
import androidx.media3.decoder.DecoderInputBuffer;
|
||||||
|
import androidx.test.ext.junit.runners.AndroidJUnit4;
|
||||||
|
import org.junit.Before;
|
||||||
|
import org.junit.Test;
|
||||||
|
import org.junit.runner.RunWith;
|
||||||
|
import org.mockito.Mock;
|
||||||
|
|
||||||
|
/** Unit tests for {@link EncodedSampleExporter}. */
|
||||||
|
@RunWith(AndroidJUnit4.class)
|
||||||
|
public final class EncodedSampleExporterTest {
|
||||||
|
|
||||||
|
private EncodedSampleExporter encodedSampleExporter;
|
||||||
|
|
||||||
|
@Mock private ListenerSet.IterationFinishedEvent<Transformer.Listener> mockIterationFinishedEvent;
|
||||||
|
@Mock private HandlerWrapper mockHandlerWrapper;
|
||||||
|
|
||||||
|
@Before
|
||||||
|
public void setUp() {
|
||||||
|
Looper looper = checkNotNull(Looper.myLooper());
|
||||||
|
FallbackListener fallbackListener =
|
||||||
|
new FallbackListener(
|
||||||
|
new Composition.Builder(
|
||||||
|
new EditedMediaItemSequence(
|
||||||
|
new EditedMediaItem.Builder(MediaItem.EMPTY).build()))
|
||||||
|
.build(),
|
||||||
|
new ListenerSet<>(looper, Clock.DEFAULT, mockIterationFinishedEvent),
|
||||||
|
mockHandlerWrapper,
|
||||||
|
new TransformationRequest.Builder().build());
|
||||||
|
fallbackListener.setTrackCount(1);
|
||||||
|
encodedSampleExporter =
|
||||||
|
new EncodedSampleExporter(
|
||||||
|
new Format.Builder().setSampleMimeType(MimeTypes.AUDIO_AAC).build(),
|
||||||
|
new TransformationRequest.Builder().build(),
|
||||||
|
new MuxerWrapper(
|
||||||
|
/* outputPath= */ "unused",
|
||||||
|
new InAppMuxer.Factory(),
|
||||||
|
mock(MuxerWrapper.Listener.class),
|
||||||
|
MuxerWrapper.MUXER_MODE_DEFAULT),
|
||||||
|
fallbackListener,
|
||||||
|
/* initialTimestampOffsetUs= */ 0);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void queueInput_withEmptyBuffers_allocatesMaxBufferCount() {
|
||||||
|
for (int i = 0; i < MAX_INPUT_BUFFER_COUNT; i++) {
|
||||||
|
@Nullable DecoderInputBuffer decoderInputBuffer = encodedSampleExporter.getInputBuffer();
|
||||||
|
assertThat(decoderInputBuffer).isNotNull();
|
||||||
|
decoderInputBuffer.ensureSpaceForWrite(/* length= */ 0);
|
||||||
|
encodedSampleExporter.queueInputBuffer();
|
||||||
|
}
|
||||||
|
assertThat(encodedSampleExporter.getInputBuffer()).isNull();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void queueInput_withSmallBuffers_allocatesMaxBufferCount() {
|
||||||
|
assertThat(fillInputAndGetTotalInputSize(/* inputBufferSizeBytes= */ 1))
|
||||||
|
.isEqualTo(MAX_INPUT_BUFFER_COUNT);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void queueInput_withMediumBuffers_reachesBufferSizeTarget() {
|
||||||
|
assertThat(fillInputAndGetTotalInputSize(/* inputBufferSizeBytes= */ 16 * 1024))
|
||||||
|
.isEqualTo(ALLOCATION_SIZE_TARGET_BYTES);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void queueInput_withLargeBuffers_allocatesMinBufferCount() {
|
||||||
|
assertThat(fillInputAndGetTotalInputSize(/* inputBufferSizeBytes= */ 1024 * 1024))
|
||||||
|
.isEqualTo(MIN_INPUT_BUFFER_COUNT * 1024 * 1024);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void queueInputToLimitThenProcessOutput_queueInputSucceeds() {
|
||||||
|
// Queue input until no more input is accepted.
|
||||||
|
assertThat(fillInputAndGetTotalInputSize(/* inputBufferSizeBytes= */ 16 * 1024))
|
||||||
|
.isEqualTo(ALLOCATION_SIZE_TARGET_BYTES);
|
||||||
|
assertThat(fillInputAndGetTotalInputSize(/* inputBufferSizeBytes= */ 1024 * 1024)).isEqualTo(0);
|
||||||
|
|
||||||
|
// Simulate draining to the muxer.
|
||||||
|
while (encodedSampleExporter.getMuxerInputBuffer() != null) {
|
||||||
|
encodedSampleExporter.releaseMuxerInputBuffer();
|
||||||
|
}
|
||||||
|
|
||||||
|
// It's possible to queue input again.
|
||||||
|
assertThat(fillInputAndGetTotalInputSize(/* inputBufferSizeBytes= */ 16 * 1024))
|
||||||
|
.isEqualTo(ALLOCATION_SIZE_TARGET_BYTES);
|
||||||
|
}
|
||||||
|
|
||||||
|
private long fillInputAndGetTotalInputSize(int inputBufferSizeBytes) {
|
||||||
|
int totalAllocatedSize = 0;
|
||||||
|
for (int i = 0; i < MAX_INPUT_BUFFER_COUNT + 1; i++) {
|
||||||
|
@Nullable DecoderInputBuffer decoderInputBuffer = encodedSampleExporter.getInputBuffer();
|
||||||
|
if (decoderInputBuffer == null) {
|
||||||
|
return totalAllocatedSize;
|
||||||
|
}
|
||||||
|
decoderInputBuffer.ensureSpaceForWrite(inputBufferSizeBytes);
|
||||||
|
encodedSampleExporter.queueInputBuffer();
|
||||||
|
totalAllocatedSize += inputBufferSizeBytes;
|
||||||
|
}
|
||||||
|
throw new IllegalStateException("Unexpectedly allocated more than MAX_INPUT_BUFFER_COUNT");
|
||||||
|
}
|
||||||
|
}
|
Loading…
x
Reference in New Issue
Block a user