From 4de8e7a3c861fc21e15b903a5b732656d11be64a Mon Sep 17 00:00:00 2001 From: Ryan Huffman Date: Wed, 27 Jan 2016 13:47:09 -0800 Subject: [PATCH 1/3] Add audio resizing in injector --- libraries/audio/src/AudioInjector.cpp | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/libraries/audio/src/AudioInjector.cpp b/libraries/audio/src/AudioInjector.cpp index 661509c3d2..d863051b81 100644 --- a/libraries/audio/src/AudioInjector.cpp +++ b/libraries/audio/src/AudioInjector.cpp @@ -181,6 +181,15 @@ int64_t AudioInjector::injectNextFrame() { // make sure we actually have samples downloaded to inject if (_audioData.size()) { + auto sampleSize = (_options.stereo ? 2 : 1) * sizeof(AudioConstants::AudioSample); + auto numSamples = static_cast(_audioData.size() / sampleSize); + auto targetSize = numSamples * sampleSize; + if (targetSize != _audioData.size()) { + qDebug() << "Resizing audio that doesn't end at multiple of sample size, resizing from " + << _audioData.size() << " to " << targetSize; + _audioData.resize(targetSize); + } + _outgoingSequenceNumber = 0; _nextFrame = 0; From 7e5eec55da1db5ca64daa7c152e195a231f9b6d9 Mon Sep 17 00:00:00 2001 From: Ryan Huffman Date: Wed, 27 Jan 2016 13:47:32 -0800 Subject: [PATCH 2/3] Fix non-looped injected audio possibly looping --- libraries/audio/src/AudioInjector.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/libraries/audio/src/AudioInjector.cpp b/libraries/audio/src/AudioInjector.cpp index d863051b81..ab0aa9d5c7 100644 --- a/libraries/audio/src/AudioInjector.cpp +++ b/libraries/audio/src/AudioInjector.cpp @@ -281,7 +281,7 @@ int64_t AudioInjector::injectNextFrame() { _currentPacket->write(_audioData.data() + _currentSendOffset, bytesToCopy); _currentSendOffset += bytesToCopy; totalBytesLeftToCopy -= bytesToCopy; - if (_currentSendOffset >= _audioData.size()) { + if (_options.loop && _currentSendOffset >= _audioData.size()) { _currentSendOffset = 0; } } From 2ec201b85e4a6de5b985b9e689d669ba18b918ec Mon Sep 17 00:00:00 2001 From: Ryan Huffman Date: Wed, 27 Jan 2016 14:13:23 -0800 Subject: [PATCH 3/3] Fix conversion warning --- libraries/audio/src/AudioInjector.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/libraries/audio/src/AudioInjector.cpp b/libraries/audio/src/AudioInjector.cpp index ab0aa9d5c7..217b8b0d53 100644 --- a/libraries/audio/src/AudioInjector.cpp +++ b/libraries/audio/src/AudioInjector.cpp @@ -181,7 +181,7 @@ int64_t AudioInjector::injectNextFrame() { // make sure we actually have samples downloaded to inject if (_audioData.size()) { - auto sampleSize = (_options.stereo ? 2 : 1) * sizeof(AudioConstants::AudioSample); + int sampleSize = (_options.stereo ? 2 : 1) * sizeof(AudioConstants::AudioSample); auto numSamples = static_cast(_audioData.size() / sampleSize); auto targetSize = numSamples * sampleSize; if (targetSize != _audioData.size()) {