summaryrefslogtreecommitdiff
path: root/apps/codecs/libfaad/ms.c
diff options
context:
space:
mode:
authorAndree Buschmann <AndreeBuschmann@t-online.de>2011-05-08 19:36:08 +0000
committerAndree Buschmann <AndreeBuschmann@t-online.de>2011-05-08 19:36:08 +0000
commitf79769c541eb7235b09625cb084dfdfe6069cb96 (patch)
tree8a12930deb803c70277f17981bce9414c6dc6788 /apps/codecs/libfaad/ms.c
parent7d4616ea4070caec92af0aa8866177bc4ec7a066 (diff)
downloadrockbox-f79769c541eb7235b09625cb084dfdfe6069cb96.zip
rockbox-f79769c541eb7235b09625cb084dfdfe6069cb96.tar.gz
rockbox-f79769c541eb7235b09625cb084dfdfe6069cb96.tar.bz2
rockbox-f79769c541eb7235b09625cb084dfdfe6069cb96.tar.xz
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.c9
1 files changed, 4 insertions, 5 deletions
diff --git a/apps/codecs/libfaad/ms.c b/apps/codecs/libfaad/ms.c
index f01e5ca..b42e95a 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,
uint16_t nshort = frame_len/8;
uint16_t i, k;
- real_t tmp;
if (ics->ms_mask_present >= 1)
{
@@ -58,12 +57,12 @@ void ms_decode(ic_stream *ics, ic_stream *icsr, real_t *l_spec, real_t *r_spec,
if ((ics->ms_used[g][sfb] || ics->ms_mask_present == 2) &&
!is_intensity(icsr, g, sfb) && !is_noise(ics, g, sfb))
{
- for (i = ics->swb_offset[sfb]; i < ics->swb_offset[sfb+1]; i++)
+ k = (group*nshort) + ics->swb_offset[sfb];
+ for (i = ics->swb_offset[sfb]; i < ics->swb_offset[sfb+1]; i++, k++)
{
- k = (group*nshort) + i;
- tmp = l_spec[k] - r_spec[k];
+ /* L' = L+R, R' = L-R */
l_spec[k] = l_spec[k] + r_spec[k];
- r_spec[k] = tmp;
+ r_spec[k] = l_spec[k] - (r_spec[k]<<1);
}
}
}