swscale/x86/swscale: fix compilation with old yasm

Where AVX2 may not be supported.

Signed-off-by: James Almer <jamrial@gmail.com>
This commit is contained in:
James Almer 2021-02-17 21:05:41 -03:00
parent 1371647fc3
commit c2bf1dcace
2 changed files with 14 additions and 5 deletions

View 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,16 +378,21 @@ 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){
if(c->use_mmx_vfilter && !(c->flags & SWS_ACCURATE_RND)){
c->yuv2planeX = yuv2yuvX_avx2;
}
} else if (cpu_flags & AV_CPU_FLAG_SSE3){
#endif
#if HAVE_SSSE3_EXTERNAL
if (EXTERNAL_SSSE3(cpu_flags)) {
if(c->use_mmx_vfilter && !(c->flags & SWS_ACCURATE_RND)){
c->yuv2planeX = yuv2yuvX_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_avx2;
}
}
#endif
#define ASSIGN_SCALE_FUNC2(hscalefn, filtersize, opt1, opt2) do { \
if (c->srcBpc == 8) { \

View 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