Some optimized functions reference optimized symbols, so the functions
must be explicitly disabled when those symbols are unavailable.
---
 libavcodec/x86/hevcdsp_init.c | 8 ++++++--
 1 file changed, 6 insertions(+), 2 deletions(-)

diff --git a/libavcodec/x86/hevcdsp_init.c b/libavcodec/x86/hevcdsp_init.c
index d0c1776..11c158d 100644
--- a/libavcodec/x86/hevcdsp_init.c
+++ b/libavcodec/x86/hevcdsp_init.c
@@ -86,7 +86,7 @@ INTERP_HV_FUNC(32, avx)
 INTERP_HV_FUNC(48, avx)
 INTERP_HV_FUNC(64, avx)
 
-#if ARCH_X86_64
+#if ARCH_X86_64 && HAVE_AVX_EXTERNAL
 #define QPEL_FUNC_HV(width, depth, cf_h, cf_v, cf_hv)                          
                               \
 static void hevc_qpel_hv_ ## width ## _ ## depth ## _ ## cf_hv(int16_t *dst, 
ptrdiff_t dststride,             \
                                                                uint8_t *src, 
ptrdiff_t srcstride,             \
@@ -129,7 +129,7 @@ QPEL_FUNCS(32, 10, avx, avx, avx)
 QPEL_FUNCS(48, 10, avx, avx, avx)
 QPEL_FUNCS(64, 10, avx, avx, avx)
 
-#if ARCH_X86_64
+#if ARCH_X86_64 && HAVE_AVX_EXTERNAL
 #define EPEL_FUNC_HV(width, depth, cf_h, cf_v, cf_hv)                          
                               \
 static void hevc_epel_hv_ ## width ## _ ## depth ## _ ## cf_hv(int16_t *dst, 
ptrdiff_t dststride,             \
                                                                uint8_t *src, 
ptrdiff_t srcstride,             \
@@ -277,8 +277,10 @@ void ff_hevc_dsp_init_x86(HEVCDSPContext *c, const int 
bit_depth)
         }
 
         if (EXTERNAL_AVX(cpu_flags)) {
+#if HAVE_AVX_EXTERNAL
             SET_QPEL_FUNCS(1, 1, 8, avx, hevc_qpel_hv);
             SET_EPEL_FUNCS(1, 1, 8, avx, hevc_epel_hv);
+#endif
         }
     } else if (bit_depth == 10) {
         if (EXTERNAL_SSSE3(cpu_flags)) {
@@ -292,12 +294,14 @@ void ff_hevc_dsp_init_x86(HEVCDSPContext *c, const int 
bit_depth)
             SET_CHROMA_FUNCS(weighted_pred_avg_chroma, 
ff_hevc_put_weighted_pred_avg, 10, sse4);
         }
         if (EXTERNAL_AVX(cpu_flags)) {
+#if HAVE_AVX_EXTERNAL
             SET_QPEL_FUNCS(0, 1, 10, avx, ff_hevc_qpel_h);
             SET_QPEL_FUNCS(1, 0, 10, avx, ff_hevc_qpel_v);
             SET_QPEL_FUNCS(1, 1, 10, avx, hevc_qpel_hv);
             SET_EPEL_FUNCS(0, 1, 10, avx, ff_hevc_epel_h);
             SET_EPEL_FUNCS(1, 0, 10, avx, ff_hevc_epel_v);
             SET_EPEL_FUNCS(1, 1, 10, avx, hevc_epel_hv);
+#endif
         }
     }
 #endif /* ARCH_X86_64 */
-- 
2.5.0

_______________________________________________
libav-devel mailing list
libav-devel@libav.org
https://lists.libav.org/mailman/listinfo/libav-devel

Reply via email to