[FFmpeg-devel] [FFmpeg-cvslog] avcodec/x86/dcadsp_init: fix compilation failure without FMA3

James Almer jamrial at gmail.com
Sat Apr 5 02:56:13 CEST 2014


> alternatively the call could be put under #if or the #if
> over the function removed
> 
> Signed-off-by: Michael Niedermayer <michaelni at gmx.at>
> 
> > http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=490d53e335dc5954d1308172af374e9bf9d031eb
> ---
> 
>  libavcodec/x86/dcadsp_init.c |    4 ++++
>  1 file changed, 4 insertions(+)
> 
> diff --git a/libavcodec/x86/dcadsp_init.c b/libavcodec/x86/dcadsp_init.c
> index bc94b44..5975fee 100644
> --- a/libavcodec/x86/dcadsp_init.c
> +++ b/libavcodec/x86/dcadsp_init.c
> @@ -82,6 +82,10 @@ SYNTH_FILTER_FUNC(sse)
>  #endif
>  SYNTH_FILTER_FUNC(sse2)
>  SYNTH_FILTER_FUNC(avx)
> +static void synth_filter_fma3(FFTContext *imdct,
> +                             float *synth_buf_ptr, int *synth_buf_offset,
> +                             float synth_buf2[32], const float window[512],
> +                             float out[32], const float in[32], float scale);
>  #if HAVE_FMA3_EXTERNAL

If you mean removing this #if, it will work only if you don't configure with
--disable-optimizations.
For that matter, i just noticed the AVX version is broken in that way right now.

Ideally, Christophe's dropped patch would be applied and all this would be 
avoided (see [PATCH 08/11] dcadsp: split synth_filter_float). But it requires 
the same changes to the arm version that supposedly negatively affect its 
performance.

Best options otherwise are either putting #if checks in ff_synth_filter_init_x86(), 
or removing every relevant #if (and %if checks in dcadsp.asm) and unconditionally 
compile both the avx and fma3 versions (the minimum required yasm/nasm version 
supports them, so it's not an issue there).

>  SYNTH_FILTER_FUNC(fma3)
>  #endif


More information about the ffmpeg-devel mailing list