mirror of
https://github.com/FFmpeg/FFmpeg.git
synced 2024-12-28 20:53:54 +02:00
f99d15cca0
This has been broken since the start, and it was only discovered when I started testing my replacement for the FFT. Disable it, since there's no point in fixing slower code that's about to be removed anyway. The vfp version is not affected.
64 lines
2.0 KiB
C
64 lines
2.0 KiB
C
/*
|
|
* Copyright (c) 2009 Mans Rullgard <mans@mansr.com>
|
|
*
|
|
* This file is part of FFmpeg.
|
|
*
|
|
* FFmpeg 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.
|
|
*
|
|
* FFmpeg 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 FFmpeg; 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/fft.h"
|
|
|
|
void ff_fft_calc_vfp(FFTContext *s, FFTComplex *z);
|
|
|
|
void ff_fft_permute_neon(FFTContext *s, FFTComplex *z);
|
|
void ff_fft_calc_neon(FFTContext *s, FFTComplex *z);
|
|
|
|
void ff_imdct_half_vfp(FFTContext *s, FFTSample *output, const FFTSample *input);
|
|
|
|
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);
|
|
|
|
av_cold void ff_fft_init_arm(FFTContext *s)
|
|
{
|
|
int cpu_flags = av_get_cpu_flags();
|
|
|
|
if (have_vfp_vm(cpu_flags)) {
|
|
s->fft_calc = ff_fft_calc_vfp;
|
|
#if CONFIG_MDCT
|
|
s->imdct_half = ff_imdct_half_vfp;
|
|
#endif
|
|
}
|
|
|
|
if (have_neon(cpu_flags)) {
|
|
#if CONFIG_FFT
|
|
if (s->nbits < 17) {
|
|
s->fft_permute = ff_fft_permute_neon;
|
|
s->fft_calc = ff_fft_calc_neon;
|
|
}
|
|
#endif
|
|
#if CONFIG_MDCT
|
|
s->imdct_calc = ff_imdct_calc_neon;
|
|
s->imdct_half = ff_imdct_half_neon;
|
|
s->mdct_calc = ff_mdct_calc_neon;
|
|
s->mdct_permutation = FF_MDCT_PERM_INTERLEAVE;
|
|
#endif
|
|
}
|
|
}
|