inline audio convertToFloat

This commit is contained in:
Zach Pomerantz 2017-01-20 18:38:21 -05:00
parent df051ff8df
commit 72f8fa49f9
2 changed files with 8 additions and 15 deletions

View file

@ -46,7 +46,6 @@
#include <Transform.h>
#include "PositionalAudioStream.h"
#include "AudioHelpers.h"
#include "AudioClientLogging.h"
#include "AudioLogging.h"
@ -145,6 +144,10 @@ static void channelDownmix(int16_t* source, int16_t* dest, int numSamples) {
}
}
static inline float convertToFloat(int16_t sample) {
return (float)sample * (1 / 32768.0f);
}
AudioClient::AudioClient() :
AbstractAudioInterface(),
_gate(this),
@ -1201,7 +1204,7 @@ bool AudioClient::mixLocalAudioInjectors(float* mixBuffer) {
// stereo gets directly mixed into mixBuffer
float gain = injector->getVolume();
for (int i = 0; i < AudioConstants::NETWORK_FRAME_SAMPLES_STEREO; i++) {
mixBuffer[i] += (float)_localScratchBuffer[i] * (1/32768.0f) * gain;
mixBuffer[i] += convertToFloat(_localScratchBuffer[i]) * gain;
}
} else {
@ -1652,7 +1655,9 @@ qint64 AudioClient::AudioOutputIODevice::readData(char * data, qint64 maxSize) {
AudioRingBuffer::ConstIterator lastPopOutput = _receivedAudioStream.getLastPopOutput();
lastPopOutput.readSamples(scratchBuffer, networkSamplesPopped);
convertToMix(mixBuffer, scratchBuffer, networkSamplesPopped);
for (int i = 0; i < networkSamplesPopped; i++) {
mixBuffer[i] = convertToFloat(scratchBuffer[i]);
}
samplesRequested = networkSamplesPopped;
}

View file

@ -91,16 +91,4 @@ static inline float unpackFloatGainFromByte(uint8_t byte) {
return gain;
}
static inline void convertToMix(float* mixBuffer, const int16_t* scratchBuffer, int numSamples) {
for (int i = 0; i < numSamples; i++) {
mixBuffer[i] = (float)scratchBuffer[i] * (1/32768.0f);
}
}
static inline void convertToScratch(int16_t* scratchBuffer, const float* mixBuffer, int numSamples) {
for (int i = 0; i < numSamples; i++) {
scratchBuffer[i] = (int16_t)(mixBuffer[i] * 32768.0f);
}
}
#endif // hifi_AudioHelpers_h