mirror of
https://github.com/samsonjs/media.git
synced 2026-04-27 15:07:40 +00:00
Tests for composition audio effects
Add tests for the changes to AudioGraph that support composition audio effects PiperOrigin-RevId: 610691768
This commit is contained in:
parent
477ace1be9
commit
0e0e1c4f1a
13 changed files with 2209 additions and 0 deletions
|
|
@ -0,0 +1,373 @@
|
||||||
|
format audio:
|
||||||
|
averageBitrate = 131072
|
||||||
|
sampleMimeType = audio/mp4a-latm
|
||||||
|
channelCount = 1
|
||||||
|
sampleRate = 44100
|
||||||
|
pcmEncoding = 2
|
||||||
|
metadata = entries=[xyz: latitude=40.68, longitude=-74.5, Mp4Timestamp: creation time=0, modification time=0, timescale=1000]
|
||||||
|
format video:
|
||||||
|
id = 1
|
||||||
|
sampleMimeType = video/avc
|
||||||
|
codecs = avc1.64001F
|
||||||
|
maxInputSize = 36722
|
||||||
|
width = 1080
|
||||||
|
height = 720
|
||||||
|
frameRate = 29.970028
|
||||||
|
colorInfo:
|
||||||
|
lumaBitdepth = 8
|
||||||
|
chromaBitdepth = 8
|
||||||
|
metadata = entries=[xyz: latitude=40.68, longitude=-74.5, Mp4Timestamp: creation time=0, modification time=0, timescale=1000]
|
||||||
|
initializationData:
|
||||||
|
data = length 29, hash 4746B5D9
|
||||||
|
data = length 10, hash 7A0D0F2B
|
||||||
|
container metadata = entries=[xyz: latitude=40.68, longitude=-74.5, Mp4Timestamp: creation time=0, modification time=0, timescale=1000]
|
||||||
|
container metadata = entries=[xyz: latitude=40.68, longitude=-74.5, Mp4Timestamp: creation time=0, modification time=0, timescale=1000]
|
||||||
|
sample:
|
||||||
|
trackType = audio
|
||||||
|
dataHashCode = 1742602241
|
||||||
|
size = 4096
|
||||||
|
isKeyFrame = true
|
||||||
|
presentationTimeUs = 0
|
||||||
|
sample:
|
||||||
|
trackType = audio
|
||||||
|
dataHashCode = -1276182527
|
||||||
|
size = 2048
|
||||||
|
isKeyFrame = true
|
||||||
|
presentationTimeUs = 46439
|
||||||
|
sample:
|
||||||
|
trackType = audio
|
||||||
|
dataHashCode = 1742602241
|
||||||
|
size = 4096
|
||||||
|
isKeyFrame = true
|
||||||
|
presentationTimeUs = 69659
|
||||||
|
sample:
|
||||||
|
trackType = audio
|
||||||
|
dataHashCode = -1276182527
|
||||||
|
size = 2048
|
||||||
|
isKeyFrame = true
|
||||||
|
presentationTimeUs = 116099
|
||||||
|
sample:
|
||||||
|
trackType = audio
|
||||||
|
dataHashCode = 1742602241
|
||||||
|
size = 4096
|
||||||
|
isKeyFrame = true
|
||||||
|
presentationTimeUs = 139319
|
||||||
|
sample:
|
||||||
|
trackType = audio
|
||||||
|
dataHashCode = -1276182527
|
||||||
|
size = 2048
|
||||||
|
isKeyFrame = true
|
||||||
|
presentationTimeUs = 185759
|
||||||
|
sample:
|
||||||
|
trackType = audio
|
||||||
|
dataHashCode = 1742602241
|
||||||
|
size = 4096
|
||||||
|
isKeyFrame = true
|
||||||
|
presentationTimeUs = 208979
|
||||||
|
sample:
|
||||||
|
trackType = audio
|
||||||
|
dataHashCode = -1276182527
|
||||||
|
size = 2048
|
||||||
|
isKeyFrame = true
|
||||||
|
presentationTimeUs = 255419
|
||||||
|
sample:
|
||||||
|
trackType = audio
|
||||||
|
dataHashCode = -1276182527
|
||||||
|
size = 2048
|
||||||
|
isKeyFrame = true
|
||||||
|
presentationTimeUs = 278639
|
||||||
|
sample:
|
||||||
|
trackType = audio
|
||||||
|
dataHashCode = 1742602241
|
||||||
|
size = 4096
|
||||||
|
isKeyFrame = true
|
||||||
|
presentationTimeUs = 301859
|
||||||
|
sample:
|
||||||
|
trackType = audio
|
||||||
|
dataHashCode = -1276182527
|
||||||
|
size = 2048
|
||||||
|
isKeyFrame = true
|
||||||
|
presentationTimeUs = 348299
|
||||||
|
sample:
|
||||||
|
trackType = audio
|
||||||
|
dataHashCode = 1742602241
|
||||||
|
size = 4096
|
||||||
|
isKeyFrame = true
|
||||||
|
presentationTimeUs = 371519
|
||||||
|
sample:
|
||||||
|
trackType = audio
|
||||||
|
dataHashCode = -1276182527
|
||||||
|
size = 2048
|
||||||
|
isKeyFrame = true
|
||||||
|
presentationTimeUs = 417959
|
||||||
|
sample:
|
||||||
|
trackType = audio
|
||||||
|
dataHashCode = 1742602241
|
||||||
|
size = 4096
|
||||||
|
isKeyFrame = true
|
||||||
|
presentationTimeUs = 441179
|
||||||
|
sample:
|
||||||
|
trackType = audio
|
||||||
|
dataHashCode = 1737035649
|
||||||
|
size = 1092
|
||||||
|
isKeyFrame = true
|
||||||
|
presentationTimeUs = 487619
|
||||||
|
sample:
|
||||||
|
trackType = audio
|
||||||
|
dataHashCode = -345689983
|
||||||
|
size = 3004
|
||||||
|
isKeyFrame = true
|
||||||
|
presentationTimeUs = 500000
|
||||||
|
sample:
|
||||||
|
trackType = audio
|
||||||
|
dataHashCode = 1742602241
|
||||||
|
size = 4096
|
||||||
|
isKeyFrame = true
|
||||||
|
presentationTimeUs = 534058
|
||||||
|
sample:
|
||||||
|
trackType = audio
|
||||||
|
dataHashCode = -1276182527
|
||||||
|
size = 2048
|
||||||
|
isKeyFrame = true
|
||||||
|
presentationTimeUs = 580498
|
||||||
|
sample:
|
||||||
|
trackType = audio
|
||||||
|
dataHashCode = 1742602241
|
||||||
|
size = 4096
|
||||||
|
isKeyFrame = true
|
||||||
|
presentationTimeUs = 603718
|
||||||
|
sample:
|
||||||
|
trackType = audio
|
||||||
|
dataHashCode = -1276182527
|
||||||
|
size = 2048
|
||||||
|
isKeyFrame = true
|
||||||
|
presentationTimeUs = 650158
|
||||||
|
sample:
|
||||||
|
trackType = audio
|
||||||
|
dataHashCode = 1742602241
|
||||||
|
size = 4096
|
||||||
|
isKeyFrame = true
|
||||||
|
presentationTimeUs = 673378
|
||||||
|
sample:
|
||||||
|
trackType = audio
|
||||||
|
dataHashCode = -1276182527
|
||||||
|
size = 2048
|
||||||
|
isKeyFrame = true
|
||||||
|
presentationTimeUs = 719818
|
||||||
|
sample:
|
||||||
|
trackType = audio
|
||||||
|
dataHashCode = 1742602241
|
||||||
|
size = 4096
|
||||||
|
isKeyFrame = true
|
||||||
|
presentationTimeUs = 743038
|
||||||
|
sample:
|
||||||
|
trackType = audio
|
||||||
|
dataHashCode = -1276182527
|
||||||
|
size = 2048
|
||||||
|
isKeyFrame = true
|
||||||
|
presentationTimeUs = 789478
|
||||||
|
sample:
|
||||||
|
trackType = audio
|
||||||
|
dataHashCode = -1276182527
|
||||||
|
size = 2048
|
||||||
|
isKeyFrame = true
|
||||||
|
presentationTimeUs = 812698
|
||||||
|
sample:
|
||||||
|
trackType = audio
|
||||||
|
dataHashCode = -809762815
|
||||||
|
size = 8192
|
||||||
|
isKeyFrame = true
|
||||||
|
presentationTimeUs = 835918
|
||||||
|
sample:
|
||||||
|
trackType = audio
|
||||||
|
dataHashCode = 820010753
|
||||||
|
size = 6280
|
||||||
|
isKeyFrame = true
|
||||||
|
presentationTimeUs = 928798
|
||||||
|
sample:
|
||||||
|
trackType = audio
|
||||||
|
dataHashCode = 521969921
|
||||||
|
size = 1912
|
||||||
|
isKeyFrame = true
|
||||||
|
presentationTimeUs = 1000000
|
||||||
|
sample:
|
||||||
|
trackType = video
|
||||||
|
dataHashCode = -770308242
|
||||||
|
size = 36692
|
||||||
|
isKeyFrame = true
|
||||||
|
presentationTimeUs = 0
|
||||||
|
sample:
|
||||||
|
trackType = video
|
||||||
|
dataHashCode = -732087136
|
||||||
|
size = 5312
|
||||||
|
isKeyFrame = false
|
||||||
|
presentationTimeUs = 66733
|
||||||
|
sample:
|
||||||
|
trackType = video
|
||||||
|
dataHashCode = 468156717
|
||||||
|
size = 599
|
||||||
|
isKeyFrame = false
|
||||||
|
presentationTimeUs = 33366
|
||||||
|
sample:
|
||||||
|
trackType = video
|
||||||
|
dataHashCode = 1150349584
|
||||||
|
size = 7735
|
||||||
|
isKeyFrame = false
|
||||||
|
presentationTimeUs = 200200
|
||||||
|
sample:
|
||||||
|
trackType = video
|
||||||
|
dataHashCode = 1443582006
|
||||||
|
size = 987
|
||||||
|
isKeyFrame = false
|
||||||
|
presentationTimeUs = 133466
|
||||||
|
sample:
|
||||||
|
trackType = video
|
||||||
|
dataHashCode = -310585145
|
||||||
|
size = 673
|
||||||
|
isKeyFrame = false
|
||||||
|
presentationTimeUs = 100100
|
||||||
|
sample:
|
||||||
|
trackType = video
|
||||||
|
dataHashCode = 807460688
|
||||||
|
size = 523
|
||||||
|
isKeyFrame = false
|
||||||
|
presentationTimeUs = 166833
|
||||||
|
sample:
|
||||||
|
trackType = video
|
||||||
|
dataHashCode = 1936487090
|
||||||
|
size = 6061
|
||||||
|
isKeyFrame = false
|
||||||
|
presentationTimeUs = 333666
|
||||||
|
sample:
|
||||||
|
trackType = video
|
||||||
|
dataHashCode = -32297181
|
||||||
|
size = 992
|
||||||
|
isKeyFrame = false
|
||||||
|
presentationTimeUs = 266933
|
||||||
|
sample:
|
||||||
|
trackType = video
|
||||||
|
dataHashCode = 1529616406
|
||||||
|
size = 623
|
||||||
|
isKeyFrame = false
|
||||||
|
presentationTimeUs = 233566
|
||||||
|
sample:
|
||||||
|
trackType = video
|
||||||
|
dataHashCode = 1949198785
|
||||||
|
size = 421
|
||||||
|
isKeyFrame = false
|
||||||
|
presentationTimeUs = 300300
|
||||||
|
sample:
|
||||||
|
trackType = video
|
||||||
|
dataHashCode = -147880287
|
||||||
|
size = 4899
|
||||||
|
isKeyFrame = false
|
||||||
|
presentationTimeUs = 433766
|
||||||
|
sample:
|
||||||
|
trackType = video
|
||||||
|
dataHashCode = 1369083472
|
||||||
|
size = 568
|
||||||
|
isKeyFrame = false
|
||||||
|
presentationTimeUs = 400400
|
||||||
|
sample:
|
||||||
|
trackType = video
|
||||||
|
dataHashCode = 965782073
|
||||||
|
size = 620
|
||||||
|
isKeyFrame = false
|
||||||
|
presentationTimeUs = 367033
|
||||||
|
sample:
|
||||||
|
trackType = video
|
||||||
|
dataHashCode = -261176150
|
||||||
|
size = 5450
|
||||||
|
isKeyFrame = false
|
||||||
|
presentationTimeUs = 567233
|
||||||
|
sample:
|
||||||
|
trackType = video
|
||||||
|
dataHashCode = -1830836678
|
||||||
|
size = 1051
|
||||||
|
isKeyFrame = false
|
||||||
|
presentationTimeUs = 500500
|
||||||
|
sample:
|
||||||
|
trackType = video
|
||||||
|
dataHashCode = 1767407540
|
||||||
|
size = 874
|
||||||
|
isKeyFrame = false
|
||||||
|
presentationTimeUs = 467133
|
||||||
|
sample:
|
||||||
|
trackType = video
|
||||||
|
dataHashCode = 918440283
|
||||||
|
size = 781
|
||||||
|
isKeyFrame = false
|
||||||
|
presentationTimeUs = 533866
|
||||||
|
sample:
|
||||||
|
trackType = video
|
||||||
|
dataHashCode = -1408463661
|
||||||
|
size = 4725
|
||||||
|
isKeyFrame = false
|
||||||
|
presentationTimeUs = 700700
|
||||||
|
sample:
|
||||||
|
trackType = video
|
||||||
|
dataHashCode = 1569455924
|
||||||
|
size = 1022
|
||||||
|
isKeyFrame = false
|
||||||
|
presentationTimeUs = 633966
|
||||||
|
sample:
|
||||||
|
trackType = video
|
||||||
|
dataHashCode = -1723778407
|
||||||
|
size = 790
|
||||||
|
isKeyFrame = false
|
||||||
|
presentationTimeUs = 600600
|
||||||
|
sample:
|
||||||
|
trackType = video
|
||||||
|
dataHashCode = 1578275472
|
||||||
|
size = 610
|
||||||
|
isKeyFrame = false
|
||||||
|
presentationTimeUs = 667333
|
||||||
|
sample:
|
||||||
|
trackType = video
|
||||||
|
dataHashCode = 1989768395
|
||||||
|
size = 2751
|
||||||
|
isKeyFrame = false
|
||||||
|
presentationTimeUs = 834166
|
||||||
|
sample:
|
||||||
|
trackType = video
|
||||||
|
dataHashCode = -1215674502
|
||||||
|
size = 745
|
||||||
|
isKeyFrame = false
|
||||||
|
presentationTimeUs = 767433
|
||||||
|
sample:
|
||||||
|
trackType = video
|
||||||
|
dataHashCode = -814473606
|
||||||
|
size = 621
|
||||||
|
isKeyFrame = false
|
||||||
|
presentationTimeUs = 734066
|
||||||
|
sample:
|
||||||
|
trackType = video
|
||||||
|
dataHashCode = 498370894
|
||||||
|
size = 505
|
||||||
|
isKeyFrame = false
|
||||||
|
presentationTimeUs = 800800
|
||||||
|
sample:
|
||||||
|
trackType = video
|
||||||
|
dataHashCode = -1051506468
|
||||||
|
size = 1268
|
||||||
|
isKeyFrame = false
|
||||||
|
presentationTimeUs = 967633
|
||||||
|
sample:
|
||||||
|
trackType = video
|
||||||
|
dataHashCode = -1025604144
|
||||||
|
size = 880
|
||||||
|
isKeyFrame = false
|
||||||
|
presentationTimeUs = 900900
|
||||||
|
sample:
|
||||||
|
trackType = video
|
||||||
|
dataHashCode = -913586520
|
||||||
|
size = 530
|
||||||
|
isKeyFrame = false
|
||||||
|
presentationTimeUs = 867533
|
||||||
|
sample:
|
||||||
|
trackType = video
|
||||||
|
dataHashCode = 1340459242
|
||||||
|
size = 568
|
||||||
|
isKeyFrame = false
|
||||||
|
presentationTimeUs = 934266
|
||||||
|
released = true
|
||||||
File diff suppressed because it is too large
Load diff
|
|
@ -0,0 +1,73 @@
|
||||||
|
format audio:
|
||||||
|
averageBitrate = 131072
|
||||||
|
sampleMimeType = audio/mp4a-latm
|
||||||
|
channelCount = 1
|
||||||
|
sampleRate = 48000
|
||||||
|
pcmEncoding = 2
|
||||||
|
sample:
|
||||||
|
trackType = audio
|
||||||
|
dataHashCode = -206878443
|
||||||
|
size = 9598
|
||||||
|
isKeyFrame = true
|
||||||
|
presentationTimeUs = 0
|
||||||
|
sample:
|
||||||
|
trackType = audio
|
||||||
|
dataHashCode = 1925380271
|
||||||
|
size = 9600
|
||||||
|
isKeyFrame = true
|
||||||
|
presentationTimeUs = 99979
|
||||||
|
sample:
|
||||||
|
trackType = audio
|
||||||
|
dataHashCode = -1463691457
|
||||||
|
size = 9600
|
||||||
|
isKeyFrame = true
|
||||||
|
presentationTimeUs = 199979
|
||||||
|
sample:
|
||||||
|
trackType = audio
|
||||||
|
dataHashCode = -1949646832
|
||||||
|
size = 9600
|
||||||
|
isKeyFrame = true
|
||||||
|
presentationTimeUs = 299979
|
||||||
|
sample:
|
||||||
|
trackType = audio
|
||||||
|
dataHashCode = 448289446
|
||||||
|
size = 9600
|
||||||
|
isKeyFrame = true
|
||||||
|
presentationTimeUs = 399979
|
||||||
|
sample:
|
||||||
|
trackType = audio
|
||||||
|
dataHashCode = 1075917616
|
||||||
|
size = 9600
|
||||||
|
isKeyFrame = true
|
||||||
|
presentationTimeUs = 499979
|
||||||
|
sample:
|
||||||
|
trackType = audio
|
||||||
|
dataHashCode = -2108784941
|
||||||
|
size = 9600
|
||||||
|
isKeyFrame = true
|
||||||
|
presentationTimeUs = 599979
|
||||||
|
sample:
|
||||||
|
trackType = audio
|
||||||
|
dataHashCode = 1861606067
|
||||||
|
size = 9600
|
||||||
|
isKeyFrame = true
|
||||||
|
presentationTimeUs = 699979
|
||||||
|
sample:
|
||||||
|
trackType = audio
|
||||||
|
dataHashCode = -1038569478
|
||||||
|
size = 9600
|
||||||
|
isKeyFrame = true
|
||||||
|
presentationTimeUs = 799979
|
||||||
|
sample:
|
||||||
|
trackType = audio
|
||||||
|
dataHashCode = 646441790
|
||||||
|
size = 9600
|
||||||
|
isKeyFrame = true
|
||||||
|
presentationTimeUs = 899979
|
||||||
|
sample:
|
||||||
|
trackType = audio
|
||||||
|
dataHashCode = 340
|
||||||
|
size = 2
|
||||||
|
isKeyFrame = true
|
||||||
|
presentationTimeUs = 999979
|
||||||
|
released = true
|
||||||
|
|
@ -0,0 +1,73 @@
|
||||||
|
format audio:
|
||||||
|
averageBitrate = 131072
|
||||||
|
sampleMimeType = audio/mp4a-latm
|
||||||
|
channelCount = 1
|
||||||
|
sampleRate = 48000
|
||||||
|
pcmEncoding = 2
|
||||||
|
sample:
|
||||||
|
trackType = audio
|
||||||
|
dataHashCode = 1079020216
|
||||||
|
size = 9598
|
||||||
|
isKeyFrame = true
|
||||||
|
presentationTimeUs = 0
|
||||||
|
sample:
|
||||||
|
trackType = audio
|
||||||
|
dataHashCode = -1587539971
|
||||||
|
size = 9600
|
||||||
|
isKeyFrame = true
|
||||||
|
presentationTimeUs = 99979
|
||||||
|
sample:
|
||||||
|
trackType = audio
|
||||||
|
dataHashCode = 1662487784
|
||||||
|
size = 9600
|
||||||
|
isKeyFrame = true
|
||||||
|
presentationTimeUs = 199979
|
||||||
|
sample:
|
||||||
|
trackType = audio
|
||||||
|
dataHashCode = 2046052835
|
||||||
|
size = 9600
|
||||||
|
isKeyFrame = true
|
||||||
|
presentationTimeUs = 299979
|
||||||
|
sample:
|
||||||
|
trackType = audio
|
||||||
|
dataHashCode = 662989576
|
||||||
|
size = 9600
|
||||||
|
isKeyFrame = true
|
||||||
|
presentationTimeUs = 399979
|
||||||
|
sample:
|
||||||
|
trackType = audio
|
||||||
|
dataHashCode = 493382594
|
||||||
|
size = 9600
|
||||||
|
isKeyFrame = true
|
||||||
|
presentationTimeUs = 499979
|
||||||
|
sample:
|
||||||
|
trackType = audio
|
||||||
|
dataHashCode = -936959003
|
||||||
|
size = 9600
|
||||||
|
isKeyFrame = true
|
||||||
|
presentationTimeUs = 599979
|
||||||
|
sample:
|
||||||
|
trackType = audio
|
||||||
|
dataHashCode = -373052102
|
||||||
|
size = 9600
|
||||||
|
isKeyFrame = true
|
||||||
|
presentationTimeUs = 699979
|
||||||
|
sample:
|
||||||
|
trackType = audio
|
||||||
|
dataHashCode = -2008343760
|
||||||
|
size = 9600
|
||||||
|
isKeyFrame = true
|
||||||
|
presentationTimeUs = 799979
|
||||||
|
sample:
|
||||||
|
trackType = audio
|
||||||
|
dataHashCode = -1783150403
|
||||||
|
size = 9600
|
||||||
|
isKeyFrame = true
|
||||||
|
presentationTimeUs = 899979
|
||||||
|
sample:
|
||||||
|
trackType = audio
|
||||||
|
dataHashCode = -280
|
||||||
|
size = 2
|
||||||
|
isKeyFrame = true
|
||||||
|
presentationTimeUs = 999979
|
||||||
|
released = true
|
||||||
|
|
@ -0,0 +1,67 @@
|
||||||
|
format audio:
|
||||||
|
averageBitrate = 131072
|
||||||
|
sampleMimeType = audio/mp4a-latm
|
||||||
|
channelCount = 1
|
||||||
|
sampleRate = 44100
|
||||||
|
pcmEncoding = 2
|
||||||
|
sample:
|
||||||
|
trackType = audio
|
||||||
|
dataHashCode = -1157240447
|
||||||
|
size = 8820
|
||||||
|
isKeyFrame = true
|
||||||
|
presentationTimeUs = 0
|
||||||
|
sample:
|
||||||
|
trackType = audio
|
||||||
|
dataHashCode = -1157240447
|
||||||
|
size = 8820
|
||||||
|
isKeyFrame = true
|
||||||
|
presentationTimeUs = 100000
|
||||||
|
sample:
|
||||||
|
trackType = audio
|
||||||
|
dataHashCode = -1157240447
|
||||||
|
size = 8820
|
||||||
|
isKeyFrame = true
|
||||||
|
presentationTimeUs = 200000
|
||||||
|
sample:
|
||||||
|
trackType = audio
|
||||||
|
dataHashCode = -1157240447
|
||||||
|
size = 8820
|
||||||
|
isKeyFrame = true
|
||||||
|
presentationTimeUs = 300000
|
||||||
|
sample:
|
||||||
|
trackType = audio
|
||||||
|
dataHashCode = -1157240447
|
||||||
|
size = 8820
|
||||||
|
isKeyFrame = true
|
||||||
|
presentationTimeUs = 400000
|
||||||
|
sample:
|
||||||
|
trackType = audio
|
||||||
|
dataHashCode = -1157240447
|
||||||
|
size = 8820
|
||||||
|
isKeyFrame = true
|
||||||
|
presentationTimeUs = 500000
|
||||||
|
sample:
|
||||||
|
trackType = audio
|
||||||
|
dataHashCode = -1157240447
|
||||||
|
size = 8820
|
||||||
|
isKeyFrame = true
|
||||||
|
presentationTimeUs = 600000
|
||||||
|
sample:
|
||||||
|
trackType = audio
|
||||||
|
dataHashCode = -1157240447
|
||||||
|
size = 8820
|
||||||
|
isKeyFrame = true
|
||||||
|
presentationTimeUs = 700000
|
||||||
|
sample:
|
||||||
|
trackType = audio
|
||||||
|
dataHashCode = -1157240447
|
||||||
|
size = 8820
|
||||||
|
isKeyFrame = true
|
||||||
|
presentationTimeUs = 800000
|
||||||
|
sample:
|
||||||
|
trackType = audio
|
||||||
|
dataHashCode = -1157240447
|
||||||
|
size = 8820
|
||||||
|
isKeyFrame = true
|
||||||
|
presentationTimeUs = 900000
|
||||||
|
released = true
|
||||||
|
|
@ -0,0 +1,73 @@
|
||||||
|
format audio:
|
||||||
|
averageBitrate = 131072
|
||||||
|
sampleMimeType = audio/mp4a-latm
|
||||||
|
channelCount = 1
|
||||||
|
sampleRate = 44100
|
||||||
|
pcmEncoding = 2
|
||||||
|
sample:
|
||||||
|
trackType = audio
|
||||||
|
dataHashCode = -1157240447
|
||||||
|
size = 8820
|
||||||
|
isKeyFrame = true
|
||||||
|
presentationTimeUs = 0
|
||||||
|
sample:
|
||||||
|
trackType = audio
|
||||||
|
dataHashCode = -1157240447
|
||||||
|
size = 8820
|
||||||
|
isKeyFrame = true
|
||||||
|
presentationTimeUs = 100000
|
||||||
|
sample:
|
||||||
|
trackType = audio
|
||||||
|
dataHashCode = -1157240447
|
||||||
|
size = 8820
|
||||||
|
isKeyFrame = true
|
||||||
|
presentationTimeUs = 200000
|
||||||
|
sample:
|
||||||
|
trackType = audio
|
||||||
|
dataHashCode = -1157240447
|
||||||
|
size = 8820
|
||||||
|
isKeyFrame = true
|
||||||
|
presentationTimeUs = 300000
|
||||||
|
sample:
|
||||||
|
trackType = audio
|
||||||
|
dataHashCode = -1157240447
|
||||||
|
size = 8820
|
||||||
|
isKeyFrame = true
|
||||||
|
presentationTimeUs = 400000
|
||||||
|
sample:
|
||||||
|
trackType = audio
|
||||||
|
dataHashCode = -1157240447
|
||||||
|
size = 8820
|
||||||
|
isKeyFrame = true
|
||||||
|
presentationTimeUs = 500000
|
||||||
|
sample:
|
||||||
|
trackType = audio
|
||||||
|
dataHashCode = -1157240447
|
||||||
|
size = 8820
|
||||||
|
isKeyFrame = true
|
||||||
|
presentationTimeUs = 600000
|
||||||
|
sample:
|
||||||
|
trackType = audio
|
||||||
|
dataHashCode = -1157240447
|
||||||
|
size = 8820
|
||||||
|
isKeyFrame = true
|
||||||
|
presentationTimeUs = 700000
|
||||||
|
sample:
|
||||||
|
trackType = audio
|
||||||
|
dataHashCode = -1157240447
|
||||||
|
size = 8820
|
||||||
|
isKeyFrame = true
|
||||||
|
presentationTimeUs = 800000
|
||||||
|
sample:
|
||||||
|
trackType = audio
|
||||||
|
dataHashCode = -1157240447
|
||||||
|
size = 8820
|
||||||
|
isKeyFrame = true
|
||||||
|
presentationTimeUs = 900000
|
||||||
|
sample:
|
||||||
|
trackType = audio
|
||||||
|
dataHashCode = -1163604095
|
||||||
|
size = 1604
|
||||||
|
isKeyFrame = true
|
||||||
|
presentationTimeUs = 1000000
|
||||||
|
released = true
|
||||||
|
|
@ -0,0 +1,97 @@
|
||||||
|
format audio:
|
||||||
|
averageBitrate = 131072
|
||||||
|
sampleMimeType = audio/mp4a-latm
|
||||||
|
channelCount = 2
|
||||||
|
sampleRate = 48000
|
||||||
|
pcmEncoding = 2
|
||||||
|
sample:
|
||||||
|
trackType = audio
|
||||||
|
dataHashCode = -226169394
|
||||||
|
size = 15528
|
||||||
|
isKeyFrame = true
|
||||||
|
presentationTimeUs = 0
|
||||||
|
sample:
|
||||||
|
trackType = audio
|
||||||
|
dataHashCode = -1654106973
|
||||||
|
size = 17436
|
||||||
|
isKeyFrame = true
|
||||||
|
presentationTimeUs = 80875
|
||||||
|
sample:
|
||||||
|
trackType = audio
|
||||||
|
dataHashCode = 1078555669
|
||||||
|
size = 19384
|
||||||
|
isKeyFrame = true
|
||||||
|
presentationTimeUs = 171687
|
||||||
|
sample:
|
||||||
|
trackType = audio
|
||||||
|
dataHashCode = -1783495042
|
||||||
|
size = 8904
|
||||||
|
isKeyFrame = true
|
||||||
|
presentationTimeUs = 272645
|
||||||
|
sample:
|
||||||
|
trackType = audio
|
||||||
|
dataHashCode = 1415708326
|
||||||
|
size = 19232
|
||||||
|
isKeyFrame = true
|
||||||
|
presentationTimeUs = 319020
|
||||||
|
sample:
|
||||||
|
trackType = audio
|
||||||
|
dataHashCode = -907128755
|
||||||
|
size = 9688
|
||||||
|
isKeyFrame = true
|
||||||
|
presentationTimeUs = 419187
|
||||||
|
sample:
|
||||||
|
trackType = audio
|
||||||
|
dataHashCode = -855583041
|
||||||
|
size = 28564
|
||||||
|
isKeyFrame = true
|
||||||
|
presentationTimeUs = 469645
|
||||||
|
sample:
|
||||||
|
trackType = audio
|
||||||
|
dataHashCode = -141401047
|
||||||
|
size = 19388
|
||||||
|
isKeyFrame = true
|
||||||
|
presentationTimeUs = 618416
|
||||||
|
sample:
|
||||||
|
trackType = audio
|
||||||
|
dataHashCode = -1258167167
|
||||||
|
size = 19680
|
||||||
|
isKeyFrame = true
|
||||||
|
presentationTimeUs = 719395
|
||||||
|
sample:
|
||||||
|
trackType = audio
|
||||||
|
dataHashCode = -1950277707
|
||||||
|
size = 19796
|
||||||
|
isKeyFrame = true
|
||||||
|
presentationTimeUs = 821895
|
||||||
|
sample:
|
||||||
|
trackType = audio
|
||||||
|
dataHashCode = -71854735
|
||||||
|
size = 9096
|
||||||
|
isKeyFrame = true
|
||||||
|
presentationTimeUs = 925000
|
||||||
|
sample:
|
||||||
|
trackType = audio
|
||||||
|
dataHashCode = -1667813033
|
||||||
|
size = 28344
|
||||||
|
isKeyFrame = true
|
||||||
|
presentationTimeUs = 972375
|
||||||
|
sample:
|
||||||
|
trackType = audio
|
||||||
|
dataHashCode = 473686109
|
||||||
|
size = 18848
|
||||||
|
isKeyFrame = true
|
||||||
|
presentationTimeUs = 1120000
|
||||||
|
sample:
|
||||||
|
trackType = audio
|
||||||
|
dataHashCode = 283620169
|
||||||
|
size = 19384
|
||||||
|
isKeyFrame = true
|
||||||
|
presentationTimeUs = 1218166
|
||||||
|
sample:
|
||||||
|
trackType = audio
|
||||||
|
dataHashCode = 581004623
|
||||||
|
size = 5668
|
||||||
|
isKeyFrame = true
|
||||||
|
presentationTimeUs = 1319125
|
||||||
|
released = true
|
||||||
|
|
@ -0,0 +1,31 @@
|
||||||
|
format audio:
|
||||||
|
averageBitrate = 131072
|
||||||
|
sampleMimeType = audio/mp4a-latm
|
||||||
|
channelCount = 2
|
||||||
|
sampleRate = 48000
|
||||||
|
pcmEncoding = 2
|
||||||
|
sample:
|
||||||
|
trackType = audio
|
||||||
|
dataHashCode = -119496703
|
||||||
|
size = 19200
|
||||||
|
isKeyFrame = true
|
||||||
|
presentationTimeUs = 0
|
||||||
|
sample:
|
||||||
|
trackType = audio
|
||||||
|
dataHashCode = -119496703
|
||||||
|
size = 19200
|
||||||
|
isKeyFrame = true
|
||||||
|
presentationTimeUs = 100000
|
||||||
|
sample:
|
||||||
|
trackType = audio
|
||||||
|
dataHashCode = -119496703
|
||||||
|
size = 19200
|
||||||
|
isKeyFrame = true
|
||||||
|
presentationTimeUs = 200000
|
||||||
|
sample:
|
||||||
|
trackType = audio
|
||||||
|
dataHashCode = 197067009
|
||||||
|
size = 9336
|
||||||
|
isKeyFrame = true
|
||||||
|
presentationTimeUs = 300000
|
||||||
|
released = true
|
||||||
|
|
@ -1045,6 +1045,45 @@ public class TransformerEndToEndTest {
|
||||||
assertThat(result.exportResult.channelCount).isEqualTo(2);
|
assertThat(result.exportResult.channelCount).isEqualTo(2);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void audioComposition_noEffects_transmuxes() throws Exception {
|
||||||
|
String testId = "audioComposition_noEffects_transmuxes";
|
||||||
|
EditedMediaItem editedMediaItem =
|
||||||
|
new EditedMediaItem.Builder(MediaItem.fromUri(Uri.parse(MP4_ASSET_URI_STRING)))
|
||||||
|
.setRemoveVideo(true)
|
||||||
|
.build();
|
||||||
|
Composition composition =
|
||||||
|
new Composition.Builder(new EditedMediaItemSequence(editedMediaItem)).build();
|
||||||
|
|
||||||
|
ExportTestResult result =
|
||||||
|
new TransformerAndroidTestRunner.Builder(context, new Transformer.Builder(context).build())
|
||||||
|
.build()
|
||||||
|
.run(testId, composition);
|
||||||
|
|
||||||
|
assertThat(result.exportResult.audioConversionProcess).isEqualTo(CONVERSION_PROCESS_TRANSMUXED);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void audioComposition_compositionEffects_transcodes() throws Exception {
|
||||||
|
String testId = "audioComposition_compositionEffects_transcodes";
|
||||||
|
EditedMediaItem editedMediaItem =
|
||||||
|
new EditedMediaItem.Builder(MediaItem.fromUri(Uri.parse(MP4_ASSET_URI_STRING)))
|
||||||
|
.setRemoveVideo(true)
|
||||||
|
.build();
|
||||||
|
Composition composition =
|
||||||
|
new Composition.Builder(new EditedMediaItemSequence(editedMediaItem))
|
||||||
|
.setEffects(
|
||||||
|
new Effects(ImmutableList.of(createSonic(/* pitch= */ 2f)), ImmutableList.of()))
|
||||||
|
.build();
|
||||||
|
|
||||||
|
ExportTestResult result =
|
||||||
|
new TransformerAndroidTestRunner.Builder(context, new Transformer.Builder(context).build())
|
||||||
|
.build()
|
||||||
|
.run(testId, composition);
|
||||||
|
|
||||||
|
assertThat(result.exportResult.audioConversionProcess).isEqualTo(CONVERSION_PROCESS_TRANSCODED);
|
||||||
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void transcode_withOutputVideoMimeTypeAv1_completesSuccessfully() throws Exception {
|
public void transcode_withOutputVideoMimeTypeAv1_completesSuccessfully() throws Exception {
|
||||||
if (AndroidTestUtil.skipAndLogIfFormatsUnsupported(
|
if (AndroidTestUtil.skipAndLogIfFormatsUnsupported(
|
||||||
|
|
|
||||||
|
|
@ -35,6 +35,7 @@ import static com.google.common.truth.Truth.assertThat;
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
import androidx.media3.common.MediaItem;
|
import androidx.media3.common.MediaItem;
|
||||||
import androidx.media3.common.MimeTypes;
|
import androidx.media3.common.MimeTypes;
|
||||||
|
import androidx.media3.common.audio.SonicAudioProcessor;
|
||||||
import androidx.media3.test.utils.DumpFileAsserts;
|
import androidx.media3.test.utils.DumpFileAsserts;
|
||||||
import androidx.test.core.app.ApplicationProvider;
|
import androidx.test.core.app.ApplicationProvider;
|
||||||
import androidx.test.ext.junit.runners.AndroidJUnit4;
|
import androidx.test.ext.junit.runners.AndroidJUnit4;
|
||||||
|
|
@ -315,6 +316,62 @@ public class CompositionExportTest {
|
||||||
"loopingAudio" + getFileName(FILE_AUDIO_RAW_VIDEO)));
|
"loopingAudio" + getFileName(FILE_AUDIO_RAW_VIDEO)));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void start_adjustSampleRateWithComposition_completesSuccessfully() throws Exception {
|
||||||
|
SonicAudioProcessor sonicAudioProcessor = new SonicAudioProcessor();
|
||||||
|
sonicAudioProcessor.setOutputSampleRateHz(48000);
|
||||||
|
Transformer transformer =
|
||||||
|
createTransformerBuilder(muxerFactory, /* enableFallback= */ false).build();
|
||||||
|
MediaItem mediaItem = MediaItem.fromUri(ASSET_URI_PREFIX + FILE_AUDIO_RAW);
|
||||||
|
EditedMediaItem editedMediaItem = new EditedMediaItem.Builder(mediaItem).build();
|
||||||
|
Composition composition =
|
||||||
|
new Composition.Builder(new EditedMediaItemSequence(editedMediaItem))
|
||||||
|
.setEffects(createAudioEffects(sonicAudioProcessor))
|
||||||
|
.build();
|
||||||
|
|
||||||
|
transformer.start(composition, outputDir.newFile().getPath());
|
||||||
|
TransformerTestRunner.runLooper(transformer);
|
||||||
|
|
||||||
|
// TODO: b/311614619 - Use the same dump as
|
||||||
|
// {@link MediaItemExportTest#start_adjustSampleRate_completesSuccessfully}.
|
||||||
|
DumpFileAsserts.assertOutput(
|
||||||
|
context,
|
||||||
|
muxerFactory.getCreatedMuxer(),
|
||||||
|
getDumpFileName(
|
||||||
|
/* originalFileName= */ FILE_AUDIO_RAW,
|
||||||
|
/* modifications...= */ "48000hzViaComposition"));
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void start_compositionOfConcurrentAudio_changesSampleRateWithEffect() throws Exception {
|
||||||
|
SonicAudioProcessor sonicAudioProcessor = new SonicAudioProcessor();
|
||||||
|
sonicAudioProcessor.setOutputSampleRateHz(48000);
|
||||||
|
Transformer transformer =
|
||||||
|
createTransformerBuilder(muxerFactory, /* enableFallback= */ false).build();
|
||||||
|
EditedMediaItem rawAudioEditedMediaItem =
|
||||||
|
new EditedMediaItem.Builder(MediaItem.fromUri(ASSET_URI_PREFIX + FILE_AUDIO_RAW)).build();
|
||||||
|
Composition composition =
|
||||||
|
new Composition.Builder(
|
||||||
|
new EditedMediaItemSequence(rawAudioEditedMediaItem),
|
||||||
|
new EditedMediaItemSequence(rawAudioEditedMediaItem))
|
||||||
|
.setEffects(createAudioEffects(sonicAudioProcessor))
|
||||||
|
.build();
|
||||||
|
|
||||||
|
transformer.start(composition, outputDir.newFile().getPath());
|
||||||
|
ExportResult exportResult = TransformerTestRunner.runLooper(transformer);
|
||||||
|
|
||||||
|
assertThat(exportResult.processedInputs).hasSize(2);
|
||||||
|
assertThat(exportResult.sampleRate).isEqualTo(48000);
|
||||||
|
DumpFileAsserts.assertOutput(
|
||||||
|
context,
|
||||||
|
muxerFactory.getCreatedMuxer(),
|
||||||
|
getDumpFileName(
|
||||||
|
FILE_AUDIO_RAW,
|
||||||
|
/* modifications...= */ "mixed",
|
||||||
|
getFileName(FILE_AUDIO_RAW),
|
||||||
|
"48000hz"));
|
||||||
|
}
|
||||||
|
|
||||||
private static String getFileName(String filePath) {
|
private static String getFileName(String filePath) {
|
||||||
int lastSeparator = filePath.lastIndexOf("/");
|
int lastSeparator = filePath.lastIndexOf("/");
|
||||||
return filePath.substring(lastSeparator + 1);
|
return filePath.substring(lastSeparator + 1);
|
||||||
|
|
|
||||||
|
|
@ -25,7 +25,9 @@ import static androidx.media3.transformer.TestUtil.FILE_AUDIO_VIDEO;
|
||||||
import static androidx.media3.transformer.TestUtil.FILE_VIDEO_ONLY;
|
import static androidx.media3.transformer.TestUtil.FILE_VIDEO_ONLY;
|
||||||
import static androidx.media3.transformer.TestUtil.addAudioDecoders;
|
import static androidx.media3.transformer.TestUtil.addAudioDecoders;
|
||||||
import static androidx.media3.transformer.TestUtil.addAudioEncoders;
|
import static androidx.media3.transformer.TestUtil.addAudioEncoders;
|
||||||
|
import static androidx.media3.transformer.TestUtil.createAudioEffects;
|
||||||
import static androidx.media3.transformer.TestUtil.createTransformerBuilder;
|
import static androidx.media3.transformer.TestUtil.createTransformerBuilder;
|
||||||
|
import static androidx.media3.transformer.TestUtil.createVolumeScalingAudioProcessor;
|
||||||
import static androidx.media3.transformer.TestUtil.getDumpFileName;
|
import static androidx.media3.transformer.TestUtil.getDumpFileName;
|
||||||
import static androidx.media3.transformer.TestUtil.removeEncodersAndDecoders;
|
import static androidx.media3.transformer.TestUtil.removeEncodersAndDecoders;
|
||||||
import static org.junit.Assume.assumeFalse;
|
import static org.junit.Assume.assumeFalse;
|
||||||
|
|
@ -137,4 +139,53 @@ public final class ParameterizedItemExportTest {
|
||||||
muxerFactory.getCreatedMuxer(),
|
muxerFactory.getCreatedMuxer(),
|
||||||
getDumpFileName(assetFile, /* modifications...= */ "silence"));
|
getDumpFileName(assetFile, /* modifications...= */ "silence"));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void generateSilenceWithItemEffect() throws Exception {
|
||||||
|
assumeFalse(VIDEO_ONLY_ASSETS.contains(assetFile));
|
||||||
|
assumeFalse(
|
||||||
|
"Audio effects in Robolectric tests require PCM input",
|
||||||
|
assetFile.equals(FILE_AUDIO_VIDEO) || assetFile.equals(FILE_AUDIO_AMR_NB));
|
||||||
|
Transformer transformer =
|
||||||
|
createTransformerBuilder(muxerFactory, /* enableFallback= */ false).build();
|
||||||
|
|
||||||
|
EditedMediaItem item =
|
||||||
|
new EditedMediaItem.Builder(MediaItem.fromUri(ASSET_URI_PREFIX + assetFile))
|
||||||
|
.setEffects(createAudioEffects(createVolumeScalingAudioProcessor(0f)))
|
||||||
|
.build();
|
||||||
|
Composition composition = new Composition.Builder(new EditedMediaItemSequence(item)).build();
|
||||||
|
|
||||||
|
transformer.start(composition, outputDir.newFile().getPath());
|
||||||
|
TransformerTestRunner.runLooper(transformer);
|
||||||
|
|
||||||
|
DumpFileAsserts.assertOutput(
|
||||||
|
ApplicationProvider.getApplicationContext(),
|
||||||
|
muxerFactory.getCreatedMuxer(),
|
||||||
|
getDumpFileName(assetFile, /* modifications...= */ "silenceFromEffect"));
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void generateSilenceWithCompositionEffect() throws Exception {
|
||||||
|
assumeFalse(VIDEO_ONLY_ASSETS.contains(assetFile));
|
||||||
|
assumeFalse(
|
||||||
|
"Audio effects in Robolectric tests require PCM input",
|
||||||
|
assetFile.equals(FILE_AUDIO_VIDEO) || assetFile.equals(FILE_AUDIO_AMR_NB));
|
||||||
|
Transformer transformer =
|
||||||
|
createTransformerBuilder(muxerFactory, /* enableFallback= */ false).build();
|
||||||
|
|
||||||
|
EditedMediaItem item =
|
||||||
|
new EditedMediaItem.Builder(MediaItem.fromUri(ASSET_URI_PREFIX + assetFile)).build();
|
||||||
|
Composition composition =
|
||||||
|
new Composition.Builder(new EditedMediaItemSequence(item))
|
||||||
|
.setEffects(createAudioEffects(createVolumeScalingAudioProcessor(0f)))
|
||||||
|
.build();
|
||||||
|
|
||||||
|
transformer.start(composition, outputDir.newFile().getPath());
|
||||||
|
TransformerTestRunner.runLooper(transformer);
|
||||||
|
|
||||||
|
DumpFileAsserts.assertOutput(
|
||||||
|
ApplicationProvider.getApplicationContext(),
|
||||||
|
muxerFactory.getCreatedMuxer(),
|
||||||
|
getDumpFileName(assetFile, /* modifications...= */ "silenceFromEffect"));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -25,6 +25,7 @@ import static androidx.media3.transformer.TestUtil.FILE_AUDIO_VIDEO_INCREASING_T
|
||||||
import static androidx.media3.transformer.TestUtil.addAudioDecoders;
|
import static androidx.media3.transformer.TestUtil.addAudioDecoders;
|
||||||
import static androidx.media3.transformer.TestUtil.addAudioEncoders;
|
import static androidx.media3.transformer.TestUtil.addAudioEncoders;
|
||||||
import static androidx.media3.transformer.TestUtil.createAudioEffects;
|
import static androidx.media3.transformer.TestUtil.createAudioEffects;
|
||||||
|
import static androidx.media3.transformer.TestUtil.createChannelCountChangingAudioProcessor;
|
||||||
import static androidx.media3.transformer.TestUtil.createPitchChangingAudioProcessor;
|
import static androidx.media3.transformer.TestUtil.createPitchChangingAudioProcessor;
|
||||||
import static androidx.media3.transformer.TestUtil.createTransformerBuilder;
|
import static androidx.media3.transformer.TestUtil.createTransformerBuilder;
|
||||||
import static androidx.media3.transformer.TestUtil.getDumpFileName;
|
import static androidx.media3.transformer.TestUtil.getDumpFileName;
|
||||||
|
|
@ -34,6 +35,7 @@ import static com.google.common.truth.Truth.assertThat;
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
import androidx.media3.common.MediaItem;
|
import androidx.media3.common.MediaItem;
|
||||||
import androidx.media3.common.MimeTypes;
|
import androidx.media3.common.MimeTypes;
|
||||||
|
import androidx.media3.common.audio.SonicAudioProcessor;
|
||||||
import androidx.media3.effect.RgbFilter;
|
import androidx.media3.effect.RgbFilter;
|
||||||
import androidx.media3.test.utils.DumpFileAsserts;
|
import androidx.media3.test.utils.DumpFileAsserts;
|
||||||
import androidx.test.core.app.ApplicationProvider;
|
import androidx.test.core.app.ApplicationProvider;
|
||||||
|
|
@ -642,4 +644,70 @@ public final class SequenceExportTest {
|
||||||
/* modifications...= */ "highPitch",
|
/* modifications...= */ "highPitch",
|
||||||
"sample.wavLowPitch"));
|
"sample.wavLowPitch"));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void concatenateTwoAudioItems_withDiffFormatAndCompositionEffects_completesSuccessfully()
|
||||||
|
throws Exception {
|
||||||
|
Transformer transformer =
|
||||||
|
createTransformerBuilder(muxerFactory, /* enableFallback= */ false).build();
|
||||||
|
MediaItem stereo48000Audio =
|
||||||
|
MediaItem.fromUri(ASSET_URI_PREFIX + FILE_AUDIO_RAW_STEREO_48000KHZ);
|
||||||
|
MediaItem mono44100Audio = MediaItem.fromUri(ASSET_URI_PREFIX + FILE_AUDIO_RAW);
|
||||||
|
Composition composition =
|
||||||
|
new Composition.Builder(
|
||||||
|
new EditedMediaItemSequence(
|
||||||
|
new EditedMediaItem.Builder(stereo48000Audio).build(),
|
||||||
|
new EditedMediaItem.Builder(mono44100Audio).build()))
|
||||||
|
.setEffects(createAudioEffects(createPitchChangingAudioProcessor(2f)))
|
||||||
|
.build();
|
||||||
|
|
||||||
|
transformer.start(composition, outputDir.newFile().getPath());
|
||||||
|
ExportResult exportResult = TransformerTestRunner.runLooper(transformer);
|
||||||
|
|
||||||
|
assertThat(exportResult.sampleRate).isEqualTo(48_000);
|
||||||
|
assertThat(exportResult.channelCount).isEqualTo(2);
|
||||||
|
DumpFileAsserts.assertOutput(
|
||||||
|
context,
|
||||||
|
muxerFactory.getCreatedMuxer(),
|
||||||
|
getDumpFileName(
|
||||||
|
/* originalFileName= */ FILE_AUDIO_RAW_STEREO_48000KHZ,
|
||||||
|
/* modifications...= */ "original",
|
||||||
|
"sample.wav",
|
||||||
|
"highPitch"));
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void concatenateTwoAudioItems_withDiffEffectsAndCompositionEffects_completesSuccessfully()
|
||||||
|
throws Exception {
|
||||||
|
Transformer transformer =
|
||||||
|
createTransformerBuilder(muxerFactory, /* enableFallback= */ false).build();
|
||||||
|
MediaItem audioOnlyMediaItem = MediaItem.fromUri(ASSET_URI_PREFIX + FILE_AUDIO_RAW);
|
||||||
|
EditedMediaItem twoChannelMediaItem =
|
||||||
|
new EditedMediaItem.Builder(audioOnlyMediaItem)
|
||||||
|
.setRemoveVideo(true)
|
||||||
|
.setEffects(
|
||||||
|
createAudioEffects(
|
||||||
|
createChannelCountChangingAudioProcessor(/* outputChannelCount= */ 2)))
|
||||||
|
.build();
|
||||||
|
EditedMediaItem oneChannelMediaItem =
|
||||||
|
new EditedMediaItem.Builder(audioOnlyMediaItem)
|
||||||
|
.setRemoveVideo(true)
|
||||||
|
.setEffects(
|
||||||
|
createAudioEffects(
|
||||||
|
createChannelCountChangingAudioProcessor(/* outputChannelCount= */ 1)))
|
||||||
|
.build();
|
||||||
|
SonicAudioProcessor sonicAudioProcessor = new SonicAudioProcessor();
|
||||||
|
sonicAudioProcessor.setOutputSampleRateHz(48_000);
|
||||||
|
Composition composition =
|
||||||
|
new Composition.Builder(
|
||||||
|
new EditedMediaItemSequence(twoChannelMediaItem, oneChannelMediaItem))
|
||||||
|
.setEffects(createAudioEffects(sonicAudioProcessor))
|
||||||
|
.build();
|
||||||
|
|
||||||
|
transformer.start(composition, outputDir.newFile().getPath());
|
||||||
|
ExportResult exportResult = TransformerTestRunner.runLooper(transformer);
|
||||||
|
|
||||||
|
assertThat(exportResult.sampleRate).isEqualTo(48_000);
|
||||||
|
assertThat(exportResult.channelCount).isEqualTo(2);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -94,6 +94,16 @@ public final class TestUtil {
|
||||||
return audioProcessor;
|
return audioProcessor;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static ChannelMixingAudioProcessor createChannelCountChangingAudioProcessor(
|
||||||
|
int outputChannelCount) {
|
||||||
|
ChannelMixingAudioProcessor audioProcessor = new ChannelMixingAudioProcessor();
|
||||||
|
for (int inputChannelCount = 1; inputChannelCount <= 2; inputChannelCount++) {
|
||||||
|
audioProcessor.putChannelMixingMatrix(
|
||||||
|
ChannelMixingMatrix.create(inputChannelCount, outputChannelCount));
|
||||||
|
}
|
||||||
|
return audioProcessor;
|
||||||
|
}
|
||||||
|
|
||||||
public static String getDumpFileName(String originalFileName, String... modifications) {
|
public static String getDumpFileName(String originalFileName, String... modifications) {
|
||||||
String fileName = DUMP_FILE_OUTPUT_DIRECTORY + '/' + originalFileName + '/';
|
String fileName = DUMP_FILE_OUTPUT_DIRECTORY + '/' + originalFileName + '/';
|
||||||
if (modifications.length == 0) {
|
if (modifications.length == 0) {
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue