diff options
author | Janne Grunau <janne-libav@jannau.net> | 2014-04-28 17:56:43 +0200 |
---|---|---|
committer | Janne Grunau <janne-libav@jannau.net> | 2014-05-15 18:17:02 +0200 |
commit | d3f5b94762fb803c0f3b29f9ad6c5eaa813998ba (patch) | |
tree | 62d2b426d38f8540bdcfb5e126666c89e4cdb279 /libavcodec/opus_celt.c | |
parent | 7c5ca546a0747a20c7f7fb5550455c3042699ee9 (diff) | |
download | ffmpeg-d3f5b94762fb803c0f3b29f9ad6c5eaa813998ba.tar.gz |
aarch64: opus NEON iMDCT and FFT
Opus celt decoding 11% faster and the iMDCT over 2.5 times faster on
Apple's A7.
Diffstat (limited to 'libavcodec/opus_celt.c')
-rw-r--r-- | libavcodec/opus_celt.c | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/libavcodec/opus_celt.c b/libavcodec/opus_celt.c index 6757136a9c..e77ca6f69a 100644 --- a/libavcodec/opus_celt.c +++ b/libavcodec/opus_celt.c @@ -29,6 +29,7 @@ #include "libavutil/float_dsp.h" #include "opus.h" +#include "opus_imdct.h" enum CeltSpread { CELT_SPREAD_NONE, @@ -2095,8 +2096,8 @@ int ff_celt_decode_frame(CeltContext *s, OpusRangeCoder *rc, for (j = 0; j < s->blocks; j++) { float *dst = frame->buf + 1024 + j * s->blocksize; - ff_celt_imdct_half(imdct, dst + CELT_OVERLAP / 2, s->coeffs[i] + j, - s->blocks, imdct_scale); + imdct->imdct_half(imdct, dst + CELT_OVERLAP / 2, s->coeffs[i] + j, + s->blocks, imdct_scale); s->dsp.vector_fmul_window(dst, dst, dst + CELT_OVERLAP / 2, celt_window, CELT_OVERLAP / 2); } |