mirror of
https://github.com/HifiExperiments/overte.git
synced 2025-07-16 01:07:23 +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 <Transform.h>
|
||||||
|
|
||||||
#include "PositionalAudioStream.h"
|
#include "PositionalAudioStream.h"
|
||||||
#include "AudioHelpers.h"
|
|
||||||
#include "AudioClientLogging.h"
|
#include "AudioClientLogging.h"
|
||||||
#include "AudioLogging.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() :
|
AudioClient::AudioClient() :
|
||||||
AbstractAudioInterface(),
|
AbstractAudioInterface(),
|
||||||
_gate(this),
|
_gate(this),
|
||||||
|
@ -1201,7 +1204,7 @@ bool AudioClient::mixLocalAudioInjectors(float* mixBuffer) {
|
||||||
// stereo gets directly mixed into mixBuffer
|
// stereo gets directly mixed into mixBuffer
|
||||||
float gain = injector->getVolume();
|
float gain = injector->getVolume();
|
||||||
for (int i = 0; i < AudioConstants::NETWORK_FRAME_SAMPLES_STEREO; i++) {
|
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 {
|
} else {
|
||||||
|
@ -1652,7 +1655,9 @@ qint64 AudioClient::AudioOutputIODevice::readData(char * data, qint64 maxSize) {
|
||||||
AudioRingBuffer::ConstIterator lastPopOutput = _receivedAudioStream.getLastPopOutput();
|
AudioRingBuffer::ConstIterator lastPopOutput = _receivedAudioStream.getLastPopOutput();
|
||||||
lastPopOutput.readSamples(scratchBuffer, networkSamplesPopped);
|
lastPopOutput.readSamples(scratchBuffer, networkSamplesPopped);
|
||||||
|
|
||||||
convertToMix(mixBuffer, scratchBuffer, networkSamplesPopped);
|
for (int i = 0; i < networkSamplesPopped; i++) {
|
||||||
|
mixBuffer[i] = convertToFloat(scratchBuffer[i]);
|
||||||
|
}
|
||||||
|
|
||||||
samplesRequested = networkSamplesPopped;
|
samplesRequested = networkSamplesPopped;
|
||||||
}
|
}
|
||||||
|
|
|
@ -91,16 +91,4 @@ static inline float unpackFloatGainFromByte(uint8_t byte) {
|
||||||
return gain;
|
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
|
#endif // hifi_AudioHelpers_h
|
||||||
|
|
Loading…
Reference in a new issue