[FFmpeg-devel] [PATCH] WMAPRO: use vector_fmul_scalar from dsputil where possible
Sascha Sommer
saschasommer
Sun Sep 27 09:36:34 CEST 2009
Hi,
On Sonntag, 27. September 2009, Mans Rullgard wrote:
> ---
> libavcodec/wmaprodec.c | 19 +++++++++++--------
> 1 files changed, 11 insertions(+), 8 deletions(-)
>
> diff --git a/libavcodec/wmaprodec.c b/libavcodec/wmaprodec.c
> index 7f35edc..a4fcab7 100644
> --- a/libavcodec/wmaprodec.c
> +++ b/libavcodec/wmaprodec.c
> @@ -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) */
Ok.
Regards
Sascha
More information about the ffmpeg-devel
mailing list