Prevent overflows; still not working

This commit is contained in:
Zach Fox 2018-10-12 11:19:52 -07:00
parent daeedc6ef1
commit 53226e7924
2 changed files with 8 additions and 3 deletions

View file

@ -77,7 +77,7 @@ private:
CComPtr<ISpObjectToken> m_voiceToken;
QByteArray _lastSoundByteArray;
AudioInjectorPointer _lastSoundByteArray;
AudioInjectorPointer _lastSoundAudioInjector;
};
#endif // hifi_SpeechScriptingInterface_h

View file

@ -1167,7 +1167,7 @@ void AudioClient::processAudioAndAddToRingBuffer(QByteArray& inputByteArray, con
numNetworkSamples, channelCount, _desiredInputFormat.channelCount());
}
int bytesInInputRingBuffer = _inputRingBuffer.samplesAvailable() * AudioConstants::SAMPLE_SIZE;
float msecsInInputRingBuffer = bytesInInputRingBuffer / (float)(_inputFormat.bytesForDuration(USECS_PER_MSEC));
float msecsInInputRingBuffer = bytesInInputRingBuffer / (float)(bytesForDuration);
_stats.updateInputMsUnplayed(msecsInInputRingBuffer);
QByteArray audioBuffer(reinterpret_cast<char*>(networkAudioSamples), numNetworkBytes);
@ -1204,7 +1204,12 @@ void AudioClient::handleRecordedAudioInput(const QByteArray& audio) {
void AudioClient::handleTTSAudioInput(const QByteArray& audio) {
QByteArray audioBuffer(audio);
processAudioAndAddToRingBuffer(audioBuffer, 1, 48);
while (audioBuffer.size() > 0) {
QByteArray part;
part.append(audioBuffer.data(), AudioConstants::NETWORK_FRAME_SAMPLES_PER_CHANNEL);
audioBuffer.remove(0, AudioConstants::NETWORK_FRAME_SAMPLES_PER_CHANNEL);
processAudioAndAddToRingBuffer(part, 1, 48);
}
}
void AudioClient::prepareLocalAudioInjectors(std::unique_ptr<Lock> localAudioLock) {