Add support for multiple mid-track tempo changes

PiperOrigin-RevId: 466018462
This commit is contained in:
hmzh 2022-08-08 12:35:28 +00:00 committed by Marc Baechinger
parent 4b4a9fe022
commit 22b00d0e00
6 changed files with 252 additions and 28 deletions

View File

@ -40,7 +40,7 @@ track 0:
sample 7:
time = 500000
flags = 1
data = length 3, hash FFFED733
data = length 3, hash FFFE9B23
sample 8:
time = 500000
flags = 1
@ -64,7 +64,7 @@ track 0:
sample 13:
time = 1000000
flags = 1
data = length 3, hash FFFED733
data = length 3, hash FFFE9B23
sample 14:
time = 1000000
flags = 1
@ -88,7 +88,7 @@ track 0:
sample 19:
time = 1500000
flags = 1
data = length 3, hash FFFED80C
data = length 3, hash FFFE9BFC
sample 20:
time = 1500000
flags = 1
@ -112,7 +112,7 @@ track 0:
sample 25:
time = 2000000
flags = 1
data = length 3, hash FFFED80C
data = length 3, hash FFFE9BFC
sample 26:
time = 2000000
flags = 1
@ -136,7 +136,7 @@ track 0:
sample 31:
time = 2500000
flags = 1
data = length 3, hash FFFED84A
data = length 3, hash FFFE9C3A
sample 32:
time = 2500000
flags = 1
@ -160,7 +160,7 @@ track 0:
sample 37:
time = 3000000
flags = 1
data = length 3, hash FFFED84A
data = length 3, hash FFFE9C3A
sample 38:
time = 3000000
flags = 1
@ -204,7 +204,7 @@ track 0:
sample 48:
time = 4000000
flags = 1
data = length 3, hash FFFED80C
data = length 3, hash FFFE9BFC
sample 49:
time = 4000000
flags = 1
@ -228,7 +228,7 @@ track 0:
sample 54:
time = 4500000
flags = 1
data = length 3, hash FFFED7CE
data = length 3, hash FFFE9BBE
sample 55:
time = 4500000
flags = 1
@ -252,7 +252,7 @@ track 0:
sample 60:
time = 5000000
flags = 1
data = length 3, hash FFFED7CE
data = length 3, hash FFFE9BBE
sample 61:
time = 5000000
flags = 1
@ -268,7 +268,7 @@ track 0:
sample 64:
time = 5250000
flags = 1
data = length 3, hash FFFED7AF
data = length 3, hash FFFE9B9F
sample 65:
time = 5350000
flags = 1
@ -292,7 +292,7 @@ track 0:
sample 70:
time = 5750000
flags = 1
data = length 3, hash FFFED7AF
data = length 3, hash FFFE9B9F
sample 71:
time = 5850000
flags = 1
@ -316,7 +316,7 @@ track 0:
sample 76:
time = 6250000
flags = 1
data = length 3, hash FFFED771
data = length 3, hash FFFE9B61
sample 77:
time = 6350000
flags = 1
@ -340,7 +340,7 @@ track 0:
sample 82:
time = 6750000
flags = 1
data = length 3, hash FFFED771
data = length 3, hash FFFE9B61
sample 83:
time = 6850000
flags = 1
@ -392,5 +392,5 @@ track 0:
sample 95:
time = 8000000
flags = 1
data = length 3, hash FFFED733
data = length 3, hash FFFE9B23
tracksEnded = true

View File

@ -40,7 +40,7 @@ track 0:
sample 7:
time = 500000
flags = 1
data = length 3, hash FFFED733
data = length 3, hash FFFE9B23
sample 8:
time = 500000
flags = 1
@ -64,7 +64,7 @@ track 0:
sample 13:
time = 1000000
flags = 1
data = length 3, hash FFFED733
data = length 3, hash FFFE9B23
sample 14:
time = 1000000
flags = 1
@ -88,7 +88,7 @@ track 0:
sample 19:
time = 1500000
flags = 1
data = length 3, hash FFFED80C
data = length 3, hash FFFE9BFC
sample 20:
time = 1500000
flags = 1
@ -112,7 +112,7 @@ track 0:
sample 25:
time = 2000000
flags = 1
data = length 3, hash FFFED80C
data = length 3, hash FFFE9BFC
sample 26:
time = 2000000
flags = 1
@ -136,7 +136,7 @@ track 0:
sample 31:
time = 2500000
flags = 1
data = length 3, hash FFFED84A
data = length 3, hash FFFE9C3A
sample 32:
time = 2500000
flags = 1
@ -160,7 +160,7 @@ track 0:
sample 37:
time = 3000000
flags = 1
data = length 3, hash FFFED84A
data = length 3, hash FFFE9C3A
sample 38:
time = 3000000
flags = 1
@ -204,7 +204,7 @@ track 0:
sample 48:
time = 4000000
flags = 1
data = length 3, hash FFFED80C
data = length 3, hash FFFE9BFC
sample 49:
time = 4000000
flags = 1
@ -228,7 +228,7 @@ track 0:
sample 54:
time = 4500000
flags = 1
data = length 3, hash FFFED7CE
data = length 3, hash FFFE9BBE
sample 55:
time = 4500000
flags = 1
@ -252,7 +252,7 @@ track 0:
sample 60:
time = 5000000
flags = 1
data = length 3, hash FFFED7CE
data = length 3, hash FFFE9BBE
sample 61:
time = 5000000
flags = 1
@ -268,7 +268,7 @@ track 0:
sample 64:
time = 5250000
flags = 1
data = length 3, hash FFFED7AF
data = length 3, hash FFFE9B9F
sample 65:
time = 5350000
flags = 1
@ -292,7 +292,7 @@ track 0:
sample 70:
time = 5750000
flags = 1
data = length 3, hash FFFED7AF
data = length 3, hash FFFE9B9F
sample 71:
time = 5850000
flags = 1
@ -316,7 +316,7 @@ track 0:
sample 76:
time = 6250000
flags = 1
data = length 3, hash FFFED771
data = length 3, hash FFFE9B61
sample 77:
time = 6350000
flags = 1
@ -340,7 +340,7 @@ track 0:
sample 82:
time = 6750000
flags = 1
data = length 3, hash FFFED771
data = length 3, hash FFFE9B61
sample 83:
time = 6850000
flags = 1
@ -392,5 +392,5 @@ track 0:
sample 95:
time = 8000000
flags = 1
data = length 3, hash FFFED733
data = length 3, hash FFFE9B23
tracksEnded = true

View File

@ -0,0 +1,88 @@
seekMap:
isSeekable = true
duration = UNSET TIME
getPosition(0) = [[timeUs=0, position=14]]
getPosition(1) = [[timeUs=1, position=14]]
numberOfTracks = 1
track 0:
total output bytes = 43
sample count = 19
format 0:
sampleMimeType = audio/midi
sample 0:
time = 0
flags = 1
data = length 3, hash 70FB
sample 1:
time = 0
flags = 1
data = length 3, hash FFFEDCE7
sample 2:
time = 0
flags = 1
data = length 7, hash C95FA238
sample 3:
time = 0
flags = 1
data = length 6, hash 37A83E76
sample 4:
time = 100000
flags = 1
data = length 0, hash 1
sample 5:
time = 200000
flags = 1
data = length 0, hash 1
sample 6:
time = 300000
flags = 1
data = length 0, hash 1
sample 7:
time = 400000
flags = 1
data = length 0, hash 1
sample 8:
time = 500000
flags = 1
data = length 6, hash 37A84514
sample 9:
time = 600000
flags = 1
data = length 0, hash 1
sample 10:
time = 700000
flags = 1
data = length 0, hash 1
sample 11:
time = 800000
flags = 1
data = length 0, hash 1
sample 12:
time = 833333
flags = 1
data = length 6, hash 37A83493
sample 13:
time = 933333
flags = 1
data = length 0, hash 1
sample 14:
time = 1033333
flags = 1
data = length 0, hash 1
sample 15:
time = 1083333
flags = 1
data = length 6, hash 37A83CA6
sample 16:
time = 1183333
flags = 1
data = length 0, hash 1
sample 17:
time = 1283333
flags = 1
data = length 3, hash FFFEA058
sample 18:
time = 1283333
flags = 1
data = length 3, hash FFFF4CA9
tracksEnded = true

View File

@ -0,0 +1,136 @@
seekMap:
isSeekable = true
duration = UNSET TIME
getPosition(0) = [[timeUs=0, position=14]]
getPosition(1) = [[timeUs=1, position=14]]
numberOfTracks = 1
track 0:
total output bytes = 78
sample count = 31
format 0:
sampleMimeType = audio/midi
sample 0:
time = 0
flags = 1
data = length 3, hash 70FB
sample 1:
time = 0
flags = 1
data = length 3, hash FFFF5A77
sample 2:
time = 0
flags = 1
data = length 7, hash C95FA238
sample 3:
time = 0
flags = 1
data = length 3, hash 70FB
sample 4:
time = 0
flags = 1
data = length 6, hash 37A83E76
sample 5:
time = 0
flags = 1
data = length 3, hash FFFF4D46
sample 6:
time = 0
flags = 1
data = length 3, hash FFFF4D0D
sample 7:
time = 0
flags = 1
data = length 3, hash FFFF4DA4
sample 8:
time = 0
flags = 1
data = length 3, hash 40
sample 9:
time = 0
flags = 1
data = length 2, hash FFFFFC20
sample 10:
time = 0
flags = 1
data = length 3, hash FFFEDCE7
sample 11:
time = 100000
flags = 1
data = length 0, hash 1
sample 12:
time = 200000
flags = 1
data = length 0, hash 1
sample 13:
time = 300000
flags = 1
data = length 0, hash 1
sample 14:
time = 400000
flags = 1
data = length 0, hash 1
sample 15:
time = 500000
flags = 1
data = length 6, hash 37A84514
sample 16:
time = 500000
flags = 1
data = length 3, hash FFFEDD63
sample 17:
time = 600000
flags = 1
data = length 0, hash 1
sample 18:
time = 700000
flags = 1
data = length 0, hash 1
sample 19:
time = 800000
flags = 1
data = length 0, hash 1
sample 20:
time = 833333
flags = 1
data = length 3, hash FFFEA0D4
sample 21:
time = 833333
flags = 1
data = length 6, hash 37A83493
sample 22:
time = 833333
flags = 1
data = length 3, hash FFFEDDC0
sample 23:
time = 933333
flags = 1
data = length 0, hash 1
sample 24:
time = 1033333
flags = 1
data = length 0, hash 1
sample 25:
time = 1083333
flags = 1
data = length 6, hash 37A83CA6
sample 26:
time = 1083333
flags = 1
data = length 3, hash FFFEA131
sample 27:
time = 1083333
flags = 1
data = length 3, hash FFFEDE1D
sample 28:
time = 1183333
flags = 1
data = length 0, hash 1
sample 29:
time = 1283333
flags = 1
data = length 3, hash FFFEA058
sample 30:
time = 1283333
flags = 1
data = length 3, hash FFFEA18E
tracksEnded = true