]> git.sesse.net Git - ffmpeg/commitdiff
swscale/x86/swscale: fix compilation with old yasm
authorJames Almer <jamrial@gmail.com>
Thu, 18 Feb 2021 00:05:41 +0000 (21:05 -0300)
committerJames Almer <jamrial@gmail.com>
Thu, 18 Feb 2021 00:09:36 +0000 (21:09 -0300)
Where AVX2 may not be supported.

Signed-off-by: James Almer <jamrial@gmail.com>
libswscale/x86/swscale.c
libswscale/x86/yuv2yuvX.asm

index 3df193a0673041da2fb3bfefc5ea7f05c65f28a5..316a824e87fc408045794edf4b7d5dfa98f87f4d 100644 (file)
@@ -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
index b8874cde8c030f4fa1fc78db19cfcd3fafd07dbe..6d3ba96204d5371246dd946a8193299716bebe8e 100644 (file)
@@ -132,5 +132,7 @@ INIT_MMX mmxext
 YUV2YUVX_FUNC
 INIT_XMM sse3
 YUV2YUVX_FUNC
+%if HAVE_AVX2_EXTERNAL
 INIT_YMM avx2
 YUV2YUVX_FUNC
+%endif