From b629f674ca657a08f4ddc9e9a94016c5d3a4fac6 Mon Sep 17 00:00:00 2001 From: Cameron Gutman Date: Sat, 19 Jul 2014 17:19:06 -0700 Subject: [PATCH] Improve audio robustness to packet reordering and duplication --- .../limelight/nvstream/av/audio/AudioDepacketizer.java | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/moonlight-common/src/com/limelight/nvstream/av/audio/AudioDepacketizer.java b/moonlight-common/src/com/limelight/nvstream/av/audio/AudioDepacketizer.java index 9c421c29..a9c9144a 100644 --- a/moonlight-common/src/com/limelight/nvstream/av/audio/AudioDepacketizer.java +++ b/moonlight-common/src/com/limelight/nvstream/av/audio/AudioDepacketizer.java @@ -90,7 +90,15 @@ public class AudioDepacketizer { (short)(lastSequenceNumber + 1) != seq) { LimeLog.warning("Received OOS audio data (expected "+(lastSequenceNumber + 1)+", got "+seq+")"); - decodeData(null, 0, 0); + + // Only tell the decoder if we got packets ahead of what we expected + // If the packet is behind the current sequence number, drop it + if (seq > (short)(lastSequenceNumber + 1)) { + decodeData(null, 0, 0); + } + else { + return; + } } lastSequenceNumber = seq;