diff options
author | Mathias Agopian <mathias@google.com> | 2012-11-04 02:03:49 -0800 |
---|---|---|
committer | Mathias Agopian <mathias@google.com> | 2012-11-05 01:03:43 -0800 |
commit | 46afbec3743f1d799f185273ff897d1f8e0175dd (patch) | |
tree | ed6dbf983c554f78ab107d3002f6201e51356961 /services/audioflinger/AudioResamplerSinc.h | |
parent | a798c97386a842d06d290797ba5dce95d031332a (diff) | |
download | frameworks_av-46afbec3743f1d799f185273ff897d1f8e0175dd.zip frameworks_av-46afbec3743f1d799f185273ff897d1f8e0175dd.tar.gz frameworks_av-46afbec3743f1d799f185273ff897d1f8e0175dd.tar.bz2 |
change how we store the FIR coefficients
The coefficient table is now transposed and shows
much better its polyphase nature: we now have a FIR
per line, each line corresponding to a phase.
This doesn't change at all the results produced by
the filter, but allows us to make slightly better
use of the data cache and improves performance a bit
(although not as much as I thought it would).
The main benefit is that it is the first step
before we can make much larger optimizations
(like using NEON).
Change-Id: Iebf7695825dcbd41f25861efcaefbaa3365ecb43
Diffstat (limited to 'services/audioflinger/AudioResamplerSinc.h')
-rw-r--r-- | services/audioflinger/AudioResamplerSinc.h | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/services/audioflinger/AudioResamplerSinc.h b/services/audioflinger/AudioResamplerSinc.h index 3a6e356..1b14019 100644 --- a/services/audioflinger/AudioResamplerSinc.h +++ b/services/audioflinger/AudioResamplerSinc.h @@ -55,7 +55,8 @@ private: template<int CHANNELS> inline void interpolate( int32_t& l, int32_t& r, - const int32_t* coefs, int16_t lerp, const int16_t* samples); + const int32_t* coefs, size_t offset, + int32_t lerp, const int16_t* samples); template<int CHANNELS> inline void read(int16_t*& impulse, uint32_t& phaseFraction, |