aboutsummaryrefslogtreecommitdiffstats
path: root/libavcodec/x86/dcadsp_init.c
diff options
context:
space:
mode:
authorJames Almer <jamrial@gmail.com>2014-04-03 01:46:18 -0300
committerMichael Niedermayer <michaelni@gmx.at>2014-04-05 13:55:59 +0200
commita1ac12bddd8ddb184281eadf5431dce29c02f27a (patch)
tree7a2ff6bd64e7db685fcf6f36e63f6b1d6ea820ab /libavcodec/x86/dcadsp_init.c
parent3c728ceec66d4e26a3edbf136a459c271c8452cd (diff)
downloadffmpeg-a1ac12bddd8ddb184281eadf5431dce29c02f27a.tar.gz
x86/dcadsp: add ff_dca_lfe_fir0_fma3
~10% faster than the SSE version. Signed-off-by: James Almer <jamrial@gmail.com> Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
Diffstat (limited to 'libavcodec/x86/dcadsp_init.c')
-rw-r--r--libavcodec/x86/dcadsp_init.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/libavcodec/x86/dcadsp_init.c b/libavcodec/x86/dcadsp_init.c
index 77f4398377..bb86c26037 100644
--- a/libavcodec/x86/dcadsp_init.c
+++ b/libavcodec/x86/dcadsp_init.c
@@ -34,6 +34,7 @@ void ff_decode_hf_sse4(float dst[DCA_SUBBANDS][8], const int vq_num[DCA_SUBBANDS
int scale[DCA_SUBBANDS][2], intptr_t start, intptr_t end);
void ff_dca_lfe_fir0_sse(float *out, const float *in, const float *coefs);
void ff_dca_lfe_fir1_sse(float *out, const float *in, const float *coefs);
+void ff_dca_lfe_fir0_fma3(float *out, const float *in, const float *coefs);
av_cold void ff_dcadsp_init_x86(DCADSPContext *s)
{
@@ -54,6 +55,10 @@ av_cold void ff_dcadsp_init_x86(DCADSPContext *s)
if (EXTERNAL_SSE4(cpu_flags)) {
s->decode_hf = ff_decode_hf_sse4;
}
+
+ if (EXTERNAL_FMA3(cpu_flags)) {
+ s->lfe_fir[0] = ff_dca_lfe_fir0_fma3;
+ }
}