summaryrefslogtreecommitdiffstats
path: root/services/audioflinger/Threads.h
diff options
context:
space:
mode:
authorAndy Hung <hunga@google.com>2015-04-20 13:23:41 -0700
committerAndy Hung <hunga@google.com>2015-04-22 12:42:52 -0700
commitd330ee46022f34da76d14d0c4d2910526ecc2321 (patch)
tree05df908a6cd115a92eb1e15a2daa191c14a441b2 /services/audioflinger/Threads.h
parentf27e2fbfc3284c00a60fa68edc51d436f75b1e32 (diff)
downloadframeworks_av-d330ee46022f34da76d14d0c4d2910526ecc2321.zip
frameworks_av-d330ee46022f34da76d14d0c4d2910526ecc2321.tar.gz
frameworks_av-d330ee46022f34da76d14d0c4d2910526ecc2321.tar.bz2
Add floating and multichannel record to AudioFlinger
Change-Id: Ia388fb012a0b6d81613ef87142a97d76836338f9
Diffstat (limited to 'services/audioflinger/Threads.h')
-rw-r--r--services/audioflinger/Threads.h17
1 files changed, 11 insertions, 6 deletions
diff --git a/services/audioflinger/Threads.h b/services/audioflinger/Threads.h
index ed2e4a1..b7c1ed1 100644
--- a/services/audioflinger/Threads.h
+++ b/services/audioflinger/Threads.h
@@ -1130,8 +1130,11 @@ public:
}
private:
- // internal convert function for format and channel mask.
- void convert(void *dst, /*const*/ void *src, size_t frames);
+ // 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);
// user provided information
audio_channel_mask_t mSrcChannelMask;
@@ -1153,10 +1156,12 @@ public:
// resampler info
AudioResampler *mResampler;
- // interleaved stereo pairs of fixed-point Q4.27 or float depending on resampler
- void *mRsmpOutBuffer;
- // current allocated frame count for the above, which may be larger than needed
- size_t mRsmpOutFrameCount;
+
+ bool mIsLegacyDownmix; // legacy stereo to mono conversion needed
+ bool mIsLegacyUpmix; // legacy mono to stereo conversion needed
+ bool mRequiresFloat; // data processing requires float (e.g. resampler)
+ PassthruBufferProvider *mInputConverterProvider; // converts input to float
+ int8_t mIdxAry[sizeof(uint32_t) * 8]; // used for channel mask conversion
};
#include "RecordTracks.h"