Skip to content

Commit 7ffd1a5

Browse files
committed
VoIP delay improvements
1 parent a3a493e commit 7ffd1a5

File tree

2 files changed

+13
-6
lines changed

2 files changed

+13
-6
lines changed

Spixi/Platforms/Android/SAudioPlayer.cs

Lines changed: 11 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -276,12 +276,15 @@ public void onDecodedData(short[] data)
276276

277277
var catchup = playbackCatchupController.Update(queuedSeconds);
278278
bool shouldDrop = false;
279+
279280
switch (catchup.Type)
280281
{
281282
case PlaybackCatchupType.Drop:
282283
if (Build.VERSION.SdkInt >= BuildVersionCodes.M)
283284
{
284-
audioPlayer.PlaybackParams.SetSpeed(catchup.Speed);
285+
var pp = audioPlayer.PlaybackParams;
286+
pp.SetSpeed(catchup.Speed);
287+
audioPlayer.PlaybackParams = pp;
285288
}
286289
if (Random.Shared.NextDouble() < 0.10)
287290
{
@@ -293,9 +296,11 @@ public void onDecodedData(short[] data)
293296
case PlaybackCatchupType.SpeedUp:
294297
if (Build.VERSION.SdkInt >= BuildVersionCodes.M)
295298
{
296-
audioPlayer.PlaybackParams.SetSpeed(catchup.Speed);
299+
var pp = audioPlayer.PlaybackParams;
300+
pp.SetSpeed(catchup.Speed);
301+
audioPlayer.PlaybackParams = pp;
297302
}
298-
else if (1 + Random.Shared.NextDouble() < catchup.Speed)
303+
else if (Random.Shared.NextDouble() < catchup.Speed - 1.0)
299304
{
300305
shouldDrop = true;
301306
}
@@ -304,7 +309,9 @@ public void onDecodedData(short[] data)
304309
case PlaybackCatchupType.Normal:
305310
if (Build.VERSION.SdkInt >= BuildVersionCodes.M)
306311
{
307-
audioPlayer.PlaybackParams.SetSpeed(1.0f);
312+
var pp = audioPlayer.PlaybackParams;
313+
pp.SetSpeed(1.0f);
314+
audioPlayer.PlaybackParams = pp;
308315
}
309316
break;
310317
}

Spixi/Platforms/Windows/SAudioPlayer.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -164,7 +164,7 @@ public void onDecodedData(byte[] data)
164164
{
165165
case PlaybackCatchupType.Drop:
166166
{
167-
if (1 + Random.Shared.NextDouble() < catchup.Speed + 0.10)
167+
if (Random.Shared.NextDouble() < catchup.Speed - 1.0 + 0.10)
168168
{
169169
Logging.warn($"VoIP Dropping frame, avg {playbackCatchupController.GetAverageLatency() * 1000:F0}ms");
170170
shouldDrop = true;
@@ -173,7 +173,7 @@ public void onDecodedData(byte[] data)
173173
break;
174174
case PlaybackCatchupType.SpeedUp:
175175
{
176-
if (1 + Random.Shared.NextDouble() < catchup.Speed)
176+
if (Random.Shared.NextDouble() < catchup.Speed - 1.0)
177177
{
178178
Logging.warn($"VoIP Dropping frame, avg {playbackCatchupController.GetAverageLatency() * 1000:F0}ms");
179179
shouldDrop = true;

0 commit comments

Comments
 (0)