Use float_from_q19_12 conversion in AudioMixer

Change-Id: Idbe84fb9610c7e636a84468f2e2402a913435ca9
Signed-off-by: Andy Hung <hunga@google.com>
diff --git a/services/audioflinger/AudioMixer.cpp b/services/audioflinger/AudioMixer.cpp
index f00b82a..bfa0f38 100644
--- a/services/audioflinger/AudioMixer.cpp
+++ b/services/audioflinger/AudioMixer.cpp
@@ -1325,14 +1325,15 @@
         switch (t.mSinkFormat) {
         case AUDIO_FORMAT_PCM_FLOAT: {
             float *fout = reinterpret_cast<float*>(out);
-            static float scale = 1. / (32768. * 4096.); // exact when inverted
             do {
                 uint32_t rl = *reinterpret_cast<const uint32_t *>(in);
                 in += 2;
                 int32_t l = mulRL(1, rl, vrl);
                 int32_t r = mulRL(0, rl, vrl);
-                *fout++ = static_cast<float>(l) * scale;
-                *fout++ = static_cast<float>(r) * scale;
+                *fout++ = float_from_q19_12(l);
+                *fout++ = float_from_q19_12(r);
+                // Note: In case of later int16_t sink output,
+                // conversion and clamping is done by memcpy_to_i16_from_float().
             } while (--outFrames);
             } break;
         case AUDIO_FORMAT_PCM_16_BIT: