diff options
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 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); } } } |