summaryrefslogtreecommitdiff
path: root/libswresample/x86
diff options
context:
space:
mode:
authorMichael Niedermayer <michaelni@gmx.at>2012-05-13 20:56:18 +0200
committerMichael Niedermayer <michaelni@gmx.at>2012-05-13 20:56:18 +0200
commita927641e7ac031c3bb7711e6fad1cfab7f8b34ec (patch)
treeac6dcdb4fdc8de52be9670d28c6dbc8db5118e84 /libswresample/x86
parentca986a06ad1ad81bf4c16720aec608c70f958ef4 (diff)
libswresample-simd: Add ff_pack_6ch_float_to_int32_a_avx and ff_pack_6ch_float_to_int32_a_sse4
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
Diffstat (limited to 'libswresample/x86')
-rw-r--r--libswresample/x86/audio_convert.asm4
-rw-r--r--libswresample/x86/swresample_x86.c4
2 files changed, 8 insertions, 0 deletions
diff --git a/libswresample/x86/audio_convert.asm b/libswresample/x86/audio_convert.asm
index 19e3e04732..6fc86f0748 100644
--- a/libswresample/x86/audio_convert.asm
+++ b/libswresample/x86/audio_convert.asm
@@ -444,6 +444,8 @@ PACK_6CH float, float, a, 2, 2, NOP_N, NOP_N
PACK_6CH float, int32, u, 2, 2, INT32_TO_FLOAT_N, INT32_TO_FLOAT_INIT
PACK_6CH float, int32, a, 2, 2, INT32_TO_FLOAT_N, INT32_TO_FLOAT_INIT
+PACK_6CH int32, float, u, 2, 2, FLOAT_TO_INT32_N, FLOAT_TO_INT32_INIT
+PACK_6CH int32, float, a, 2, 2, FLOAT_TO_INT32_N, FLOAT_TO_INT32_INIT
%if HAVE_AVX
INIT_XMM avx
@@ -452,6 +454,8 @@ PACK_6CH float, float, a, 2, 2, NOP_N, NOP_N
PACK_6CH float, int32, u, 2, 2, INT32_TO_FLOAT_N, INT32_TO_FLOAT_INIT
PACK_6CH float, int32, a, 2, 2, INT32_TO_FLOAT_N, INT32_TO_FLOAT_INIT
+PACK_6CH int32, float, u, 2, 2, FLOAT_TO_INT32_N, FLOAT_TO_INT32_INIT
+PACK_6CH int32, float, a, 2, 2, FLOAT_TO_INT32_N, FLOAT_TO_INT32_INIT
INIT_YMM avx
CONV float, int32, u, 2, 2, INT32_TO_FLOAT_N, INT32_TO_FLOAT_INIT
diff --git a/libswresample/x86/swresample_x86.c b/libswresample/x86/swresample_x86.c
index 3a91d365a1..6cd6073e9c 100644
--- a/libswresample/x86/swresample_x86.c
+++ b/libswresample/x86/swresample_x86.c
@@ -125,6 +125,8 @@ MULTI_CAPS_FUNC(AV_CPU_FLAG_SSE, sse)
ac->simd_f = ff_pack_6ch_float_to_float_a_sse4;
if( out_fmt == AV_SAMPLE_FMT_FLT && in_fmt == AV_SAMPLE_FMT_S32P)
ac->simd_f = ff_pack_6ch_int32_to_float_a_sse4;
+ if( out_fmt == AV_SAMPLE_FMT_S32 && in_fmt == AV_SAMPLE_FMT_FLTP)
+ ac->simd_f = ff_pack_6ch_float_to_int32_a_sse4;
}
}
if(HAVE_AVX && mm_flags & AV_CPU_FLAG_AVX) {
@@ -135,6 +137,8 @@ MULTI_CAPS_FUNC(AV_CPU_FLAG_SSE, sse)
ac->simd_f = ff_pack_6ch_float_to_float_a_avx;
if( out_fmt == AV_SAMPLE_FMT_FLT && in_fmt == AV_SAMPLE_FMT_S32P)
ac->simd_f = ff_pack_6ch_int32_to_float_a_avx;
+ if( out_fmt == AV_SAMPLE_FMT_S32 && in_fmt == AV_SAMPLE_FMT_FLTP)
+ ac->simd_f = ff_pack_6ch_float_to_int32_a_avx;
}
}
}