From f58b386ffc546d6927c0708e329d2e7a8066cfb7 Mon Sep 17 00:00:00 2001
From: Tristan Matthews <tristan.matthews@savoirfairelinux.com>
Date: Wed, 21 Aug 2013 17:03:39 -0400
Subject: [PATCH] * #28691: pulseaudio: fix resampling of captured mic input

---
 daemon/src/audio/pulseaudio/pulselayer.cpp | 8 +++++---
 1 file changed, 5 insertions(+), 3 deletions(-)

diff --git a/daemon/src/audio/pulseaudio/pulselayer.cpp b/daemon/src/audio/pulseaudio/pulselayer.cpp
index 26f59c0b15..3f8e07cf84 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);
-- 
GitLab