Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
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 */
typedef int32_t CoefType;
typedef int64_t CoefSumType;
+#define MUL_COEF(a,b) MUL64(a,b)
+
/**
* Compex number.
typedef float CoefType;
typedef float CoefSumType;
+#define MUL_COEF(a,b) ((a)*(b))
+
typedef struct AC3MDCTContext {
const float *window; ///< MDCT window function