Fix to support mono in effect buffer allocation.

Since effects are now enabled for recording, mono cases are possible
and needed to be correctly allocated.

Bug: 16917961
Change-Id: I760fc421f9f90fabb3f0deadd5f9dc61cd284371
diff --git a/services/audioflinger/Effects.cpp b/services/audioflinger/Effects.cpp
index ec3d731..365f271 100644
--- a/services/audioflinger/Effects.cpp
+++ b/services/audioflinger/Effects.cpp
@@ -44,6 +44,8 @@
 #define ALOGVV(a...) do { } while(0)
 #endif
 
+#define min(a, b) ((a) < (b) ? (a) : (b))
+
 namespace android {
 
 // ----------------------------------------------------------------------------
@@ -1391,7 +1393,8 @@
     // and sample format changes for effects.
     // Currently effects processing is only available for stereo, AUDIO_FORMAT_PCM_16_BIT
     // (4 bytes frame size)
-    const size_t frameSize = audio_bytes_per_sample(AUDIO_FORMAT_PCM_16_BIT) * FCC_2;
+    const size_t frameSize =
+            audio_bytes_per_sample(AUDIO_FORMAT_PCM_16_BIT) * min(FCC_2, thread->channelCount());
     memset(mInBuffer, 0, thread->frameCount() * frameSize);
 }