]> rtime.felk.cvut.cz Git - frescor/ffmpeg.git/commitdiff
WMAPRO: use vector_fmul_scalar from dsputil where possible
authormru <mru@9553f0bf-9b14-0410-a0b8-cfaf0461ba5b>
Sun, 27 Sep 2009 08:16:50 +0000 (08:16 +0000)
committermru <mru@9553f0bf-9b14-0410-a0b8-cfaf0461ba5b>
Sun, 27 Sep 2009 08:16:50 +0000 (08:16 +0000)
git-svn-id: file:///var/local/repositories/ffmpeg/trunk@20056 9553f0bf-9b14-0410-a0b8-cfaf0461ba5b

libavcodec/wmaprodec.c

index 7f35edc699daf278272947ca3d95dadb317247ee..a4fcab7d27d4dc740727f63dcd3795cafbe70dd0 100644 (file)
@@ -981,10 +981,13 @@ static void inverse_channel_transform(WMAProDecodeCtx *s)
                         }
                     }
                 } else if (s->num_channels == 2) {
-                    for (y = sfb[0]; y < FFMIN(sfb[1], s->subframe_len); y++) {
-                        ch_data[0][y] *= 181.0 / 128;
-                        ch_data[1][y] *= 181.0 / 128;
-                    }
+                    int len = FFMIN(sfb[1], s->subframe_len) - sfb[0];
+                    s->dsp.vector_fmul_scalar(ch_data[0] + sfb[0],
+                                              ch_data[0] + sfb[0],
+                                              181.0 / 128, len);
+                    s->dsp.vector_fmul_scalar(ch_data[1] + sfb[0],
+                                              ch_data[1] + sfb[0],
+                                              181.0 / 128, len);
                 }
             }
         }
@@ -1214,10 +1217,10 @@ static int decode_subframe(WMAProDecodeCtx *s)
                             (s->channel[c].max_scale_factor - *sf++) *
                             s->channel[c].scale_factor_step;
                 const float quant = pow(10.0, exp / 20.0);
-                int start;
-
-                for (start = s->cur_sfb_offsets[b]; start < end; start++)
-                    s->tmp[start] = s->channel[c].coeffs[start] * quant;
+                int start = s->cur_sfb_offsets[b];
+                s->dsp.vector_fmul_scalar(s->tmp + start,
+                                          s->channel[c].coeffs + start,
+                                          quant, end - start);
             }
 
             /** apply imdct (ff_imdct_half == DCTIV with reverse) */