mirror of
https://github.com/overte-org/overte.git
synced 2025-08-06 22:39:18 +02:00
Fix for calculateDeviceToNetworkInputRatio() which was completely broken.
Running the audio back-end at 44.1k now works correctly.
This commit is contained in:
parent
87d5ec2437
commit
3583bdecbb
2 changed files with 2 additions and 12 deletions
|
@ -748,12 +748,11 @@ void AudioClient::handleLocalEchoAndReverb(QByteArray& inputByteArray) {
|
||||||
}
|
}
|
||||||
|
|
||||||
void AudioClient::handleAudioInput() {
|
void AudioClient::handleAudioInput() {
|
||||||
const float inputToNetworkInputRatio = calculateDeviceToNetworkInputRatio();
|
// input samples required to produce exactly NETWORK_FRAME_SAMPLES of output
|
||||||
const int inputSamplesRequired = (int)((float)AudioConstants::NETWORK_FRAME_SAMPLES_PER_CHANNEL * inputToNetworkInputRatio);
|
const int inputSamplesRequired = _inputFormat.channelCount() * _inputToNetworkResampler->getMinInput(AudioConstants::NETWORK_FRAME_SAMPLES_PER_CHANNEL);
|
||||||
const auto inputAudioSamples = std::unique_ptr<int16_t[]>(new int16_t[inputSamplesRequired]);
|
const auto inputAudioSamples = std::unique_ptr<int16_t[]>(new int16_t[inputSamplesRequired]);
|
||||||
QByteArray inputByteArray = _inputDevice->readAll();
|
QByteArray inputByteArray = _inputDevice->readAll();
|
||||||
|
|
||||||
|
|
||||||
handleLocalEchoAndReverb(inputByteArray);
|
handleLocalEchoAndReverb(inputByteArray);
|
||||||
|
|
||||||
_inputRingBuffer.writeData(inputByteArray.data(), inputByteArray.size());
|
_inputRingBuffer.writeData(inputByteArray.data(), inputByteArray.size());
|
||||||
|
@ -1261,14 +1260,6 @@ int AudioClient::calculateNumberOfInputCallbackBytes(const QAudioFormat& format)
|
||||||
return numInputCallbackBytes;
|
return numInputCallbackBytes;
|
||||||
}
|
}
|
||||||
|
|
||||||
float AudioClient::calculateDeviceToNetworkInputRatio() const {
|
|
||||||
float inputToNetworkInputRatio = (int)((_numInputCallbackBytes
|
|
||||||
* CALLBACK_ACCELERATOR_RATIO
|
|
||||||
/ AudioConstants::NETWORK_FRAME_BYTES_PER_CHANNEL) + 0.5f);
|
|
||||||
|
|
||||||
return inputToNetworkInputRatio;
|
|
||||||
}
|
|
||||||
|
|
||||||
int AudioClient::calculateNumberOfFrameSamples(int numBytes) const {
|
int AudioClient::calculateNumberOfFrameSamples(int numBytes) const {
|
||||||
int frameSamples = (int)(numBytes * CALLBACK_ACCELERATOR_RATIO + 0.5f) / sizeof(int16_t);
|
int frameSamples = (int)(numBytes * CALLBACK_ACCELERATOR_RATIO + 0.5f) / sizeof(int16_t);
|
||||||
return frameSamples;
|
return frameSamples;
|
||||||
|
|
|
@ -298,7 +298,6 @@ private:
|
||||||
// Callback acceleration dependent calculations
|
// Callback acceleration dependent calculations
|
||||||
int calculateNumberOfInputCallbackBytes(const QAudioFormat& format) const;
|
int calculateNumberOfInputCallbackBytes(const QAudioFormat& format) const;
|
||||||
int calculateNumberOfFrameSamples(int numBytes) const;
|
int calculateNumberOfFrameSamples(int numBytes) const;
|
||||||
float calculateDeviceToNetworkInputRatio() const;
|
|
||||||
|
|
||||||
quint16 _outgoingAvatarAudioSequenceNumber;
|
quint16 _outgoingAvatarAudioSequenceNumber;
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue