From 87e5579e527f95f67854ed4dac3ba2b370e5b415 Mon Sep 17 00:00:00 2001 From: Stephen Birarda <commit@birarda.com> Date: Thu, 19 Dec 2013 15:51:14 -0800 Subject: [PATCH] reinstate delete for starved but started audio ring buffers --- assignment-client/src/audio/AudioMixerClientData.cpp | 9 ++++----- libraries/audio/src/AudioRingBuffer.h | 2 ++ 2 files changed, 6 insertions(+), 5 deletions(-) diff --git a/assignment-client/src/audio/AudioMixerClientData.cpp b/assignment-client/src/audio/AudioMixerClientData.cpp index 4827fbc918..fa171f252d 100644 --- a/assignment-client/src/audio/AudioMixerClientData.cpp +++ b/assignment-client/src/audio/AudioMixerClientData.cpp @@ -94,11 +94,10 @@ void AudioMixerClientData::pushBuffersAfterFrameSend() { audioBuffer->shiftReadPosition(NETWORK_BUFFER_LENGTH_SAMPLES_PER_CHANNEL); audioBuffer->setWillBeAddedToMix(false); - } else if (audioBuffer->isStarved()) { - // this was previously the kill for injected audio from a client - // fix when that is added back - // delete audioBuffer; - // _ringBuffers.erase(_ringBuffers.begin() + i); + } else if (audioBuffer->hasStarted() && audioBuffer->isStarved()) { + // this is an empty audio buffer that has starved, safe to delete + delete audioBuffer; + _ringBuffers.erase(_ringBuffers.begin() + i); } } } diff --git a/libraries/audio/src/AudioRingBuffer.h b/libraries/audio/src/AudioRingBuffer.h index 4860b47af2..0bcd127a2e 100644 --- a/libraries/audio/src/AudioRingBuffer.h +++ b/libraries/audio/src/AudioRingBuffer.h @@ -62,6 +62,8 @@ public: bool isStarved() const { return _isStarved; } void setIsStarved(bool isStarved) { _isStarved = isStarved; } + + bool hasStarted() const { return _hasStarted; } protected: // disallow copying of AudioRingBuffer objects AudioRingBuffer(const AudioRingBuffer&);