diff --git a/assignment-client/src/audio/AudioMixer.cpp b/assignment-client/src/audio/AudioMixer.cpp index aeabd1548b..54f9d962b0 100644 --- a/assignment-client/src/audio/AudioMixer.cpp +++ b/assignment-client/src/audio/AudioMixer.cpp @@ -322,7 +322,8 @@ void AudioMixer::readPendingDatagrams() { PacketType mixerPacketType = packetTypeForPacket(receivedPacket); if (mixerPacketType == PacketTypeMicrophoneAudioNoEcho || mixerPacketType == PacketTypeMicrophoneAudioWithEcho - || mixerPacketType == PacketTypeInjectAudio) { + || mixerPacketType == PacketTypeInjectAudio + || mixerPacketType == PacketTypeSilentAudioFrame) { nodeList->findNodeAndUpdateWithDataFromPacket(receivedPacket); } else { diff --git a/assignment-client/src/audio/AudioMixerClientData.cpp b/assignment-client/src/audio/AudioMixerClientData.cpp index 8907796094..b2da0a0aaa 100644 --- a/assignment-client/src/audio/AudioMixerClientData.cpp +++ b/assignment-client/src/audio/AudioMixerClientData.cpp @@ -41,7 +41,8 @@ AvatarAudioRingBuffer* AudioMixerClientData::getAvatarAudioRingBuffer() const { int AudioMixerClientData::parseData(const QByteArray& packet) { PacketType packetType = packetTypeForPacket(packet); if (packetType == PacketTypeMicrophoneAudioWithEcho - || packetType == PacketTypeMicrophoneAudioNoEcho) { + || packetType == PacketTypeMicrophoneAudioNoEcho + || packetType == PacketTypeSilentAudioFrame) { // grab the AvatarAudioRingBuffer from the vector (or create it if it doesn't exist) AvatarAudioRingBuffer* avatarRingBuffer = getAvatarAudioRingBuffer(); diff --git a/interface/src/Audio.cpp b/interface/src/Audio.cpp index dcb955597e..b684cec46e 100644 --- a/interface/src/Audio.cpp +++ b/interface/src/Audio.cpp @@ -436,7 +436,7 @@ void Audio::handleAudioInput() { } } if (!_noiseGateOpen) { - memset(monoAudioSamples, 0, NETWORK_BUFFER_LENGTH_SAMPLES_PER_CHANNEL); + memset(monoAudioSamples, 0, NETWORK_BUFFER_LENGTH_BYTES_PER_CHANNEL); _lastInputLoudness = 0; } } @@ -450,7 +450,7 @@ void Audio::handleAudioInput() { // our input loudness is 0, since we're muted _lastInputLoudness = 0; } - + // add procedural effects to the appropriate input samples addProceduralSounds(monoAudioSamples, NETWORK_BUFFER_LENGTH_SAMPLES_PER_CHANNEL); @@ -486,7 +486,7 @@ void Audio::handleAudioInput() { PacketType packetType; if (_lastInputLoudness == 0) { - packetType = PacketTypeSilentAudioListener; + packetType = PacketTypeSilentAudioFrame; // we need to indicate how many silent samples this is to the audio mixer monoAudioSamples[0] = NETWORK_BUFFER_LENGTH_SAMPLES_PER_CHANNEL; @@ -515,7 +515,7 @@ void Audio::handleAudioInput() { nodeList->writeDatagram(monoAudioDataPacket, numAudioBytes + leadingBytes, audioMixer); Application::getInstance()->getBandwidthMeter()->outputStream(BandwidthMeter::AUDIO) - .updateValue(NETWORK_BUFFER_LENGTH_BYTES_PER_CHANNEL + leadingBytes); + .updateValue(numAudioBytes + leadingBytes); } delete[] inputAudioSamples; } diff --git a/libraries/audio/src/PositionalAudioRingBuffer.cpp b/libraries/audio/src/PositionalAudioRingBuffer.cpp index 0ac53231a1..11e1a7c2ae 100644 --- a/libraries/audio/src/PositionalAudioRingBuffer.cpp +++ b/libraries/audio/src/PositionalAudioRingBuffer.cpp @@ -45,11 +45,12 @@ int PositionalAudioRingBuffer::parseData(const QByteArray& packet) { packetStream.skipRawData(parsePositionalData(packet.mid(packetStream.device()->pos()))); - if (packetTypeForPacket(packet) == PacketTypeSilentAudioListener) { + if (packetTypeForPacket(packet) == PacketTypeSilentAudioFrame) { // this source had no audio to send us, but this counts as a packet // write silence equivalent to the number of silent samples they just sent us int16_t numSilentSamples; - packetStream >> numSilentSamples; + packetStream.readRawData(reinterpret_cast(&numSilentSamples), sizeof(int16_t)); + addSilentFrame(numSilentSamples); } else { // there is audio data to read diff --git a/libraries/shared/src/PacketHeaders.h b/libraries/shared/src/PacketHeaders.h index 6f87ac8e3f..c6ce6bdd6b 100644 --- a/libraries/shared/src/PacketHeaders.h +++ b/libraries/shared/src/PacketHeaders.h @@ -32,7 +32,7 @@ enum PacketType { PacketTypeMicrophoneAudioNoEcho, PacketTypeMicrophoneAudioWithEcho, PacketTypeBulkAvatarData, - PacketTypeSilentAudioListener, + PacketTypeSilentAudioFrame, PacketTypeEnvironmentData, PacketTypeDomainListRequest, PacketTypeRequestAssignment,