aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJames Almer <jamrial@gmail.com>2021-02-17 21:05:41 -0300
committerJames Almer <jamrial@gmail.com>2021-02-17 21:09:36 -0300
commitc2bf1dcace8d331e672b955f9cf5b59211749f00 (patch)
treeddd5b7ff2a414917d96630550bfd2c9e86a576f8
parent1371647fc381774d40b8beecf69604331262172d (diff)
downloadffmpeg-c2bf1dcace8d331e672b955f9cf5b59211749f00.tar.gz
swscale/x86/swscale: fix compilation with old yasm
Where AVX2 may not be supported. Signed-off-by: James Almer <jamrial@gmail.com>
-rw-r--r--libswscale/x86/swscale.c15
-rw-r--r--libswscale/x86/yuv2yuvX.asm2
2 files changed, 13 insertions, 4 deletions
diff --git a/libswscale/x86/swscale.c b/libswscale/x86/swscale.c
index 3df193a067..316a824e87 100644
--- a/libswscale/x86/swscale.c
+++ b/libswscale/x86/swscale.c
@@ -244,7 +244,9 @@ static void yuv2yuvX_ ##opt(const int16_t *filter, int filterSize, \
YUV2YUVX_FUNC_MMX(mmx, 16)
YUV2YUVX_FUNC_MMX(mmxext, 16)
YUV2YUVX_FUNC(sse3, 32)
+#if HAVE_AVX2_EXTERNAL
YUV2YUVX_FUNC(avx2, 64)
+#endif
#endif
@@ -376,13 +378,18 @@ av_cold void ff_sws_init_swscale_x86(SwsContext *c)
#if HAVE_MMXEXT_INLINE
if (INLINE_MMXEXT(cpu_flags))
sws_init_swscale_mmxext(c);
- if (cpu_flags & AV_CPU_FLAG_AVX2){
+#endif
+#if HAVE_SSSE3_EXTERNAL
+ if (EXTERNAL_SSSE3(cpu_flags)) {
if(c->use_mmx_vfilter && !(c->flags & SWS_ACCURATE_RND)){
- c->yuv2planeX = yuv2yuvX_avx2;
+ c->yuv2planeX = yuv2yuvX_sse3;
}
- } else if (cpu_flags & AV_CPU_FLAG_SSE3){
+ }
+#endif
+#if HAVE_AVX2_EXTERNAL
+ if (EXTERNAL_AVX2_FAST(cpu_flags)) {
if(c->use_mmx_vfilter && !(c->flags & SWS_ACCURATE_RND)){
- c->yuv2planeX = yuv2yuvX_sse3;
+ c->yuv2planeX = yuv2yuvX_avx2;
}
}
#endif
diff --git a/libswscale/x86/yuv2yuvX.asm b/libswscale/x86/yuv2yuvX.asm
index b8874cde8c..6d3ba96204 100644
--- a/libswscale/x86/yuv2yuvX.asm
+++ b/libswscale/x86/yuv2yuvX.asm
@@ -132,5 +132,7 @@ INIT_MMX mmxext
YUV2YUVX_FUNC
INIT_XMM sse3
YUV2YUVX_FUNC
+%if HAVE_AVX2_EXTERNAL
INIT_YMM avx2
YUV2YUVX_FUNC
+%endif