diff --git a/libavutil/arm/float_dsp_arm.h b/libavutil/arm/float_dsp_arm.h index f3fafe326d..fe311cc0d2 100644 --- a/libavutil/arm/float_dsp_arm.h +++ b/libavutil/arm/float_dsp_arm.h @@ -23,7 +23,7 @@ #include "libavutil/float_dsp.h" -void ff_float_dsp_init_vfp (AVFloatDSPContext *fdsp); +void ff_float_dsp_init_vfp(AVFloatDSPContext *fdsp, int cpu_flags); void ff_float_dsp_init_neon(AVFloatDSPContext *fdsp); #endif /* AVUTIL_ARM_FLOAT_DSP_ARM_H */ diff --git a/libavutil/arm/float_dsp_init_arm.c b/libavutil/arm/float_dsp_init_arm.c index 94d9c2bed3..38148b3878 100644 --- a/libavutil/arm/float_dsp_init_arm.c +++ b/libavutil/arm/float_dsp_init_arm.c @@ -28,7 +28,7 @@ av_cold void ff_float_dsp_init_arm(AVFloatDSPContext *fdsp) int cpu_flags = av_get_cpu_flags(); if (have_vfp(cpu_flags)) - ff_float_dsp_init_vfp(fdsp); + ff_float_dsp_init_vfp(fdsp, cpu_flags); if (have_neon(cpu_flags)) ff_float_dsp_init_neon(fdsp); } diff --git a/libavutil/arm/float_dsp_init_vfp.c b/libavutil/arm/float_dsp_init_vfp.c index 21db094d76..1fe52ab755 100644 --- a/libavutil/arm/float_dsp_init_vfp.c +++ b/libavutil/arm/float_dsp_init_vfp.c @@ -29,10 +29,8 @@ void ff_vector_fmul_vfp(float *dst, const float *src0, const float *src1, void ff_vector_fmul_reverse_vfp(float *dst, const float *src0, const float *src1, int len); -av_cold void ff_float_dsp_init_vfp(AVFloatDSPContext *fdsp) +av_cold void ff_float_dsp_init_vfp(AVFloatDSPContext *fdsp, int cpu_flags) { - int cpu_flags = av_get_cpu_flags(); - if (!have_vfpv3(cpu_flags)) fdsp->vector_fmul = ff_vector_fmul_vfp; fdsp->vector_fmul_reverse = ff_vector_fmul_reverse_vfp;