Fix negative position for clipped media

With this CL:
- The large timestamp offset added by ExoPlayer so that decoders
don't see any negative timestamps is removed before passing the
timestamp to the AudioGraph.
- Clipped media timestamps are offset by the clipping start position
before being passed to the AudioGraph.
- The offset added to the audio buffer timestamps is removed when
computing the audio sink position, to convert them back to the
timestamps passed by the player.

PiperOrigin-RevId: 619225990
This commit is contained in:
kimvde 2024-03-26 10:01:55 -07:00 committed by Copybara-Service
parent 8d65b75185
commit 98dac54816
4 changed files with 70 additions and 40 deletions

View file

@ -5,47 +5,47 @@ AudioSink:
channelCount = 1
sampleRate = 44100
buffer #0:
time = 1000000000000
time = 0
data = -264191391
buffer #1:
time = 1000000100000
time = 100000
data = -1920445439
buffer #2:
time = 1000000200000
time = 200000
data = 951798465
buffer #3:
time = 1000000300000
time = 300000
data = 350069123
buffer #4:
time = 1000000400000
time = 400000
data = -789481696
buffer #5:
time = 1000000500000
time = 500000
data = -328820582
buffer #6:
time = 1000000600000
time = 600000
data = -1158684771
buffer #7:
time = 1000000700000
time = 700000
data = 1361756392
buffer #8:
time = 1000000800000
time = 800000
data = 2024513349
buffer #9:
time = 1000000900000
time = 900000
data = -651017745
buffer #10:
time = 1000001000000
time = 1000000
data = -2109674252
buffer #11:
time = 1000001100000
time = 1100000
data = 447771075
buffer #12:
time = 1000001200000
time = 1200000
data = 1281436254
buffer #13:
time = 1000001300000
time = 1300000
data = 868669345
buffer #14:
time = 1000001348616
time = 1348616
data = 2450

View file

@ -5,32 +5,32 @@ AudioSink:
channelCount = 1
sampleRate = 44100
buffer #0:
time = 1000000000000
time = 0
data = 1365664853
buffer #1:
time = 1000000100000
time = 100000
data = -1466730976
buffer #2:
time = 1000000200000
time = 200000
data = 1178728837
buffer #3:
time = 1000000300000
time = 300000
data = -216459624
buffer #4:
time = 1000000400000
time = 400000
data = 1990341112
buffer #5:
time = 1000000500000
time = 500000
data = 1561236782
buffer #6:
time = 1000000600000
time = 600000
data = 1146352887
buffer #7:
time = 1000000700000
time = 700000
data = 1061204212
buffer #8:
time = 1000000800000
time = 800000
data = 840187559
buffer #9:
time = 1000000900000
time = 900000
data = -29240395

View file

@ -0,0 +1,30 @@
AudioSink:
buffer count = 8
config:
pcmEncoding = 2
channelCount = 1
sampleRate = 44100
buffer #0:
time = 0
data = 793455796
buffer #1:
time = 100000
data = -268235582
buffer #2:
time = 200000
data = -8136122
buffer #3:
time = 300000
data = 1750866613
buffer #4:
time = 400000
data = -1100753636
buffer #5:
time = 500000
data = 458152960
buffer #6:
time = 600000
data = -2129352270
buffer #7:
time = 700000
data = 961

View file

@ -5,47 +5,47 @@ AudioSink:
channelCount = 1
sampleRate = 44100
buffer #0:
time = 1000000000000
time = 0
data = -85819864
buffer #1:
time = 1000000100000
time = 100000
data = 566487491
buffer #2:
time = 1000000200000
time = 200000
data = -1256531710
buffer #3:
time = 1000000300000
time = 300000
data = 793455796
buffer #4:
time = 1000000400000
time = 400000
data = -268235582
buffer #5:
time = 1000000500000
time = 500000
data = -8136122
buffer #6:
time = 1000000600000
time = 600000
data = 1750866613
buffer #7:
time = 1000000700000
time = 700000
data = -1100753636
buffer #8:
time = 1000000800000
time = 800000
data = 507833230
buffer #9:
time = 1000000900000
time = 900000
data = 1472467506
buffer #10:
time = 1000001000000
time = 1000000
data = 1785344804
buffer #11:
time = 1000001100000
time = 1100000
data = 458152960
buffer #12:
time = 1000001200000
time = 1200000
data = -2129352270
buffer #13:
time = 1000001300000
time = 1300000
data = 1572219123
buffer #14:
time = 1000001348616
time = 1348616
data = -2263