[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