diff --git a/libavcodec/arm/Makefile b/libavcodec/arm/Makefile index 14d3f495eb..89ec23700b 100644 --- a/libavcodec/arm/Makefile +++ b/libavcodec/arm/Makefile @@ -27,6 +27,7 @@ OBJS-$(CONFIG_MPEGVIDEO) += arm/mpegvideo_arm.o OBJS-$(CONFIG_MPEGVIDEOENC) += arm/mpegvideoencdsp_init_arm.o OBJS-$(CONFIG_NEON_CLOBBER_TEST) += arm/neontest.o OBJS-$(CONFIG_PIXBLOCKDSP) += arm/pixblockdsp_init_arm.o +OBJS-$(CONFIG_RDFT) += arm/rdft_init_arm.o OBJS-$(CONFIG_RV34DSP) += arm/rv34dsp_init_arm.o OBJS-$(CONFIG_VC1DSP) += arm/vc1dsp_init_arm.o OBJS-$(CONFIG_VIDEODSP) += arm/videodsp_init_arm.o diff --git a/libavcodec/arm/fft_init_arm.c b/libavcodec/arm/fft_init_arm.c index 3c74e27cee..b6c2fd9493 100644 --- a/libavcodec/arm/fft_init_arm.c +++ b/libavcodec/arm/fft_init_arm.c @@ -23,7 +23,6 @@ #include "libavutil/arm/cpu.h" #include "libavcodec/fft.h" -#include "libavcodec/rdft.h" void ff_fft_calc_vfp(FFTContext *s, FFTComplex *z); @@ -36,8 +35,6 @@ void ff_imdct_calc_neon(FFTContext *s, FFTSample *output, const FFTSample *input void ff_imdct_half_neon(FFTContext *s, FFTSample *output, const FFTSample *input); void ff_mdct_calc_neon(FFTContext *s, FFTSample *output, const FFTSample *input); -void ff_rdft_calc_neon(struct RDFTContext *s, FFTSample *z); - av_cold void ff_fft_init_arm(FFTContext *s) { int cpu_flags = av_get_cpu_flags(); @@ -60,13 +57,3 @@ av_cold void ff_fft_init_arm(FFTContext *s) #endif } } - -#if CONFIG_RDFT -av_cold void ff_rdft_init_arm(RDFTContext *s) -{ - int cpu_flags = av_get_cpu_flags(); - - if (have_neon(cpu_flags)) - s->rdft_calc = ff_rdft_calc_neon; -} -#endif diff --git a/libavcodec/arm/rdft_init_arm.c b/libavcodec/arm/rdft_init_arm.c new file mode 100644 index 0000000000..2858ba93e8 --- /dev/null +++ b/libavcodec/arm/rdft_init_arm.c @@ -0,0 +1,33 @@ +/* + * This file is part of Libav. + * + * Libav is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * Libav is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with Libav; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#include "libavutil/attributes.h" +#include "libavutil/cpu.h" +#include "libavutil/arm/cpu.h" + +#include "libavcodec/rdft.h" + +void ff_rdft_calc_neon(struct RDFTContext *s, FFTSample *z); + +av_cold void ff_rdft_init_arm(RDFTContext *s) +{ + int cpu_flags = av_get_cpu_flags(); + + if (have_neon(cpu_flags)) + s->rdft_calc = ff_rdft_calc_neon; +}