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

Steve Lhomme robux4 at ycbcr.xyz
Wed Oct 10 11:38:53 CEST 2018


Can you provide the compilation log ?
Maybe it's an issue in our SSE3 code and should be fixed.

On 08/10/2018 12:32, Victorien Le Couviour--Tuffet wrote:
> 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
>
> _______________________________________________
> vlc-devel mailing list
> To unsubscribe or modify your subscription options:
> https://mailman.videolan.org/listinfo/vlc-devel



More information about the vlc-devel mailing list