summaryrefslogtreecommitdiffstats
path: root/services/audioflinger/Threads.h
diff options
context:
space:
mode:
authorArne Coucheron <arco68@gmail.com>2015-12-04 22:26:44 +0100
committerSteve Kondik <shade@chemlab.org>2015-12-07 20:35:35 -0800
commit02d88d66c02982deec3aedee78c1f64352c539bc (patch)
tree2d0ef2ce131f048e77ffe5b766c2fd4fe8634726 /services/audioflinger/Threads.h
parent41ccd68b80a426236ee8ff511c22119e955bc548 (diff)
downloadframeworks_av-02d88d66c02982deec3aedee78c1f64352c539bc.zip
frameworks_av-02d88d66c02982deec3aedee78c1f64352c539bc.tar.gz
frameworks_av-02d88d66c02982deec3aedee78c1f64352c539bc.tar.bz2
audioflinger: Don't do float conversion in upmix/downmix for legacy ALSA
Legacy ALSA really hates floating point, and it's breaking mic input when doing things like audio recording. Use the old conversion routine for legacy ALSA. Change-Id: I616f4cd42fa0e4d7595dd61ed2d36c4fa7052c53
Diffstat (limited to 'services/audioflinger/Threads.h')
-rw-r--r--services/audioflinger/Threads.h5
1 files changed, 5 insertions, 0 deletions
diff --git a/services/audioflinger/Threads.h b/services/audioflinger/Threads.h
index 9e32ea1..6182364 100644
--- a/services/audioflinger/Threads.h
+++ b/services/audioflinger/Threads.h
@@ -1160,11 +1160,16 @@ public:
}
private:
+#ifdef LEGACY_ALSA_AUDIO
+ // internal convert function for format and channel mask.
+ void convert(void *dst, /*const*/ void *src, size_t frames);
+#else
// format conversion when not using resampler
void convertNoResampler(void *dst, const void *src, size_t frames);
// format conversion when using resampler; modifies src in-place
void convertResampler(void *dst, /*not-a-const*/ void *src, size_t frames);
+#endif
// user provided information
audio_channel_mask_t mSrcChannelMask;