mirror of
https://github.com/overte-org/overte.git
synced 2025-04-20 03:44:02 +02:00
inline audio convertToFloat
This commit is contained in:
parent
df051ff8df
commit
72f8fa49f9
2 changed files with 8 additions and 15 deletions
|
@ -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;
|
||||
}
|
||||
|
|
|
@ -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
|
||||
|
|
Loading…
Reference in a new issue