]> rtime.felk.cvut.cz Git - frescor/ffmpeg.git/commitdiff
mlpdec: Use some context arrays with local variables in rematrix_channels().
authorramiro <ramiro@9553f0bf-9b14-0410-a0b8-cfaf0461ba5b>
Sat, 18 Apr 2009 19:46:41 +0000 (19:46 +0000)
committerramiro <ramiro@9553f0bf-9b14-0410-a0b8-cfaf0461ba5b>
Sat, 18 Apr 2009 19:46:41 +0000 (19:46 +0000)
git-svn-id: file:///var/local/repositories/ffmpeg/trunk@18613 9553f0bf-9b14-0410-a0b8-cfaf0461ba5b

libavcodec/mlpdec.c

index 25d0b4f0c1788f0a72703525a9fd081fd1ac8e1b..e6b7b048a48e99b6c44fed819873ced17ffed85d 100644 (file)
@@ -848,23 +848,25 @@ static void rematrix_channels(MLPDecodeContext *m, unsigned int substr)
         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];
         }
     }