[vlc-devel] [PATCH] vfilter: yadif deint: disable SIMD on android

Victorien Le Couviour--Tuffet victorien.lecouviour.tuffet at gmail.com
Mon Oct 8 12:32:00 CEST 2018


Fixes android NDK 17 x86 build: clang fails to compile assembly code
saying it requires more registers than available.
---
 modules/video_filter/deinterlace/algo_yadif.c | 13 ++++++++-----
 1 file changed, 8 insertions(+), 5 deletions(-)

diff --git a/modules/video_filter/deinterlace/algo_yadif.c b/modules/video_filter/deinterlace/algo_yadif.c
index d94e45dbb5..a89d240b83 100644
--- a/modules/video_filter/deinterlace/algo_yadif.c
+++ b/modules/video_filter/deinterlace/algo_yadif.c
@@ -113,20 +113,23 @@ int RenderYadif( filter_t *p_filter, picture_t *p_dst, picture_t *p_src,
         void (*filter)(uint8_t *dst, uint8_t *prev, uint8_t *cur, uint8_t *next,
                        int w, int prefs, int mrefs, int parity, int mode);
 
-#if defined(HAVE_YADIF_SSSE3)
+/* android clang build for x86 fails as not enough registers are available */
+#if !defined(__ANDROID__)
+# if defined(HAVE_YADIF_SSSE3)
         if( vlc_CPU_SSSE3() )
             filter = yadif_filter_line_ssse3;
         else
-#endif
-#if defined(HAVE_YADIF_SSE2)
+# endif
+# if defined(HAVE_YADIF_SSE2)
         if( vlc_CPU_SSE2() )
             filter = yadif_filter_line_sse2;
         else
-#endif
-#if defined(HAVE_YADIF_MMX)
+# endif
+# if defined(HAVE_YADIF_MMX)
         if( vlc_CPU_MMX() )
             filter = yadif_filter_line_mmx;
         else
+# endif
 #endif
             filter = yadif_filter_line_c;
 
-- 
2.19.1



More information about the vlc-devel mailing list