diff options
author | Andree Buschmann <AndreeBuschmann@t-online.de> | 2011-05-08 19:36:08 +0000 |
---|---|---|
committer | Andree Buschmann <AndreeBuschmann@t-online.de> | 2011-05-08 19:36:08 +0000 |
commit | f79769c541eb7235b09625cb084dfdfe6069cb96 (patch) | |
tree | 8a12930deb803c70277f17981bce9414c6dc6788 /apps/codecs/libfaad/ms.c | |
parent | 7d4616ea4070caec92af0aa8866177bc4ec7a066 (diff) | |
download | rockbox-f79769c541eb7235b09625cb084dfdfe6069cb96.tar.gz rockbox-f79769c541eb7235b09625cb084dfdfe6069cb96.zip |
Minor loop optimization in libfaad's is/ms decoding.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@29837 a1c6a512-1295-4272-9138-f99709370657
Diffstat (limited to 'apps/codecs/libfaad/ms.c')
-rw-r--r-- | apps/codecs/libfaad/ms.c | 9 |
1 files changed, 4 insertions, 5 deletions
diff --git a/apps/codecs/libfaad/ms.c b/apps/codecs/libfaad/ms.c index f01e5caa07..b42e95a408 100644 --- a/apps/codecs/libfaad/ms.c +++ b/apps/codecs/libfaad/ms.c | |||
@@ -41,7 +41,6 @@ void ms_decode(ic_stream *ics, ic_stream *icsr, real_t *l_spec, real_t *r_spec, | |||
41 | uint16_t nshort = frame_len/8; | 41 | uint16_t nshort = frame_len/8; |
42 | 42 | ||
43 | uint16_t i, k; | 43 | uint16_t i, k; |
44 | real_t tmp; | ||
45 | 44 | ||
46 | if (ics->ms_mask_present >= 1) | 45 | if (ics->ms_mask_present >= 1) |
47 | { | 46 | { |
@@ -58,12 +57,12 @@ void ms_decode(ic_stream *ics, ic_stream *icsr, real_t *l_spec, real_t *r_spec, | |||
58 | if ((ics->ms_used[g][sfb] || ics->ms_mask_present == 2) && | 57 | if ((ics->ms_used[g][sfb] || ics->ms_mask_present == 2) && |
59 | !is_intensity(icsr, g, sfb) && !is_noise(ics, g, sfb)) | 58 | !is_intensity(icsr, g, sfb) && !is_noise(ics, g, sfb)) |
60 | { | 59 | { |
61 | for (i = ics->swb_offset[sfb]; i < ics->swb_offset[sfb+1]; i++) | 60 | k = (group*nshort) + ics->swb_offset[sfb]; |
61 | for (i = ics->swb_offset[sfb]; i < ics->swb_offset[sfb+1]; i++, k++) | ||
62 | { | 62 | { |
63 | k = (group*nshort) + i; | 63 | /* L' = L+R, R' = L-R */ |
64 | tmp = l_spec[k] - r_spec[k]; | ||
65 | l_spec[k] = l_spec[k] + r_spec[k]; | 64 | l_spec[k] = l_spec[k] + r_spec[k]; |
66 | r_spec[k] = tmp; | 65 | r_spec[k] = l_spec[k] - (r_spec[k]<<1); |
67 | } | 66 | } |
68 | } | 67 | } |
69 | } | 68 | } |