aboutsummaryrefslogtreecommitdiffstats
path: root/libavcodec/x86/aacpsdsp_init.c
diff options
context:
space:
mode:
authorJames Almer <jamrial@gmail.com>2017-06-18 22:33:27 -0300
committerJames Almer <jamrial@gmail.com>2017-06-18 22:33:27 -0300
commite229df9478b2c6d476ea44d0e492609d4ab4e0c5 (patch)
tree77ffac0e550eb344d49c505ddda0af39d4a94a4a /libavcodec/x86/aacpsdsp_init.c
parent3c5a53cdfa099bba8bd951f95b85727b4b3b5d68 (diff)
downloadffmpeg-e229df9478b2c6d476ea44d0e492609d4ab4e0c5.tar.gz
x86/aacpsdsp: add ff_ps_hybrid_synthesis_deint_{sse,sse4}
About 2x faster than the c version.
Diffstat (limited to 'libavcodec/x86/aacpsdsp_init.c')
-rw-r--r--libavcodec/x86/aacpsdsp_init.c8
1 files changed, 8 insertions, 0 deletions
diff --git a/libavcodec/x86/aacpsdsp_init.c b/libavcodec/x86/aacpsdsp_init.c
index 767ae6588e..25e089c395 100644
--- a/libavcodec/x86/aacpsdsp_init.c
+++ b/libavcodec/x86/aacpsdsp_init.c
@@ -40,6 +40,10 @@ void ff_ps_stereo_interpolate_sse3(float (*l)[2], float (*r)[2],
void ff_ps_stereo_interpolate_ipdopd_sse3(float (*l)[2], float (*r)[2],
float h[2][4], float h_step[2][4],
int len);
+void ff_ps_hybrid_synthesis_deint_sse(float out[2][38][64], float (*in)[32][2],
+ int i, int len);
+void ff_ps_hybrid_synthesis_deint_sse4(float out[2][38][64], float (*in)[32][2],
+ int i, int len);
av_cold void ff_psdsp_init_x86(PSDSPContext *s)
{
@@ -48,6 +52,7 @@ av_cold void ff_psdsp_init_x86(PSDSPContext *s)
if (EXTERNAL_SSE(cpu_flags)) {
s->add_squares = ff_ps_add_squares_sse;
s->mul_pair_single = ff_ps_mul_pair_single_sse;
+ s->hybrid_synthesis_deint = ff_ps_hybrid_synthesis_deint_sse;
s->hybrid_analysis = ff_ps_hybrid_analysis_sse;
}
if (EXTERNAL_SSE3(cpu_flags)) {
@@ -56,4 +61,7 @@ av_cold void ff_psdsp_init_x86(PSDSPContext *s)
s->stereo_interpolate[1] = ff_ps_stereo_interpolate_ipdopd_sse3;
s->hybrid_analysis = ff_ps_hybrid_analysis_sse3;
}
+ if (EXTERNAL_SSE4(cpu_flags)) {
+ s->hybrid_synthesis_deint = ff_ps_hybrid_synthesis_deint_sse4;
+ }
}