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; CComPtr<ISpObjectToken> m_voiceToken;
QByteArray _lastSoundByteArray; QByteArray _lastSoundByteArray;
AudioInjectorPointer _lastSoundByteArray; AudioInjectorPointer _lastSoundAudioInjector;
}; };
#endif // hifi_SpeechScriptingInterface_h #endif // hifi_SpeechScriptingInterface_h

View file

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