diff --git a/daemon/src/audio/pulseaudio/pulselayer.cpp b/daemon/src/audio/pulseaudio/pulselayer.cpp index 26f59c0b159e1546a90d43f883854f5f1142d6c7..3f8e07cf84c6b9b3b47223b474857fac8c8e638d 100644 --- a/daemon/src/audio/pulseaudio/pulselayer.cpp +++ b/daemon/src/audio/pulseaudio/pulselayer.cpp @@ -509,8 +509,8 @@ void PulseLayer::readFromMic() const char *data = NULL; size_t bytes; - size_t sample_size = record_->sampleSize(); - uint8_t channels = record_->channels(); + const size_t sample_size = record_->sampleSize(); + const uint8_t channels = record_->channels(); if (pa_stream_peek(record_->pulseStream() , (const void**) &data , &bytes) < 0 or !data) return; @@ -519,7 +519,9 @@ void PulseLayer::readFromMic() outfile.write((const char *)data, bytes); #endif - size_t samples = bytes / sample_size; + assert(channels); + assert(sample_size); + const size_t samples = bytes / sample_size / channels; AudioBuffer in(samples, channels, sampleRate_); in.deinterleave((SFLAudioSample*)data, samples, channels);