diff --git a/libraries/audio-client/src/AudioClient.cpp b/libraries/audio-client/src/AudioClient.cpp index bb576b695f..0a971c9b55 100644 --- a/libraries/audio-client/src/AudioClient.cpp +++ b/libraries/audio-client/src/AudioClient.cpp @@ -418,15 +418,15 @@ soxr_error_t possibleResampling(soxr_t resampler, numSourceSamples, sourceAudioFormat, destinationAudioFormat); - unsigned int odone = 0; + size_t numDestinationSamplesActual = 0; resampleError = soxr_process(resampler, channelConversionSamples, numChannelCoversionSamples, NULL, - destinationSamples, numDestinationSamples, &odone); + destinationSamples, numDestinationSamples, &numDestinationSamplesActual); // return silence instead of playing garbage samples - if (odone < numDestinationSamples) { - unsigned int nBytes = (numDestinationSamples - odone) * destinationAudioFormat.channelCount() * sizeof(int16_t); - memset(&destinationSamples[odone * destinationAudioFormat.channelCount()], 0, nBytes); + if (numDestinationSamplesActual < numDestinationSamples) { + unsigned int nBytes = (numDestinationSamples - numDestinationSamplesActual) * destinationAudioFormat.channelCount() * sizeof(int16_t); + memset(&destinationSamples[numDestinationSamplesActual * destinationAudioFormat.channelCount()], 0, nBytes); qCDebug(audioclient) << "SOXR: padded with" << nBytes << "bytes of silence"; } @@ -441,15 +441,15 @@ soxr_error_t possibleResampling(soxr_t resampler, numAdjustedDestinationSamples /= 2; } - unsigned int odone = 0; + unsigned int numAdjustedDestinationSamplesActual = 0; resampleError = soxr_process(resampler, sourceSamples, numAdjustedSourceSamples, NULL, - destinationSamples, numAdjustedDestinationSamples, &odone); + destinationSamples, numAdjustedDestinationSamples, &numAdjustedDestinationSamplesActual); // return silence instead of playing garbage samples - if (odone < numAdjustedDestinationSamples) { - unsigned int nBytes = (numAdjustedDestinationSamples - odone) * destinationAudioFormat.channelCount() * sizeof(int16_t); - memset(&destinationSamples[odone * destinationAudioFormat.channelCount()], 0, nBytes); + if (numAdjustedDestinationSamplesActual < numAdjustedDestinationSamples) { + unsigned int nBytes = (numAdjustedDestinationSamples - numAdjustedDestinationSamplesActual) * destinationAudioFormat.channelCount() * sizeof(int16_t); + memset(&destinationSamples[numAdjustedDestinationSamplesActual * destinationAudioFormat.channelCount()], 0, nBytes); qCDebug(audioclient) << "SOXR: padded with" << nBytes << "bytes of silence"; } }