From 56e0e3882d51cf34672eedd080ad85b84ced36d1 Mon Sep 17 00:00:00 2001 From: Stephen Birarda Date: Wed, 29 May 2013 11:29:38 -0700 Subject: [PATCH] kill agents who send NaN bearings --- audio-mixer/src/main.cpp | 6 +++++- libraries/audio/src/AudioRingBuffer.cpp | 5 ++--- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/audio-mixer/src/main.cpp b/audio-mixer/src/main.cpp index 3a7aa7eb63..0b4d21ab6e 100644 --- a/audio-mixer/src/main.cpp +++ b/audio-mixer/src/main.cpp @@ -220,7 +220,6 @@ int main(int argc, const char* argv[]) { bearingRelativeAngleToSource *= (M_PI / 180); float sinRatio = fabsf(sinf(bearingRelativeAngleToSource)); - printf("BRA: %f, SR: %f\n", bearingRelativeAngleToSource, sinRatio); numSamplesDelay = PHASE_DELAY_AT_90 * sinRatio; weakChannelAmplitudeRatio = 1 - (PHASE_AMPLITUDE_RATIO_AT_90 * sinRatio); } @@ -291,6 +290,11 @@ int main(int argc, const char* argv[]) { } agentList->updateAgentWithData(agentAddress, packetData, receivedBytes); + + if (std::isnan(((AudioRingBuffer *)avatarAgent->getLinkedData())->getBearing())) { + // kill off this agent - temporary solution to mixer crash on mac sleep + avatarAgent->setAlive(false); + } } else if (packetData[0] == PACKET_HEADER_INJECT_AUDIO) { Agent* matchingInjector = NULL; diff --git a/libraries/audio/src/AudioRingBuffer.cpp b/libraries/audio/src/AudioRingBuffer.cpp index f397c3210b..006dd825bf 100644 --- a/libraries/audio/src/AudioRingBuffer.cpp +++ b/libraries/audio/src/AudioRingBuffer.cpp @@ -59,7 +59,6 @@ int AudioRingBuffer::parseData(unsigned char* sourceBuffer, int numBytes) { // if this agent sent us a NaN bearing then don't consider this good audio and bail if (std::isnan(_bearing)) { - printf("Got a nan bearing for this agent\n"); _endOfLastWrite = _nextOutput = _buffer; _started = false; return 0; @@ -69,8 +68,8 @@ int AudioRingBuffer::parseData(unsigned char* sourceBuffer, int numBytes) { // correct the bearing _bearing = _bearing > 0 - ? _bearing - AGENT_LOOPBACK_MODIFIER - : _bearing + AGENT_LOOPBACK_MODIFIER; + ? _bearing - AGENT_LOOPBACK_MODIFIER + : _bearing + AGENT_LOOPBACK_MODIFIER; } else { _shouldLoopbackForAgent = false; }