# HG changeset patch # User ramiro # Date 1240084001 0 # Node ID 50feb15cbf2a3000e54d88d2f27f8e84fe2446db # Parent bcef741a555afc92eb11ab747e79ec14c7fb8b76 mlpdec: Use some context arrays with local variables in rematrix_channels(). diff -r bcef741a555a -r 50feb15cbf2a mlpdec.c --- a/mlpdec.c Sat Apr 18 19:39:07 2009 +0000 +++ b/mlpdec.c Sat Apr 18 19:46:41 2009 +0000 @@ -848,23 +848,25 @@ int matrix_noise_shift = s->matrix_noise_shift[mat]; unsigned int dest_ch = s->matrix_out_ch[mat]; int32_t mask = MSB_MASK(s->quant_step_size[dest_ch]); + int32_t *coeffs = s->matrix_coeff[mat]; int index = s->num_primitive_matrices - mat; int index2 = 2 * index + 1; /* TODO: DSPContext? */ for (i = 0; i < s->blockpos; i++) { + int32_t *samples = m->sample_buffer[i]; int64_t accum = 0; for (src_ch = 0; src_ch <= maxchan; src_ch++) { - accum += (int64_t)m->sample_buffer[i][src_ch] - * s->matrix_coeff[mat][src_ch]; + accum += (int64_t)samples[src_ch] + * coeffs[src_ch]; } if (matrix_noise_shift) { index &= m->access_unit_size_pow2 - 1; accum += m->noise_buffer[index] << (matrix_noise_shift + 7); index += index2; } - m->sample_buffer[i][dest_ch] = ((accum >> 14) & mask) + samples[dest_ch] = ((accum >> 14) & mask) + m->bypassed_lsbs[i][mat]; } }