diff options
author | James Almer <jamrial@gmail.com> | 2017-06-18 22:33:27 -0300 |
---|---|---|
committer | James Almer <jamrial@gmail.com> | 2017-06-18 22:33:27 -0300 |
commit | e229df9478b2c6d476ea44d0e492609d4ab4e0c5 (patch) | |
tree | 77ffac0e550eb344d49c505ddda0af39d4a94a4a /libavcodec/x86/aacpsdsp_init.c | |
parent | 3c5a53cdfa099bba8bd951f95b85727b4b3b5d68 (diff) | |
download | ffmpeg-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.c | 8 |
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; + } } |