From 8033f932a65734dc76a5cadbf0cd7f6c00ce7030 Mon Sep 17 00:00:00 2001 From: Ken Cooke Date: Mon, 6 Feb 2017 10:16:25 -0800 Subject: [PATCH] Simulate 1% random packet-loss, for debug/test --- libraries/audio/src/InboundAudioStream.cpp | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/libraries/audio/src/InboundAudioStream.cpp b/libraries/audio/src/InboundAudioStream.cpp index 6f61c59cbd..57e3f4eb36 100644 --- a/libraries/audio/src/InboundAudioStream.cpp +++ b/libraries/audio/src/InboundAudioStream.cpp @@ -129,14 +129,23 @@ int InboundAudioStream::parseData(ReceivedMessage& message) { int propertyBytes = parseStreamProperties(message.getType(), message.readWithoutCopy(message.getBytesLeftToRead()), networkFrames); message.seek(prePropertyPosition + propertyBytes); + // simulate 1% packetloss + if (rand() < (RAND_MAX/100)) { + arrivalInfo._status = SequenceNumberStats::Unreasonable; + qDebug(audio) << "Simulated a lost packet..."; + } + // handle this packet based on its arrival status. switch (arrivalInfo._status) { + case SequenceNumberStats::Unreasonable: { + lostAudioData(1); + break; + } case SequenceNumberStats::Early: { // Packet is early; write droppable silent samples for each of the skipped packets. // NOTE: we assume that each dropped packet contains the same number of samples // as the packet we just received. int packetsDropped = arrivalInfo._seqDiffFromExpected; - //writeFramesForDroppedPackets(packetsDropped * networkFrames); lostAudioData(packetsDropped); // fall through to OnTime case