[FFmpeg-devel] [PATCH 1/3] ac3enc: use MUL64() to multiply fixed-point coefficients

Måns Rullgård mans
Tue Mar 8 19:49:49 CET 2011


Justin Ruggles <justin.ruggles at gmail.com> writes:

> ---
>  libavcodec/ac3enc.c       |    8 ++++----
>  libavcodec/ac3enc_fixed.h |    2 ++
>  libavcodec/ac3enc_float.h |    2 ++
>  3 files changed, 8 insertions(+), 4 deletions(-)
>
>
> diff --git a/libavcodec/ac3enc.c b/libavcodec/ac3enc.c
> index baa9597..e792eaf 100644
> --- a/libavcodec/ac3enc.c
> +++ b/libavcodec/ac3enc.c
> @@ -328,10 +328,10 @@ static void compute_rematrixing_strategy(AC3EncodeContext *s)
>                  CoefType rt = block->mdct_coef[1][i];
>                  CoefType md = lt + rt;
>                  CoefType sd = lt - rt;
> -                sum[0] += lt * lt;
> -                sum[1] += rt * rt;
> -                sum[2] += md * md;
> -                sum[3] += sd * sd;
> +                sum[0] += MUL_COEF(lt, lt);
> +                sum[1] += MUL_COEF(rt, rt);
> +                sum[2] += MUL_COEF(md, md);
> +                sum[3] += MUL_COEF(sd, sd);
>              }
>
>              /* compare sums to determine if rematrixing will be used for this band */
> diff --git a/libavcodec/ac3enc_fixed.h b/libavcodec/ac3enc_fixed.h
> index 12c8ace..773caec 100644
> --- a/libavcodec/ac3enc_fixed.h
> +++ b/libavcodec/ac3enc_fixed.h
> @@ -36,6 +36,8 @@ typedef int16_t SampleType;
>  typedef int32_t CoefType;
>  typedef int64_t CoefSumType;
>
> +#define MUL_COEF(a,b) MUL64(a,b)
> +
>
>  /**
>   * Compex number.
> diff --git a/libavcodec/ac3enc_float.h b/libavcodec/ac3enc_float.h
> index 1726ca0..6ad22ec 100644
> --- a/libavcodec/ac3enc_float.h
> +++ b/libavcodec/ac3enc_float.h
> @@ -36,6 +36,8 @@ typedef float SampleType;
>  typedef float CoefType;
>  typedef float CoefSumType;
>
> +#define MUL_COEF(a,b) ((a)*(b))
> +
>
>  typedef struct AC3MDCTContext {
>      const float *window;    ///< MDCT window function

Looks OK.

-- 
M?ns Rullg?rd
mans at mansr.com



More information about the ffmpeg-devel mailing list