Configure the resampler with the correct channel count when downmixing

When a track needs to be downmixed and resampled, it gets downmixed
 first before being resampled. Therefore the resampler needs to
 be configured with the channel count of the output of the downmixer
 instead of that of the track.
Removed frame size checks that don't apply anymore now that we support
 frame sizes that are not powers of 2 (e.g. 12 for 5.1 16bits), and
 changed test performed for every buffer during playback into an
 assert.

Change-Id: Ia220f00ee382f4f7848b661c58555bdca664e194
diff --git a/services/audioflinger/AudioFlinger.cpp b/services/audioflinger/AudioFlinger.cpp
index d42ac8c..b37eea2 100644
--- a/services/audioflinger/AudioFlinger.cpp
+++ b/services/audioflinger/AudioFlinger.cpp
@@ -3507,14 +3507,12 @@
     int8_t *bufferEnd = bufferStart + frames * frameSize;
 
     // Check validity of returned pointer in case the track control block would have been corrupted.
-    if (bufferStart < mBuffer || bufferStart > bufferEnd || bufferEnd > mBufferEnd ||
-        ((unsigned long)bufferStart & (unsigned long)(frameSize - 1))) {
-        ALOGE("TrackBase::getBuffer buffer out of range:\n    start: %p, end %p , mBuffer %p mBufferEnd %p\n    \
-                server %u, serverBase %u, user %u, userBase %u",
+    ALOG_ASSERT(!(bufferStart < mBuffer || bufferStart > bufferEnd || bufferEnd > mBufferEnd),
+            "TrackBase::getBuffer buffer out of range:\n"
+                "    start: %p, end %p , mBuffer %p mBufferEnd %p\n"
+                "    server %u, serverBase %u, user %u, userBase %u, frameSize %d",
                 bufferStart, bufferEnd, mBuffer, mBufferEnd,
-                cblk->server, cblk->serverBase, cblk->user, cblk->userBase);
-        return NULL;
-    }
+                cblk->server, cblk->serverBase, cblk->user, cblk->userBase, frameSize);
 
     return bufferStart;
 }