/**
* Finalize MDCT and free allocated memory.
+ *
+ * @param s AC-3 encoder private context
*/
av_cold void AC3_NAME(mdct_end)(AC3EncodeContext *s)
{
/**
* Initialize MDCT tables.
- * @param nbits log2(MDCT size)
+ *
+ * @param s AC-3 encoder private context
+ * @return 0 on success, negative error code on failure
*/
av_cold int AC3_NAME(mdct_init)(AC3EncodeContext *s)
{
}
-/**
+/*
* Apply KBD window to input samples prior to MDCT.
*/
static void apply_window(DSPContext *dsp, int16_t *output, const int16_t *input,
}
-/**
+/*
* Normalize the input samples to use the maximum available precision.
* This assumes signed 16-bit input samples.
- *
- * @return exponent shift
*/
static int normalize_samples(AC3EncodeContext *s)
{
}
-/**
+/*
* Scale MDCT coefficients to 25-bit signed fixed-point.
*/
static void scale_coefficients(AC3EncodeContext *s)
}
}
+static void sum_square_butterfly(AC3EncodeContext *s, int64_t sum[4],
+ const int32_t *coef0, const int32_t *coef1,
+ int len)
+{
+ s->ac3dsp.sum_square_butterfly_int32(sum, coef0, coef1, len);
+}
-/**
+/*
* Clip MDCT coefficients to allowable range.
*/
static void clip_coefficients(DSPContext *dsp, int32_t *coef, unsigned int len)
}
-/**
+/*
* Calculate a single coupling coordinate.
*/
static CoefType calc_cpl_coord(CoefSumType energy_ch, CoefSumType energy_cpl)