diff options
author | Justin Ruggles <justin.ruggles@gmail.com> | 2011-01-13 15:28:06 -0500 |
---|---|---|
committer | Mans Rullgard <mans@mansr.com> | 2011-01-22 17:53:28 +0000 |
commit | 3b924294ea0ab891cf28fb30f26962a7960f7f37 (patch) | |
tree | 8ba0fef5760cd4f4f863ac70d627f930863038e8 | |
parent | 6eabb0d3ad42b91c1b4c298718c29961f7c1653a (diff) | |
download | ffmpeg-3b924294ea0ab891cf28fb30f26962a7960f7f37.tar.gz |
ac3enc: use dsputil functions in apply_window()
Signed-off-by: Mans Rullgard <mans@mansr.com>
-rw-r--r-- | libavcodec/ac3enc.c | 4 | ||||
-rw-r--r-- | libavcodec/ac3enc_fixed.c | 2 | ||||
-rw-r--r-- | libavcodec/ac3enc_float.c | 16 |
3 files changed, 9 insertions, 13 deletions
diff --git a/libavcodec/ac3enc.c b/libavcodec/ac3enc.c index e59916cc6f..f058d79882 100644 --- a/libavcodec/ac3enc.c +++ b/libavcodec/ac3enc.c @@ -161,7 +161,7 @@ static av_cold int mdct_init(AVCodecContext *avctx, AC3MDCTContext *mdct, static void mdct512(AC3MDCTContext *mdct, CoefType *out, SampleType *in); -static void apply_window(SampleType *output, const SampleType *input, +static void apply_window(DSPContext *dsp, SampleType *output, const SampleType *input, const SampleType *window, int n); static int normalize_samples(AC3EncodeContext *s); @@ -262,7 +262,7 @@ static void apply_mdct(AC3EncodeContext *s) AC3Block *block = &s->blocks[blk]; const SampleType *input_samples = &s->planar_samples[ch][blk * AC3_BLOCK_SIZE]; - apply_window(s->windowed_samples, input_samples, s->mdct.window, AC3_WINDOW_SIZE); + apply_window(&s->dsp, s->windowed_samples, input_samples, s->mdct.window, AC3_WINDOW_SIZE); block->exp_shift[ch] = normalize_samples(s); diff --git a/libavcodec/ac3enc_fixed.c b/libavcodec/ac3enc_fixed.c index 3723b08b96..dfd218ec72 100644 --- a/libavcodec/ac3enc_fixed.c +++ b/libavcodec/ac3enc_fixed.c @@ -251,7 +251,7 @@ static void mdct512(AC3MDCTContext *mdct, int32_t *out, int16_t *in) /** * Apply KBD window to input samples prior to MDCT. */ -static void apply_window(int16_t *output, const int16_t *input, +static void apply_window(DSPContext *dsp, int16_t *output, const int16_t *input, const int16_t *window, int n) { int i; diff --git a/libavcodec/ac3enc_float.c b/libavcodec/ac3enc_float.c index f3246362e7..33e8294fbf 100644 --- a/libavcodec/ac3enc_float.c +++ b/libavcodec/ac3enc_float.c @@ -48,17 +48,19 @@ static av_cold int mdct_init(AVCodecContext *avctx, AC3MDCTContext *mdct, int nbits) { float *window; - int n, n2; + int i, n, n2; n = 1 << nbits; n2 = n >> 1; - window = av_malloc(n2 * sizeof(*window)); + window = av_malloc(n * sizeof(*window)); if (!window) { av_log(avctx, AV_LOG_ERROR, "Cannot allocate memory.\n"); return AVERROR(ENOMEM); } ff_kbd_window_init(window, 5.0, n2); + for (i = 0; i < n2; i++) + window[n-1-i] = window[i]; mdct->window = window; return ff_mdct_init(&mdct->fft, nbits, 0, -2.0 / n); @@ -79,16 +81,10 @@ static void mdct512(AC3MDCTContext *mdct, float *out, float *in) /** * Apply KBD window to input samples prior to MDCT. */ -static void apply_window(float *output, const float *input, +static void apply_window(DSPContext *dsp, float *output, const float *input, const float *window, int n) { - int i; - int n2 = n >> 1; - - for (i = 0; i < n2; i++) { - output[i] = input[i] * window[i]; - output[n-i-1] = input[n-i-1] * window[i]; - } + dsp->vector_fmul(output, input, window, n); } |